- Potrebni materiali:
- 3D tiskanje zahtevanih delov:
- Strojna oprema in sheme:
- Sestavljanje robota:
- Programiranje Arduina za dvonožnega robota:
- Aplikacija za Android, ki temelji na obdelavi:
- Delovanje dvonadstropnega robota z nadzorom Bluetooth:
Dobrodošli v drugem projektu, v katerem bomo zgradili majhnega robota, ki bo lahko hodil in plesal. Cilj projekta je naučiti vas, kako izdelovati majhne hobi robote z uporabo Arduina in kako programirati svoje servo motorje za take aplikacije. Na koncu projekta boste lahko naredili tega robota za hojo in ples, ki od mobilnega telefona Android sprejme ukaz za izvajanje nekaterih vnaprej določenih dejanj. Program (podan na koncu vadnice) lahko uporabite tudi za enostavno manipulacijo z dejanji vašega lastnega robota z nadzorom položaja servo motorjev s pomočjo serijskega monitorja. Če boste imeli 3D tiskalnik, bo ta projekt bolj zanimiv in videti bo v redu. Če pa ga nimate, lahko uporabite katero koli spletno storitev ali pa uporabite lepenko za izdelavo iste.
Potrebni materiali:
Sledijo materiali, potrebni za izdelavo tega robota:
- Arduino nano
- Servo SG90 - 4Št
- Moški berg palčke
- Modul Bluetooth HC-05 / HC-06
- 3D tiskalnik
Kot lahko vidite, ta 3D tiskani robot za izdelavo potrebuje zelo malo elektronskih delov, da bodo stroški projekta čim nižji. Ta projekt je namenjen zgolj konceptualnim in zabavnim namenom in doslej nima nobene aplikacije v realnem času.
3D tiskanje zahtevanih delov:
3D tiskanje je neverjetno orodje, ki lahko veliko prispeva pri izdelavi prototipnih projektov ali eksperimentiranju z novimi mehanskimi zasnovami. Če še niste odkrili prednosti 3D tiskalnika ali kako deluje, lahko preberete Vodnik za začetnike 3D tiskanja.
V tem projektu je telo Robota, prikazano zgoraj, popolnoma 3D natisnjeno. Datoteke STL lahko prenesete od tukaj. Te datoteke naložite v programsko opremo za 3D tiskanje, kot je Cura, in jih neposredno natisnite. Za tiskanje vseh delov sem uporabil zelo osnovni tiskalnik. Tiskalnik je FABX v1 proizvajalca 3ding, ki ima dostopno ceno z obsegom tiskanja 10 kubičnih cm. Poceni cena je kompromisna z nizko ločljivostjo tiskanja in brez SD kartice ali funkcije za nadaljevanje tiskanja. Za tiskanje datotek STL uporabljam programsko opremo, imenovano Cura. Nastavitve, ki sem jih uporabil za tiskanje materialov, so navedene spodaj. Lahko jih uporabite ali spremenite glede na tiskalnik.
Ko natisnete vse dele, očistite nosilce (če obstajajo) in se prepričajte, da so luknje na nogi in trebuhu dovolj velike, da se prilegajo vijaku. V nasprotnem primeru z iglo naredite luknjo nekoliko večjo. 3D tiskani deli bodo videti spodaj.
Strojna oprema in sheme:
Strojna oprema za ta dvonožni robot Arduino z nadzorom mobilnega telefona je res preprosta. Popolne sheme so prikazane na spodnji sliki
Za zgornje povezave sem uporabil ploščo Perf. Poskrbite, da bo vaše vezje tudi znotraj glave robota. Ko je vaša deska Perf pripravljena, mora izgledati približno tako kot spodaj.
Sestavljanje robota:
Ko so strojna oprema in 3D tiskani deli pripravljeni, lahko robota sestavimo. Pred pritrditvijo motorjev poskrbite, da jih namestite pod spodnje kote, tako da program deluje brezhibno.
Številka motorja |
Avtomobilsko mesto |
Položaj motorja |
1. |
Motor levega kolka |
110 |
2. |
Motor desnega kolka |
100 |
4. |
Motor desnega gležnja |
90 |
5. |
Motor desnega kolka |
80 |
Te kote lahko nastavite s pomočjo programa, podanega na koncu vadnice. Preprosto naložite program na svoj Arduino po zgornjih povezavah in v serijski monitor vnesite naslednje (Opomba: Hitrost prenosa je 57600).
1, 100, 110
2,90,100
4,80,90
5,70,80
Po namestitvi vseh vaših motorjev mora biti vaš serijski monitor videti približno tako.
Ko so motorji nastavljeni v ustrezne kote, jih pritrdite, kot je prikazano na zgornji sliki.
Če ste zmedeni, kako sestaviti motorje, sledite videoposnetku na koncu te vadnice. Ko je robot sestavljen, je čas, da programiramo našega plesnega robota
Programiranje Arduina za dvonožnega robota:
Programiranje BBB Robota ( Bluetooth Biped Bob ) je najbolj zanimiv in zabaven del te vadnice. Če zelo dobro programirate servo motorje z Arduinom, vam priporočam, da pripravite svoj program. Bt, če se želite naučiti, kako uporabljati servo motorje za robotske aplikacije, kot je ta, potem vam bo ta program v veliko pomoč. Več o programiranju arduino lahko izveste v naši kategoriji projektov arduino.
Celoten program je podan na koncu te vadnice, lahko pa tudi prenesete celotno kodo od tukaj. Spodaj bom razložil iste segmente. Program lahko nadzoruje dejanja robotov prek serijskega monitorja ali Bluetootha. Poteze lahko izvajate tudi sami, tako da s serijskim monitorjem nadzorujete vsak posamezen motor.
servo1.attach (3); servo2.attach (5); servo4.attach (9); servo5.attach (10);
Zgornje vrstice kode uporabljajo za omenjanje, kateri servo motor je povezan s katerim zatičem Arduina. V našem primeru sta servo 1,2,4 oziroma 5 povezana na nožici 3,5,9 oziroma 10.
Bot_BT.begin (9600); // zagon komunikacije Bluetooth pri 9600 baudrate Serial.begin (57600);
Kot že rečeno, naš robot za hojo lahko deluje na ukaze Bluetooth in tudi na ukaze s serijskega monitorja. Zato serijska komunikacija Bluetooth deluje s hitrostjo prenosa 9600, serijska komunikacija pa s hitrostjo prenosa 57600. Ime našega Bluetooth predmeta tukaj je "Bot_BT".
stikalo (motor) {primer 1: // Za motor prvi {Serial.println ("Izvajanje motorja ena"); če (številka1
Zgoraj prikazano stikalno ohišje se uporablja za posamično krmiljenje servo motorjev. To vam bo pomagalo pri ustvarjanju lastnih kreativnih potez z robotom. S tem segmentom kode lahko preprosto določite številko motorja od kota do kota, da se določen motor premakne na želeno mesto.
Na primer, če želimo motor s številko 1, ki je motor levega kolka, premakniti s privzete lokacije 110 stopinj na 60 stopinj. V serijski monitor Arduina lahko preprosto napišemo »1,110,60« in pritisnemo enter. To vam bo prišlo prav, če želite z robotom narediti svoje zapletene poteze. Ko eksperimentirate z vsemi angeli in pod kotom, lahko nato naredite svoje poteze in jih ponovite, tako da to naredite kot funkcijo.
if (Serial.available ()> 0) // Preberite, kaj prihaja prek Serial {gmotor = Serial.parseInt (); Serial.print ("izbrana številka->"); Serial.print (gmotor); Serial.print (","); gnum1 = Serial.parseInt (); Serial.print (gnum1); Serial.print ("stopnja"); gnum2 = Serial.parseInt (); Serial.print (gnum2); Serial.println ("stopnja"); zastava = 1; }
Če so na voljo serijski podatki, se številka pred prvim "," šteje za gmotor in nato število pred drugim "," šteje za gnum1 in število za drugim "," za gnum2.
if (Bot_BT.available ()) // Preberite, kaj prihaja prek povezave Bluetooth {BluetoothData = Bot_BT.read (); Serial.print ("Dohodni iz BT:"); Serial.println (BluetoothData); }
Če Bluetooth prejme nekatere informacije, se prejete informacije shranijo v spremenljivko »BluetoothData«. Nato se ta spremenljivka primerja s predhodno določenimi vrednostmi za izvedbo določenega dejanja.
če (zastava == 1) pokliče (gmotor, gnum1, gnum2); // pokličemo ustrezni motor za akcijo // Izvedimo funkcije v skladu s skupnim prejetjem prek serijskega monitorja ali Bluetootha // if (gmotor == 10) left_leg_up (); if (gmotor == 11) right_leg_up (); if (gmotor == 12) move_left_front (); if (gmotor == 13) move_right_front (); če (BluetoothData == 49 - gmotor == 49) say_hi (); če (BluetoothData == 50 - gmotor == 50) walk1 (); če (BluetoothData == 51 - gmotor == 51) walk2 (); če (BluetoothData == 52 - gmotor == 52) dance1 (); če (BluetoothData == 53 - gmotor == 53) dance2 (); če (BluetoothData == 54 - gmotor == 54) {test (); test (); test ();}
Tu se funkcije pokličejo na podlagi vrednosti, ki jih prejme serijski monitor ali Bluetooth. Kot je prikazano zgoraj, bo spremenljivka gmotor imela vrednost serijskega monitorja, BluetoothData pa vrednost iz naprave Bluetooth. Števila 10,11,12 do 53,54 so vnaprej določena števila.
Na primer, če v serijski monitor vnesete številko 49. Funkcija say_hi () se bo izvedla tam, kjer vas bo robot pozdravil.
Vse funkcije so določene na strani »Bot_Functions«. Lahko ga odprete in vidite, kaj se dejansko dogaja znotraj posamezne funkcije. Vse te funkcije so bile ustvarjene z eksperimentiranjem od angela do angela vsakega motorja z zgoraj opisanim primerom stikala. Če dvomite, jih lahko objavite v razdelku s komentarji in z veseljem vam bom pomagal.
Aplikacija za Android, ki temelji na obdelavi:
Aplikacija Android za nadzor Robota je bila zgrajena v načinu Processing Android. Če želite nekaj spremeniti v aplikaciji, lahko celoten program za obdelavo prenesete od tukaj.
Če preprosto želite uporabiti aplikacijo, jo lahko od tukaj prenesete kot datoteko APK in jo neposredno namestite v svoj mobilni telefon.
Opomba: Vaš modul Bluetooth bi moral biti imenovan HC-06, sicer se aplikacija ne bo mogla povezati z modulom Bluetooth.
Ko je aplikacija nameščena, lahko Bluetooth modul seznanite s telefonom in nato zaženete aplikacijo. Spodaj bi moralo izgledati približno tako.
Če želite aplikacijo narediti privlačnejšo ali se povezati s katero koli drugo napravo, ki ni Hc-06. Kodo za obdelavo lahko uporabite in jo nekaj spremenite, nato pa kodo naložite neposredno v telefon.
Delovanje dvonadstropnega robota z nadzorom Bluetooth:
Ko je vaša strojna oprema, aplikacija za Android in Arduino Sketch pripravljena, je čas, da se zabavate z našim robotom. Robota lahko nadzorujete z aplikacijo Bluetooth z gumbi v aplikaciji ali neposredno s serijskega monitorja z uporabo naslednjih ukazov, kot je prikazano na spodnji sliki.
Z vsakim ukazom bo robot izvajal nekaj posebnih nalog, na podlagi svoje ustvarjalnosti pa lahko dodate tudi več dejanj.
Robota lahko napaja tudi 12V adapter ali pa se napaja tudi z 9V baterijo. To baterijo lahko enostavno namestite pod ploščo Perf in jo lahko pokrijete tudi z glavo robota.
Popolno delovanje tega pametnega telefona nadzorovanega robota najdete v spodnjem videoposnetku.