- Potrebni materiali:
- Shema vezja slepe palice:
- Program Arduino za pametno slepo palico:
- Arduino Blind Stick v akciji:
Ste že slišali za Hugha Herra? Je znan ameriški plezalec, ki je razbil omejitve svojih invalidnosti; je močno prepričan, da bi tehnologija lahko invalidom pomagala živeti normalno življenje. V enem od svojih predavanj na TED-u je Herr dejal: " Ljudje niso invalidi. Človek nikoli ne more biti zlomljen. Naše grajeno okolje, naše tehnologije so pokvarjene in onemogočene. Smo ljudje, ni treba sprejeti svoje omejitve, vendar lahko prenese invalidnost skozi tehnološke inovacije ". To niso bile samo besede, ampak zanje je živel svoje življenje, danes uporablja protetske noge in trdi, da živi normalno življenje. Tako da, tehnologija lahko resnično nevtralizira človeško invalidnost; s tem v mislih uporabimo nekaj preprostih razvojnih plošč in senzorjev za izdelavo ultrazvočne slepe palice s pomočjo Arduina ki bi lahko naredil več kot le palico za slabovidne osebe.
Ta pametna palica bo imela ultrazvočni senzor za zaznavanje oddaljenosti od katere koli ovire, LDR za zaznavanje svetlobnih pogojev in RF daljinski upravljalnik, s katerim bi lahko slepi mož na daljavo našel palico. Vse povratne informacije bodo slepemu posredovane prek zvočnega signala. Seveda lahko namesto Buzzerja uporabite vibrator in s svojo kreativnostjo še veliko napredujete.
Potrebni materiali:
- Arduino Nano (katera koli različica bo delovala)
- Ultrazvočni senzor HC-SR04
- LDR
- Zvočni signal in LED
- 7805
- 433MHz RF oddajnik in sprejemnik
- Upori
- Kondenzatorji
- Pritisni gumb
- Perf deska
- Komplet za spajkanje
- 9V baterije
Vse potrebne komponente za ta projekt pametne palice za slepe palice lahko kupite tukaj.
Shema vezja slepe palice:
Ta projekt Arduino Smart Blind Stick zahteva dva ločena vezja. Eno je glavno vezje, ki bo nameščeno na palici slepca. Drugo je majhno daljinsko vezje RF oddajnika, ki bo uporabljeno za iskanje glavnega vezja. Shema vezja glavne plošče za izdelavo slepe palice z uporabo ultrazvočnega senzorja je prikazana spodaj:
Kot lahko vidimo, se Arduino Nano uporablja za nadzor vseh senzorjev, vendar lahko to pametno palico za slepo izdelate tudi z uporabo arduino uno, vendar po istih izrezkih in programu. Celotno ploščo napaja 9V baterija, ki je nastavljena na + 5V z regulatorjem napetosti 7805. Senzor Ultrazvočni poganja 5V in sprožilec in ECHO je zvezana z Arduino Nano pin 3 in 2, kot je prikazano zgoraj. LDR je povezan z uporom vrednosti 10K, da se tvori potencial delilnika in je razlika v napetosti se prebere Arduino ADC pin A1. ADC pin A0 se uporablja za branje signala iz RF sprejemnika. Izhod plošče daje zvočni signal, ki je povezan z zatičem 12.
RF daljinski vezje je prikazano spodaj. Nadalje je pojasnjeno tudi njegovo delovanje.
Uporabil sem majhen kramp, da je to vezje RF daljinskega upravljalnika delovalo. Običajno pri uporabi tega 433 MHz RF modula za delovanje potrebujejo enkoder in dekoder ali dva MCU, tako kot v prejšnjem vezju RF oddajnika in sprejemnika, smo uporabili HT12D in HT12E, IC dekodirnika in dajalnika. Toda v naši aplikaciji potrebujemo samo sprejemnik, da zazna, ali oddajnik pošilja nekatere signale. Podatkovni zatič oddajnika je torej povezan z ozemljitvijo ali Vcc napajalnika.
Podatkovni zatič sprejemnika se prenese skozi RC filter in nato preda Arduinu, kot je prikazano spodaj. Zdaj, ko pritisnete gumb, sprejemnik večkrat izpiše neko konstantno vrednost ADC. Te ponovitve ni mogoče opaziti, če gumba ne pritisnete. Tako pišemo program Arduino, da preverimo, ali se ponavljajo vrednosti, da zaznamo, ali je gumb pritisnjen. Tako lahko slepa oseba sledi svoji palici. Tukaj lahko preverite: kako deluje RF oddajnik in sprejemnik.
S pomočjo deske za spajkanje spajkam vse povezave, tako da se s palico dotakne. Lahko pa jih naredite tudi na plošči. To so plošče, ki sem jih izdelal za ta projekt slepe palice z uporabo arduina.
Program Arduino za pametno slepo palico:
Ko smo pripravljeni s svojo strojno opremo, lahko Arduino povežemo z našim računalnikom in začnemo programirati. Popolna koda uporablja za te strani je mogoče najti na dnu te strani, ga lahko naložite neposredno na vaš Arduino krovu. Če pa vas zanima, kako deluje koda, preberite naprej.
Kot vsi programi tudi mi začnemo z void setup (), da inicializiramo vhodne izhodne nožice. V našem programu je buzzer in sprožilni zatič izhodna naprava, echo zatič pa vhodna naprava. Inicializiramo tudi serijski monitor za odpravljanje napak.
void setup () {Serial.begin (9600); pinMode (Buzz, OUTPUT); digitalWrite (Buzz, LOW); pinMode (sprožilec, IZHOD); pinMode (echo, INPUT); }
Znotraj glavne zanke beremo vse podatke senzorjev. Začnemo z branjem podatkov senzorja ultrazvočnega senzorja za razdaljo, LDR za jakost svetlobe in RF signala, da preverimo, ali je gumb pritisnjen. Vsi ti podatki se shranijo v spremenljivko, kot je prikazano spodaj, za prihodnjo uporabo.
izračuna_dalja (sprožilec, odmev); Signal = analogRead (na daljavo); Intens = analogRead (Light);
Začnemo s preverjanjem oddaljenega signala. S spremenljivko, imenovano similar_count , preverimo, kolikokrat se iste vrednosti ponavljajo iz RF sprejemnika. Ta ponovitev se bo zgodila šele, ko pritisnete gumb. Torej sprožimo daljinsko pritisnjen alarm, če število preseže vrednost 100.
// Preveri, če je pritisnjen daljinski upravljalnik int temp = analogRead (Remote); podoben_števek = 0; while (Signal == temp) {Signal = analogRead (Remote); podoben_števek ++; } // Če je pritisnjen na daljavo, če (podoben_števek <100) {Serial.print (podoben_števek); Serial.println ("Oddaljeno stisnjeno"); digitalWrite (Buzz, HIGH); zakasnitev (3000); digitalWrite (Buzz, LOW); }
Preverite ga lahko tudi na Serial Monitor v računalniku:
Nato preverimo jakost svetlobe okrog slepega. Če LDR daje vrednost, manjšo od 200, se domneva, da je zelo temno in ga opozorimo z zvočnim signalom z določenim tonom zakasnitve z 200 ms. Če je jakost večja od 800, je tudi opozorilo z drugim tonom. Ton in intenzivnost alarma lahko enostavno spremenite s spreminjanjem ustrezne vrednosti v spodnji kodi.
// Če je zelo temno, če (Intens <200) {Serial.print (Intens); Serial.println ("Bright Light"); digitalWrite (Buzz, HIGH); zamik (200); digitalWrite (Buzz, LOW); zamik (200); digitalWrite (Buzz, HIGH); zamik (200); digitalWrite (Buzz, LOW); zamik (200); zamuda (500); } // Če je zelo svetlo, če (Intens> 800) {Serial.print (Intens); Serial.println ("Šibka svetloba"); digitalWrite (Buzz, HIGH); zamik (500); digitalWrite (Buzz, LOW); zamik (500); digitalWrite (Buzz, HIGH); zamik (500); digitalWrite (Buzz, LOW); zamik (500); }
Na koncu začnemo meriti razdaljo do katere koli ovire. Če je izmerjena razdalja večja od 50 cm, alarma ne bo. Ampak, če je manj kot 50 cm alarm se bo začela s piskajoči brenčalo. Ko se predmet približa zvočniku, se tudi interval piskanja zmanjša. Bližje kot je predmet, hitreje se oglasi zvočni signal. To lahko storite tako, da ustvarite zamudo, ki je sorazmerna z izmerjeno razdaljo. Ker delay () v Arduinu ne more sprejeti spremenljivk, moramo uporabiti for zanko, ki temelji na izmerjeni razdalji, kot je prikazano spodaj.
if (dist <50) {Serial.print (dist); Serial.println ("Opozorilo na objekt"); digitalWrite (Buzz, HIGH); za (int i = dist; i> 0; i--) zamudo (10); digitalWrite (Buzz, LOW); za (int i = dist; i> 0; i--) zamudo (10); }
Preberite več o merjenju razdalje z ultrazvočnim senzorjem in Arduinom.
Program lahko enostavno prilagodite vaši aplikaciji s spreminjanjem vrednosti, ki jo uporabljamo za primerjavo. Če sprožite lažni alarm, za odpravljanje napak uporabljate serijski monitor. Če imate kakršne koli težave, lahko v spodnjem razdelku za komentar objavite svoja vprašanja
Arduino Blind Stick v akciji:
Končno je čas, da preizkusimo naš projekt arduino slepe palice. Prepričajte se, da so povezave izvedene v skladu z vezjem in da je program uspešno naložen. Zdaj napajajte obe vezji z 9V baterijo in začeli boste videti rezultate. Pomaknite senzor Ultra Sonic bližje predmetu in opazili boste zvočni signal in ta frekvenca piska se bo povečala, ko se bo palica približala predmetu. Če je LDR pokrit s temo ali če je preveč svetlobe, se oglasi zvočni signal. Če je vse normalno, se zvočni signal ne oglasi.
Ko pritisnete gumb na daljinskem upravljalniku, se oglasi zvočni signal. Popolno delovanje te pametne palice za slepe z uporabo Arduina je prikazano v videoposnetku na koncu te strani. Za namestitev celotnega sklopa uporabljam tudi majhno palico, lahko uporabite večjo ali dejansko slepo palico in jo aktivirate.
Če vaš zvočni signal vedno piska, to pomeni, da se alarm sproži lažno. Serijski monitor lahko odprete, da preverite parametre in preverite, kateri je kritičen, ter to prilagodite. Kot vedno lahko za pomoč poiščete težavo v razdelku za komentarje. Upam, da ste projekt razumeli in ste z veseljem kaj gradili.