- Reikalingos medžiagos:
- Blind Stick grandinės schema:
- „Arduino“ programa „Smart Blind Stick“:
- „Arduino Blind Stick“ veikia:
Ar kada girdėjote apie Hughą Herrą? Tai garsus amerikiečių alpinistas, sugriovęs savo negalios apribojimus; jis yra įsitikinęs, kad technologijos galėtų padėti neįgaliesiems gyventi normalų gyvenimą. Viename iš savo TED pokalbių Herras pasakė: „ Žmonės nėra neįgalūs. Žmogaus niekada negalima palaužti. Mūsų sukurta aplinka, technologijos yra sugadintos ir neįgalios. Mums, žmonėms, nereikia sutikti su savo apribojimais, bet galime perkelti negalią pasitelkdami technologines naujoves “. Tai buvo ne tik žodžiai, bet jis nugyveno savo gyvenimą, šiandien naudojasi protezinėmis kojomis ir tvirtina, kad gyvena normalų gyvenimą. Taigi taip, technologijos iš tikrųjų gali neutralizuoti žmogaus negalią; turėdami tai omenyje, naudokime keletą paprastų „devlopment“ lentų ir jutiklių, kad sukurtume ultragarso akląją lazdą naudodami „Arduino“ kad regėjimo negalią turintiems žmonėms būtų galima atlikti ne tik lazdą.
Ši išmanioji lazda turės ultragarso jutiklį, kad būtų galima nustatyti atstumą nuo bet kokių kliūčių, LDR - apšvietimo sąlygas, ir radijo bangų nuotolinio valdymo pultą, kuriuo aklasis galėtų nuotoliniu būdu surasti savo lazdą. Visi atsiliepimai bus pateikiami akliesiems per „Buzzer“. Žinoma, vietoj „Buzzer“ galite naudoti vibratorių ir dar labiau pasistūmėti į savo kūrybiškumą.
Reikalingos medžiagos:
- „Arduino Nano“ (veiks bet kokia versija)
- Ultragarsinis jutiklis HC-SR04
- LDR
- Buzzer ir LED
- 7805
- 433MHz RF siųstuvas ir imtuvas
- Rezistoriai
- Kondensatoriai
- Paspauskite mygtuką
- Puiki lenta
- Litavimo rinkinys
- 9 V akumuliatoriai
Visus reikalingus komponentus šiam išmaniajam aklųjų lazdelių projektui galite įsigyti čia.
Blind Stick grandinės schema:
Šiam „ Arduino Smart Blind Stick“ projektui reikalingos dvi atskiros grandinės. Viena iš jų yra pagrindinė grandinė, kuri bus montuojama ant neregio lazdos. Kita yra maža nuotolinio radijo siųstuvo grandinė, kuri bus naudojama pagrindinei grandinei surasti. Žemiau parodyta pagrindinės plokštės schema, kaip sukurti aklą lazdą naudojant ultragarso jutiklį:
Kaip matome, „ Arduino Nano“ yra naudojamas valdyti visus jutiklius, tačiau šią „ Smart blind“ lazdą taip pat galite sukurti naudodami „arduino uno“, bet laikydamiesi tų pačių kontaktų ir programų. Visą plokštę maitina 9 V baterija, kuri reguliuojama iki + 5 V naudojant 7805 įtampos reguliatorių. Ultragarsinis jutiklis yra varomas 5V ir slenkstinės aido ir kaištis yra prijungtas prie Arduino nano pin 3 ir 2, kaip parodyta aukščiau. LDR yra sujungtas su vertės 10K rezistorius, kad susidarytų potencialą dalytuvas ir Įtampos skirtumas yra skaityti Arduino ADC pin A1. ADC kaištis A0 naudojamas nuskaityti signalą iš RF imtuvo. Lentos išvestį pateikia „ Buzzer“, prijungtas prie 12 kaiščio.
RD nuotolinio grandinės yra parodyta žemiau. Jos veikimas taip pat paaiškinamas toliau.
Aš panaudojau nedidelį nulaužimą, kad ši RF nuotolinio valdymo grandinė veiktų. Paprastai, norint naudoti šį 433 MHz radijo dažnio modulį, reikia, kad veiktų koduotojas ir dekoderis arba du MCU, kaip ir ankstesnėje RF siųstuvo ir imtuvo grandinėje, mes naudojome atitinkamai HT12D ir HT12E, dekoderio ir kodavimo IC. Tačiau mūsų programoje tiesiog reikia imtuvo, kad jis nustatytų, ar siųstuvas siunčia tam tikrus signalus. Taigi siųstuvo duomenų kaištis yra prijungtas prie maitinimo šaltinio „Ground“ arba „Vcc“.
Imtuvo duomenų kaištis perduodamas per RC filtrą ir tada perduodamas „Arduino“, kaip parodyta žemiau. Dabar, kai tik paspaudžiate mygtuką, imtuvas pakartoja tam tikrą pastovią ADC vertę. Šio pasikartojimo negalima pastebėti, kai mygtukas nėra paspaustas. Taigi mes rašome „Arduino“ programą, kad patikrintume, ar nėra pasikartojančių reikšmių, kad nustatytume, ar mygtukas paspaustas. Taigi aklas žmogus gali sekti savo lazdą. Galite patikrinti čia: kaip veikia RF siųstuvas ir imtuvas.
Aš naudoju perf lentą, kad lituočiau visas jungtis, kad ji nepažeistų lazdos. Bet jūs taip pat galite juos padaryti ant duonos lentos. Tai lentos, kurias padariau šiam aklųjų lazdelių projektui naudodamas „arduino“.
„Arduino“ programa „Smart Blind Stick“:
Kai būsime pasirengę aparatinei įrangai, galėsime prijungti „Arduino“ prie savo kompiuterio ir pradėti programuoti. Visiškai kodas naudojamas Šiame puslapyje galima rasti šio puslapio apačioje galite įkelti tiesiai į savo Arduino lenta. Tačiau, jei norite sužinoti, kaip veikia kodas, skaitykite toliau.
Kaip ir visas programas, mes pradedame negaliojančią sąranką (), kad inicijuotume įvesties išvesties kaiščius. Mūsų programoje „Buzzer and Trigger“ kaištis yra išvesties įrenginys, o „Echo“ kaištis yra įvesties įrenginys. Taip pat inicijuojame serijinį monitorių derinimui.
negaliojanti sąranka () {Serial.begin (9600); pinMode („Buzz“, OUTPUT); „digitalWrite“ („Buzz“, „LOW“); pinMode (trigeris, OUTPUT); pinMode (aidas, INPUT); }
Pagrindinės kilpos viduje mes skaitome visus jutiklių duomenis. Mes pradedame skaityti ultragarso jutiklio atstumo, LDR šviesos intensyvumo ir RF signalo jutiklių duomenis, kad patikrintume, ar mygtukas yra paspaustas. Visi šie duomenys išsaugomi kintamajame, kaip parodyta žemiau, kad būtų galima naudoti ateityje.
apskaičiuoti atstumą (sukelti, aidą); Signalas = analoginis skaitymas (nuotolinis); Intens = analogRead (Light);
Pradedame nuo nuotolinio signalo patikrinimo. Norėdami patikrinti, kiek kartų tos pačios vertės kartojamos iš RF imtuvo, naudojame kintamąjį, panašų į panašų skaičių . Šis pasikartojimas įvyks tik paspaudus mygtuką. Taigi mes įjungiame nuotolinio valdymo mygtuką, jei skaičius viršija 100.
// Patikrinkite, ar nuotolinis mygtukas yra paspaustas int temp = analogRead (Remote); panašus_skaičius = 0; while (Signalas == temp) {Signal = analogRead (Nuotolinis); panašus_skaičius ++; } // Jei nuotoliniu būdu paspaudžiama, jei (panašus_skaičius <100) {Serijos.printas (panašus_skaičius); „Serial.println“ („Nuotolinis presas“); „digitalWrite“ („Buzz“, HIGH); vėlavimas (3000); „digitalWrite“ („Buzz“, „LOW“); }
Taip pat galite tai patikrinti „Serial Monitor“ savo kompiuteryje:
Toliau mes patikriname šviesos intensyvumą aplink neregį. Jei LDR reikšmė yra mažesnė nei 200, daroma prielaida, kad ji yra labai tamsi ir mes įspėjame jį per garsinį signalą su konkrečiu vėlavimo tonu, esant 200ms. Jei intensyvumas yra labai ryškus, kuris yra didesnis nei 800, mes taip pat pateikiame įspėjimą kitu tonu. Žadintuvo toną ir intensyvumą galima lengvai keisti keičiant atitinkamą reikšmę žemiau esančiame kode.
// Jei labai tamsu, jei (Intens <200) {Serial.print (Intens); Serial.println („Ryški šviesa“); „digitalWrite“ („Buzz“, HIGH); vėlavimas (200); „digitalWrite“ („Buzz“, LOW); vėlavimas (200); „digitalWrite“ („Buzz“, „HIGH“); „delay“ (200); „digitalWrite“ („Buzz“, „LOW“); „delay“ (200); vėlavimas (500); } // Jei labai ryšku, jei (Intens> 800) {Serial.print (Intens); Serial.println („silpnas apšvietimas“); „digitalWrite“ („Buzz“, HIGH); vėlavimas (500); „digitalWrite“ („Buzz“, LOW); vėlavimas (500); „digitalWrite“ („Buzz“, „HIGH“); „delay“ (500); „digitalWrite“ („Buzz“, „LOW“); „delay“ (500); }
Galiausiai pradedame matuoti atstumą nuo bet kokios kliūties. Signalizacijos nebus, jei išmatuotas atstumas yra didesnis nei 50 cm. Bet jei jis yra mažesnis nei 50 cm, signalizacija prasidės pyptelėjus garsinį signalą. Kai objektas priartėja prie garsinio signalo, pyptelėjimo intervalas taip pat sumažės. Kuo arčiau objektas, tuo greičiau pyptelėjimas. Tai galima padaryti sukūrus vėlavimą, proporcingą išmatuotam atstumui. Nuo vėlavimo () in Arduino negali priimti kintamuosius mes turime naudoti už kilpos, kuri kilpa remiantis išmatuoto atstumo, kaip parodyta žemiau.
if (dist <50) {Serial.print (dist); Serial.println („Įspėjimas apie objektą“); „digitalWrite“ („Buzz“, HIGH); už (int i = dist; i> 0; i--) vėlavimą (10); „digitalWrite“ („Buzz“, „LOW“); už (int i = dist; i> 0; i--) vėlavimą (10); }
Sužinokite daugiau apie atstumo matavimą naudojant ultragarso jutiklį ir „Arduino“.
Programą galima lengvai pritaikyti jūsų programai, pakeičiant vertę, kurią naudojame palyginimui. Jei norite suaktyvinti klaidingą aliarmą, naudojate nuoseklųjį monitorių. Jei turite kokių nors problemų, galite paskelbti savo klausimus naudodamiesi komentarų skiltimi
„Arduino Blind Stick“ veikia:
Pagaliau atėjo laikas išbandyti mūsų „ blind stick“ arduino projektą. Įsitikinkite, kad jungtys atliktos pagal grandinės schemą, ir programa sėkmingai įkelta. Dabar maitinkite abi grandines naudodami 9 V bateriją ir turėtumėte pradėti matyti rezultatus. Perkelkite „Ultra Sonic“ jutiklį arčiau objekto ir pastebėsite pyptelėjimą, o pyptelėjimo dažnis didėja, kai lazda artėja prie objekto. Jei LDR yra tamsu arba yra per daug šviesos, garsinis signalas pypsės. Jei viskas normalu, garsinis signalas nepypsi.
Paspaudus nuotolinio valdymo pulto mygtuką, garsinis signalas garsiai pypsės. Visiškas akliesiems skirtas „Smart Stick“ naudojimas naudojant „Arduino “ parodytas vaizdo įraše, pateiktame šio puslapio pabaigoje. Aš taip pat naudoju mažą lazdelę, kad pritvirtinčiau visą mazgą. Galite naudoti didesnį arba faktinį aklą lazdą ir įdėti jį į darbą.
Jei jūsų garsinis signalas visada pypsi, tai reiškia, kad pavojaus signalas yra netikras. Galite atidaryti nuoseklųjį monitorių, kad patikrintumėte parametrus ir patikrintumėte, kuris kritinis kritimas yra, ir tai pakoreguokite. Kaip visada, galite gauti savo problemą komentarų skiltyje, kad gautumėte pagalbos. Tikiuosi, kad supratote projektą ir patiko ką nors statyti.