- Nepieciešamie materiāli:
- Nepieciešamo detaļu 3D drukāšana (pēc izvēles):
- Shēma un aparatūra:
- Android lietojumprogrammas iestatīšana:
- Arduino programmēšana:
- Darbs:
Vai esat kādreiz gribējuši izveidot sejas izsekošanas robotu roku vai robotu, vienkārši izmantojot Arduino, nevis jebkuru citu programmēšanu, piemēram, OpenCV, vizuālos pamatus C # utt.? Tad izlasiet, šajā projektā mēs ieviesīsim sejas noteikšanu, apvienojot Arduino un Android spēku. Šajā projektā mobilā kamera ar servo palīdzību pārvietosies kopā ar seju. Ja izmantosiet priekšrocība Android Mobile Phone šeit ir tas, ka jums nav nepieciešams ieguldīt uz kameras moduli, un visa attēla atklāšanas darbu var izdarīt pašu tālruni, jums nav nepieciešama jūsu Arduino savienots ar datoru, lai tas darbotos. Šeit mēs izmantojām Bluetooth moduli ar Arduino, lai sazinātos ar Mobile bezvadu režīmā.
Šajā projektā izmantotā Android lietojumprogramma tika izveidota, izmantojot Processing Android. Jūs varat vai nu tieši instalēt lietojumprogrammu, lejupielādējot APK failu (lasiet tālāk, lai uzzinātu saiti), vai arī uzvilkt savu programmēšanas vāciņu un izveidot savu pievilcīgāko Android lietojumprogrammu, izmantojot norādīto apstrādes kodu. tālāk apmācībā. Uzziniet vairāk par apstrādi, pārbaudot mūsu iepriekšējos apstrādes projektus.
Šīs apmācības beigās jums būs Mini Tilt un Span robotu roka, kas varētu izsekot jūsu sejai un pārvietoties tai līdzi. Jūs varat to izmantot (ar tālāku attīstību), lai ierakstītu savus vlog videoklipus vai pat uzņemtu selfiju ar mobilā tālruņa aizmugurējo kameru, jo tas jūsu seju novieto tieši mobilā ekrāna centrā. Tātad !! Izklausās interesanti? Šīs apmācības beigās pārbaudiet demonstrācijas video, lai redzētu, kā tas darbojas. Apskatīsim, kā mēs varam tādu izveidot…
Esmu darījis visu iespējamo, lai šis projekts darbotos pēc iespējas vienkāršāk. Ikviens, kam ir minimālas zināšanas par aparatūru vai kodēšanu, var izmantot šīs vadlīnijas, lai šis projekts darbotos īsā laikā. Tomēr, kad jūs to izdarīsit, es iesaku aiziet aiz kodiem, lai jūs patiešām zinātu, kas liek šai lietai darboties un kā.
Nepieciešamie materiāli:
- Arduino Nano
- Servomotors SG90 - 2Nos
- Android tālrunis ar pienācīgu kameru
- HC-05 / HC-06 Bluetooth modulis
- Dators programmēšanai
- 3D printeris (pēc izvēles)
- 9V akumulators
Nepieciešamo detaļu 3D drukāšana (pēc izvēles):
Lai panoramētu un noliektu mobilo tālruni, mums ir nepieciešamas dažas mehāniskas konstrukcijas, piemēram, mobilā turētājs un dažas servo kronšteini. Lai to izgatavotu, varat izmantot kartonu, jo man ir 3D printeris, un es nolēmu šīs daļas izdrukāt 3D.
3D druka ir pārsteidzošs rīks, kas var dot lielu ieguldījumu, veidojot prototipa projektus vai eksperimentējot ar jauniem mehāniskiem dizainiem. Ja vēl neesat atklājis 3D printera priekšrocības vai kā tas darbojas, varat izlasīt iesācēju 3D drukāšanas rokasgrāmatu.
Ja jums pieder 3D printeris vai jums ir piekļuve tam, varat tieši izmantot šeit esošos STL failus, lai tos tieši drukātu un apkopotu. Tomēr dažām daļām, piemēram, mobilā tālruņa turētājam, var būt nepieciešamas dažas modifikācijas, pamatojoties uz tālruņa izmēriem. Es to esmu izstrādājis savam MOTO G mobilajam tālrunim. Lai izdrukātu visas detaļas, esmu izmantojis ļoti vienkāršu printeri. Printeris ir FABX v1 no 3ding, un tā cena ir par pieņemamu cenu un drukas apjoms ir 10 kubikcentimetri. Lētajai cenai ir kompromiss ar zemu drukas izšķirtspēju un bez SD kartes vai drukas atsākšanas funkciju. STL failu drukāšanai izmantoju programmatūru ar nosaukumu Cura. Materiālu drukāšanai izmantotie iestatījumi ir norādīti zemāk. Jūs varat tos izmantot vai mainīt, pamatojoties uz printeri.
Kad esat izdrukājis visus nepieciešamos materiālus, tos var nostiprināt, izmantojot skrūves un karstu līmi. Pēc montāžas pabeigšanas tam vajadzētu izskatīties apmēram šādi.
Shēma un aparatūra:
Šī viedā tālruņa sejas izsekošanas shēma ir parādīta zemāk esošajā attēlā:
Shēma sastāv no diviem servomotoriem, no kuriem viens tiek izmantots, lai pārvietotu mobilo tālruni pa kreisi / pa labi, bet otrs - mobilā tālruņa noliekšanai uz augšu / uz leju. Virzienu, kurā servo jāpārvietojas, norādīs Arduino Nano, kurš pats saņem informāciju no Bluetooth (HC-05) moduļa. Visu shēmu darbina 9 V akumulators.
Šo ķēdi var viegli savienot uz jūsu maizes dēļa, vai arī jūs varat tos lodēt uz mazas Perf plāksnes, kā es to darīju šeit.
Android lietojumprogrammas iestatīšana:
Kā jau teicu iepriekš, galvenās smadzenes, kas strādā pie šī projekta, ir šī Android lietojumprogramma. Šī android lietojumprogramma tika izstrādāta, izmantojot Processing Android. Jūs varat tieši instalēt šo lietojumprogrammu savā mobilajā tālrunī un palaist to, veicot tālāk norādītās darbības.
- Lejupielādējiet APK failu šeit.
- Ieslēdziet iepriekš parādīto ķēdi.
- Tālruņa iestatījumos meklējiet Bluetooth moduli ar nosaukumu “HC-05”
- Ja esat to nosaucis citādi, nevis “HC-05”, nomainiet to atpakaļ uz HC-05, jo tikai tad lietojumprogramma darbosies.
- Savienojiet pārī ar savu Bluetooth moduli ar paroli “1234” vai “0000”.
- Tagad palaidiet programmu portreta režīmā. Jums vajadzētu redzēt kameras ekrānu un ekrāna augšdaļā arī “Connected to: HC-05”.
- Mēģiniet pārvietot kameru virs sejas, un tās augšpusē vajadzētu parādīties zaļa rūtiņa, un tās atrašanās vieta tiks parādīta arī ekrāna augšējā kreisajā stūrī, kā parādīts zemāk.
Šo Arduino sejas izsekošanas projektu varat pārcelt uz nākamo līmeni, ieviešot daudz uzlabojumu, kuriem jums nebūs jākodē sava Android lietojumprogramma. Android lietojumprogrammas izveide var šķist sarežģīta, taču, uzticoties man, izmantojot procesu, jūs to varat uzzināt īsā laikā. Pilnu apstrādes kodu, kas tiek izmantots šīs lietojumprogrammas izveidošanai, var lejupielādēt šeit. Jūs varat brīvi virzīties uz priekšu ar savu radošumu. Pārbaudiet zemāk esošos projektus, lai uzzinātu vairāk par apstrādi:
- Virtuālā realitāte, izmantojot Arduino un apstrādi
- Spēle Ping Pong, izmantojot Arduino
- Viedtālrunis kontrolē FM radio, izmantojot apstrādi.
- Arduino radaru sistēma, izmantojot apstrādes un ultraskaņas sensoru
Arduino programmēšana:
Android lietojumprogramma noteiks seju un tās atrašanās vietu ekrānā; pēc tam tā izlems, kurā virzienā tai vajadzētu pārvietoties, pamatojoties uz sejas stāvokli, lai seja nonāktu ekrāna centrā. Pēc tam šis virziens tiek nosūtīts uz Arduino, izmantojot Bluetooth moduli.
Arduino programma šim projektam ir diezgan vienkārša, mums vienkārši jākontrolē divu servomotoru virziens, pamatojoties uz vērtībām, kas saņemtas no Bluetooth moduļa. Pilnīga kodu var atrast beigās šo pamācību, es esmu arī izskaidrot dažas svarīgas rindas zemāk.
Zem koda rindas tiek izveidots sērijveida savienojums ar tapām D12 kā RX un D11 kā TX. Tāpēc tapai D12 jābūt pievienotai BT moduļa TX un tapai D11 BT moduļa RX.
SoftwareSerial cam_BT (12, 11); // RX, TX
Tad mēs esam inicializējuši Bluetooth moduli ar datu pārraides ātrumu 9600. Pārliecinieties, ka modulis darbojas arī ar to pašu datu pārraides ātrumu. Cits to attiecīgi mainīt.
cam_BT.begin (9600); // sākt Bluetooth sakarus ar 9600 baudrate cam_BT.println ("Gatavs pieņemt komandas");
Zem rindas ir lasāms, kas ienāk, izmantojot Bluetooth moduli. Arī dati tiek saglabāti mainīgajā “BluetoothData”.
if (cam_BT.available ()) // Lasiet, kas ienāk, izmantojot Bluetooth {BluetoothData = cam_BT.read (); Serial.print ("Ienākošais no BT:"); Serial.println (BluetoothData); }
Pamatojoties uz datiem, kas saņemti no Bluetooth, tiek kontrolēts motora virziens. Lai pagrieztu motoru pa kreisi, motors tiek samazināts par vērtību 2 no iepriekšējā stāvokļa. Jūs varat palielināt šo vērtību no 2 līdz 4 vai 6, ja jums ir nepieciešama roka, lai kustētos ātrāk. Bet tas var radīt dažus trūkumus, padarot kameru nestabilu.
ja (BluetoothData == 49) // Pagriezieties pa kreisi {pos1 + = 2; servo1.write (pos1);} if (BluetoothData == 50) // Pagriezieties pa labi {pos1- = 2; servo1.write (pos1);} if (BluetoothData == 51) // Pagriezt uz augšu {pos2- = 2; servo2.write (pos2);} if (BluetoothData == 52) // Pagriezt uz leju {pos2 + = 2; servo2.write (pos2);}
Darbs:
Kad būsim gatavi ar aparatūru, kodu un Android lietojumprogrammu, ir pienācis laiks rīkoties. Vienkārši darbiniet savu Arduino un atveriet android lietojumprogrammu. Lietojumprogramma automātiski izveidos savienojumu ar HC-05 (jānosauc HC-05) Bluetooth moduli un gaidīs, kamēr tiks atklāta seja. Vienkārši ievietojiet tālruni mūsu mobilā turētājā un apsēdieties tā priekšā. Jums vajadzētu pamanīt, ka servomotori pārvieto tālruni tā, lai jūsu seja tiktu novietota ekrāna centrā. Tagad pārvietojieties kameras darbības rādiusā, un mobilais tālrunis sekos jūsu kustībām. Varat arī izmēģināt, ievietojot un pārvietojot jebkuru attēlu.
Pilnīga projekta darbība ir parādīta zemāk esošajā video. Jūs varat veidot daudz