멀티파이 활용 두번째로 GPIO를 이용한 Motor 제어를 해봅니다.


멀티파이 구성을 위해서 준비해야 할 것은 Power Switch구성, SN754410 모터드라이버 장착만 하면 기본 Motor구동이 가능합니다.


단, 회부 전원을 이용할 때는 별도 DC 5V짹을 구성하여 전원 공급을 해야 합니다.


1. 멀티파이 보드 준비하기

  먼저 전원 인가 방안을 정하고 Power Switch를 추가합니다. 여기서는 Raspberry Pi의 기본 전원을 사용하였으며, 스위치가 구비되지 않아 핀헤드에 점퍼 소켓으로 전원 공급을 하고 있습니다. 

  두번째로 Motor Driver SN754410을 장착하여 준비하면 보드의 기본 준비는 끝이납니다.


기본적으로 구성한 보드는 아래의 그림과 같습니다.




  참조. SN754410 Datasheet의 핀구성과 Function Table입니다. 


2. 멀티파이 보드와 모터 연결하기

  멀티파이에서 Motor Driver와 기본 GPIO를 연결해 두었습니다. 그래서 모터만 M1, M2에 연결하면 간단하게 연결은 끝납니다.

  PS. 모터의 정/역 구동을 눈으로 확인 해보려고 색지를 달고 무게를 주려고 끝부분에 스테플러를 끼웠는데 생각한 결과는 나오지 않네요..ㅠㅠ



3. GPIO를 이용한 Motor 제어 소스 작성하기

  위에서 본 바와 같이 멀티파이 보드에서 Motor Driver와는 이미 회로가 정의되어있다. 그래서 GPIO 핀 확인이 필요한데, RPi.GPIO를 기준으로 하였을 때 아래의 그림과 같이 M1은 7, 11번, M2는 13, 15와 연결되었다.



Motor 제어를 위한 명령구성은 다음과 같다.


 Motor

Pin 

 Action 

 Etc.

 M1

7 - True

11 -False

 정회전

 

7 - False

11 - True

 역회전

 

7 - False

11 - False

 정지

 

 M2

13 - True

15 - False 

 정회전

 

13 - False

15 - True

 역회전

 

13 - False

15 - False

 정지

 


Motor 제어 명령어를 참조로한 소스는 다음과 같다.

Motor 선택에 따라 선택된 Motor가 정/역회전하고 정지하도록 하였습니다.


motor_demo.py



다음은 명령어를 실행한 결과이며,


실행되는 과정을 동영상으로 제작해보았습니다.



Posted by 혀나미
,

Raspberry Pi의 확장을 도와주는 멀티파이를 이용하여 Raspberry GPIO제어를 해봅니다.


먼저 멀티파이에서 GPIO 사용을 편하게 하려고 핀헤드를 올렸습니다. 우선 기본 핀아웃들만 핀헤드를 올렸습니다.

이후에 모터 제어를 위해서  SN754410까지 올려두었습니다.


먼저 GPIO에 대한 기본 이해를 위해서 GPIO를 이용한 LED제어를 해보려고 합니다.



GPIO란?

GPIO(General Purpose Input Output)일반적인 입/출력을 제공하는데, 하나의 단자로 입력 또는 출력이 고정되지 않고 선택적으로 입력/출력이 가능하다. 하지만 동시에 입력과 출력을 겸용으로 할 수는 없다. 사용 목적에 따라 먼저 GPIO모드 설정을 해야합니다.


Raspberry Pi는 21개의 GPIO를 제공하고 있는데, 그 중에 17개는 핀헤드로 구성되어 있고, 나머지 8개는 보드에 핀헤드를 세워서 사용할 수 있습니다.



<Raspberry Pi B Type GPIO Pinout>


Raspberry Pi에서는 다양한 방법으로 GPIO를 제어 할 수 있는데, 여기서는 Python으로 GPIO를 제어하고자 합니다.


Raspberry Pi  멀티파이로 GPIO 핀 연결하기


GPIO 5핀으로 LED를 On/Off하는 회로(Low active)를 구성하는데, GPIO 핀은 7, 11, 13, 15, 16으로 아래의 그림과 같이 사용하였습니다.



     여기서 실제 사용은 멀티파이의 핀 헤드에 기존에 사용하던 LED 버튼 보드를 재활용하여 LED만 사용하였습니다. 보드의 구성은 위의 회로 형태(Low Active회로)로 구성되었습니다.

 


Raspberry Pi에서 Python RPi.GPIO 사용하기

  >> RPi.GPIO 참조자료

      https://pypi.python.org/pypi/RPi.GPIO


  >> Raspberry Pi 업데이터

     $sudo apt-get update

     $sudo apt-get upgrade

   *여기서는 업데이터 후 Python RPi.GPIO xxx 버전으로 하였음.


  >> Python GPIO 소스작성

    RPi.GPIO를 로드하여 GPIO포트를 출력으로 초기설정을 하고, 사용자가 입력한 반복횟수와 지연시간으로 LED가 On/Off하는 프로그램을 작성하였습니다.


 gpio_7test.py


 

 >> Python GPIO 프로그램 실행하기

     소스 작성이 완료되면 아래와 같이 프로그램을 실행하면 순차적으로 LED가 On/Off하는 것을 볼 수 있습니다.

아래는 실행중인 상태에서 LED의 On/Off상태를 동영상으로 제작하였습니다.


이제 기본적인 GPIO제어에 대한 이해를 하였고, 다음은 모터제어를 준비해야 겠습니다.
이후에 간단히 PiDuino 제작에 대한 내용을 포스팅할 예정입니다.



본 제품은 아이씨뱅큐 무상체험단 12기 활동의 일환으로 체험 제품을 제공받아 작성되었습니다.

Posted by 혀나미
,

멀티파이를 받고 무었을 붙여 볼까 고민에 빠져봅니다.

먼저 모터 제어를 위한 부품부터 구매를 좀하고자 했는데.. 적은 수량 구매가 조금 문제가 되네요.

 

멀티파이 개봉기 시작합니다.

 

1. 택배 박스 개봉부터 시작합니다. 

  안전한 뽁뽁이 포장에 체험단 안내장까지 자세히 쓰여있습니다.

   여기저기 체험내용 공유해야하는 것이 있네요.. 하지만 복사 & 붙이기로 해결 되겠죠?ㅎㅎ

 

2. 멀티파이 싱글 샷입니다.

   먼저 앞면을 찍었습니다. 눈에는 바로들어오는 것이 보드의 버전 V1.3이 먼저 보이네요.^^ 

    버전이 체험단 공지할 때 V1.2였는데 상위 버전이니 좋아졌겠구나 싶네요.

   큰 차이가 모터 드라이버칩이 2개였는데 큰거 하나로 변경된것이 제일 눈에 들어 옵니다.

 

  이것은 뒷면 갈끔하게 커넥터만 있고 DC 5V잭 위치가 마킹되어있네요. 

  이렇게 뒤집어서 잭을 붙이면 아래에서 확인 하겠지만 돌출부가 해결이 되겠습니다.

 

3. 멀티파이와 라즈베리파이 비교

   두개를 나란히 놓았습니다. 크기와 간섭사항이 잘 고려되어 보입니다.

 

 

4. 라즈베리 파이에 장착후 확인

   상단에서 본 모습인데 안성맞춤으로 딱 맞게 되었습니다.

 

측면(비디오 단자)에서 본 모습 최대한 밀착을 시켜서 구성하도록 설계 되었습니다.

DC 12V전원잭을 아래에 부탁해도 간섭이 없을 것 같습니다. 너무 큰것은 안되겠죠?

 

측면(HDMI 단자)에서 본 모습 

라즈베리파이에 카메라 연결이 가능하도록 Camera Hole이 준비되었습니다.

 

측면(USB단자) 에서 본 모습

커넥터부와 이더넷 포트상단이 대각선형으로 받쳐주네요 DC 5V 전원잭 이 측면으로 붙어 질것으로 예산이 됩니다.

 

마지막으로 자작으로 만든 레고 케이스에 끼워서 멀티파이를 장착하였습니다.

크게 간섭이 없이 사용이 가능합니다.

 

 

이상 멀티파이 개봉기였습니다.

 

 본 제품은 아이씨뱅큐 무상체험단 12기 활동의 일환으로 체험 제품을 제공받아 작성되었습니다.

Posted by 혀나미
,