Hogyan készítsünk intelligens botot vak emberek számára az Arduino használatával?

Határozottan híve vagyok Helen Keller idézetének, amely kimondja 'Az egyetlen dolog, ami rosszabb, mint a vak, a látás, de nincs látás'. A technológia segíthet a fogyatékkal élőknek normális életet élni, mint más emberek. Mindenki ismeri a nevezett indiai lányt Arunima Sinha aki egy vonatbalesetben elvesztette a lábát, és élete végéig a protetikus lábakon kellett járnia. Baleset után úgy döntött, hogy protetikus lábakon megmászik a Mount Everestet, és ezért a legújabb technológia utat nyitott számára álma megvalósításához.



Smart Stick

A technológia valóban semlegesítheti az emberi fogyatékosságot; ezt szem előtt tartva használjuk a Arduino és egyszerű érzékelők egy vak ember botjának felépítéséhez ez életmentő lehet a látássérültek számára. Az ultrahangos érzékelőt egy botba kell felszerelni, amely érzékeli az ember távolságát bármely akadálytól, egy LDR-t a fényviszonyok érzékeléséhez, és egy rádiófrekvenciás távirányítót, amelyet a vak használhat a bot távoli felkutatásához. Minden utasítást a vak kap egy zümmögőn keresztül. Használhatunk rezgőmotort a Zümmögő helyett, és kreativitásunkkal sokkal többet előreléphetünk.



Smart Stick vak emberek számára (Kép jóvoltából: Áramkör bemutatása)



Hogyan kell használni az Arduino-t az áramkör tervezésénél?

Most, hogy ismerjük a projekt absztraktját, lépjünk előre, és gyűjtsünk különböző információkat a munka megkezdéséhez. Először összeállítjuk az alkatrészek listáját, majd röviden áttanulmányozzuk őket, majd az összes komponenst összeállítva egy működő rendszert készítünk.



1. lépés: Szükséges alkatrészek (hardver)

  • LDR
  • Berregő
  • VEZETTE
  • Supperhetrodine adó és vevő
  • Ellenállás
  • Nyomógomb
  • Veroboard
  • 9V-os akkumulátor
  • Digitális multiméter
  • Ragasztópisztoly

2. lépés: Használt alkatrészek (szoftver)

  • Proteus 8 Professional (letölthető innen: Itt )

A Proteus 8 Professional letöltése után tervezze meg rajta az áramkört. Ide illesztettünk szoftverszimulációkat, hogy a kezdők számára kényelmes legyen az áramkör megtervezése és a hardver megfelelő csatlakoztatása.

3. lépés: Az alkatrészek tanulmányozása

Most, hogy összeállítottuk az összes összetevőt, amelyet ebben a projektben használni fogunk. Menjünk tovább egy lépéssel tovább, és végezzünk egy rövid tanulmányt az összes fő komponensről.

  1. Arduino Nano: Az Arduino nano egy mikrokontroller kártya, amelyet egy áramkörben különböző feladatok vezérlésére vagy végrehajtására használnak. Égetünk egy C kód az Arduino Nano-n, hogy elmondja a mikrokontroller táblának, hogyan és milyen műveleteket hajtson végre. Az Arduino Nano pontosan ugyanolyan funkcionalitással rendelkezik, mint az Arduino Uno, de meglehetősen kicsi. Az Arduino Nano táblán található mikrovezérlő az ATmega328p.

    Arduino Nano



  2. HC-SR04 ultrahangos érzékelő: A HC-SR04 tábla egy ultrahangos érzékelő, amely két tárgy közötti távolság meghatározására szolgál. Adóból és vevőből áll. Az adó átalakítja az elektromos jelet ultrahangos jellé, a vevő pedig az ultrahangos jelet visszaalakítja elektromos jellé. Amikor az adó ultrahangos hullámot küld, akkor az visszatükröződik, miután ütközött egy bizonyos objektummal. A távolság kiszámítása az idő felhasználásával történik, amelyre az ultrahangos jelnek az adóból történő visszajutása és a vevőhöz való visszatérése szükséges.

    Ultrahangos érzékelő

  3. 433mhz RF adó és vevő: Egy meghatározott 433MHz frekvencián működik. Számos más rádiófrekvenciás eszköz kapható a piacon, és hozzájuk képest egy RF modul teljesítménye számos tényezőtől függ, például amikor az adó teljesítményét növeljük, nagy kommunikációs távolság fog összegyűlni. Ez nagy villamosenergia-lemerülést okoz az adóeszközön, ami rövidebb élettartamot eredményez az akkumulátorral működő eszközöknél. Ha ezt az eszközt nagyobb átviteli teljesítménnyel használjuk, akkor a készülék interferenciát okoz más RF eszközökkel.

    RF adó és vevő

  4. 7805 Feszültségszabályozó: A feszültségszabályozók jelentős szerepet játszanak az elektromos áramkörökben. Még akkor is, ha a bemeneti feszültség ingadozik, ez a feszültségszabályozó állandó kimeneti feszültséget biztosít. A legtöbb projektben megtalálhatjuk a 7805 IC alkalmazását. A 7805 név két jelentést jelöl, a „78” azt jelenti, hogy pozitív feszültségszabályozó, a „05” pedig azt, hogy 5 V-ot szolgáltat kimenetként. Tehát a feszültségszabályozónk + 5V kimeneti feszültséget biztosít. Ez az IC képes 1,5A körüli áramot kezelni. A nagyobb áramot fogyasztó projektek számára hűtőborda ajánlott. Például, ha a bemeneti feszültség 12V, és 1A-t fogyaszt, akkor (12-5) * 1 = 7W. Ez a 7 Watt hőként eloszlik.

    Feszültségszabályozó

4. lépés: Az áramkör összeállítása

Két áramkört kell terveznünk ehhez a projekthez. Az első kört a vak ember botjának megfelelő helyén helyezzük el, a második pedig egy RF adó áramkör és arra fogják használni, hogy megtudják a fő áramkört. Mielőtt megterveznénk az áramkört a Proteus-on, be kell építenünk az RF vevő proteus könyvtárát a szoftverbe. A könyvtár letölthető innen: Itt és a könyvtár letöltése után nyissa meg a Könyvtár mappa és másolat MODULO_RF.LIB fájlt, és illessze be a Proteus Könyvtár mappájába. Ha nem találja a könyvtár mappát, kattintson a (C: Program Files (x86) Labcenter Electronics Proteus 8 Professional KÖNYVTÁR) elemre. Ha elkészítette ezt a megnyitott MODELS mappát, másolja az RX.MDF fájlt, és illessze be a proteus MODELS mappába. Ha nem találja a models mappát, kattintson a (C: Program Files (x86) Labcenter Electronics Proteus 8 Professional MODELS) elemre.

Áramköri ábra (Kép jóvoltából: Áramkör összefoglalása)

Az a mikrovezérlő, amely az áramkör összes érzékelőjének vezérlésére szolgál Arduino Nano. Az áramkör működéséhez használt tápegység 9V-os akkumulátor, és ezt a 9V-os feszültséget 5V-ra csökkentik a 7805 Feszültségszabályozó. Az áramkörben látható, hogy a Ultrahangos érzékelő táplálja a feszültségszabályozó Vout-ja. Az érzékelő ravasz és visszhangcsapjai az Arduino 3. és 2. érintkezőjéhez vannak csatlakoztatva. A Fényfüggő ellenállás (LDR) csatlakozik a 10k értékű potenciométerhez és a Analóg-digitális Az Arduino A1 konverziós csapja ehhez a ponthoz van csatlakoztatva, hogy megjegyezze a feszültségkülönbséget. Tudnunk kell az RF vevő által kibocsátott jelet, ezért csatlakoztattuk az AD0 ADC tűt az RF vevő jelének kiolvasásához. Az egész áramkör kimenetét a berregő így a hangjelző pozitív csapja az Arduino 12 érintkezőjéhez, a negatív csap pedig az ultrahangos érzékelő földjéhez csatlakozik.

Az RF távadót nem kapcsoltuk be kapcsolási rajzunkba, mert külön fogjuk összeállítani hardveren. Amikor 433 MHz-es szuperheterodin adó-vevőt és vevőt használunk, mikrovezérlőre van szükségünk, hogy összekapcsoljuk őket, de ebben a projektben az egyetlen adóra van szükségünk, amely jeleket küld a vevőnek, így összekötöttük az adó adatcsapját a Vcc-vel. A vevő adattüskéjét átengedjük az RC szűrőn, majd összekapcsoljuk az Arduino A0 adatcsapjával. Ismételten megnyomjuk az adón elhelyezett nyomógombot, és a gomb megnyomásakor a vevő bármilyen állandó értéket ad kimenetként.

RF adó

5. lépés: A hardver összeállítása

Miután lefuttattuk a no szimulációt, képesek vagyunk prototípust készíteni. Míg az alkatrészeket forrasztja a Perf táblán, fordítson különös figyelmet az Arduino Nano csapjai felé. győződjön meg arról, hogy a csapok nem érintik egymást, különben az Arduino károsodhat. Keressen egy botot otthonában, és csatlakoztassa rá az Arduino és az RF vevőből álló áramkört. A forró ragasztópisztollyal rögzítheti az áramkört a botra, és jobb, ha valamilyen ragasztót tesz a pozitív és a negatív kapocsra, hogy a tápegység vezetékei ne válhassanak szét, ha a botot szilárdan a földre simítják.

Hardveren összeállított áramkör (Kép jóvoltából: Áramkör-összefoglalás)

6. lépés: Az Arduino használatának megkezdése

Ha még nem ismeri az Arduino IDE-t, ne aggódjon, mert az alábbiakban a kód égetésének világos lépéseit láthatja a mikrokontroller táblán az Arduino IDE használatával. Az Arduino IDE legújabb verzióját innen töltheti le itt és kövesse az alábbi lépéseket:

  1. Amikor az Arduino kártya csatlakozik a számítógépéhez, nyissa meg a „Vezérlőpult” elemet, majd kattintson a „Hardver és hang” elemre. Ezután kattintson az „Eszközök és nyomtatók” elemre. Keresse meg annak a portnak a nevét, amelyhez Arduino táblája csatlakozik. Az én esetemben ez a „COM14”, de lehet, hogy más lesz a számítógépén.

    Port keresése

  2. Kattintson az Eszköz menüre. és állítsa a táblát Arduino Nano a legördülő menüből.

    Tábla beállítása

  3. Ugyanabban az Eszköz menüben állítsa be a portot arra a portszámra, amelyet korábban a Eszközök és nyomtatók .

    Port beállítása

  4. Ugyanebben az Eszköz menüben állítsa a Processort értékre ATmega328P (Old Bootloader).

    Processzor

  5. Töltse le az alább csatolt kódot, és illessze be az Arduino IDE-be. Kattintson a feltölteni gombot a mikrovezérlő-alaplapon lévő kód beírásához.

    Feltöltés

A kód letöltéséhez kattints ide.

7. lépés: A kód megértése

A kód jól kommentált és magától értetődő. De mégis, az alábbiakban ismertetjük:

  1. A kód kezdetekor inicializálják az Arduino Nano kártya összes érintkezõjét, amely az ultrahangos érzékelõhöz és az RF modulhoz csatlakozik.
const int ravasz = 3; // Az 1. érzékelő kioldócsapja const int echo = 2; // Az 1. érzékelő visszhangcsapja const int Buzz = 13; // Rögzítés a buzzer csatlakoztatásához const int Remote = A0; const int Fény = A1; régóta_vett; int dist; int Jel; int Intens; int hasonló_szám;

2. void setup () egy olyan függvény, amelyet a felhasznált csapok beállítására használunk, mint BEMENET és KIMENET. Az adatátviteli sebességet ebben a funkcióban határozzuk meg. A Baud Rate az a kommunikációs sebesség, amellyel a mikrokontroller kártya kommunikál a vele integrált érzékelőkkel.

void setup () {Soros.kezdés (9600); pinMode (Buzz, OUTPUT); digitalWrite (Buzz, LOW); pinMode (trigger, OUTPUT); pinMode (visszhang, INPUT); }

3. Most létrehozunk egy függvényt, amely kiszámítja a távolságot.

void calc_distance (int trigger, int echo) {digitalWrite (trigger, LOW); késleltetés mikroszekundum (2); digitalWrite (trigger, HIGH); késleltetés mikroszekundum (10); digitalWrite (trigger, LOW); time_taken = pulseIn (visszhang, HIGH); dist = elvett idő * 0,034 / 2; ha (dist> 300) dist = 300; }

Négy. void loop () olyan funkció, amely egy ciklus alatt ismételten fut. Ebben a funkcióban elmondjuk a mikrokontroller táblának, hogyan és milyen műveleteket kell végrehajtani. A fő hurokban az érzékelők adatait fogjuk olvasni. Itt először a ravasztüskét úgy állítják be, hogy jelet küldjön, amelyet a visszhangcsap érzékel. Bizonyos feltételek érvényesek a hangjelzés folyamatos hangzására, ha egy objektumot bizonyos távolságra észlelnek. A hangjelző kis szünettel sípol, ha sötétet észlel, és kissé nagyobb töréssel sípol, ha fényeset észlel.

void loop () {// végtelen hurok kiszámítása_távolság (ravaszt, visszhangot); Jel = analóg olvasás (távoli); Intens = analóg olvasás (fény); // 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 ++; } // Ha távoli nyomva van, ha (hasonló_szám<100) { Serial.print(similar_count); Serial.println('Remote Pressed'); digitalWrite(Buzz,HIGH);delay(3000);digitalWrite(Buzz,LOW); } //If very dark if (Intens800) { Serial.print(Intens); Serial.println('Low Light'); digitalWrite(Buzz,HIGH);delay(500);digitalWrite(Buzz,LOW);delay(500);digitalWrite(Buzz,HIGH);delay(500); digitalWrite(Buzz,LOW);delay(500); } if (dist<50) { Serial.print(dist); Serial.println('Object Alert'); digitalWrite(Buzz,HIGH); for (int i=dist; i>0; i) késés (10); digitalWrite (Buzz, LOW); (int i = dist; i> 0; i-) késleltetéshez (10); } //Serial.print('dist= '); //Sorial.println(dist); //Serial.print('Similar_count= '); //Serial.println(similar_count); //Sorial.print('Intens= '); //Serial.println(Intenens); }

8. lépés: Tesztelés

Mivel megértettük a kódot, feltöltöttük a mikrovezérlőre és összeszereltük a hardvert is, most itt az ideje, hogy teszteljük a projektünket. A tesztelés előtt ellenőrizze, hogy a csatlakozások megfelelőek-e, és ellenőrizze az áramkör folytonosságát a digitális többmérővel. Fordulásért TOVÁBB mindkét áramkör 9V-os akkumulátort használ. Helyezzen egy tárgyat arra a felületre, amelyen teszteli, és mozgassa elé az ultrahangos érzékelőt, és észrevehető, hogy a hangjelző hangja növekszik, amikor az érzékelő közelebb kerül az objektumhoz. Két lehetőség van, ha az LDR sötét van, vagy ha napfényben tesztel, akkor a hangjelző sípolni kezd. Ha megnyomja a nyomógombot az RF adón, a hangjelző hosszú ideig sípol. Ha a hangjelző hosszú ideig csipog, az azt jelenti, hogy a riasztást hamisan indítják. Ha ilyen hibával szembesül, nyissa meg az Arduino IDE soros monitorját, és ellenőrizze az ilyen problémát okozó paramétereket.

A hardver tesztelése (Picture Courtesy: Circuit Digest)

Ez volt a legegyszerűbb módszer az intelligens bot készítésére vak emberek számára az Arduino használatával. Kövesse az összes fent említett lépést, és a projekt sikeres tesztelése után keressen egy fogyatékkal élő személyt, és ajánlja fel neki ezt a projektet, hogy megkönnyítse az életét.