[권문송의 라즈베리 파이 먹기] (11)③왜 앞으로 나가질 못하니…

- Advertisement -

다시 돌고~돌고~돌고~

icon-alert

ic_multitracktest

네이버 동영상 플레이어

재생시간, 이 동영상의 길이는 17초 입니다.

화질 선택 옵션

화질 선택 옵션

돌고 도는 세상

[프로젝트 11] 라즈베리 파이로 RC 카 만들기 ③구동 테스트

안녕하세요. [권문송의 라즈베리 파이 먹기] 시간이 돌아왔습니다. 드디어 운명의 시간이 돌아왔습니다. 자세한 내용은 뒤에서 다루기로 하죠. 지난번에는 우여곡절 끝에 드디어 라즈베리 파이 RC 카 ‘알파봇 2’에 전력을 공급했습니다.

오늘은 완성된 알파봇 2를 실제 구동해보겠습니다. 전자부품 쇼핑몰 엘레파츠 공식 블로그의 도움을 많이 받았습니다. 감사의 말씀을 남깁니다. (홍보하는 건 아닙니다^^;;)

우선 알파봇 2에 장착된 라즈베리 파이 OS 라즈비안 전체 업데이트를 했습니다. 한동안 업데이트를 하지 않아서 그런지, 상당한 시간이 걸렸습니다. 자주자주 업데이트를 해줘야겠군요.

다음은 라즈베리 파이 설정의 인터페이스에 들어가 사용할 기능을 모두 ‘사용 가능하게(Enable)’ 만들어줍니다.

1-Wire가 어떤 기능인지는 잘 모르겠지만, 그걸 제외하고 모든 기능을 활성화했습니다. 알파봇 2가 카메라가 장착됐으니, 카메라(Camera)를 켰습니다. 원격 제어를 위해 VNC도 사용 가능하게 했습니다. 나머지도 대부분 다 활용하는 것 같아 Enable 해두었습니다.

그리고 재부팅을 합니다.

알파봇 2 제조사인 WaveShare는 알파봇 2를 구동할 수 있는 데모 프로그램을 제공합니다. 간단한 테스트부터 실제 주행까지 다양한 기능을 수행할 수 있습니다. 하지만 설치만 한다고 끝나는 게 아닙니다. 여러 가지 설정을 ‘건들어야’ 합니다. 라즈비안의 기본이 되는 리눅스가 다 그렇죠 뭐.

문제는 설치 시작부터 마이크로소프트(MS) 윈도 환경과 매우 다르다는 것입니다. 지금까지 대부분 작업을 리눅스(라즈비안)에서 해왔지만, 알파봇 2 제어를 위한 설치는 한층 더 까다로운 것 같습니다.

터미널을 열고 wget www.waveshare.net/w/upload/e/ee/AlphaBot2-Demo.7z 를 입력하면 바로 다운로드할 수 있습니다. 만약 그래픽 환경(GUI)에서 다운로드하려면 WaveShare 홈페이지(https://www.waveshare.com/wiki/File:AlphaBot2-Demo.7z)로 들어가면 됩니다. 2017년부터 2019년까지 7개 버전이 있네요.

저는 일단 터미널에서 내려받았습니다. (엘레파츠 블로그를 참고하고 있습니다.)

잘 받았는지 디렉토리 목록(ls)을 확인해보겠습니다.

화면에 빨간색으로 AlphaBot2-Demo.7z라는 파일이 있군요. 바로 이 파일입니다. 분홍색 2020으로 시작하는 파일이 많은데 이건 스크린 캡처 파일이니 신경 쓰지 마세요. 앞으로 점점 늘어날 겁니다.

GUI에서 보이는 AlphaBot2-Demo.7z 파일입니다. 현재 /pi 디렉토리 아래에 있습니다.

알파봇2 데모 파일이 압축 파일이니 압축을 풀어줘야겠죠. 7z 압축 파일을 풀기 위해서는 p7zip 패키지를 설치하면 됩니다. 터미널에서 sudo apt-get install p7zip이라고 입력해주면 됩니다.

다음은 압축을 푸는 과정입니다.

명령어는 7zr x AlphaBot2-Demo.7z입니다. 사실 GUI에서 압축을 푸는 게 훨씬 편합니다. 데모 파일을 클릭하면 자동으로 압축 푸는 패키지가 실행되고 압축 풀기(Extract) 버튼을 눌러주면 됩니다. 굳이 터미널에서 하는 이유는 리눅스에 좀 더 익숙해지기 위해서입니다. 다 같이 공부해보자는 취지랄까요.

압축을 풀면 이렇게 나옵니다. Everything is Ok. 이 문장만 봐도 기분이 좋아집니다. 다 잘 됐어! 그래 고마워! (여기까지는…)

‘Raspberry Pi’라는 폴더가 생겼죠. 파란색은 폴더입니다. 위에 보면 Arduino(아두이노) 폴더도 있죠. 알파봇 2 데모 파일 안에는 두 가지 버전의 소프트웨어가 있습니다. 하나는 라즈베리 파이용이고 다른 하나는 아두이노 용입니다. 알파봇 2가 라즈베리 파이와 아두이노용 두 가지 모델이 있기 때문입니다.

저는 라즈베리 파이 3B 모델을 사용하고 있으니, Rasberry Pi 폴더 안에 있는 내용물로 조리를 할 겁니다.

지금 보면 중심이 되는 AlphaBot2 폴더가 /home/pi/Raspberry Pi/ 아래에 있습니다. 위에 Raspberry Pi가 하나 더 있는데요. AlphaBot2 폴더를 /pi 바로 아래에 옮겨야 된다고 하는군요. 이동(mv) 명령어로 옮겨 보겠습니다.

이 역시 GUI에서는 마우스 클릭해 드래그 앤 드롭해주면 됩니다. 윈도처럼 말이죠.

/pi 아래에 잘 안착했습니다. 이제 AlphaBot2 폴더 안에 무엇이 있는지 보겠습니다.

App-Control, Bluetooth-Control, Web-Control, Web-RGB, mjpg-streamer, python 등이 있습니다. 여기서 파이썬(python) 폴더에 들어가면 좌측에 보이는 것처럼 여러 가지 예제 파일들이 있습니다. 이 파일을 실행하면 알파봇 2가 움직입니다.

우선 알파봇 2를 움직이는 AlphaBot2.py를 실행해보겠습니다. sudo python AlphaBot2.py라고 치면 됩니다. 중단하려면 Ctrl+C를 누르면 됩니다. 참고로 아직 원격 제어를 하지 않고 HDMI로 모니터를 연결했기 때문에 알파봇 2가 분해된 상태입니다. 완제품일 때는 HDMI 케이블을 연결할 공간이 나오지 않더군요. 이제 실행해보겠습니다.

icon-alert

ic_multitracktest

네이버 동영상 플레이어

재생시간, 이 동영상의 길이는 6초 입니다.

화질 선택 옵션

화질 선택 옵션

AlphaBot2.py 바퀴 구동

????

한쪽 바퀴밖에 움직이지 않습니다. 여기서 첫 번째 난관에 직면하게 됩니다. 왜 한쪽 바퀴만 움직일까요. 엘레파츠 블로그에 보면 이렇게 적혀져 있습니다.

…..

앞으로 전진하지 않습니다! 앞으로 전진하려면 양쪽 바퀴가 모두 움직여야 하는데 그게 안됩니다. 왜 그런 걸까요(ㅜㅜ)

일단 한쪽 바퀴라도 움직이는 걸 봤으니 다른 예제 몇 가지를 더 해보겠습니다.

여러 가지 예제 파일 중 알파봇 2가 반응을 하는 건 다음과 같습니다. PCA9685.py 이건 카메라 서보 모터가 구동돼 좌우 방향으로 움직입니다.

icon-alert

ic_multitracktest

네이버 동영상 플레이어

재생시간, 이 동영상의 길이는 17초 입니다.

화질 선택 옵션

화질 선택 옵션

PCA9685.py 카메라 서보모터

IRremote.py는 리모컨을 사용할 수 있게 합니다. 어떤 버튼이 어떤 역할을 하는지 아직 정확하게 파악이 안됩니다. 이것도 역시 한쪽 바퀴밖에 움직이지 않습니다.

icon-alert

ic_multitracktest

네이버 동영상 플레이어

재생시간, 이 동영상의 길이는 17초 입니다.

화질 선택 옵션

화질 선택 옵션

IRremote.py 리모컨 사용

마지막으로 알파봇 2가 반응하는 건 Joystick.py입니다. 알파봇2 파이(상단)에 보면 한쪽에 이런 게 있습니다.

이게 실제 조이스틱처럼 좌우전후, 그리고 가운데 버튼 누름 방식으로 움직일 수 있습니다. Joystick.py를 실행하고 이건 조작하면 어떻게 되는지 영상으로 확인해보시죠.

icon-alert

ic_multitracktest

네이버 동영상 플레이어

재생시간, 이 동영상의 길이는 18초 입니다.

화질 선택 옵션

화질 선택 옵션

Joystick.py 조이스틱으로 제어

화면이 기울었네요. 조이스틱 버튼을 움직일 때마다 부저가 울리면서 바퀴가 돌아갑니다. 방향이 바뀌거나 속도가 좀 더 빨라지기도 합니다. 하지만 여전히 한쪽 바퀴만 돌아가네요.

다른 예제 파일은 실행했지만, 알파봇이 반응하지 않았습니다. 나중에 하나하나 무엇인지 파악해보도록 하죠. 지금 가장 큰 문제는 왜 한쪽 바퀴만 돌아가느냐는 겁니다.

혹시 다른 한쪽 모터가 고장 난 것일까요. 그런 게 있지 않습니까. 어릴 때 가지고 놀았던 미니카 모터에 너무 강력한 충전지를 장착했을 때 모터가 타버린 경우 말입니다. 지난번에 전원 공급을 제대로 못하면서 이것저것 만지다가 혹시 모터를 태워 먹은 게 아닐까요.

그런 생각을 가지고 각 모터에 따로 전력을 공급해 작동 여부를 파악해봤습니다. 배터리가 있는 쪽을 알파봇 2의 후면으로 기준을 잡았습니다.

icon-alert

ic_multitracktest

네이버 동영상 플레이어

재생시간, 이 동영상의 길이는 13초 입니다.

화질 선택 옵션

화질 선택 옵션

좌측 바퀴 모터 확인

icon-alert

ic_multitrack