- Reikalingos medžiagos:
- Reikiamų dalių 3D spausdinimas (pasirinktinai):
- Schema ir techninė įranga:
- „Android“ programos nustatymas:
- „Arduino“ programavimas:
- Darbas:
Ar kada norėjote sukurti „ Face Tracking“ robotų ranką ar robotą paprasčiausiai naudodami „Arduino“, o ne bet kokį kitą programavimą, pvz., „OpenCV“, „Visual Basics C #“ ir kt. Tada skaitykite kartu, šiame projekte mes ketiname įgyvendinti veido aptikimą, sujungdami „Arduino“ ir „Android“ galimybes. Šiame projekte mobilioji kamera judės kartu su jūsų veidu servo pagalba. „ Android“ mobiliojo telefono naudojimo pranašumas čia yra tas, kad nereikia investuoti į fotoaparato modulį, o visą vaizdo aptikimo darbą galima atlikti pačiame telefone, norint, kad tai veiktų, nereikia, kad „Arduino“ būtų prijungtas prie kompiuterio. Čia mes naudojome „Bluetooth“ modulį su „Arduino“, kad galėtume belaidžiu ryšiu bendrauti su „Mobile“.
Šiame projekte naudojama „Android“ programa buvo sukurta naudojant „ Processing Android“. Galite tiesiogiai įdiegti programą atsisiųsdami APK failą (toliau skaitykite nuorodą) arba uždėkite programavimo dangtelį ir naudodami pateiktą apdorojimo kodą galite sukurti savo patrauklesnę „Android“ programą. toliau Pamoka. Sužinokite daugiau apie apdorojimą patikrindami ankstesnius apdorojimo projektus.
Šios pamokos pabaigoje turėsite „ Mini Tilt“ ir „Span“ robotų ranką, kuri galėtų sekti jūsų veidą ir judėti kartu su juo. Galite tai naudoti (toliau tobulindami), norėdami įrašyti savo „Vlog“ vaizdo įrašus ar net pasidaryti asmenukę naudodamiesi galine mobiliojo telefono kamera, nes ji nukreipia veidą tiksliai į mobiliojo ekrano centrą. Taigi !! Skamba įdomiai? Šios pamokos pabaigoje patikrinkite demonstracinį vaizdo įrašą, kad pamatytumėte, kaip jis veikia. Pažiūrėkime, kaip mes galime sukurti…
Iš visų jėgų stengiausi, kad šis projektas veiktų kuo paprasčiau. Kiekvienas, turintis minimalių žinių apie aparatinę įrangą ar kodavimą, gali naudoti šias gaires, kad šis projektas veiktų per trumpą laiką. Tačiau kai tai padarysite, siūlau atsilikti nuo kodų, kad galėtumėte tikrai žinoti, dėl ko šis dalykas veikia ir kaip.
Reikalingos medžiagos:
- „Arduino Nano“
- Servovariklis SG90 - 2Nos
- „Android“ telefonas su padoria kamera
- HC-05 / HC-06 „Bluetooth“ modulis
- Kompiuteris programavimui
- 3D spausdintuvas (pasirinktinai)
- 9 V akumuliatorius
Reikiamų dalių 3D spausdinimas (pasirinktinai):
Norint pakreipti ir pakreipti mobilųjį telefoną, mums reikia mechaninių konstrukcijų, tokių kaip mobiliojo telefono laikiklis ir keli servo laikikliai. Galite pagaminti iš kartono, nes turiu 3D spausdintuvą, nusprendžiau šias dalis atsispausdinti 3D formatu.
3D spausdinimas yra nuostabi priemonė, galinti daug prisidėti kuriant prototipinius projektus ar eksperimentuojant su naujais mechaniniais dizainais. Jei dar nesate atradę 3D spausdintuvo pranašumų ar jo veikimo, galite perskaityti 3D spausdinimo vadovą pradedantiesiems.
Jei turite 3D spausdintuvą arba turite prieigą prie jo, galite tiesiogiai atsispausdinti ir surinkti STL failus, kuriuos galite atsisiųsti iš čia. Tačiau kelioms dalims, tokioms kaip mobiliojo telefono laikiklis, gali prireikti kai kurių modifikacijų, atsižvelgiant į jūsų telefono matmenis. Sukūriau jį savo mobiliajam telefonui MOTO G. Visoms dalims atspausdinti naudojau labai paprastą spausdintuvą. Spausdintuvas yra „FABX v1“ iš „3ding“, jo kaina už prieinamą kainą, spausdinimo tūris 10 kub. Cm. Pigiai kainuoja kompromisas su maža spausdinimo skiriamąja geba ir be SD kortelės ar spausdinimo atnaujinimo funkcijos. STL failams spausdinti naudoju programinę įrangą „Cura“. Nustatymai, kuriuos naudojau spausdindamas medžiagas, pateikti žemiau. Galite naudoti tuos pačius parametrus arba pakeisti juos pagal savo spausdintuvą.
Kai atspausdinsite visas reikalingas medžiagas, galėsite jas pritvirtinti varžtais ir karštais klijais. Baigus surinkimą, jis turėtų atrodyti maždaug taip žemiau.
Schema ir techninė įranga:
Šio „Smart Phone“ projekto stebėjimo schema yra parodyta žemiau esančiame paveikslėlyje:
Grandinę sudaro du „Servo“ varikliai, iš kurių vienas naudojamas mobiliajam telefonui perkelti į kairę / dešinę, o kitas - mobiliajam telefonui pakreipti aukštyn / žemyn. Kryptį, kuria turi judėti servo, nurodys „Arduino Nano“, kuri pati gauna informaciją iš „Bluetooth“ (HC-05) modulio. Visą grandinę maitina 9 V baterija.
Ši grandinė gali būti lengvai prijungta prie jūsų duonos lentos arba taip pat galite jas sulituoti ant mažos "Perf" plokštės, kaip aš padariau čia.
„Android“ programos nustatymas:
Kaip jau sakiau anksčiau, pagrindinės šio projekto smegenys yra ši „Android“ programa. Ši „Android“ programa buvo sukurta naudojant „Processing Android“. Galite tiesiogiai įdiegti šią programą į savo mobilųjį telefoną ir paleisti, atlikdami toliau nurodytus veiksmus.
- Atsisiųskite APK failą iš čia.
- Įjunkite aukščiau parodytą grandinę.
- Telefono nustatymuose ieškokite „Bluetooth“ modulio pavadinimu „HC-05“
- Jei pavadinote jį kitu, o ne „HC-05“, pakeiskite jį atgal į „HC-05“, nes tik tada programa veiks.
- Suporuokite su „Bluetooth“ moduliu su slaptažodžiu „1234“ arba „0000“.
- Dabar paleiskite programą portreto režimu. Ekrano viršuje turėtumėte pamatyti fotoaparato ekraną ir „Prisijungta prie: HC-05“.
- Pabandykite perkelti fotoaparatą ant veido, o jo viršuje turėtų pasirodyti žalia dėžutė, o jos padėtis taip pat bus rodoma viršutiniame kairiajame ekrano kampe, kaip parodyta žemiau.
Šį „ Arduino“ veido stebėjimo projektą galite pakelti į kitą lygį pateikdami daugybę patobulinimų, kuriems jums nereikės koduoti savo „Android“ programos. Sukurti „Android“ programą gali pasirodyti sunku, tačiau patikėkite manimi, naudodamiesi „Processing“, galite ją išmokti per trumpą laiką. Visą apdorojimo kodą, naudojamą kuriant šią programą, galima atsisiųsti čia. Galite laisvai tobulėti savo kūrybiškumu. Patikrinkite toliau pateiktus projektus, kad sužinotumėte daugiau apie apdorojimą:
- Virtuali tikrovė naudojant „Arduino“ ir apdorojimą
- „Ping Pong“ žaidimas naudojant „Arduino“
- Išmaniojo telefono valdomas FM radijas, naudojant apdorojimą.
- „Arduino“ radarų sistema naudojant apdorojimo ir ultragarso jutiklį
„Arduino“ programavimas:
„Android“ programa aptiks veidą ir jo padėtį ekrane; tada jis nuspręs, kuria kryptimi jis turėtų judėti, atsižvelgdamas į veido padėtį, kad veidas patektų į ekrano centrą. Tada ši kryptis per „Bluetooth“ modulį siunčiama „Arduino“.
Šio projekto „Arduino“ programa yra gana paprasta, mes tiesiog turime kontroliuoti dviejų servovariklių kryptį pagal „Bluetooth“ modulio gautas vertes. Visą kodą galima rasti šio pamoka Galų gale, aš taip pat paaiškino keletą svarbių eilučių žemiau.
Žemiau kodo eilutės nustatomas nuoseklus ryšys su kaiščiais D12 kaip RX ir D11 kaip TX. Taigi kaištis D12 turi būti prijungtas prie BT modulio TX, o kaištis D11 - prie BT modulio RX.
„SoftwareSerial cam_BT“ (12, 11); // RX, TX
Tada mes inicijavome „Bluetooth“ modulį 9600 perdavimo sparta. Įsitikinkite, kad modulis taip pat veikia tuo pačiu perdavimo greičiu. Kitu atveju pakeiskite jį atitinkamai.
cam_BT.pregin (9600); // pradėti „Bluetooth“ ryšį 9600 baudų greičiu cam_BT.println ("Parengta priimti komandas");
Žemiau eilutėje rašoma, kas ateina per „Bluetooth“ modulį. Taip pat duomenys išsaugomi kintamajame „BluetoothData“.
if (cam_BT.available ()) // Perskaitykite, kas gaunama per „Bluetooth“ {BluetoothData = cam_BT.read (); „Serial.print“ („Gaunamas iš BT:“); Serial.println („BluetoothData“); }
Remiantis iš „Bluetooth“ gautais duomenimis, valdoma variklių kryptis. Norėdami pasukti variklį kairėn, variklis sumažėja 2 verte iš ankstesnės padėties. Galite padidinti šią vertę nuo 2 iki 4 arba 6, jei jums reikia, kad ranka judėtų greičiau. Bet tai gali sukelti trūkumų, todėl fotoaparatas nestabilus.
if (BluetoothData == 49) // Pasukite kairėn {pos1 + = 2; servo1.write (pos1);} if (BluetoothData == 50) // Pasukite dešinėn {pos1- = 2; servo1.write (pos1);} if (BluetoothData == 51) // Įjungti {pos2- = 2; servo2.write (pos2);} if (BluetoothData == 52) // Pasukti žemyn {pos2 + = 2; servo2.write (pos2);}
Darbas:
Kai būsime pasirengę naudoti aparatinę įrangą, kodą ir „Android“ programą, laikas atlikti tam tikrus veiksmus. Tiesiog maitinkite „Arduino“ ir atidarykite „Android“ programą. Programa automatiškai prisijungs prie „Bluetooth“ modulio „HC-05“ (turi būti pavadinta „HC-05“) ir lauks, kol bus aptiktas veidas. Tiesiog įdėkite telefoną į mūsų mobiliojo telefono laikiklį ir atsisėskite prieš jį. Turėtumėte pastebėti, kad jūsų servo varikliai judina telefoną taip, kad jūsų veidas atsidurtų ekrano centre. Dabar judėkite fotoaparato diapazone ir jūsų mobilusis telefonas stebės jūsų judesius. Taip pat galite išbandyti įdėdami ir perkeldami bet kokį paveikslėlį.
Visas projekto darbas parodytas žemiau esančiame vaizdo įraše. Galite daug pastatyti