- 필요한 재료 :
- 필요한 부품을 3D 프린팅 :
- 하드웨어 및 회로도 :
- 로봇 조립 :
- Biped 로봇 용 Arduino 프로그래밍 :
- 처리 기반 Android 애플리케이션 :
- Bluetooth 제어 Biped 로봇의 작동 :
걷고 춤을 출 수있는 작은 로봇을 만드는 또 다른 프로젝트에 오신 것을 환영합니다. 이 프로젝트는 Arduino를 사용하여 작은 취미 로봇을 만드는 방법과 이러한 응용 프로그램을 위해 서보 모터를 프로그래밍하는 방법을 가르치는 것을 목표로합니다. 프로젝트가 끝나면 Android 휴대폰에서 명령을 받아 미리 정의 된 동작을 수행하는 이 걷고 춤추는 로봇 을 만들 수 있습니다. 또한 프로그램 (자습서 끝에 제공됨)을 사용하여 직렬 모니터를 사용하여 서보 모터의 위치를 제어하여 자신의 로봇의 동작을 쉽게 조작 할 수 있습니다. 3D 프린터가 있으면이 프로젝트가 더 흥미롭고 멋지게 보일 것입니다. 그러나 하나가 없다면 온라인 서비스를 사용하거나 판지를 사용하여 동일한 서비스를 만들 수 있습니다.
필요한 재료:
다음은이 로봇을 만드는 데 필요한 재료입니다.
- Arduino 나노
- 서보 SG90 – 4Nos
- 남성 베르그 스틱
- HC-05 / HC-06 블루투스 모듈
- 3D 프린터
보시 다시피이 3D 프린팅 로봇 은 프로젝트 비용을 가능한 한 낮게 유지하기 위해 제작하는 데 최소한의 전자 부품이 필요합니다. 이 프로젝트는 개념적이고 재미있는 목적으로 만 진행되며 지금까지 실시간 적용이 없습니다.
필요한 부품을 3D 프린팅:
3D 프린팅은 프로토 타입 프로젝트를 구축하거나 새로운 기계 설계를 실험 할 때 많은 기여를 할 수있는 놀라운 도구입니다. 3D 프린터의 장점이나 작동 방식을 아직 찾지 못했다면 The Beginners Guide to 3D printing을 읽어보십시오.
이 프로젝트에서 위에 표시된 로봇의 몸체는 완전히 3D 인쇄됩니다. 여기에서 STL 파일을 다운로드 할 수 있습니다. 이러한 파일을 Cura와 같은 3D 프린팅 소프트웨어에로드하고 직접 인쇄하십시오. 나는 모든 부품을 인쇄하기 위해 매우 기본적인 프린터를 사용했습니다. 이 프린터는 3ding의 FABX v1으로 10 입방 cm의 인쇄 볼륨으로 저렴한 가격으로 제공됩니다. 저렴한 가격에는 낮은 인쇄 해상도와 SD 카드 또는 인쇄 재개 기능이없는 절충안이 있습니다. STL 파일을 인쇄하기 위해 Cura라는 소프트웨어를 사용하고 있습니다. 자료를 인쇄하는 데 사용한 설정은 다음과 같습니다. 동일하게 사용하거나 프린터에 따라 변경할 수 있습니다.
모든 부품을 인쇄 한 후 지지대 (있는 경우)를 청소 한 다음 다리와 배 부분의 구멍이 나사에 맞을만큼 충분히 큰지 확인합니다. 그렇지 않은 경우 바늘을 사용하여 구멍을 약간 크게 만드십시오. 3D 프린팅 된 부품은 아래와 같습니다.
하드웨어 및 회로도:
이 휴대 전화 제어 Biped Arduino 로봇 의 하드웨어 는 정말 간단합니다. 전체 회로도는 아래 이미지에 나와 있습니다.
위의 연결을 위해 Perf 보드를 사용했습니다. 회로가 로봇의 머리 안에 맞는지 확인하십시오. Perf 보드가 준비되면 아래와 같이 보일 것입니다.
로봇 조립:
하드웨어 및 3D 인쇄 부품이 준비되면 로봇을 조립할 수 있습니다. 모터를 고정하기 전에 프로그램이 완벽하게 작동하도록 모터를 아래 각도로 배치했는지 확인하십시오.
모터 번호 |
모터 플레이스 |
모터 위치 |
1 |
왼쪽 엉덩이 모터 |
110 |
2 |
오른쪽 엉덩이 모터 |
100 |
4 |
오른쪽 발목 모터 |
90 |
5 |
오른쪽 엉덩이 모터 |
80 |
이 각도는 튜토리얼 끝 부분에 제공된 프로그램을 사용하여 설정할 수 있습니다. 위의 연결을 완료 한 후 Arduino에 프로그램을 업로드하고 직렬 모니터에 다음을 입력하십시오 (참고: 전송 속도는 57600입니다).
1, 100, 110
2,90,100
4,80,90
5,70,80
모든 모터를 제자리에 배치하면 직렬 모니터가 다음과 같이 보일 것입니다.
모터가 해당 각도로 설정되면 위 그림과 같이 장착하십시오.
모터를 조립하는 방법이 혼란 스러우면 이 튜토리얼의 끝 부분에 있는 비디오 를 따르십시오. 로봇이 조립되면 춤추는 로봇을 프로그래밍 할 차례입니다.
Biped 로봇 용 Arduino 프로그래밍:
BBB 로봇 프로그래밍 ( Bluetooth Biped Bob ) 은이 튜토리얼에서 가장 흥미롭고 재미있는 부분입니다. Arduino로 서보 모터를 프로그래밍하는 데 매우 능숙하다면 프로그램을 만드는 것이 좋습니다. Bt, 이와 같은 로봇 애플리케이션에 서보 모터를 사용하는 방법을 배우고 싶다면이 프로그램이 매우 유용 할 것입니다. arduino 프로젝트 카테고리에서 arduino 프로그래밍에 대해 자세히 알아볼 수 있습니다.
전체 프로그램은이 튜토리얼의 끝에 제공되거나 여기에서 전체 코드를 다운로드 할 수 있습니다. 아래에서 동일한 부분을 설명하겠습니다. 이 프로그램은 직렬 모니터 또는 블루투스를 통해 로봇 동작을 제어 할 수 있습니다. 직렬 모니터를 사용하여 모든 개별 모터를 제어하여 자신 만의 움직임을 만들 수도 있습니다.
servo1.attach (3); servo2.attach (5); servo4.attach (9); servo5.attach (10);
위의 코드 줄은 Arduino의 어느 핀에 연결된 서보 모터를 언급하는 데 사용됩니다. 여기서 우리의 경우 Servo 1,2,4 및 5는 각각 핀 3,5,9 및 10에 연결됩니다.
Bot_BT.begin (9600); // 블루투스 통신을 9600 전송 속도로 시작 Serial.begin (57600);
앞서 말했듯이 우리의 워킹 로봇은 블루투스 명령과 직렬 모니터의 명령에서 작업 할 수 있습니다. 따라서 Bluetooth 직렬 통신은 9600의 Baud Rate로 작동하고 직렬 통신은 57600의 Baud Rate로 작동합니다. 여기에서 Bluetooth 개체의 이름은 "Bot_BT"입니다.
switch (motor) {case 1: // 모터 1 용 {Serial.println ("Executing motor one"); if (숫자 1
위에 표시된 스위치 케이스는 서보 모터를 개별적으로 제어하는 데 사용됩니다. 이것은 로봇으로 자신의 창의적인 움직임을 만드는 데 도움이 될 것입니다. 이 코드 세그먼트를 사용하면 특정 모터가 원하는 위치로 이동하도록 각도 및 각도에서 모터 번호를 간단히 알 수 있습니다.
예를 들어 왼쪽 엉덩이 모터 인 모터 번호 1을 기본 위치 인 110도에서 60 도로 이동하려는 경우입니다. 아두 이노의 시리얼 모니터에“1,110,60”이라고 적고 엔터를 치면됩니다. 이것은 로봇으로 복잡한 움직임을 만드는 데 유용합니다. 천사와 각도에서 모든 것을 실험하고 나면 자신의 움직임을 만들고 함수로 만들어 반복 할 수 있습니다.
if (Serial.available ()> 0) // Serial {gmotor = Serial.parseInt ();를 통해 들어오는 내용을 읽습니다. Serial.print ("선택한 번호->"); Serial.print (gmotor); Serial.print (","); gnum1 = Serial.parseInt (); Serial.print (gnum1); Serial.print ("도,"); gnum2 = Serial.parseInt (); Serial.print (gnum2); Serial.println ("도"); flag = 1; }
직렬 데이터를 사용할 수있는 경우 첫 번째 ","앞의 번호는 gmotor로 간주되고 두 번째 ","앞의 번호는 gnum1로 간주되고 두 번째 ","이후의 번호는 gnum2로 간주됩니다.
if (Bot_BT.available ()) // 블루투스를 통해 들어오는 내용 읽기 {BluetoothData = Bot_BT.read (); Serial.print ("BT에서 수신:"); Serial.println (BluetoothData); }
블루투스가 일부 정보를 수신하면 수신 된 정보는 변수“BluetoothData”에 저장됩니다. 그런 다음이 변수를 미리 정의 된 값과 비교하여 특정 작업을 실행합니다.
if (flag == 1) call (gmotor, gnum1, gnum2); // 동작을 위해 각 모터 호출 // 직렬 모니터 또는 블루투스를 통해 수신 된 commond에 따라 기능 실행 // if (gmotor == 10) left_leg_up (); if (gmotor == 11) right_leg_up (); if (gmotor == 12) move_left_front (); if (gmotor == 13) move_right_front (); if (BluetoothData == 49-gmotor == 49) say_hi (); if (BluetoothData == 50-gmotor == 50) walk1 (); if (BluetoothData == 51-gmotor == 51) walk2 (); if (BluetoothData == 52-gmotor == 52) dance1 (); if (BluetoothData == 53-gmotor == 53) dance2 (); if (BluetoothData == 54-gmotor == 54) {test (); test (); test ();}
직렬 모니터 또는 블루투스에서 수신 한 값을 기반으로 함수가 호출되는 곳입니다. 위와 같이 gmotor 변수는 직렬 모니터의 값을 가지며 BluetoothData는 Bluetooth 장치의 값을 갖습니다. 10,11,12에서 53,54까지의 숫자는 미리 정의 된 숫자입니다.
예를 들어 직렬 모니터에 숫자 49를 입력하는 경우. 로봇이 인사하는 곳에서 say_hi () 함수가 실행됩니다.
모든 함수는 "Bot_Functions"페이지에 정의되어 있습니다. 그것을 열고 각 기능 내에서 실제로 일어나는 일을 볼 수 있습니다. 이 모든 기능은 위에서 설명한 스위치 케이스를 사용하여 모든 모터의 천사에서 천사까지 실험하여 만들어졌습니다. 의심스러운 점이 있으면 댓글 섹션을 사용하여 게시 할 수 있으며 기꺼이 도와 드리겠습니다.
처리 기반 Android 애플리케이션:
로봇을 제어하는 Android 애플리케이션은 Processing Android 모드를 사용하여 빌드되었습니다. 응용 프로그램을 일부 변경하려면 여기에서 전체 처리 프로그램을 다운로드 할 수 있습니다.
응용 프로그램을 단순히 사용하려면 여기에서 APK 파일로 다운로드하여 휴대폰에 직접 설치할 수 있습니다.
참고: Bluetooth 모듈의 이름은 HC-06이어야합니다. 그렇지 않으면 응용 프로그램이 Bluetooth 모듈에 연결할 수 없습니다.
애플리케이션이 설치되면 Bluetooth 모듈을 휴대폰과 페어링 한 다음 애플리케이션을 시작할 수 있습니다. 아래와 같이 보일 것입니다.
앱을 더 매력적으로 만들거나 Hc-06이 아닌 다른 장치에 연결하려는 경우. 처리 코드를 사용하여 일부를 변경 한 다음 코드를 휴대폰에 직접 업로드 할 수 있습니다.
Bluetooth 제어 Biped 로봇의 작동:
하드웨어, Android 애플리케이션 및 Arduino Sketch가 준비되면 로봇과 함께 즐거운 시간을 보낼 차례입니다. 아래 그림과 같이 애플리케이션의 버튼을 사용하여 블루투스 애플리케이션에서 로봇을 제어하거나 직렬 모니터에서 직접 다음 명령을 사용하여 로봇을 제어 할 수 있습니다.
각 명령은 로봇이 몇 가지 독특한 작업을 수행하게하고 창의성에 따라 더 많은 작업을 추가 할 수도 있습니다.
로봇은 12V 어댑터로 전원을 공급 받거나 9V 배터리를 사용하여 전원을 공급받을 수도 있습니다. 이 배터리는 성능 보드 아래에 쉽게 배치 할 수 있으며 로봇 헤드로 덮을 수도 있습니다.
이 스마트 폰 제어 로봇 의 전체 작동은 아래 비디오에서 찾을 수 있습니다.