- Szükséges alkatrész:
- Padlótisztító robot összeszerelése:
- Huzalozás és csatlakozások:
- Programozási magyarázat:
Az automatikus padlótisztítók nem újdonságok, de mindannyian közös problémával küzdenek. Mind túl drágák ahhoz, amit csinálnak. Ma elkészítünk egy automatikus otthoni takarító robotot, amely csak a piac egy részének költségeibe kerül. Ez a robot felismeri az előtte álló akadályokat és tárgyakat, és az akadályokat elkerülve tovább mozoghat, amíg az egész szobát meg nem tisztítják. A padló tisztításához egy kis kefe van hozzáerősítve.
Az Arduino használatával ellenőrizze az intelligens porszívó robotunkat is
Szükséges alkatrész:
- Arduino UNO R3.
- Ultrahangos érzékelő.
- Arduino Motor Driver pajzs.
- Kerékhajtású robot alváz.
- Számítógép az Arduino programozásához.
- Akkumulátor a motorokhoz.
- Power Bank az Arduino működéséhez
- Cipőkefe.
- Scotch Brite súroló pad.
Megjegyzés: Az elemek használata helyett használhat egy hosszú, 4 szálas vezetéket is, mint mi. Bár ez nem túl elegáns vagy praktikus megoldás, de megteheti, ha nem tervezi mindennapi használatát a való világban. Győződjön meg arról, hogy a kábel hossza megfelelő.
Mielőtt a részletekbe menne, először beszéljünk az ultrahangról.
HC-SR04 ultrahangos érzékelő:
Az ultrahangos érzékelőt a távolság nagy pontossággal és stabil leolvasással történő mérésére használják. Mérheti a távolságot 2 cm-től 400 cm-ig vagy 1 hüvelyktől 13 lábig. 40KHz frekvenciájú ultrahanghullámot bocsát ki a levegőben, és ha az objektum útját állja, akkor visszapattan az érzékelőhöz. Kiszámíthatja a távolságot, ha felhasználja azt az időt, amelyre az objektum ütése és visszatérése szükséges.
Az ultrahangos érzékelő az „ECHO” nevű technikát használja. Az „ECHO” egyszerűen visszavert hanghullám. Önnek ECHO-ja lesz, amikor a hang visszaverődik a zsákutca elérése után.
A HCSR04 modul hangrázkódást generál ultrahangos tartományban, amikor a 'Trigger' csapot magasra teszjük kb. 10usra, amely 8 ciklusú hangsebességet küld hangsebességgel, és miután az objektumot elütötte, az Echo csap fogadja. Attól függően, hogy mennyi időt vesz igénybe a rezgés a visszajutáshoz, megfelelő impulzus kimenetet biztosít. Ha az objektum messze van, akkor több időre van szükség az ECHO meghallgatásához, és a kimeneti impulzus szélessége nagy lesz. És ha az akadály közel van, akkor az ECHO gyorsabban hallatszik, és a kimenő impulzus szélessége kisebb lesz.
Kiszámíthatjuk az objektum távolságát az ultrahangos hullám által az érzékelőhöz való visszatéréshez szükséges idő alapján. Mivel a hang ideje és sebessége ismert, a következő képletekkel számíthatjuk ki a távolságot.
Távolság = (Idő x Hangsebesség levegőben (343 m / s)) / 2.
Az érték el van osztva kettővel, mivel a hullám előre és hátra halad ugyanazon a távolságon. Így az akadály elérésének ideje csak a teljes idő fele
Tehát a távolság centiméterben = 17150 * T
Korábban számos hasznos projektet készítettünk ennek az ultrahangos érzékelőnek és az Arduino-nak, ellenőrizze őket alább:
- Arduino alapú távolságmérés ultrahangos érzékelővel
- Ajtóriasztó Arduino és ultrahangos érzékelő használatával
- IOT alapú dömperfigyelés Arduino használatával
Padlótisztító robot összeszerelése:
Szerelje fel az Arduino-t az alvázra. Ügyeljen arra, hogy ne zárjon rövidre semmit, ha az alváz fémből készül. Célszerű beszerezni egy dobozt az Arduino és a motorvezérlő pajzsához. Rögzítse a motorokat a kerekekkel és az alvázzal csavarokkal. Az alváznak legyen lehetősége erre gyárilag, de ha mégsem, akkor rögtönözhet egy másik megoldást. Az epoxi nem rossz ötlet. Szerelje fel a cipőkefét az alváz elejére. Ehhez M-Seal epoxi és fúrt csavarok kombinációját használtuk, bár használhat bármilyen más megoldást, amely könnyebb lehet az Ön számára. Szerelje fel a Scotch Brite súroló betétet az ecset mögé. Az alvázon átmenő tengelyt használtuk, amely játékban tartja, bár ez is improvizálható. Rugós tengely használható a kíséretében. Szerelje be az elemeket (vagy kábeleket a ház hátuljára).Az epoxi vagy az elemtartó erre jó módszer. A forró ragasztó sem rossz.
Huzalozás és csatlakozások:
Az automatikus otthoni tisztító robot áramköre nagyon egyszerű. Csatlakoztassa az ultrahangos érzékelőt az Arduino-hoz az alábbiak szerint, és helyezze a motorvezető pajzsát az Arduino-ra, mint bármely más pajzsot.
Az Ultrahangos Trig csapja az Arduino 12. érintkezőjéhez, az Echo csap a 13. csaphoz, a feszültségcsap az 5 V-os csatlakozóhoz és a földi csap a földi csaphoz van csatlakoztatva. Az Echo és a Trig tű lehetővé teszi az Arduino számára, hogy kommunikáljon az érzékelővel. Az áramellátás az érzékelőhöz a feszültség és a földelő csapokon keresztül történik, a Trig és az Echo csapok lehetővé teszik az adatok küldését és fogadását az Arduino segítségével. Itt többet megtudhat az ultrahangos érzékelő és az Arduino összekapcsolásáról.
A motor árnyékolásának legalább 2 kimenettel kell rendelkeznie, és csatlakoztatni kell őket a két motorjához. Normál esetben ezeket a kimeneteket „M1” és „M2” vagy „Motor 1” és „Motor 2” felirattal látják el. Húzza az akkumulátorokat és az akkumulátort a motor pajzsáig, illetve az Arduino-ig. Ne kösse őket keresztbe. A motor pajzsának rendelkeznie kell bemeneti csatornával. Ha vezetékeket használ, csatlakoztassa azokat hálózati adapterekhez.
Programozási magyarázat:
Nyissa meg az Arduino IDE programot. Illessze be az oktatóanyag végén megadott teljes Arduino kódot az IDE-be. Csatlakoztassa Arduino készülékét a számítógéphez. Válassza ki a portot az Eszközök / Port menüben. Kattintson a feltöltés gombra.
Teszteld a robotot. Ha túl kevéssé vagy túl sokat fordul meg, kísérletezzen a késésekkel, amíg tökéletes nem lesz.
Mielőtt belekezdenénk a kódba, telepítenünk kell az Adafruit Motor Shield Library- t az egyenáramú motorok meghajtására. Mivel az L293D motorvezérlő pajzsot használjuk, innen le kell töltenünk az AFmotor Library-t. Ezután adja hozzá az Arduino IDE könyvtár mappájához. Nevezze át AFMotor névre . További információ a könyvtár telepítéséről.
A kód egyszerű és könnyen érthető, de itt néhány részt elmagyaráztunk:
A kód alatt beállítja a robotot. Először felvettük az Adafruit könyvtárat a motorvezérlő pajzsos motorok vezetésére. Ezt követően meghatároztuk a Trig pin és az Echo pin elemeket. Beállítja a motorokat is. Beállítja a Trig pin kimenetet és az Echo pin bemenetet.
#include #define trigPin 12 #define echoPin 13 AF_DCMotor motor1 (1, MOTOR12_64KHZ); AF_DCMotor2 motor (2, MOTOR12_8KHZ); void setup () {pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); }
A kód alatt az Arduino azt mondja, hogy hurkolja a következő parancsokat. Ezt követően az érzékelővel továbbítja és fogadja az ultrahangos hangokat. Kiszámítja a távolságot az objektumtól, amint az ultrahangos hullámok visszapattannak, miután megjegyezte, hogy az objektum a beállított távolságon belül van, felszólítja az Arduino-t, hogy ennek megfelelően forgassa el a motorokat.
void loop () {hosszú időtartam, távolság; digitalWrite (trigPin, LOW); késleltetés mikroszekundum (2); digitalWrite (trigPin, HIGH); késleltetés mikroszekundum (10); digitalWrite (trigPin, LOW); időtartam = pulseIn (echoPin, HIGH); távolság = (időtartam / 2) / 29,1; if (távolság <20) {motor1.setSpeed (255); motor2.setSpeed (0); motor1.run (VISSZA); motor2.run (VISSZA); késés (2000); // EZT VÁLTOZZA A ROBOT MEGfordulásának megfelelően.
Ez a robotot megfordítja az egyik motor forgatásával, a másik stagnálásával.
A kód alatt a robot mindkét motort ugyanabba az irányba fordítja, hogy előre mozogjon, amíg egy tárgyat nem észlel a fent említett határban.
else {motor1.setSpeed (160); // EZT VÁLTOZZA SZERINT, HOGY GYORSAN MEG KELL A ROBOTJÁT. motor2.setSpeed (160); // VÁLTOZZON EZT UTÁN AZ ÉRTÉKRE, AMINT FELÉBE TETTE. motor1.run (ELŐRE); motor2.run (ELŐRE); }