- Potrebné materiály:
- 3D tlač požadovaných dielov (voliteľné):
- Schéma a hardvér:
- Nastavenie aplikácie pre Android:
- Programovanie vášho Arduina:
- Pracovné:
Chceli ste niekedy vytvoriť robotické rameno alebo robota na sledovanie tváre jednoduchým používaním Arduina a nie iným programovaním, ako je OpenCV, vizuálne základy C # atď.? Potom si prečítajte, že v tomto projekte implementujeme detekciu tváre zmiešaním sily Arduina a Androidu. V tomto projekte sa bude mobilná kamera pohybovať spolu s vašou tvárou pomocou serv. Výhodou použitia mobilného telefónu so systémom Android tu je, že nemusíte investovať do modulu fotoaparátu a celú prácu s detekciou obrazu je možné vykonať v telefóne samotnom, na to, aby to fungovalo, nepotrebujete svoje Arduino pripojené k počítaču. Tu sme použili modul Bluetooth s modulom Arduino na bezdrôtovú komunikáciu s produktom Mobile.
Aplikácia pre Android použitá v tomto projekte bola vytvorená pomocou aplikácie Processing Android. Môžete ju buď priamo nainštalovať stiahnutím súboru APK (odkaz nájdete ďalej), alebo nasadiť čiapočku na programovanie a vytvoriť vlastnú príťažlivejšiu aplikáciu pre Android pomocou uvedeného kódu na spracovanie ďalej v príručke. Viac informácií o spracovaní nájdete v našich predchádzajúcich Projektoch spracovania.
Na konci tohto tutoriálu budete mať Mini Tilt and Span Robotic Arm, ktoré dokážu sledovať vašu tvár a pohybovať sa s ňou. Môžete to použiť (s ďalším pokrokom) na nahrávanie videí vlogu alebo dokonca na selfie pomocou zadnej kamery vášho mobilného telefónu, pretože vaša tvár je umiestnená presne v strede obrazovky vášho mobilného telefónu. Takže !! Znie to zaujímavo? Skontrolujte demo video na konci tohto tutoriálu a uvidíte, či funguje. Pozrime sa, ako môžeme jeden postaviť…
Snažil som sa čo najlepšie, aby tento projekt fungoval čo najjednoduchšie, ktokoľvek s minimálnymi znalosťami v oblasti hardvéru alebo programovania môže použiť tieto pokyny, aby tento projekt fungoval čo najskôr. Akonáhle to však zvládnete, navrhujem vám, aby ste sa dostali za kódy, aby ste skutočne vedeli, čo a ako robí túto vec.
Potrebné materiály:
- Arduino Nano
- Servomotor SG90 - 2Nos
- Android Phone so slušným fotoaparátom
- Modul Bluetooth HC-05 / HC-06
- Počítač na programovanie
- 3D tlačiareň (voliteľné)
- 9V batéria
3D tlač požadovaných dielov (voliteľné):
Aby sme mohli mobilný telefón natáčať a nakláňať, potrebujeme nejaké mechanické konštrukcie, ako napríklad držiak na mobil a niekoľko držiakov pre servo. Na výrobu môžete použiť lepenku, pretože mám 3D tlačiareň, rozhodol som sa tieto časti 3D vytlačiť.
3D tlač je úžasný nástroj, ktorý môže veľa prispieť pri stavbe prototypových projektov alebo pri experimentovaní s novými mechanickými návrhmi. Ak ste ešte neobjavili výhody 3D tlačiarne alebo ako to funguje, môžete si prečítať Sprievodcu 3D tlačou pre začiatočníkov.
Ak vlastníte alebo máte prístup k 3D tlačiarni, môžete súbory STL, ktoré si môžete stiahnuť odtiaľto, priamo vytlačiť a zostaviť. Niektoré časti, ako napríklad držiak mobilného telefónu, však môžu vyžadovať určité úpravy v závislosti od rozmerov vášho telefónu. Navrhol som ho pre svoj mobilný telefón MOTO G. Na tlač všetkých častí som použil svoju veľmi základnú tlačiareň. Tlačiareň je FABX v1 od spoločnosti 3ding, ktorá je za prijateľnú cenu s objemom tlače 10 kubických cm. Lacná cena je s kompromisom s nízkym rozlíšením tlače a bez SD karty alebo funkcie obnovenia tlače. Na tlač súborov STL používam softvér s názvom Cura. Nastavenia, ktoré som použil na tlač materiálov, sú uvedené nižšie. Môžete ich použiť rovnako alebo ich zmeniť na základe vašej tlačiarne.
Po vytlačení všetkých požadovaných materiálov ich môžete bezpečne zaistiť pomocou skrutiek a horúceho lepidla. Po dokončení montáže by to malo vyzerať asi takto nižšie.
Schéma a hardvér:
Okruh pre tento projekt sledovania tváre na inteligentnom telefóne je zobrazený na obrázku nižšie:
Okruh sa skladá z dvoch servomotorov, z ktorých jeden slúži na pohyb mobilného telefónu doľava / doprava a druhý slúži na nakláňanie mobilného telefónu nahor / nadol. Smer, v ktorom sa servo musí pohybovať, bude dávať pokyny Arduino Nano, ktoré samo získava informácie z modulu Bluetooth (HC-05). Celý obvod je napájaný z 9V batérie.
Tento obvod je možné ľahko pripojiť na vašu prepojovaciu dosku alebo ich môžete spájkovať tiež na malej doske Perf, ako som to urobil tu.
Nastavenie aplikácie pre Android:
Ako som už povedal skôr, hlavným mozgom pracujúcim za týmto projektom je táto aplikácia pre Android. Táto aplikácia pre Android bola vyvinutá pomocou aplikácie Android. Túto aplikáciu môžete priamo nainštalovať do svojho mobilného telefónu a spustiť ju podľa pokynov uvedených nižšie.
- Stiahnite si súbor APK odtiaľto.
- Zapnite obvod zobrazený vyššie.
- V nastaveniach telefónu vyhľadajte modul Bluetooth s názvom „HC-05“
- Ak ste ho pomenovali inak ako „HC-05“, zmeňte ho späť na HC-05, pretože až potom bude aplikácia fungovať.
- Spárujte svoj modul Bluetooth s heslom „1234“ alebo „0000“.
- Teraz spustite aplikáciu v režime na výšku. Mali by ste vidieť obrazovku fotoaparátu a tiež „Pripojené k: HC-05“ v hornej časti obrazovky.
- Skúste fotoaparát presunúť cez tvár a na jeho vrchole by sa malo objaviť zelené políčko a jeho poloha sa tiež zobrazí v ľavom hornom rohu obrazovky, ako je to znázornené nižšie.
Tento projekt sledovania tváre Arduino môžete posunúť na vyššiu úroveň tým, že prinesiete veľa vylepšení, pre ktoré nebudete musieť kódovať svoju vlastnú aplikáciu pre Android. Vytvorenie aplikácie pre Android môže znieť ťažko, ale verte mi, že s pomocou Spracovania sa ju naučíte behom okamihu. Celý kód na spracovanie, ktorý sa používa na zostavenie tejto aplikácie, si môžete stiahnuť tu. Môžete slobodne napredovať s vlastnou tvorivosťou. V nasledujúcich projektoch nájdete ďalšie informácie o spracovaní:
- Virtuálna realita pomocou Arduina a spracovania
- Ping Pong hra pomocou Arduina
- Rádio FM riadené inteligentným telefónom pomocou spracovania.
- Radarový systém Arduino využívajúci spracovanie a ultrazvukový senzor
Programovanie vášho Arduina:
Aplikácia pre Android detekuje tvár a jej polohu na obrazovke; potom rozhodne, ktorým smerom by sa mal pohnúť, na základe polohy tváre tak, aby sa tvár dostala do stredu obrazovky. Tento smer sa potom pošle do Arduina cez modul Bluetooth.
Program Arduino pre tento projekt je pomerne jednoduchý, musíme len riadiť smerovanie dvoch servomotorov na základe hodnôt prijatých z modulu Bluetooth. Kompletný kód možno nájsť na konci tohto tutoriálu, som tiež vysvetlil niekoľko dôležitých riadkov nižšie.
Pod riadkom kódu sa vytvorí sériové spojenie s pinmi D12 ako RX a D11 ako TX. Preto musí byť pin D12 pripojený k TX modulu BT a pin D11 k RX modulu BT.
Softvérová séria cam_BT (12, 11); // RX, TX
Potom sme inicializovali modul Bluetooth s prenosovou rýchlosťou 9600. Skontrolujte, či modul pracuje aj s rovnakou prenosovou rýchlosťou. Inak to podľa toho zmeňte.
cam_BT.begin (9600); // zahájiť komunikáciu Bluetooth na 9600 baudrate cam_BT.println ("Ready to take commands");
Pod riadkom je prečítané, čo prichádza cez modul Bluetooth. Údaje sa ukladajú aj do premennej „BluetoothData“.
if (cam_BT.available ()) // Čítať, čo prichádza cez Bluetooth {BluetoothData = cam_BT.read (); Serial.print ("Prichádzajúce z BT:"); Serial.println (BluetoothData); }
Na základe dát prijatých z Bluetooth je riadený smer motorov. Ak chcete otočiť motor doľava, motor sa zníži o hodnotu 2 z predchádzajúcej polohy. Túto hodnotu môžete zvýšiť o 2 až 4 alebo 6, ak potrebujete, aby sa rameno pohybovalo rýchlejšie. Môže to však spôsobiť nejaké trhavé pohyby, ktoré spôsobia nestabilitu fotoaparátu.
if (BluetoothData == 49) // Odbočte doľava {pos1 + = 2; servo1.write (pos1);} if (BluetoothData == 50) // Odbocte doprava {pos1- = 2; servo1.write (pos1);} if (BluetoothData == 51) // Turn Up {pos2- = 2; servo2.write (pos2);} if (BluetoothData == 52) // Turn Down {pos2 + = 2; servo2.write (pos2);}
Pracovné:
Keď sme pripravení na hardvér, kód a aplikáciu pre Android, je čas na nejaké kroky. Jednoducho napájajte svoje Arduino a otvorte aplikáciu pre Android. Aplikácia sa automaticky pripojí k modulu Bluetooth HC-05 (musí sa volať HC-05) a bude čakať na detekciu tváre. Jednoducho vložte telefón do nášho držiaka na mobil a sadnite si pred neho. Mali by ste si všimnúť, že vaše servomotory pohybujú telefónom tak, aby vaša tvár bola umiestnená v strede obrazovky. Teraz sa pohybujte v dosahu fotoaparátu a váš mobilný telefón bude sledovať vaše pohyby. Môžete to tiež vyskúšať umiestnením a presunutím ľubovoľného obrázka.
Kompletné fungovanie projektu je zobrazené na videu nižšie. Môžete stavať veľa