- Potrebni materiali:
- 3D tiskanje zahtevanih delov (neobvezno):
- Shema in strojna oprema:
- Nastavitev aplikacije za Android:
- Programiranje vašega Arduina:
- Delo:
Ste si kdaj želeli zgraditi robotsko roko ali robota za sledenje obrazov s preprosto uporabo Arduina in ne katerega koli drugega programiranja, kot je OpenCV, vizualne osnove C # itd? Nato preberite, v tem projektu bomo izvedli zaznavanje obrazov z združevanjem moči Arduina in Androida. V tem projektu se bo mobilna kamera premikala skupaj z vašim obrazom s pomočjo servomotorjev. Prednost uporabe mobilnega telefona Android tukaj je, da vam ni treba vlagati v modul kamere, celotno delo za zaznavanje slik pa lahko opravite v samem telefonu, za to ne potrebujete povezave Arduina z računalnikom. Tu smo uporabili modul Bluetooth z Arduino za brezžično komunikacijo z Mobile.
Aplikacija Android, uporabljena v tem projektu, je bila ustvarjena s pomočjo Obdelava Androida. Aplikacijo lahko namestite neposredno tako, da prenesete datoteko APK (beri naprej za povezavo), ali pa oblečete svojo programsko kapo in ustvarite svojo privlačnejšo aplikacijo Android z uporabo kode za obdelavo naprej v Vadnici. Preberite več o obdelavi, tako da preverite naše prejšnje projekte obdelave.
Na koncu te vadnice boste imeli robotsko roko Mini Tilt and Span, ki bo lahko spremljala vaš obraz in se premikala skupaj z njim. To lahko uporabite (z nadaljnjim napredkom) za snemanje videoposnetkov vlog ali celo snemanje selfija z zadnjo kamero mobilnega telefona, saj vaš obraz postavi točno na sredino vašega mobilnega zaslona. Torej !! Sliši se zanimivo? Preverite predstavitveni video na koncu te vadnice, da vidite, kako deluje. Poglejmo, kako ga lahko zgradimo…
Po najboljših močeh sem se potrudil, da ta projekt deluje čim bolj preprosto, kdor ima minimalno znanje o strojni opremi ali kodiranju, lahko s temi smernicami v najkrajšem času začne delovati. Ko pa ga naredite, vam predlagam, da se umaknete kodeksom, da boste resnično vedeli, zakaj ta stvar deluje in kako.
Potrebni materiali:
- Arduino Nano
- Servo motor SG90 - 2Št
- Android telefon s spodobno kamero
- Modul Bluetooth HC-05 / HC-06
- Računalnik za programiranje
- 3D tiskalnik (neobvezno)
- 9V baterija
3D tiskanje zahtevanih delov (neobvezno):
Za premikanje in nagibanje mobilnega telefona potrebujemo nekaj mehanskih struktur, kot sta držalo za mobilni telefon in nekaj servo nosilcev. Za izdelavo lahko uporabite karton, ker imam 3D tiskalnik, sem se odločil za 3D tiskanje teh 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 za 3D-tiskanje.
Če ste lastnik ali imate dostop do 3D-tiskalnika, lahko datoteke STL, ki jih lahko prenesete od tukaj, uporabite za neposredno tiskanje in sestavljanje. Vendar pa bodo nekateri deli, kot je držalo za mobilni telefon, morda potrebovali nekatere spremembe glede na dimenzije vašega telefona. Zasnoval sem ga za svoj mobilni telefon MOTO G. 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 zahtevane materiale, jih lahko pritrdite z vijaki in vročim lepilom. Po končani montaži mora biti spodaj videti približno tako.
Shema in strojna oprema:
Vezje za ta projekt sledenja obrazov na pametnem telefonu je prikazano na spodnji sliki:
Vezje je sestavljeno iz dveh servo motorjev, od katerih se eden uporablja za premikanje mobilnega telefona levo / desno, drugi pa za nagibanje mobilnega telefona gor / dol. Smer, v kateri se mora servo premikati, bo določil Arduino Nano, ki sam dobiva informacije iz modula Bluetooth (HC-05). Celotno vezje napaja 9V baterija.
To vezje lahko enostavno povežete na vašo ploščo ali pa ga spajkate tudi na majhno ploščo Perf, kot sem naredil tukaj.
Nastavitev aplikacije za Android:
Kot sem že rekel, glavni možgani, ki delujejo za tem projektom, je ta aplikacija za Android. Ta aplikacija za Android je bila razvita z uporabo Processing Android. To aplikacijo lahko neposredno namestite v svoj mobilni telefon in jo zaženete po spodnjih korakih.
- Datoteko APK prenesite od tukaj.
- Vklopite zgoraj prikazano vezje.
- V nastavitvah telefona poiščite modul Bluetooth z imenom »HC-05«
- Če ste ga poimenovali drugače kot »HC-05«, ga spremenite nazaj v HC-05, saj bo le tako aplikacija delovala.
- Seznanite se z modulom Bluetooth z geslom "1234" ali "0000".
- Zdaj zaženite aplikacijo v pokončnem načinu. Videti bi morali zaslon kamere in na vrhu zaslona tudi »Connected to: HC-05«.
- Poskusite fotoaparat premakniti čez obraz, na njem pa naj se prikaže zeleno polje, njegov položaj pa bo prikazan tudi v zgornjem levem kotu zaslona, kot je prikazano spodaj.
Ta projekt sledenja obraza Arduino lahko dvignete na naslednjo stopnjo, tako da prinesete veliko napredka, za katerega vam ne bo treba kodirati lastne aplikacije za Android. Ustvarjanje aplikacije za Android morda zveni težko, a verjemite mi s pomočjo Obdelave, ki se je lahko naučite v kratkem. Popolno kodo za obdelavo, ki se uporablja za izdelavo te aplikacije, lahko prenesete tukaj. Vsak napredek lahko dosežete s svojo ustvarjalnostjo. Spodaj si oglejte projekte, če želite izvedeti več o obdelavi:
- Navidezna resničnost z uporabo Arduina in obdelave
- Igra ping pong z uporabo Arduina
- FM radio, ki ga nadzira pametni telefon s pomočjo obdelave.
- Radarski sistem Arduino z uporabo procesorja in ultrazvočnega senzorja
Programiranje vašega Arduina:
Aplikacija Android bo zaznala obraz in njegov položaj na zaslonu; nato se bo glede na položaj obraza odločil, v katero smer naj se premakne, tako da bo obraz prišel v sredino zaslona. Ta smer se nato prek modula Bluetooth pošlje Arduinu.
Program Arduino za ta projekt je dokaj preprost, le smer servo motorjev moramo nadzorovati na podlagi vrednosti, prejetih iz modula Bluetooth. Popolne kode lahko najdete na koncu te vadnice, sem pojasnil tudi nekaj pomembnih spodnje vrstice.
Spodnja vrstica kode vzpostavlja zaporedno povezavo z zatiči D12 kot RX in D11 kot TX. Zato mora biti zatič D12 priključen na TX modula BT, zatič D11 pa na RX modula BT.
SoftwareSerial cam_BT (12, 11); // RX, TX
Nato smo modul Bluetooth inicializirali s hitrostjo prenosa 9600. Poskrbite, da tudi vaš modul deluje na isti hitrosti prenosa. Drugače ga ustrezno spremenite.
cam_BT.begin (9600); // zaženemo komunikacijo Bluetooth na 9600 baudrate cam_BT.println ("Pripravljen za sprejemanje ukazov");
Spodaj je navedeno, kaj prihaja prek modula Bluetooth. Podatki so shranjeni tudi v spremenljivki »BluetoothData«.
if (cam_BT.available ()) // preberite, kaj prihaja prek povezave Bluetooth {BluetoothData = cam_BT.read (); Serial.print ("Dohodni iz BT:"); Serial.println (BluetoothData); }
Na podlagi podatkov, ki jih prejme Bluetooth, se nadzoruje smer motorjev. Če želite motor obrniti v levo, se motor zmanjša za vrednost 2 od prejšnjega položaja. To vrednost lahko povečate za 2 na 4 ali 6, če potrebujete roko za hitrejše premikanje. Toda to lahko povzroči nekaj sunkov, zaradi katerih je fotoaparat nestabilen.
if (BluetoothData == 49) // zavijte levo {pos1 + = 2; servo1.write (pos1);} if (BluetoothData == 50) // Zavijte desno {pos1- = 2; servo1.write (pos1);} if (BluetoothData == 51) // Turn Up {pos2- = 2; servo2.write (pos2);} if (BluetoothData == 52) // Zaviši {pos2 + = 2; servo2.write (pos2);}
Delo:
Ko smo pripravljeni s svojo strojno opremo, kodo in aplikacijo Android, je čas za nekaj ukrepov. Preprosto vklopite svoj Arduino in odprite aplikacijo android. Program se samodejno poveže z modulom HC-05 (mora biti imenovan HC-05) in bo počakal, da bo obraz zaznan. Preprosto položite telefon v držalo za mobilni telefon in sedite pred njim. Opazite, da vaši servo motorji premikajo telefon tako, da bo vaš obraz postavljen na sredino zaslona. Zdaj se premikajte znotraj dosega kamere in vaš mobilni telefon bo sledil vašim gibom. Poskusite lahko tudi tako, da postavite in premaknete katero koli sliko.
Popolno delovanje projekta je prikazano v spodnjem videu. Zgradite lahko veliko