- Szükséges anyagok:
- Vakbot áramköri rajza:
- Arduino program az intelligens vak bot számára:
- Arduino Blind Stick in Action:
Hallottál már Hugh Herrről? Híres amerikai sziklamászó, aki szétzilálta fogyatékosságának korlátait; határozottan hisz abban, hogy a technológia segíthet a fogyatékkal élőknek a normális életben. Az egyik TED-beszélgetésében Herr azt mondta: „ Az emberek nem fogyatékosak. Egy embert soha nem lehet megtörni. Épített környezetünk, technológiáink sérültek és letiltottak. Mi az emberek nem kell elfogadni a korlátai, de átadhatja a fogyatékosság a technológiai innováció ”. Ezek nem csak szavak voltak, hanem életét is nekik élte, ma protetikus lábakat használ, és azt állítja, hogy normális életet él. Tehát igen, a technológia valóban semlegesítheti az emberi fogyatékosságot; ezt szem előtt tartva, használjunk néhány egyszerű fejlesztési táblát és érzékelőt egy ultrahangos vak sétabot felépítésére az Arduino segítségével amely nem csupán botot tudna nyújtani a látássérültek számára.
Ennek az intelligens botnak ultrahangos érzékelője lesz az akadályoktól való távolság érzékeléséhez, az LDR-hez a fényviszonyok érzékeléséhez, valamint egy rádiófrekvenciás távirányítóval, amellyel a vak távolról megtalálhatja botját. Minden visszajelzést a vak kap egy zümmögőn keresztül. Természetesen használhat vibrátoros motort a hangjelző helyett, és sokkal többet léphet előre kreativitása segítségével.
Szükséges anyagok:
- Arduino Nano (bármelyik verzió működni fog)
- HC-SR04 ultrahangos érzékelő
- LDR
- Zümmögő és LED
- 7805
- 433MHz RF adó és vevő
- Ellenállások
- Kondenzátorok
- Nyomógomb
- Tökéletes tábla
- Forrasztókészlet
- 9V-os elemek
Innen megvásárolhatja az intelligens vakbot- projekt összes szükséges alkatrészét.
Vakbot áramköri rajza:
Ehhez az Arduino Smart Blind Stick projekthez két külön áramkörre van szükség. Az egyik a fő áramkör, amely a vak ember botjára kerül. A másik egy kis távoli RF adó áramkör, amelyet a fő áramkör felkutatására használnak. Az alaplap áramköri vázlata vak bot készítéséhez ultrahangos érzékelő segítségével az alábbiakban látható:
Mint láthatjuk, egy Arduino Nano- t használnak az összes érzékelő vezérléséhez, de ezt az intelligens vakrudat is megépítheti az arduino uno használatával, de ugyanazokat a pinoutokat és programokat követve. A teljes panelt egy 9 V-os akkumulátor táplálja, amelyet 7805-ös feszültségszabályozóval + 5 V-ra állítanak. Az ultrahangos érzékelő tápellátása 5 V, a ravaszt és az Echo csapot pedig az Arduino 3. és 2. nano csatlakozójához kell csatlakoztatni, a fentiek szerint. Az LDR egy 10K értékű ellenállással van összekötve, hogy potenciálosztót képezzen, és a feszültségkülönbséget az Arduino ADC A1 tűje olvassa fel. Az ADC A0 tűt az RF vevő jelének kiolvasására használják. A tábla kimenetét a 12. tűhöz csatlakoztatott hangjelző adja.
Az RF távoli áramkör az alábbiakban látható. Működését tovább magyarázzák.
Egy kis feltörést használtam, hogy működjön ez az RF távirányító áramkör. Általában ennek a 433 MHz-es RF modulnak a használatához kódoló és dekóder vagy két MCU szükséges, hasonlóan az előző RF adó és vevő áramkörünkhöz a HT12D és HT12E, a dekóder és a kódoló IC-t használtuk. Alkalmazásunkban azonban csak a vevőre van szükségünk annak felismerésére, hogy az adó küld-e valamilyen jelet. Tehát az adó Data pin-je a tápegység földeléséhez vagy Vcc-jéhez csatlakozik.
A vevő adattüskéjét átengedjük egy RC szűrőn, majd az alábbiak szerint átadjuk az Arduino-nak. Most, amikor a gombot megnyomja, a vevő kimenetet ad meg állandó ADC értékkel. Ez az ismétlés nem figyelhető meg, ha a gombot nem nyomják meg. Tehát megírjuk az Arduino programot, hogy ellenőrizzük az ismétlődő értékeket, hogy felismerjük-e a gombot. Tehát egy vak ember nyomon követheti botját. Itt ellenőrizheti: hogyan működik az RF adó és vevő.
Egy perf táblát használtam az összes csatlakozás forrasztásához, hogy az érintetlen legyen a bottal. De kenyérlapon is elkészítheti őket. Ezeket a táblákat készítettem ehhez a vak bot projekthez az arduino segítségével.
Arduino program az intelligens vak bot számára:
Miután elkészültünk a hardverünkkel, csatlakoztathatjuk az Arduino-t a számítógépünkhöz, és elkezdhetjük a programozást. Az oldalhoz használt teljes kód az oldal alján található, közvetlenül feltöltheti Arduino táblájára. Ha azonban kíváncsi a kód működésére, olvassa el tovább.
Mint minden program, úgy mi is a void setup () paranccsal kezdjük az Input Output csapok inicializálását. Programunkban a Buzzer and Trigger pin egy kimeneti eszköz, az Echo pin pedig egy Input eszköz. Inicializáljuk a soros monitort a hibakereséshez is.
void setup () {Soros.kezdés (9600); pinMode (Buzz, OUTPUT); digitalWrite (Buzz, LOW); pinMode (trigger, OUTPUT); pinMode (visszhang, INPUT); }
A fő hurok belsejében az összes érzékelő adatait leolvassuk. Először az ultrahangos érzékelő távolságának, az LDR fényintenzitásának és az RF jelnek az érzékelő adatainak beolvasásával ellenőrizzük, hogy megnyomtuk-e a gombot. Mindezeket az adatokat egy változóba menti, az alábbiak szerint, későbbi felhasználás céljából.
kiszámítja a távolságot (ravaszt, visszhangot); Jel = analóg olvasás (távoli); Intens = analóg olvasás (fény);
Kezdjük a Remote jel ellenőrzésével. A Similar_count nevű változóval ellenőrizzük, hogy ugyanazokat az értékeket hányszor ismételjük meg az RF vevőtől. Ez az ismétlés csak a gomb megnyomásakor következik be. Tehát akkor indítjuk el a Távoli riasztást, ha a számlálás meghaladja a 100 értéket.
// Ellenőrizze, hogy megnyomta-e a Távvezérlőt int temp = analogRead (Távoli); hasonló_szám = 0; while (Signal == temp) {Signal = analogRead (Remote); hasonló_szám ++; } // távoli megnyomásakor if (hasonló_szám <100) {Soros nyomtatás (hasonló_szám); Serial.println ("Távoli préselés"); digitalWrite (Buzz, HIGH); késleltetés (3000); digitalWrite (Buzz, LOW); }
A számítógépes Serial Monitoron is ellenőrizheti:
Ezután ellenőrizzük a vak intenzitását. Ha az LDR 200-nál kisebb értéket ad, akkor feltételezzük, hogy nagyon sötét, és figyelmeztetést adunk neki a hangjelzőn keresztül, egy speciális késleltetési hanggal, 200 ms-mal. Ha az intenzitás nagyon világos, ami meghaladja a 800-at, akkor egy másik hangjelzéssel is figyelmeztetünk. A riasztási hang és intenzitás az alábbi kód megfelelő értékének megváltoztatásával könnyen változtatható.
// Ha nagyon sötét, ha (Intens <200) {Soros.nyomtatás (Intens); Serial.println ("Fényes fény"); digitalWrite (Buzz, HIGH); késleltetés (200); digitalWrite (Buzz, LOW); késleltetés (200); digitalWrite (Buzz, HIGH); késleltetés (200); digitalWrite (Buzz, LOW); késleltetés (200); késés (500); } // Ha nagyon világos, ha (Intens> 800) {Soros.nyomtatás (Intens); Serial.println ("gyenge fény"); digitalWrite (Buzz, HIGH); késleltetés (500); digitalWrite (Buzz, LOW); késleltetés (500); digitalWrite (Buzz, HIGH); késleltetés (500); digitalWrite (Buzz, LOW); késleltetés (500); }
Végül elkezdjük mérni a távolságot bármely akadálytól. Nem lesz riasztás, ha a mért távolság meghaladja az 50 cm-t. De ha kisebb, mint 50 cm, a riasztás a hangjelzés sípolásával indul. Amint az objektum közelebb kerül a hangjelzőhöz, a sípolás intervalluma is csökken. Minél közelebb van az objektum, annál gyorsabban sípol a hangjelzés. Ezt úgy lehet megtenni, hogy késleltetést hozunk létre, amely arányos a mért távolsággal. Mivel az Arduino késleltetése () nem tudja elfogadni a változókat, a for ciklust kell használnunk, amely a mért távolság alapján, az alábbiakban látható módon.
if (dist <50) {Soros nyomtatás (dist); Serial.println ("Objektum riasztás"); digitalWrite (Buzz, HIGH); (int i = dist; i> 0; i-) késleltetéshez (10); digitalWrite (Buzz, LOW); (int i = dist; i> 0; i-) késleltetéshez (10); }
Tudjon meg többet a távolság méréséről az Ultrahangos érzékelő és az Arduino segítségével.
A program könnyen adaptálható az alkalmazásához az általunk összehasonlított érték megváltoztatásával. Hamis riasztás esetén a soros monitort használja a hibakeresésre. Ha bármilyen problémája van, használhatja az alábbi megjegyzések részt, hogy feltegye kérdéseit
Arduino Blind Stick in Action:
Végül itt az ideje, hogy teszteljük a vak bot arduino projektünket. Győződjön meg arról, hogy a kapcsolatok a kapcsolási rajz szerint történtek, és a program sikeresen feltöltődött. Most mindkét áramkört 9 V-os akkumulátorral táplálja, és el kell kezdenie látni az eredményeket. Vigye az Ultra Sonic érzékelőt közelebb az objektumhoz, és észreveszi, hogy a Hangjelző sípol, és ez a hangjelzés gyakorisága növekszik, amikor a bot közelebb kerül az objektumhoz. Ha az LDR sötétben van, vagy ha túl sok a fény, a hangjelző sípol. Ha minden normális, akkor a hangjelző nem sípol.
Amikor megnyomja a távirányító gombját, a hangjelző hosszú hangjelzést ad. A vakok számára készült Smart Stick teljes működését az Arduino használatával az oldal végén található videó mutatja. Én is használok egy kis botot a teljes szereléshez. Használhat egy nagyobbat vagy egy tényleges vak botot, és működésbe hozhatja.
Ha a hangjelzője mindig sípol, az azt jelenti, hogy a riasztást hamisan indítják. Megnyithatja a soros monitort, hogy ellenőrizze a paramétereket, és ellenőrizze, hogy melyik esik kritikus helyzetbe, és állítsa be ezt. Mint mindig, a probléma megadásához a megjegyzés részben tehet segítséget. Remélem, megértette a projektet, és élvezett valamit.