산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

블루투스 제어 아두이노 스파이봇(Spybot) 만들기

부품 및 소모품

부품 수량 비고
아두이노 우노 (Arduino UNO) 1
HC-06 블루투스 모듈 1
아두이노 프로토 실드 (Arduino Proto Shield) 1 핀 헤더가 있는 납땜 가능한 브레드보드면 어떤 것이든 사용 가능
Adafruit 모터/스테퍼/서보 실드 V2 1
SM-S4306R 연속 회전 서보 1
DC 모터 (범용) 4
모터 타이어 4
점퍼 와이어 (범용) 8 모터 연결용
4xAA 배터리 홀더 2
AA 배터리 8
휴대폰 1 프로젝트에는 Nokia Lumia 520 사용
휴대폰 홀더 1
커스텀 섀시 1 단순 나무 판자 사용

앱 및 온라인 서비스

Johnny-Five 아두이노 자바스크립트 제어 API용

프로젝트 소개

간단한 소개

블루투스 연결로 제어할 수 있는 간단한 4륜 자동차입니다. 이 자동차는 IP 카메라로 사용할 수 있는 모든 휴대폰을 탑재할 수 있습니다. 노드 웹 서버에서 자바스크립트를 사용하여 로봇이 어디로 가는지 모니터링할 수 있도록 만들었습니다.

주요 부품의 회로는 그림 1에서 확인할 수 있습니다.

블루투스 제어 아두이노 스파이봇(Spybot) 만들기

서버 실행 후 그림 2와 같이 제어 방법 소개와 카메라 뷰 창이 있는 화면이 나타납니다.

블루투스 제어 아두이노 스파이봇(Spybot) 만들기

이 레이아웃은 반응형입니다.

섀시

이 버전에서는 섀시를 직접 만들기로 했습니다. 드릴링 머신이 없거나 더 쉬운 해결책을 원한다면 다양한 플라스틱 차체를 구매할 수 있습니다.

직접 섀시를 만들기로 했는데, 보이는 것만큼 쉽지는 않았습니다. 가장 중요한 규칙은 차동 조향(differential steering)을 사용하여 제자리 회전을 원한다면 타이어를 가능한 한 서로 가깝게 배치해야 한다는 것입니다. 주요 실수와 기본 물리 법칙은 다음 링크에서 확인할 수 있습니다:

https://www.rakeshmondal.info/4-Wheel-Drive-Robot-Design

또 다른 과제는 DC 모터를 섀시에 어떻게 고정할 것인가였습니다. 제 경우 전용 부품이 없어 케이블 타이(150/3.5)를 사용했습니다. 타이어를 제대로 고정하려면 구멍을 최대한 정밀하게 뚫고 모터 하나당 케이블 타이 2개를 사용해야 했습니다. 안타깝게도 모터가 충분히 직각으로 고정되지 않을 수 있어 전진/후진 제어 시 자동차가 약간 좌우로 치우쳐 움직일 수 있습니다.

배터리

보드와 모터 구동용으로 단일 DC 전원 공급을 사용하기로 했습니다. 섀시에 8xAA 배터리 홀더를 놓을 공간이 없어 두 개의 4xAA 홀더를 나사 2개로 서로 고정하여 맞춤 제작했습니다. 이를 위해 플라스틱에도 구멍을 뚫어야 했습니다.

전원 공급

제 경우 8개의 AA 충전식 배터리로 아두이노 우노 보드에 전원을 공급했습니다. 이는 모터 실드에도 충분한 전력입니다. 이 실드에는 분리 가능한 점퍼가 있어 아두이노에서 모터 실드로 전원이 공급되지 않게 할 수 있습니다. 이 경우 실드의 전원 핀을 사용하여 별도로 전원을 공급할 수 있습니다. 다양한 전원 공급 옵션은 다음 링크에서 확인하세요:

https://learn.adafruit.com/adafruit-motor-shield-v2-for-arduino/powering-motors

무선 연결

자동차와 컴퓨터 간 연결을 위해 HC-06 블루투스 모듈을 사용했습니다. 케이블을 최소화하고 싶어서 빈 프로토타입 실드에 블루투스 모듈을 장착하고 실드 아래에서 배선하고 핀 헤더를 납땜하여 올바른 장착 메커니즘을 만들었습니다. 그림 3과 4에서 결과를 확인할 수 있습니다.

블루투스 제어 아두이노 스파이봇(Spybot) 만들기
블루투스 제어 아두이노 스파이봇(Spybot) 만들기

좋은 점은 블루투스 모듈이 보드에 납땜되지 않아 언제든 실드에서 분리할 수 있다는 것입니다.

블루투스 모듈 설정은 다음 사이트 지침을 따르세요:

https://github.com/rwaldron/johnny-five/wiki/Getting-Started-with-Johnny-Five-and-JY-MCU-Bluetooth-Serial-Port-Module

이동

로봇은 차동 조향을 사용하여 전진, 후진, 회전이 가능합니다. 카메라 홀더는 연속 회전 서보에 부착되어 있어 자동차 자체를 움직이지 않고도 휴대폰으로 주변을 둘러볼 수 있습니다. 짧은 시연은 다음 비디오에서 확인할 수 있습니다.

휴대폰

프로젝트에 Nokia Lumia 520을 사용했으며, 스토어에서 'Win IP Camera' 애플리케이션을 사용했습니다:

https://www.microsoft.com/en-us/store/p/win-ip-camera/9nblgggz4xb1

코드에 대하여

자바스크립트 개발자로서 제어 페이지용 노드 웹 서버를 만들고, 멋진 라이브러리를 사용하여 외관과 코드 구문을 향상시켰습니다. 전체 목록은 제 깃허브 페이지와 다음 섹션에서 확인할 수 있습니다.

프론트엔드와 백엔드 모두 모듈화를 선택했습니다. 애플리케이션의 진입점은 다음과 같습니다:

var boardModule = require('./src/boardModule'), 
    servoModule = require('./src/servoModule'), 
    motorModule = require('./src/motorModule'); 
boardModule.initBoard().then(function() { 
  motorModule.initMotors(); 
  servoModule.initServo(); 
}); 

프론트엔드에서도 각 모듈별로 분리했습니다:

import {moveWheels, stopWheels} from './wheelsControl'; 
import {moveServo, stopServo} from './servoControl'; 
document.onkeydown = checkKeyDown; 
document.onkeyup = checkKeyUp; 
function checkKeyDown(e) { 
  moveWheels(e.keyCode); 
  moveServo(e.keyCode); 
} 
function checkKeyUp(e) { 
  stopWheels(e.keyCode); 
  stopServo(e.keyCode); 
} 

전체 코드베이스는 위의 깃허브 저장소에서 확인하세요.

소프트웨어 라이브러리

마무리하며

저는 이 IoT 세계의 초보자이며 이것이 첫 프로젝트입니다. 최적의 솔루션을 사용했다고 말하지는 않겠지만, 이 가이드에서 유용한 정보를 찾으실 수 있기를 바랍니다.

코드

GitHub

https://github.com/dominikfilkus/arduino-spybot-V2

회로도

Fritzing 파일: arduino-spybot.fzz

제조공정

  1. ILI9341 2.4인치 TFT 터치스크린 실드에서 비트맵 애니메이션 구현하기 (Visuino 활용)
  2. 웹 제어 DMX 조명 시스템 - 아두이노 마스터 컨트롤러
  3. 플릭모트(FlickMote): 스마트 홈을 위한 제스처 제어 IR 리모컨
  4. DIY 아두이노 TV B-Gone: 모든 TV를 끄는 만능 리모컨
  5. 아두이노로 만드는 대형 LED 마스터 시계 (알람 기능 포함, 12m 거리에서도 식별 가능)
  6. HSV 시계: 아두이노 애호가를 위한 생생하고 커스터마이징 가능한 타임피스
  7. 라즈베리파이 모터 쉴드로 만드는 안드로이드 제어 원격 주행 로봇
  8. 아두이노와 블루투스로 만드는 스마트 물건 찾기 'Find Me'
  9. 아두이노 프로젝트를 위한 최적화된 전원 솔루션
  10. 아두이노 틱택토 게임 - MAX7219 LED 매트릭스와 골판지 케이스