Demo 준비1

사전 준비 작업

Demo를 위해서는 아래 프로그램이 설치가 되어 있어야 합니다.

  • Python 2.7.X 버전
  • Open CV 2.4.X 버전
  • Python Library : numpy, Pygame. piSerial

또한 Raspberry Pi에 Pi Camera와 거리 측정을 위한 ultrasonic Sensor가 연결되어 있어야 합니다.

Demo소스 다운로드

Demo에 관련 소스는 Github 에서 확인할 수 있습니다.

git이 설치가 되어 있으면 terminal에서 아래와 같이 입력합니다.

>>> git clone https://github.com/hamuchiwa/AutoRCCar.git

git이 없으면 아래 ‘Clone or download’버튼을 눌러 zip 파일을 다운로드 받은 후 압축을 해제합니다.

../../_images/image015.jpg

동일한 작업을 Computer와 Raspberry Pi에서 수행을 하여 소스를 다운 받습니다.

소스 수정

다운 받은 소스에서 아래 부분을 Demo환경에 맞게 수정해야 합니다.

아두이노

  • arduino/rc_keyboard_control.ino
// 아두이노와 RC Car와 연결된 Pin Number.
// 아래 번호를 수정하거나, 아래 Pin에 맞게 RC Car와 연결.
// 아래는 demo에 맞게 변경된 상태임.
int right_pin = 10;
int left_pin = 9;
int forward_pin = 6;
int reverse_pin = 7;

수정을 한 후에 아두이노 IDE를 통해서 컴파일 후 배포를 합니다.

Computer

  • computer/xxxx.py

computer폴더 밑에 py소스들을 열어 보면 아래와 같은 부분이 있는 소스가 있습니다.

self.server_socket.bind(('192.168.1.100', 8000))
self.ser = serial.Serial('/dev/tty.usbmodem1421', 115200, timeout=1)

첫번째 라인은 Raspberry pI와 통신을 하기 위한 Socket IP입니다. PC의 IP로 변경을 합니다. 두번째 라인은 아두이노와 통신하기 위한 Serial Port입니다. 어떤 Serial Port를 사용하는지 확인은 아두이노 IDE에서 확인이 가능합니다.

../../_images/image031.jpg

Raspberry Pi

  • raspberryPi/xxxxxx.py

라즈베리파이 관련해서는 이미지를 전송하는 Client(stream_clinet.py)와 거리 측정을 위한 Client(ultrasoni_clinet.py)가 있습니다. 이 2개의 소스에서도 socket관련 부분을 컴퓨터의 IP로 변경을 해주면 됩니다.

테스트

이제 각 연결이 제대로 되었는지 테스트를 해보겠습니다.

Computer - Arduino

위 테스트틀 위해서 우선 아두이노에 LED를 연결하여 키보드를 눌렀을 때 정상적으로 아두이노로 명령이 전달이 되는지 확인해보겠습니다.

우선 아두이노에 LED와 저항을 연결해야 합니다.

../../_images/image041.jpg
../../_images/image022.jpg

이제 아두이노와 PC를 USB 포트로 연결을 하고 test/rc_control_test.py 파일을 아래와 같이 수행합니다.

>>> python rc_control_test.py

command 창에서 키보드로 상하좌우 버튼을 누릅니다.그러면 상단부터 순서대로 LED가 깜빡거리를 것을 확인할 수 있습니다.

Computer - Raspberry Pi

Computer와 Raspberry Pi에서 확인할 사항은 이미지 전송과 거리측정 센서 연결 상태입니다.

우선 Computer에서 test/stream_server_test.py 를 실행합니다.

>>> python stream_server_test.py

그러면 Computer는 서버가 되어 Clinet의 요청을 기다리고 있습니다.

다음으로 Raspberry Pi에 접속을 하여 터미널에서 raspberryPi/stream_client.py 를 실행합니다.

>>> python stream_client.py // 이미지 전송 Clinet

그러면 Computer에 카메라의 이미지가 전송이 됩니다.

위 동영상에서 왼쪽이 Computer이고 오른쪽이 SSH로 접속한 Raspberry Pi입니다.

다음은 거리측정 센서 테스트 입니다.

우선 Computer에서 test/ultrasonic_server_test.py 를 실행합니다.

>>> python ultrasonic_server_test.py

Raspberry Pi에서 raspberryPi/ultrasonic_client.py 를 수행합니다.

>>> sudo python ultrasonic_client.py // 거리 측정 Data전송 Client

그러면 화면에 Cm단위로 측정된 거리가 보여집니다.

위와 같이 테스트가 완료가 되면 시스템 Setting은 완료가 된 상태입니다.

다음은 이제 Open CV의 Machine Learning기능을 테스트를 진행해 보겠습니다.