Kaip padaryti „Smart Stick“ akliems žmonėms naudojant „Arduino“?

Esu tvirtai įsitikinusi Helen Keller citata, kurioje teigiama „Vienintelis dalykas, blogesnis už aklumą, yra regėjimas, bet regėjimo nėra“. Ši technologija galėtų padėti neįgaliems žmonėms gyventi normalų gyvenimą, kaip ir kiti žmonės. Visi žino indėnų merginą, vardu Arunima Sinha kuri neteko kojos per traukinio avariją ir jai teko visą gyvenimą vaikščioti protezuotomis kojomis. Po avarijos ji nusprendė lipti ant Everesto kalno ant protezuotų kojų, taigi naujausios technologijos atvėrė jai kelią į svajonę.



„Smart Stick“

Ši technologija iš tikrųjų gali neutralizuoti žmogaus negalią; turėdami tai omenyje, panaudokime „Arduino“ ir paprasti jutikliai aklojo lazdelei sukurti tai galėtų būti regėjimo negalią turinčių asmenų gelbėjimas. Ultragarsinis jutiklis bus įmontuotas ant lazdos, kuri atpažins žmogaus atstumą nuo bet kokios kliūties, LDR - apšvietimo sąlygas, ir RF nuotolinio valdymo pultą, kurį aklasis galėjo naudoti nuotoliniu būdu nustatydamas savo lazdą. Visi nurodymai bus pateikiami akliesiems per „Buzzer“. Mes galime naudoti vibratorių vietoje „Buzzer“ ir dar labiau pasistūmėti pasitelkdami savo kūrybiškumą.



„Smart Stick“ akliesiems (Paveikslėlio malonumas: grandinės santrauka)



Kaip naudoti „Arduino“ projektuojant grandinę?

Dabar, kai žinome projekto santrauką, judėkime pirmyn ir rinkime kitą informaciją, kad galėtume pradėti dirbti. Pirmiausia sudarysime komponentų sąrašą, tada juos trumpai ištirsime, tada surinksime visus komponentus, kad būtų sukurta veikianti sistema.



1 veiksmas: reikalingi komponentai (techninė įranga)

  • LDR
  • Buzeris
  • LED
  • Supperhetrodino siųstuvas ir imtuvas
  • Rezistorius
  • Paspauskite mygtuką
  • „Veroboard“
  • 9 V akumuliatorius
  • Skaitmeninis multimetras
  • Klijų pistoletas

2 žingsnis: naudojami komponentai (programinė įranga)

  • Proteus 8 Professional (galima atsisiųsti iš Čia )

Atsisiuntę „Proteus 8 Professional“, suprojektuokite joje grandinę. Čia įtraukėme programinės įrangos modeliavimą, kad pradedantiesiems būtų patogu suprojektuoti grandinę ir tinkamai prijungti aparatinę įrangą.

3 žingsnis: komponentų studijavimas

Dabar, kai mes sudarėme visų komponentų, kuriuos ketiname naudoti šiame projekte, sąrašą. Pažvelkime toliau ir pereikime trumpą visų pagrindinių komponentų tyrimą.

  1. „Arduino Nano“: „Arduino nano“ yra mikrovaldiklio plokštė, naudojama skirtingoms grandinės užduotims valdyti ar vykdyti. Mes deginame a C kodas „Arduino Nano“, kad mikrovaldiklio lentoje nurodytų, kaip ir kokias operacijas atlikti. „Arduino Nano“ turi tą patį funkcionalumą kaip ir „Arduino Uno“, tačiau yra gana mažo dydžio. „Arduino Nano“ plokštės mikrovaldiklis yra ATmega328p.

    „Arduino Nano“



  2. Ultragarsinis jutiklis HC-SR04: HC-SR04 plokštė yra ultragarso jutiklis, naudojamas atstumui tarp dviejų objektų nustatyti. Jį sudaro siųstuvas ir imtuvas. Siųstuvas paverčia elektrinį signalą ultragarso signalu, o imtuvas ultragarso signalą vėl paverčia elektriniu signalu. Kai siųstuvas siunčia ultragarso bangą, ji atsispindi susidūrus su tam tikru objektu. Atstumas apskaičiuojamas naudojant laiką, kurį ultragarsinis signalas eina iš siųstuvo ir grįžta į imtuvą.

    Ultragarsinis jutiklis

  3. 433 MHz RF siųstuvas ir imtuvas: Jis veikia tam tikru 433MHz dažniu. Rinkoje yra keletas kitų radijo dažnio įrenginių, ir, palyginti su jais, RF modulio veikimas priklausys nuo kelių veiksnių, pavyzdžiui, kai padidinsime siųstuvo galią, bus surinktas didelis ryšio atstumas. Tai sukels didelį siųstuvo įtaiso elektros energijos nutekėjimą, dėl ko trumpesnis baterijomis maitinamų prietaisų veikimo laikas. Jei šį prietaisą naudosime didesne perduodama galia, jis sukels trukdžius kitiems RF įrenginiams.

    RF siųstuvas ir imtuvas

  4. 7805 Įtampos reguliatorius: Įtampos reguliatoriai turi didelę reikšmę elektros grandinėse. Net jei svyruoja įėjimo įtampa, šis įtampos reguliatorius užtikrina pastovią išėjimo įtampą. 7805 IC taikymą galime rasti daugumoje projektų. Pavadinimas 7805 reiškia dvi reikšmes: „78“ reiškia, kad tai yra teigiamos įtampos reguliatorius, o „05“ - tai, kad jis teikia 5 V įtampą. Taigi mūsų įtampos reguliatorius suteiks + 5 V išėjimo įtampą. Šis IC gali valdyti maždaug 1,5 A srovę. Šilumos kriauklė rekomenduojama projektams, kurie sunaudoja daugiau srovės. Pavyzdžiui, jei įėjimo įtampa yra 12 V, o jūs sunaudojate 1A, tada (12-5) * 1 = 7W. Šie 7 vatai bus išsklaidyti kaip šiluma.

    Įtampos reguliatorius

4 žingsnis: grandinės surinkimas

Šiam projektui turėsime suprojektuoti dvi grandines. Pirmoji grandinė bus dedama į tinkamą vietą aklojo lazdoje, o antroji bus RF siųstuvas grandinė ir ji bus naudojama norint sužinoti pagrindinę grandinę. Prieš projektuodami „Proteus“ grandinę, turime į programinę įrangą įtraukti RF imtuvo proteus biblioteką. Biblioteką galite atsisiųsti iš Čia ir atsisiųsdami biblioteką atidarykite Biblioteka aplanką ir kopiją MODULO_RF.LIB failą ir įklijuokite jį į „Proteus“ aplanką „Biblioteka“. Jei nerandate bibliotekos aplanko, spustelėkite (C: Program Files (x86) Labcenter Electronics Proteus 8 Professional LIBRARY). Kai atliksite šį atidarytą aplanką MODELS, nukopijuokite RX.MDF ir įklijuokite jį į proteus MODELS aplanką. Jei nerandate modelių aplanko, spustelėkite (C: Program Files (x86) Labcenter Electronics Proteus 8 Professional MODELS).

Grandinės schema (Paveikslėlio malonumas: grandinės santrauka)

Mikrovaldiklis, kuris bus naudojamas valdyti visus grandinės jutiklius, yra „Arduino Nano“. Grandinės darbui naudojamas maitinimo šaltinis yra 9 V akumuliatorius, o ši 9 V įtampa nuleidžiama iki 5 V naudojant a 7805 Įtampos reguliatorius. Grandinėje matyti, kad Ultragarsinis jutiklis maitina įtampos reguliatoriaus Vout. Jutiklio paleidiklis ir aido kaiščiai yra prijungti prie „Arduino“ 3 ir 2 kaiščių. Nuo šviesos priklausomas rezistorius (LDR) yra prijungtas prie 10k vertės potenciometro ir Analoginis į skaitmeninį „Arduino“ konversijos kaištis A1 yra prijungtas prie to taško, kad būtų pažymėtas įtampos skirtumas. Turime žinoti signalą, kurį skleidžia radijo imtuvas, todėl mes prijungėme ADC kaištį A0, kad galėtume nuskaityti signalą iš radijo imtuvo. Visos grandinės išvestį pateikia švilpukas Taigi, teigiamas signalizacijos kaištis yra prijungtas prie „Arduino“ kaiščio 12, o neigiamas - prie ultragarso jutiklio žemės.

Mes neįtraukėme RF siųstuvo į savo grandinės schemą, nes jį montuosime aparatūroje atskirai. Kai mes naudojame 433 MHz superheterodino siųstuvą ir imtuvą, mums reikia mikrovaldiklio, kad galėtume juos susieti, tačiau šiame projekte mums reikia vienintelio siųstuvo, kuris siunčia signalus į imtuvą, todėl siųstuvo duomenų kaištį sujungėme su Vcc. Imtuvo duomenų kaištis perduodamas per RC filtrą ir tada prijungiamas prie „Arduino“ duomenų kaiščio A0. Mes pakartotinai paspausime ant siųstuvo esantį mygtuką ir paspaudus mygtuką, imtuvas pateiks bet kokią pastovią vertę.

RF siųstuvas

5 žingsnis: Aparatinės įrangos surinkimas

Vykdydami modeliavimą ne, mes galime pagaminti prototipą. Lituodami komponentus ant lentos „Perf“, atkreipkite ypatingą dėmesį į „Arduino Nano“ kaiščius. įsitikinkite, kad kaiščiai neliečia vienas kito, kitaip Arduino gali būti pažeistas. Savo namuose raskite lazdą ir pritvirtinkite „Arduino“ ir RF imtuvo grandinę. Norėdami naudoti grandinę ant lazdos, galite naudoti „Hot Klijai“ pistoletą, o ant teigiamų ir neigiamų gnybtų geriau užklijuoti šiek tiek klijų, kad maitinimo šaltinio laidai negalėtų atsiskirti, jei lazda būtų stipriai perbraukta ant žemės.

Grandinė, surinkta aparatinėje įrangoje (Paveikslėlio malonumas: grandinės santrauka)

6 žingsnis: Darbo su „Arduino“ pradžia

Jei anksčiau nesate susipažinę su „Arduino IDE“, nesijaudinkite, nes žemiau galite pamatyti aiškius kodo įrašymo mikrovaldiklio valdyboje veiksmus, naudodami „Arduino IDE“. Naujausią „Arduino IDE“ versiją galite atsisiųsti iš čia ir atlikite šiuos veiksmus:

  1. Kai „Arduino“ plokštė prijungta prie jūsų kompiuterio, atidarykite „Control panel“ ir spustelėkite „Hardware and Sound“. Tada spustelėkite „Įrenginiai ir spausdintuvai“. Raskite prievado, prie kurio prijungta jūsų „Arduino“ plokštė, pavadinimą. Mano atveju tai yra „COM14“, bet jūsų kompiuteryje jis gali skirtis.

    Rasti uostą

  2. Spustelėkite meniu Įrankis. ir nustatykite lentą „Arduino Nano“ iš išskleidžiamojo meniu.

    Nustatymo lenta

  3. Tame pačiame meniu Įrankis nustatykite prievadą į prievado numerį, kurį anksčiau pastebėjote Prietaisai ir spausdintuvai .

    Uosto nustatymas

  4. Tame pačiame meniu Įrankis nustatykite procesorių į „ATmega328P“ („Old Bootloader“).

    Procesorius

  5. Atsisiųskite žemiau pridėtą kodą ir įklijuokite jį į „Arduino IDE“. Spustelėkite įkelti mygtuką, kad įrašytumėte kodą savo mikrovaldiklio plokštėje.

    Įkelti

Norėdami atsisiųsti kodą, paspauskite čia.

7 veiksmas: supraskite kodą

Kodas yra gerai komentuojamas ir savaime suprantamas. Bet vis dėlto tai paaiškinama toliau:

  1. Kodo pradžioje inicializuojami visi „Arduino Nano“ plokštės kaiščiai, prijungti prie ultragarso jutiklio ir RF modulio.
const int paleidiklis = 3; // 1-ojo jutiklio paleidimo kaištis const int echo = 2; // 1-ojo jutiklio aido kaištis const int Buzz = 13; // Prisegti skambutį const int Remote = A0; const int Šviesa = A1; ilgai užimtas; int dist; int Signalas; int Intens; int panašus_skaičius;

2. negaliojanti sąranka () yra funkcija, naudojama nustatyti visus naudojamus kaiščius, kaip ĮVADAS ir IŠĖJIMAS. Šioje funkcijoje apibrėžta perdavimo sparta. „Baud Rate“ yra ryšio greitis, kuriuo mikrokontrolerio plokštė bendrauja su joje integruotais jutikliais.

negaliojanti sąranka () {Serial.begin (9600); pinMode („Buzz“, OUTPUT); „digitalWrite“ („Buzz“, „LOW“); pinMode (trigeris, OUTPUT); pinMode (aidas, INPUT); }

3. Dabar sukursime funkciją, kuri apskaičiuos atstumą.

void apskaičiuoti atstumą (int paleidimas, int echo) {digitalWrite (sukelti, LOW); vėlavimasMikrosekundės (2); „digitalWrite“ (trigeris, AUKŠTAS); vėlavimasMikrosekundės (10); „digitalWrite“ (trigeris, LOW); time_taken = pulseIn (aidas, AUKŠTAS); dist = laikas paimtas * 0,034 / 2; jei (dist> 300) dist = 300; }

Keturi. tuščia kilpa () yra funkcija, kuri cikle vykdoma pakartotinai. Šioje funkcijoje mikrovaldiklio lentai nurodome, kaip ir kokias operacijas atlikti. Pagrindinėje kilpoje mes perskaitysime jutiklių duomenis. Pirmiausia, paleidimo kaištis yra nustatytas siųsti signalą, kurį aptiks aido kaištis. Kai objektas aptinkamas tam tikru atstumu, nuolatos skleidžiamas garsinis signalas yra taikomas. Signalizatorius pypsės su nedidele pertrauka, jei aptiks tamsą, ir pypsės šiek tiek didesne pertrauka, jei aptiks ryškią.

void loop () {// begalinis ciklas apskaičiuoti atstumą (sukelti, aidą); Signalas = analoginis skaitymas (nuotolinis); Intens = analogRead (Light); // Patikrinkite, ar nuotolinio valdymo pultas 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 paspausite, jei (panašus_skaičius<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) vėlavimas (10); „digitalWrite“ („Buzz“, „LOW“); už (int i = dist; i> 0; i--) vėlavimą (10); } //Serial.print('dist= '); //Serial.println(dist); //Serial.print('Similar_count= '); //Serial.println(similar_count); //Serial.print('Intens= '); //Serial.println(Intens); }

8 žingsnis: testavimas

Kadangi supratome kodą, įkėlėme jį į mikrovaldiklį ir surinkome aparatinę įrangą, dabar laikas išbandyti savo projektą. Prieš bandydami įsitikinkite, kad jungtys yra tinkamai sujungtos, ir patikrinkite grandinės tęstinumą naudodami skaitmeninį daugiametį matuoklį. Už pasisukimą ĮJUNGTA abiejose grandinėse naudojama 9 V baterija. Uždėkite daiktą ant paviršiaus, kurį bandote, ir prieš jį pajudinkite ultragarso jutiklį, ir pastebima, kad zonderio garsas didėja, jutikliui artėjant prie objekto. Yra dvi galimybės, jei LDR yra tamsu arba jei bandote saulės šviesoje, garsinis signalas pradės pypsėti. Paspaudus radijo dažnių siųstuvo mygtuką, garsinis signalas ilgai pypsės. Jei garsinis signalas ilgai pypsi, tai reiškia, kad aliarmas suveikė klaidingai. Jei susiduriate su tokia klaida, atidarykite nuoseklų „Arduino IDE“ monitorių ir patikrinkite parametrus, kurie sukelia tokią problemą.

Techninės įrangos testavimas (Paveikslėlio malonumas: grandinės santrauka)

Tai buvo paprasčiausias būdas padaryti „Smart Stick“ akliesiems, naudojant „Arduino“. Atlikite visus pirmiau minėtus veiksmus ir sėkmingai išbandę projektą ieškokite neįgalaus asmens ir pasiūlykite jam šį projektą, kad jo gyvenimas būtų lengvesnis.