- Potřebné materiály:
- 3D tisk požadovaných dílů:
- Hardware a schémata:
- Sestavení robota:
- Programování Arduina pro Biped Robot:
- Zpracování aplikace pro Android:
- Práce s dvojitým robotem řízeným Bluetooth:
Vítejte v dalším projektu, ve kterém postavíme malého robota, který umí chodit a tančit. Cílem projektu je naučit vás, jak vyrábět malé hobby roboty pomocí Arduina a jak programovat vaše servomotory pro takové aplikace. Na konci projektu budete moci vyrobit tohoto kráčícího a tančícího robota, který převezme příkaz z mobilního telefonu Android a provede některé předem definované akce. Můžete také použít program (uvedený na konci tohoto výukového programu) ke snadné manipulaci s akcemi vašeho vlastního robota ovládáním polohy servomotorů pomocí sériového monitoru. Díky 3D tiskárně bude tento projekt zajímavější a bude vypadat skvěle. Pokud však žádnou nemáte, můžete použít některou ze služeb online nebo použít jen nějakou lepenku k vytvoření stejné služby.
Potřebné materiály:
K výrobě tohoto robota jsou potřebné materiály:
- Arduino nano
- Servo SG90 - 4 č
- Mužské berg hole
- Modul Bluetooth HC-05 / HC-06
- 3D tiskárna
Jak vidíte, tento 3D tištěný robot vyžaduje jen minimální část elektroniky, aby se náklady na projekt udržovaly co nejnižší. Tento projekt je pouze pro koncepční a zábavné účely a dosud nemá žádnou aplikaci v reálném čase.
3D tisk požadovaných dílů:
3D tisk je úžasný nástroj, který může hodně přispět při stavbě prototypových projektů nebo při experimentování s novými mechanickými vzory. Pokud jste dosud neobjevili výhody 3D tiskárny nebo jak funguje, můžete si přečíst Průvodce pro začátečníky po 3D tisku.
V tomto projektu je výše zobrazené tělo robota zcela vytištěno 3D. Soubory STL si můžete stáhnout zde. Načtěte tyto soubory do svého softwaru pro 3D tisk, jako je Cura, a přímo je vytiskněte. K tisku všech částí jsem použil velmi základní tiskárnu. Tiskárna je FABX v1 od společnosti 3ding, která je dostupná za dostupnou cenu s objemem tisku 10 cm3. Levná cena přichází s kompromisem s nízkým rozlišením tisku a bez SD karty nebo funkce obnovení tisku. K tisku souborů STL používám software s názvem Cura. Nastavení, které jsem použil k tisku materiálů, jsou uvedeny níže, můžete je použít stejné nebo je změnit na základě vaší tiskárny.
Jakmile vytisknete všechny části, očistěte podpěry (pokud existují) a poté zkontrolujte, zda jsou otvory na noze a břišní části dostatečně velké, aby se do nich vešel šroub. Pokud ne, použijte jehlu, aby se otvor mírně zvětšil. Vaše 3D tištěné části budou vypadat jako něco níže.
Hardware a schémata:
Hardware tohoto robota Arduino ovládaného dvěma telefony je opravdu jednoduchý. Kompletní schémata jsou uvedena na následujícím obrázku
K provedení výše uvedených připojení jsem použil desku Perf. Ujistěte se, že se váš obvod vejde také do hlavy robota. Jakmile je vaše deska Perf připravena, měla by vypadat asi jako níže.
Sestavení robota:
Jakmile bude hardware a 3D tištěné díly hotové, můžeme robot sestavit. Před upevněním motorů se ujistěte, že jste motory umístili do níže uvedených úhlů, aby program fungoval bezchybně.
Číslo motoru |
Místo motoru |
Poloha motoru |
1 |
Motor levého kyčle |
110 |
2 |
Pravý kyčelní motor |
100 |
4 |
Motor pravého kotníku |
90 |
5 |
Pravý kyčelní motor |
80 |
Tyto úhly lze nastavit pomocí programu uvedeného na konci tutoriálu. Jednoduše nahrajte program do svého Arduina po provedení výše uvedených připojení a do sériového monitoru zadejte následující (Poznámka: Přenosová rychlost je 57600).
1, 100, 110
2,90,100
4,80,90
5,70,80
Váš sériový monitor by měl po umístění všech motorů na místo vypadat nějak takto.
Jakmile jsou motory nastaveny do příslušných úhlů, namontujte je, jak je znázorněno na obrázku výše.
Pokud si nejste jisti, jak sestavit motory, postupujte podle videa na konci tohoto tutoriálu. Jakmile je robot sestaven, je čas naprogramovat našeho tanečního robota
Programování Arduina pro Biped Robot:
Programování robota BBB ( Bluetooth Biped Bob ) je v tomto výukovém programu nejzajímavější a nejzábavnější částí. Pokud jste velmi dobří v programování servomotorů s Arduinem, doporučil bych vám vytvořit si program. Bt, pokud se chcete naučit používat servomotory pro takové robotické aplikace, pak bude tento program velmi užitečný. Více o programování arduina se dozvíte v naší kategorii projektů arduino.
Kompletní program je uveden na konci tohoto tutoriálu, nebo si můžete stáhnout kompletní kód zde. Níže vysvětlím jejich segmenty. Program je schopen ovládat akce robotů prostřednictvím sériového monitoru nebo Bluetooth. Můžete také provádět vlastní pohyby ovládáním každého jednotlivého motoru pomocí sériového monitoru.
servo1.attach (3); servo2.attach (5); servo4.attach (9); servo5.attach (10);
Výše uvedené řádky kódu se používají ke zmínce, který servomotor je připojen ke kterému kolíku Arduina. Zde je v našem případě Servo 1,2,4 a 5 připojeno k pinům 3,5,9 a 10.
Bot_BT.begin (9600); // zahájit komunikaci Bluetooth na 9600 baudrate Serial.begin (57600);
Jak již bylo řečeno, náš robot může pracovat na příkazech Bluetooth a také na příkazech ze sériového monitoru. Proto sériová komunikace Bluetooth pracuje s přenosovou rychlostí 9600 a sériová komunikace pracuje s přenosovou rychlostí 57600. Název našeho objektu Bluetooth je zde „Bot_BT“.
switch (motor) {case 1: // For motor one {Serial.println ("Executing motor one"); if (num1
Výše uvedené pouzdro spínače slouží k individuálnímu ovládání servomotorů. To vám pomůže při vytváření vlastních kreativních pohybů s robotem. S tímto segmentem kódu můžete jednoduše zjistit číslo motoru, z úhlu a do úhlu, aby se určitý motor přesunul na požadované místo.
Například pokud chceme přesunout motor číslo 1, který je motorem levého kyčle, z jeho výchozí polohy 110 stupňů na 60 stupňů. Můžeme jednoduše napsat „1,110,60“ na sériový monitor Arduina a stisknout Enter. To se vám bude hodit, když budete s robotem provádět vlastní složité pohyby. Jakmile experimentujete se všemi úhly od anděla, můžete provést své vlastní pohyby a opakovat je tím, že je provedete jako funkci.
if (Serial.available ()> 0) // Přečtěte si, co přichází prostřednictvím Serial {gmotor = Serial.parseInt (); Serial.print ("vybrané číslo->"); Sériový tisk (gmotor); Serial.print (","); gnum1 = Serial.parseInt (); Serial.print (gnum1); Serial.print ("stupeň"); gnum2 = Serial.parseInt (); Serial.print (gnum2); Serial.println ("stupeň"); vlajka = 1; }
Pokud jsou k dispozici sériová data, číslo před prvním „,“ je považováno za gmotor a poté číslo před druhým „,“ je považováno za gnum1 a číslo za druhým „,“ je považováno za gnum2.
if (Bot_BT.available ()) // Číst, co přichází přes Bluetooth {BluetoothData = Bot_BT.read (); Serial.print ("Příchozí z BT:"); Serial.println (BluetoothData); }
Pokud Bluetooth přijme nějaké informace, přijaté informace se uloží do proměnné „BluetoothData“. Tato proměnná se poté porovná s předdefinovanými hodnotami k provedení konkrétní akce.
if (flag == 1) call (gmotor, gnum1, gnum2); // vyvolání příslušného motoru k akci // provádění funkcí podle povelu přijatého prostřednictvím sériového monitoru nebo Bluetooth // 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 ();}
To je místo, kde jsou funkce volány na základě hodnot přijatých ze sériového monitoru nebo Bluetooth. Jak je uvedeno výše, proměnný gmotor bude mít hodnotu sériového monitoru a BluetoothData bude mít hodnotu ze zařízení Bluetooth. Čísla 10,11,12 až 53,54 jsou předdefinovaná čísla.
Například pokud zadáte číslo 49 na sériovém monitoru. Bude provedena funkce say_hi (), kde vás robot bude mávat ahoj.
Všechny funkce jsou definovány na stránce „Bot_Functions“. Můžete jej otevřít a zjistit, co se vlastně děje uvnitř každé funkce. Všechny tyto funkce byly vytvořeny experimentováním od anděla a anděla každého motoru pomocí výše vysvětleného případu spínače. Pokud máte jakékoli pochybnosti, můžete je použít v sekci komentářů a já vám rád pomůžu.
Zpracování aplikace pro Android:
Aplikace Android pro ovládání robota byla vytvořena pomocí režimu Android pro zpracování. Pokud chcete v aplikaci provést nějaké změny, můžete si odtud stáhnout kompletní program zpracování.
Pokud chcete aplikaci jednoduše použít, můžete si ji stáhnout odtud jako soubor APK a přímo ji nainstalovat do svého mobilního telefonu.
Poznámka: Váš modul Bluetooth by měl mít název HC-06, jinak se aplikace nebude moci připojit k vašemu modulu Bluetooth.
Jakmile je aplikace nainstalována, můžete spárovat modul Bluetooth s telefonem a poté aplikaci spustit. Níže by to mělo vypadat nějak takto.
Pokud chcete svou aplikaci zatraktivnit nebo se připojit k jinému zařízení než Hc-06. Můžete použít zpracovatelský kód a provést v něm nějaké změny a poté jej nahrát přímo do telefonu.
Práce s dvojitým robotem řízeným Bluetooth:
Jakmile bude váš hardware, aplikace pro Android a Arduino Sketch připraveny, je čas se s naším robotem pobavit. Robota můžete ovládat z aplikace Bluetooth pomocí tlačítek v aplikaci nebo přímo ze sériového monitoru pomocí následujících příkazů, jak je znázorněno na obrázku níže.
Každý příkaz přiměje robota provést několik zvláštních úkolů a můžete také přidat další akce založené na vaší kreativitě.
Robot může být napájen také 12V adaptérem nebo může být napájen také pomocí 9V baterie. Tuto baterii lze snadno umístit pod desku Perf a lze ji také zakrýt hlavou robota.
Kompletní fungování tohoto robota řízeného chytrým telefonem najdete ve videu níže.