- Szükséges anyagok:
- A szükséges alkatrészek 3D nyomtatása (opcionális):
- Séma és hardver:
- Az Android alkalmazás beállítása:
- Az Arduino programozása:
- Dolgozó:
Szerettél volna már egy Arckövető robotkarot vagy robotot építeni egyszerűen az Arduino használatával, és nem bármilyen más programozással, mint például az OpenCV, a vizuális alapok C #? Ezután olvassa el, ebben a projektben az arcfelismerést fogjuk megvalósítani az Arduino és az Android erejének ötvözésével. Ebben a projektben a mobil kamera az Ön arcával együtt mozog a szervók segítségével. Az Android mobiltelefon itt történő használatának előnye, hogy nem kell befektetnie egy kameramodulba, és a teljes képérzékelési munka elvégezhető magában a telefonban, ehhez nem kell Arduino-ját csatlakoztatnia a számítógépéhez. Itt az Arduinóval ellátott Bluetooth modult használtuk a mobil vezeték nélküli kommunikációjához.
A projektben használt Android alkalmazást az Android feldolgozása segítségével hozták létre, vagy közvetlenül telepítheti az alkalmazást az APK fájl letöltésével (a továbbiakban olvassa el a linket), vagy felteheti a programozási sapkáját, és a megadott feldolgozási kód segítségével elkészítheti saját vonzóbb Android alkalmazását. tovább az oktatóanyagban. Tudjon meg többet a feldolgozásról a korábbi feldolgozási projektjeink ellenőrzésével.
A bemutató végére lesz egy Mini Tilt és Span robotkar, amely képes követni az arcodat és mozogni vele. Ezzel (további előrelépéssel) rögzítheti vlog videóit, vagy akár szelfizhet is a mobiltelefon hátsó kamerájával, mivel az arcát pontosan a mobil képernyőjének középpontjába helyezi. Így!! Érdekesen hangzik? A bemutató végén ellenőrizze a bemutató videót, hogy működjön. Lássuk, hogyan építhetünk egyet…
Mindent megtettem, hogy ez a projekt a lehető legegyszerűbben működjön, bárki, aki rendelkezik a hardverrel vagy a kódolással kapcsolatos minimális ismeretekkel, használhatja ezeket az irányelveket, hogy pillanatok alatt működjön a projekt. Azonban miután elkészítette, azt javaslom, hogy lépjen a kódok mögé, hogy valóban tudja, mitől és hogyan működik ez a dolog.
Szükséges anyagok:
- Arduino Nano
- Szervomotor SG90 - 2Nos
- Android telefon tisztességes kamerával
- HC-05 / HC-06 Bluetooth modul
- Számítógép a programozáshoz
- 3D nyomtató (opcionális)
- 9V-os akkumulátor
A szükséges alkatrészek 3D nyomtatása (opcionális):
A mobiltelefon mozgatásához szükségünk van néhány mechanikus szerkezetre, például mobil tartóra és néhány szervo konzolra. Használhat kartonpapírt is, mivel van 3D nyomtatóm, ezért úgy döntöttem, hogy ezeket az alkatrészeket 3D-re nyomtatom.
A 3D nyomtatás lenyűgöző eszköz, amely sokat hozzájárulhat prototípus-projektek építésénél vagy új mechanikai tervek kísérletezésénél. Ha még nem fedezte fel a 3D nyomtató előnyeit vagy működését, elolvashatja a Kezdő útmutató a 3D nyomtatáshoz.
Ha 3D nyomtatóval rendelkezik vagy rendelkezik hozzáféréssel, akkor az innen letölthető STL fájlokat közvetlenül kinyomtathatja és összeállíthatja. Azonban néhány alkatrészhez, például a mobiltelefon tartóhoz, szükség lehet némi módosításra a telefon méretei alapján. A MOTO G mobiltelefonomhoz terveztem. Az összes alkatrész kinyomtatásához egy nagyon egyszerű nyomtatómat használtam. A nyomtató a 3ding FABX v1-es verziója, amely megfizethető áron, 10 köbcentiméteres nyomtatási térfogattal rendelkezik. Az olcsó ár kompromisszumot jelent alacsony nyomtatási felbontással, SD-kártya és nyomtatás folytatás nélküli funkcióval. A Cura nevű szoftvert használom az STL fájlok kinyomtatásához. Az alábbiakban megadom azokat a beállításokat, amelyeket az anyagok kinyomtatásához használtam. Ugyanezeket használhatja, vagy megváltoztathatja a nyomtató alapján.
Miután kinyomtatta az összes szükséges anyagot, csavarokkal és forró ragasztóval rögzítheti azokat a helyükön. Miután az összeszerelés befejeződött, az alábbiakban valami ilyennek kell kinéznie.
Séma és hardver:
Az okostelefonos arckövetés áramköre az alábbi képen látható:
Az áramkör két szervomotorból áll, amelyek közül az egyik a mobiltelefon balra / jobbra mozgatására szolgál, a másik pedig a mobiltelefon fel / le billentésére szolgál. A szervo mozgásának irányát az Arduino Nano utasítja, amely maga is információt szerez a Bluetooth (HC-05) modulból. Az egész áramkört 9 V-os akkumulátor táplálja.
Ezt az áramkört egyszerűen csatlakoztathatja a kenyérlapjára, vagy rá is forraszthatja ezeket egy kis Perf táblára, ahogy ezt itt tettem.
Az Android alkalmazás beállítása:
Mint korábban említettem, a projekt mögött álló fő agy ez az Android alkalmazás. Ezt az androidos alkalmazást az Android feldolgozása segítségével fejlesztették ki. Az alkalmazást közvetlenül telepítheti mobiltelefonjára, és elindíthatja az alábbi lépések végrehajtásával.
- Töltse le az APK fájlt innen.
- Kapcsolja be a fenti áramkört.
- A telefon beállításai között keresse meg a „HC-05” nevű Bluetooth modult
- Ha másnak nevezte el, mint „HC-05”, cserélje vissza HC-05-re, mert csak akkor működik az alkalmazás.
- Párosítson Bluetooth moduljával az „1234” vagy „0000” jelszóval.
- Most indítsa el az alkalmazást álló módban. Látnia kell a fényképezőgép képernyőjét, valamint a képernyő tetején a „Csatlakoztatva: HC-05” részt.
- Próbálja meg mozgatni a fényképezőgépet egy arc felett, és annak tetején egy zöld mezőnek kell megjelennie, és a helyzete a képernyő bal felső sarkában is megjelenik, az alábbiak szerint.
Ezt az Arduino Arckövető Projektet új szintre emelheti, ha rengeteg előrelépést hoz be, amelyekhez nem kell saját Android-alkalmazását kódolnia. Android-alkalmazás létrehozása nehéznek tűnhet, de bízzon bennem a Processing segítségével, pillanatok alatt megtanulhatja. Az alkalmazás elkészítéséhez használt teljes feldolgozási kód letölthető innen. Bármely előrelépést szabadon tehet a saját kreativitásával. Ellenőrizze az alábbi projekteket, ha többet szeretne megtudni a feldolgozásról:
- Virtuális valóság az Arduino és a Processing használatával
- Ping Pong játék az Arduino használatával
- Intelligens telefon által vezérelt FM rádió feldolgozással.
- Arduino radarrendszer feldolgozással és ultrahangos érzékelővel
Az Arduino programozása:
Az Android alkalmazás felismeri az arcot és annak helyzetét a képernyőn; ezután eldönti, hogy az arc helyzete alapján melyik irányba kell elmozdulnia, hogy az arc a képernyő közepére kerüljön. Ezt az irányt ezután a Bluetooth modulon keresztül elküldi az Arduino-nak.
Az Arduino program ehhez a projekthez meglehetősen egyszerű, csak a két szervomotor irányát kell vezérelnünk a Bluetooth modulból kapott értékek alapján. A teljes kód a bemutató végén található, néhány fontos sort az alábbiakban is elmagyaráztam.
A kódsor alatt soros kapcsolatot létesít a D12 csapokkal, mint RX, és a D11 csapokkal, mint TX. Ezért a D12 csapot össze kell kötni a BT modul TX-jével, a D11 csapot pedig a BT modul RX-jével.
SoftwareSerial cam_BT (12, 11); // RX, TX
Ezután inicializáltuk a Bluetooth modult 9600 átviteli sebességgel. Győződjön meg arról, hogy a modul is ugyanazon az adatátviteli sebességen működik. Egyébként ennek megfelelően változtassa meg.
cam_BT.begin (9600); // indítsa el a Bluetooth kommunikációt 9600 baudrate-en cam_BT.println ("Készen áll a parancsok fogadására");
A sor alatt olvasható, hogy mi érkezik a Bluetooth modulon keresztül. Az adatokat a „BluetoothData” változó is menti.
if (cam_BT.available ()) // Olvassa el a Bluetooth-on keresztül érkező információkat {BluetoothData = cam_BT.read (); Serial.print ("Bejövő a BT-től:"); Serial.println (BluetoothData); }
A Bluetooth-tól kapott adatok alapján a motor irányát vezérlik. A motor balra fordításához a motor 2-es értékkel csökken az előző helyzetéből. Növelheti ezt az értéket 2-ről 4-re vagy 6-ra, ha a kar gyorsabb mozgásához van szüksége. De ez rángatózást okozhat, ami instabillá teheti a kamerát.
if (BluetoothData == 49) // Forduljon balra {pos1 + = 2; servo1.write (pos1);} if (BluetoothData == 50) // Forduljon jobbra {pos1- = 2; servo1.write (pos1);} if (BluetoothData == 51) // Forgatás {pos2- = 2; servo2.write (pos2);} if (BluetoothData == 52) // Fordítsa le {pos2 + = 2; servo2.write (pos2);}
Dolgozó:
Ha készen állunk a hardverrel, a kóddal és az Android alkalmazással, ideje cselekedni. Egyszerűen táplálja az Arduino-t, és nyissa meg az androidos alkalmazást. Az alkalmazás automatikusan csatlakozik a HC-05 (neve HC-05) Bluetooth modulhoz, és megvárja az arc észlelését. Egyszerűen helyezze be a telefont a mobiltartónkba, és üljön elé. Észre kell vennie, hogy szervomotorjai mozgatják a telefont, hogy az arca a képernyő közepén legyen. Most mozogjon a kamera hatósugarán belül, és mobiltelefonja követni fogja a mozgását. Kipróbálhatja bármilyen kép elhelyezésével és mozgatásával is.
A projekt teljes működését az alábbi videó mutatja. Sokat építhet