Skip to main content

3 posts tagged with "javascript"

View All Tags

[Flask, React Native] 원격 제어 가능한 라즈베리파이 자동차 제작하기


스마트폰으로 원격 제어가 가능한 라즈베리파이 기반의 자동차를 만드는 방법입니다.

서버는 간단한 구성이라 Python Flask를 사용했고, React NativeExpo를 사용하여 아이폰, 안드로이드 겸용 모바일 애플리케이션을 제작했습니다.



1. 준비물

라즈베리파이

라즈베리파이1 ~ 4 모두 가능합니다.
alt text

카메라 모듈

카메라 모듈이 아닌 USB 카메라도 연결 가능합니다.
alt text

DC 모터 및 바퀴

DC모터는 접촉 불량 빈도가 높아, 납땜 처리를 권장합니다.
alt text

모터 드라이버

안정적인 구동을 위해 모터 드라이버가 필요합니다. L298N을 사용합니다.
모터 드라이버

배터리

리튬이온, 리튬폴리머, 알칼라인 건전지 모두 사용 가능합니다.
(하지만 배터리 관련 지식이 부족하여) 완제품인 보조배터리를 라즈베리파이에 연결하여 메인 전원으로 사용하고, 알칼라인 배터리를 보조 전원으로 사용했습니다.
(또는 단순한 전력공급용으로 라즈베리파이나 아두이노를 추가로 연결해도 됩니다)

자동차 프레임

openscad를 사용하여 자동차 프레임을 설계했습니다. 3D 프린터의 출력 한계 때문에, 모터를 수직 방향으로 장착했습니다.
프레임

기타

서보모터, RGB LED, 저항, 점퍼선, 브레드보드(빵판), SD 카드, 충전 케이블 등



2. 회로도 구성

출력 저하가 없도록 병렬로 모터를 연결하여 납땜 처리 후, 모터 드라이브를 통해 라즈베리파이의 GPIO핀에 연결했습니다. 또한 충분한 전력을 공급받을 수 있도록 9V를 추가로 연결했습니다.

picar_component



3. 코드 편집기

라즈베리파이에 라즈비안을 설치한 후, 원격 데스크톱으로 연결하여 개발을 진행했습니다.
리눅스용 vscode를 설치하여 진행할 경우, 훨씬 편리하게 개발할 수 있습니다.

sudo su
. <( wget -O - https://code.headmelted.com/installers/apt.sh )

설치가 완료되었으면, code-oss를 입력하여 vscode를 실행시키고, 작업을 진행하면 됩니다.

code-oss


4. 코드

DC모터카메라 뿐만 아니라 서보모터RGB LED를 제어하는 코드도 같이 구현되어 있습니다.



5. 포트포워딩 및 스케줄러 등록

외부에서 접속할 경우, 포트포워딩을 이용하여 접속할 수 있습니다.

또한 스케줄러를 등록하여 라즈베리파이 부팅시 자동으로 서버를 실행할 수 있습니다.



6. 결과물

전면측면
전면측면


7. 시연 영상

demo



참고자료