- Tarvittavat materiaalit:
- Vaadittavien osien 3D-tulostus (valinnainen):
- Kaavio ja laitteisto:
- Android-sovelluksen määrittäminen:
- Arduinon ohjelmointi:
- Työskentely:
Oletko koskaan halunnut rakentaa kasvojenseurantarobotin tai robotin yksinkertaisesti käyttämällä Arduinoa eikä muita ohjelmointeja, kuten OpenCV, visuaaliset perusteet C #? Lue sitten, tässä projektissa aiomme toteuttaa kasvojentunnistuksen sekoittamalla Arduinon ja Androidin voiman. Tässä projektissa mobiilikamera liikkuu kasvojesi mukana servojen avulla. Etuna Android-matkapuhelimen käytöstä tässä on, että sinun ei tarvitse investoida kameramoduuliin, ja koko kuvan tunnistustyö voidaan tehdä itse puhelimessa, sinun ei tarvitse Arduinoasi yhdistää tietokoneeseesi, jotta tämä toimisi. Täällä olemme käyttäneet Bluetooth-moduulia Arduinon kanssa kommunikoimaan langattomasti Mobilen kanssa.
Tässä projektissa käytetty Android-sovellus luotiin Processing Android -sovelluksella, voit joko asentaa sovelluksen suoraan lataamalla APK-tiedoston (lue lisää linkkiä varten) tai laittaa ohjelmointikorkkisi ja tehdä omasta houkuttelevammasta Android-sovelluksestasi annetun käsittelykoodin avulla lisää opetusohjelmassa. Lisätietoja prosessoinnista tarkistamalla edelliset prosessointiprojektimme.
Tämän opetusohjelman loppuun mennessä sinulla on Mini Tilt ja Span -robotti, joka voi seurata kasvosi ja liikkua sen mukana. Voit käyttää tätä (edistyneellä tavalla) vlogivideoiden nauhoittamiseen tai jopa selfien tekemiseen matkapuhelimesi takakameralla, koska se sijoittaa kasvosi tarkalleen matkapuhelimesi näytön keskelle. Niin!! Kuulostaa mielenkiintoiselta? Tarkista esittelyvideo tämän opetusohjelman lopussa nähdäksesi sen toimivan. Katsotaanpa, kuinka voimme rakentaa sellaisen…
Olen yrittänyt parhaani mukaan saada tämän projektin toimimaan mahdollisimman yksinkertaisella tavalla. Jokainen, jolla on vähiten tietoa laitteistoista tai koodauksesta, voi käyttää näitä ohjeita saadakseen projektin toimimaan hetkessä. Kuitenkin, kun teet sen, suosittelen sinua pääsemään koodien taakse, jotta voit todella tietää, mikä saa tämän asian toimimaan ja miten.
Tarvittavat materiaalit:
- Arduino Nano
- Servomoottori SG90 - 2
- Android-puhelin kunnollisella kameralla
- HC-05 / HC-06 Bluetooth-moduuli
- Tietokone ohjelmointia varten
- 3D-tulostin (valinnainen)
- 9 V: n akku
Vaadittavien osien 3D-tulostus (valinnainen):
Matkapuhelimen panoroimiseksi ja kallistamiseksi tarvitsemme mekaanisia rakenteita, kuten matkapuhelimen pidikkeen ja muutaman servokannattimen. Voit käyttää sellaisen valmistamiseen pahvia, koska minulla on 3D-tulostin, päätin tulostaa nämä osat 3D-muodossa.
3D-tulostus on hämmästyttävä työkalu, joka voi auttaa paljon rakennettaessa prototyyppiprojekteja tai kokeilemalla uusia mekaanisia malleja. Jos et ole vielä havainnut 3D-tulostimen etuja tai miten se toimii, voit lukea Aloittelijan opas 3D-tulostukseen.
Jos sinulla on 3D-tulostin tai sinulla on pääsy siihen, voit tulostaa ja koota ne suoraan täältä ladattavista STL-tiedostoista. Kuitenkin harvat osat, kuten matkapuhelimen pidike, saattavat tarvita joitain muutoksia puhelimesi mittojen mukaan. Olen suunnitellut sen MOTO G -matkapuhelimelleni. Olen käyttänyt hyvin yksinkertaista tulostinta kaikkien osien tulostamiseen. Tulostin on 3dingin FABX v1 -mallia, joka on edullinen hinta ja tulostustilavuus 10 kuutiometriä. Halpa hinta sisältää alennuksen matalalla tulostustarkkuudella ja ilman SD-korttia tai tulostuksen jatkamista. Käytän Cura-ohjelmistoa STL-tiedostojen tulostamiseen. Asetukset, joita käytin materiaalien tulostamiseen, on annettu alla. Voit käyttää niitä tai muuttaa niitä tulostimesi perusteella.
Kun olet tulostanut kaikki tarvittavat materiaalit, voit kiinnittää ne paikoilleen ruuveilla ja kuumalla liimalla. Kun kokoonpano on valmis, sen pitäisi näyttää tältä alla.
Kaavio ja laitteisto:
Tämän älypuhelimen kasvoseurannan piiri on esitetty alla olevassa kuvassa:
Piiri koostuu kahdesta servomoottorista, joista toista käytetään matkapuhelimen siirtämiseen vasemmalle / oikealle ja toista käytetään matkapuhelimen kallistamiseen ylös / alas. Suunnan, johon servon on siirryttävä, ohjeistaa Arduino Nano, joka itse saa tietoja Bluetooth-moduulista (HC-05). Koko piiri saa virtansa 9 V: n akusta.
Tämä piiri voidaan liittää helposti leipälautallesi tai voit myös juottaa nämä pienelle Perf-levylle, kuten olen tehnyt täällä.
Android-sovelluksen määrittäminen:
Kuten sanoin aiemmin, tämän projektin tärkeimmät aivot ovat tämä Android-sovellus. Tämä android-sovellus on kehitetty Androidin prosessoinnilla. Voit asentaa tämän sovelluksen suoraan matkapuhelimeesi ja käynnistää sen noudattamalla seuraavia ohjeita.
- Lataa APK-tiedosto täältä.
- Kytke virta yllä esitettyyn piiriin.
- Etsi puhelimesi asetuksista Bluetooth-moduulia nimeltä “HC-05”
- Jos olet nimennyt sille jotain muuta kuin ”HC-05”, vaihda se takaisin HC-05: ksi, koska vasta sitten sovellus toimii.
- Yhdistä Bluetooth-moduulin kanssa salasanalla ”1234” tai “0000”.
- Käynnistä sovellus nyt pystytilassa. Sinun pitäisi nähdä kamerasi näyttö ja myös "Yhdistetty: HC-05" näytön yläosassa.
- Yritä siirtää kameraa kasvojen yli, ja vihreän ruudun pitäisi näkyä sen päällä, ja sen sijainti näkyy myös näytön vasemmassa yläkulmassa alla olevan kuvan mukaisesti.
Voit viedä tämän Arduino-kasvojentunnistusprojektin seuraavalle tasolle tuomalla paljon edistysaskeleita, joita varten sinun ei tarvitse koodata omaa Android-sovellustasi. Android-sovelluksen luominen saattaa kuulostaa vaikealta, mutta luota minuun käsittelyn avulla. Voit oppia sen hetkessä. Tämän sovelluksen luomiseen käytetty koko käsittelykoodi voidaan ladata täältä. Voit vapaasti edistyä omalla luovuudellasi. Katso alla olevat projektit saadaksesi lisätietoja prosessoinnista:
- Virtuaalitodellisuus Arduinoa ja prosessointia käyttämällä
- Ping Pong -peli Arduinoa käyttämällä
- Älypuhelimella ohjattu FM-radio prosessointia käyttäen.
- Arduino-tutkajärjestelmä, joka käyttää prosessointia ja ultraäänianturia
Arduinon ohjelmointi:
Android-sovellus tunnistaa kasvot ja sen sijainnin näytöllä; Sitten se päättää, mihin suuntaan sen pitäisi liikkua kasvojen sijainnin perusteella niin, että kasvot pääsevät näytön keskelle. Tämä suunta lähetetään sitten Arduinoon Bluetooth-moduulin kautta.
Tämän projektin Arduino-ohjelma on melko yksinkertainen, meidän on vain ohjattava kahden servomoottorin suuntaa Bluetooth-moduulista saatujen arvojen perusteella. Koko koodi löytyy lopussa tämän esittelyn, olen myös selittänyt muutamia tärkeitä linjat alla.
Koodirivin alapuolelle muodostetaan sarjayhteys nastoilla D12 RX ja D11 TX: nä. Siksi tappi D12 on kytkettävä BT-moduulin TX: ään ja tappi D11 BT-moduulin RX: ään.
SoftwareSerial cam_BT (12, 11); // RX, TX
Sitten olemme alustaneet Bluetooth-moduulin siirtonopeudella 9600. Varmista, että moduuli toimii myös samalla siirtonopeudella. Muutoin muuta sitä vastaavasti.
cam_BT.begin (9600); // aloita Bluetooth-yhteys 9600 baudinopeudella cam_BT.println ("Valmis ottamaan komentoja");
Rivin alla lukee, mitä Bluetooth-moduulin kautta tulee. Myös tiedot tallennetaan muuttujaan "BluetoothData".
if (cam_BT.available ()) // Lue Bluetoothin kautta tulevat uutiset {BluetoothData = cam_BT.read (); Serial.print ("Saapuva BT: ltä:"); Serial.println (BluetoothData); }
Bluetoothista saatujen tietojen perusteella moottorin suuntaa ohjataan. Moottorin kääntäminen vasemmalle moottoria vähennetään arvolla 2 edellisestä sijainnistaan. Voit nostaa tämän arvon 2 arvoon 4 tai 6, jos tarvitset käsivarren liikkumaan nopeammin. Mutta se saattaa aiheuttaa joitain nykäyksiä, jotka tekevät kamerasta epävakaan.
if (BluetoothData == 49) // Käänny vasemmalle {pos1 + = 2; servo1.write (pos1);} if (BluetoothData == 50) // Käänny oikealle {pos1- = 2; servo1.write (pos1);} if (BluetoothData == 51) // Näytä ylös {pos2- = 2; servo2.write (pos2);} if (BluetoothData == 52) // Käännä alas {pos2 + = 2; servo2.write (pos2);}
Työskentely:
Kun olemme valmiita laitteistomme, koodimme ja Android-sovelluksemme kanssa, on aika toimia. Yksinkertaisesti virtaa Arduinoon ja avaa Android-sovellus. Sovellus muodostaa automaattisesti yhteyden HC-05 (täytyy olla nimeltään HC-05) Bluetooth-moduuliin ja odottaa kasvojen havaitsemista. Aseta puhelin matkapuhelimen pidikkeeseen ja istu sen eteen. Huomaa, että servomoottorit liikuttavat puhelinta niin, että kasvosi sijoitetaan näytön keskelle. Liiku nyt kameran kantaman sisällä, ja matkapuhelimesi seuraa liikkeitäsi. Voit myös kokeilla sitä sijoittamalla ja siirtämällä minkä tahansa kuvan.
Projektin täydellinen työskentely on esitetty alla olevassa videossa. Voit rakentaa paljon