Cuprins:

Radar periferic pentru deficienți de vedere: 14 pași
Radar periferic pentru deficienți de vedere: 14 pași

Video: Radar periferic pentru deficienți de vedere: 14 pași

Video: Radar periferic pentru deficienți de vedere: 14 pași
Video: 28 Diabetes Signs & Symptoms [REVERSE DIABETES + 2 BIG SECRETS!] 2024, Noiembrie
Anonim
Radar periferic pentru deficienți de vedere
Radar periferic pentru deficienți de vedere

Ca urmare a unui accident oribil, un prieten de-al meu a pierdut recent vederea în ochiul drept. A rămas fără muncă mult timp și, când s-a întors, mi-a spus că unul dintre cele mai deranjante lucruri cu care trebuie să se ocupe este lipsa de a ști ce este pe partea lui dreaptă. O viziune mai puțin periferică înseamnă lovirea de lucruri și oameni. Acest lucru m-a deranjat. Am decis că trebuie să existe ceva ce putem face.

Am vrut să construiesc un dispozitiv care să poată măsura distanța față de obiectele din partea dreaptă a prietenului meu. Planul meu este să folosesc un motor haptic pentru a vibra dispozitivul invers proporțional cu distanța față de un obiect. Apoi, dacă obiectele erau departe, motorul nu ar vibra și, deoarece un obiect era mai aproape, ar începe să vibreze la un nivel scăzut. Dacă obiectul ar fi apropiat, acesta ar vibra la un nivel mult mai înalt (sau la nivelul dorit). Dispozitivul ar trebui să fie suficient de mic pentru a fi agățat de partea ochelarilor, cu senzorul îndreptat spre dreapta. Prietenul meu ar pune dispozitivul pe partea dreaptă a ochelarilor, dar, bineînțeles, pentru altcineva, ar putea fi partea stângă.

Mi-am amintit că aveam acasă niște senzori acustici de distanță. Dar sunt puțin mari și voluminoase, mai puțin precise și ar fi probabil prea grele pentru a fi utilizate pe ochelari. Am început să caut altceva.

Ce am găsit a fost senzorul ST-Electronics VL53L0X Time-of-Flight. Acesta este un laser cu infraroșu și un detector cu infraroșu într-un singur pachet. Emite un impuls de lumină laser în afara intervalului vizibil uman (940 nm) și înregistrează timpul scurs pentru a detecta pulsul reflectat. Împarte acest timp la 2 și se înmulțește cu viteza luminii producând o distanță foarte precisă în milimetri. Senzorul poate detecta distanța de până la 2 metri, dar așa cum am văzut, 1 metru este mai optim.

Așa cum se întâmplă, Adafruit are o placă VL53L0X. Așa că aveam nevoie de un motor cu vibrații, pe care îl aveau și ei, și de un microcontroler pentru a rula totul. Întâmplător am avut la îndemână un PJRC Teensy 3.2. În timp ce era mai mare decât îmi doream, avea capacitatea de a fi tactat la o viteză mică. Am vrut să reduc viteza ceasului pentru a economisi energie. Și în ceea ce privește o sursă de alimentare, am avut un regulator Sparkfun boost în cutia de gunoi împreună cu un suport de baterie AAA. Aveam cam tot ce aveam nevoie.

Pasul 1: Primul prototip

Primul prototip
Primul prototip
Primul prototip
Primul prototip

Am luat piesele pe care le aveam la îndemână și am făcut un prototip de mână al dispozitivului pe care l-am imaginat. Am imprimat 3D mânerul și placa de montaj și am lipit toate componentele electronice pe un protoboard Adafruit. Am conectat motorul vibrator la Teensy printr-un tranzistor NPN 2N3904. Am adăugat un potențiometru care să fie folosit pentru a seta distanța maximă la care ar răspunde dispozitivul.

L-am avut să ruleze până în weekend-ul următor (vezi poza de mai sus). Nu a fost frumos, dar a demonstrat principiul. Prietenul meu ar putea ține dispozitivul pe partea dreaptă și a putea testa dacă dispozitivul ar fi sau nu util și pentru a ajuta la rafinarea a ceea ce dorea pentru caracteristici.

Pasul 2: Prototipul # 2

Prototip 2
Prototip 2
Prototip 2
Prototip 2
Prototip 2
Prototip 2

După primul prototip de mână am început să fac o versiune mai mică. Am vrut să mă apropii de obiectivul meu de a face ceva care să încapă pe ochelari. Teensy pe care l-am folosit în versiunea portabilă mi-a permis să încetinesc ceasul pentru a economisi energie. Dar dimensiunea avea să fie un factor, așa că am trecut la un Adafruit Trinket M0. În timp ce rata de ceas este de 48 MHz, procesorul ARM pe care se bazează poate fi tactat mai lent. Prin utilizarea oscilatorului RC intern, acesta poate rula la 8, 4 2 și chiar 1 MHz.

Prototipul # 2 s-a reunit destul de repede, deoarece am avut totul împreună până în weekend-ul următor. Circuitul a fost același cu prototipul # 1, cu excepția ARM M0. Am imprimat 3D o mică incintă și am pus ghidaje pe spate, astfel încât să poată fi alunecate pe ochelari. Vezi poza de mai sus. Inițial este tactat la viteza de 48 MHz.

Pasul 3: Prototipul # 3

Prototipul # 3
Prototipul # 3

Deci, acest Instructable începe cu adevărat aici. Am decis să fac un ultim prototip. Mă hotărăsc să-l strâng cât de mic aș putea să nu folosesc un PWB personalizat (de unde sunt sigur că ne îndreptăm). Restul acestui instructabil va fi despre a vă arăta cum să faceți unul. La fel ca oamenii care fac mâini imprimate 3D pentru copii cu dizabilități, sper că oamenii le vor face pentru oricine cu o pierdere similară a vederii într-un ochi.

Am păstrat lista de piese la fel ca prototipul # 2, dar am decis să îndepărtez potențiometrul. După ce am vorbit cu prietenul meu, am decis să facem distanța maximă setată folosind software. Deoarece am capacitatea de a folosi un senzor tactil folosind Teensy, am putea face întotdeauna distanța maximă o setare prin atingere. O singură atingere setează o distanță scurtă, sau mai multe atingeri o distanță mai mare, o altă atingere pe cea mai lungă distanță și apoi pentru o singură atingere, înfășurați înapoi la început. Dar, la început, vom folosi o distanță fixă pentru a începe.

Pasul 4: Piese

Părți
Părți

Pentru acest prototip am avut nevoie de o placă mai mică. Am mers cu un protoboard Sparkfun (PRT-12702), deoarece dimensiunile sale mici (aproximativ 1,8 "X 1,3") ar fi o dimensiune bună pentru a trage.

De asemenea, am avut nevoie să folosesc altceva decât o baterie AAA ca sursă de alimentare. Un LiPo părea alegerea corectă, deoarece ar avea capacitate de stocare și greutate redusă. Am încercat o celulă monedă, dar nu a avut suficientă putere pentru a manipula motorul foarte mult timp. Am ales un LiPo mic, care are o capacitate de 150 mAH.

Urma să rămân cu Trinket M0 și, bineînțeles, cu placa de breakout VL53L0X.

Acum, că am ajuns la detalii, iată o listă de piese pentru acest prototip:

Adafruit VL53L0X Senzor distanță de timp de zbor - ID PRODUS: 3317 Adafruit - Mini disc motor cu vibrații - ID PRODUS: 1201 Adafruit - Baterie polimer litiu-ion - 3,7v 150mAh - ID PRODUS: 1317 SparkFun - Panou de lipit - Mini - PRT-12702 Sparkfun - Conector cu unghi drept JST - 2-pini prin gaură - PRT-09749 Rezistor de 10K ohm - Junkbox (uită-te la podea) 2N3904 Tranzistor NPN - Junkbox (sau telefonează un prieten) Câteva sârme de conectare (am folosit 22 de ecartament)

Pentru a încărca bateria LiPo, am ales și eu:

Adafruit - Micro Lipo - Încărcător USB LiIon / LiPoly - v1 - ID PRODUS: 1304

Pasul 5: Schematic

Schematic
Schematic

Schema pentru acest dispozitiv este prezentată mai sus. Intrarea tactilă va fi pentru o versiune viitoare, dar este afișată oricum în schemă. De asemenea, rezistența de 10K dintre Trinket M0 și baza 2N3904 oferă o bază suficientă pentru a porni motorul fără a-l trânti prea tare.

Ceea ce urmează este o descriere pas cu pas a ansamblului.

Pasul 6: Protoboard

Protoboardul
Protoboardul

Mulți dintre voi, cu experiență, știți acest lucru, dar acest lucru este pentru cei care ar putea fi novici în protoboardele de lipit:

Protoboardul Sparkfun (PRT-12702) prezentat mai sus are 17 coloane (grupuri) de 5 pini pe fiecare parte a unui spațiu de trei zecimi de inch. Fiecare coloană verticală de 5 pini de ambele părți a spațiului este comună una cu cealaltă. Prin aceasta vreau să spun că orice conexiune cu un pin din grup este o conexiune cu orice alt pin din grup. Pentru această placă, acest lucru nu pare evident, dar puteți verifica acest lucru dacă utilizați un DVM (Digital Volt Meter). Dacă te uiți pe spate, poți să distingi doar urmele care leagă grupurile.

Pasul 7: plasarea componentelor

Plasarea componentelor
Plasarea componentelor
Plasarea componentelor
Plasarea componentelor

Probabil că trebuie să lipiți benzi de pin atât pe Trinket M0, cât și pe VL53L0X. Ambele vin cu benzi, dar trebuie lipite. Adafruit are instrucțiuni în Centrul lor de învățare pentru ambele părți. Dacă sunteți nou în acest sens, vă rugăm să mergeți acolo (aici și aici) înainte de a lipi benzile pe plăci. Fâșiile de pini oferă un profil mai mic decât ar fi o priză.

Primul lucru de luat în considerare atunci când lipiți ceva pe o protoardă cu spațiu limitat este plasarea componentelor. Am plasat bibeloul și VL53L0X în pozițiile prezentate în figura de mai sus. Trinket are pini pe ambele margini ale plăcii, dar VL53L0X are 7 pini pe toate pe o margine a plăcii sale. Partea VL53L0X care nu are pini o vom folosi pentru a conecta unele componente … așa cum vom vedea.

Am lipit și comutatorul glisant în poziție și am lipit 2N3904. Am întunecat găurile în care sunt plasate acele părți și, pentru 2N3904, am notat care știfturi sunt colectorul, baza și emițătorul. Când îl lipiți pentru prima dată, ar trebui să îl lăsați perpendicular pe placă, astfel încât să puteți lipi alte conexiuni. Mai târziu îl veți putea îndoi (cu atenție), astfel încât să fie mai aproape de a fi la același nivel cu placa.

NOTĂ: JST Battery Breakout NU este lipit pe placa în acest moment. Acesta va fi lipit pe partea din spate a plăcii, dar numai DUPĂ ce am lipit celelalte conexiuni. Va fi ultimul lucru pe care l-am lipit.

Pasul 8: fire

Fire
Fire

Diagrama de mai sus arată din nou protoboardul cu găuri întunecate în care vor fi amplasate componentele. Am adăugat etichete pentru ele de-a lungul marginilor pentru a ușura cablarea. Rețineți că motorul de vibrații este afișat, dar acesta va fi situat în partea din spate a plăcii și va fi conectat aproape ultima, așa că, deocamdată, ignorați-l. Arăt și JST Battery Breakout cu o linie punctată. Așa cum a fost identificat în pasul anterior, nu îl conectați, dar vă rugăm să lăsați cele 4 găuri din partea superioară a plăcii deschise (adică nu le lipiți).

Presupun că în acest moment știți cum să îndepărtați izolația dintr-un fir, tăiați capetele cu lipire și lipiți pe o placă. Dacă nu, vă rugăm să mergeți la unul dintre Instrucțiunile privind lipirea.

Pentru acest pas, lipiți firele așa cum se arată în galben. Punctele finale sunt găurile în care ar trebui să le lipiți. De asemenea, ar trebui să lipiți rezistorul de 10K ohm pe tablă, așa cum arată. Conexiunile realizate sunt:

1. O conexiune de la terminalul pozitiv al bateriei la terminalul COMmon (centru) al comutatorului glisant. O parte a comutatorului glisant va intra în contact cu intrarea BAT la bibelou. Regulatorul de la bordul Trinket generează 3,3V din tensiunea de intrare BAT.

2. O conexiune de la borna negativă (împământare) a bateriei la pământul bibeloului.

3. O conexiune de la borna negativă (la sol) a bateriei la emițătorul 2N3904

4. O conexiune de la pinul de 3,3 volți (3V) Trinket la VIN-ul VL53L0X. VL53L0X va regla acest lucru la 2,8 volți pentru propria utilizare. De asemenea, aduce această tensiune la un pin, dar nu avem nevoie de ea, așa că va fi lăsată neconectată.

Pasul 9: Mai multe fire

Mai multe fire
Mai multe fire

Așadar, acum adăugăm următorul grup de fire așa cum se arată mai sus. Iată o listă a fiecărei conexiuni:

1. O conexiune de la pinul Trinket etichetat ca 2 la pinul VL53L0X SCL. Acesta este semnalul de ceas I2C. Protocolul serial I2C este ceea ce este utilizat de Trinket pentru a comunica cu VL53L0X.

2. O conexiune de la pinul Trinket etichetat ca 0 (zero) la pinul SDA VL53L0X. Acesta este semnalul de date I2C.

3. O conexiune de la pinul VL53L0X GND de-a lungul spațiului de pe protoboard la emițătorul 2N3904. Acest lucru oferă teren VL53L0X.

4. O conexiune de la pinul Trinket etichetat ca un rezistor 4 la 10K. Aceasta este acționarea motorului de vibrații. Acest fir trebuie cu siguranță lipit pe partea din spate a plăcii dacă alegeți punctul meu de conectare.

Amintiți-vă că orice grup vertical de 5 pini este comun unul cu celălalt, astfel încât să vă puteți conecta oriunde în acest grup este convenabil. Veți observa în fotografiile tabloului meu că am schimbat câteva puncte de conectare. Atâta timp cât sunt conexiunea corectă, atunci oricare dintre padurile pe care le alegeți este în regulă.

Pasul 10: Motor de vibrații

Motor de vibrații
Motor de vibrații

Motorul cu vibrații este livrat cu un autocolant capabil să treacă pe spate. Trageți acest lucru pentru a dezvălui un material lipicios care permite blocarea motorului pe partea din spate a plăcii (dar, a se vedea comentariul de mai jos înainte de a-l lipi). L-am așezat în stânga (uitându-mă la partea din spate a plăcii) a plăcii JST Battery Breakout pe care nu o atașăm încă. Așadar, lăsați spațiu pentru placa JST Battery Breakout. De asemenea, am vrut să mă asigur că carcasa metalică a motorului nu scurtează niciun știft peste golul protoboardului. Deci, am tăiat o bucată mică de bandă dublă și am lipit-o de partea din spate a motorului de vibrație. Apoi am împins asta pe partea din spate a plăcii. Ajută la menținerea carcasei metalice sus și departe de orice știfturi. Dar totuși, aveți grijă să-l așezați într-un mod care să nu scurteze niciun pin.

Lipiți firul roșu al motorului de vibrație pe pinul de 3V al bibelouului. Firul negru al motorului de vibrații este lipit la colectorul 2N3904. Când software-ul pulsează 2N3904 (oferă o logică 1 ca 3.3V) tranzistorul pornește conectând firul negru al motorului de vibrație la masă (sau aproape de acesta). Acest lucru face ca motorul să vibreze.

Aș fi putut adăuga o anumită capacitate la punctul de conectare a firului roșu al motorului de vibrație. Dar există o capacitate pe linia de 3.3V a lui Trinket, așa că sunt sigur că este bine, dar dacă doriți să adăugați o altă capacitate, puteți … atâta timp cât o puteți strânge. În acest sens, s-ar putea conecta firul roșu. direct pe partea pozitivă a bateriei LiPo. Am ales partea de 3,3V pentru a menține tensiunea constantă. Până acum, pare să funcționeze bine.

Pasul 11: Nu în ultimul rând …

Ultimul, dar nu cel din urmă…
Ultimul, dar nu cel din urmă…
Ultimul, dar nu cel din urmă…
Ultimul, dar nu cel din urmă…

Ultima dată conectăm placa de rupere a bateriei JST la partea din spate a protoboardului. Am lipit știfturi pe tablă și am așezat placa de rupere a bateriei JST cu partea superioară orientată spre protoarda, așa cum se arată mai sus. Asigurați-vă că ați lipit firele pentru baterie pozitivă și le-ați împământat la știfturile potrivite atunci când puneți această piesă. Dacă vă înșelați, veți inversa polaritatea părților și probabil le veți distruge pe toate. Deci, vă rugăm să verificați și să verificați din nou înainte de a lipi și de a conecta bateria.

Pasul 12: Software

Software
Software

Pentru a instala și / sau modifica software-ul, veți avea nevoie de Arduino IDE și fișierele de bord pentru Trinket M0, precum și de bibliotecile pentru VL53L0X. Toate acestea sunt aici, aici și aici.

Urmați aici instrucțiunile pentru utilizarea Adafruit M0 pe site-ul lor de învățare.

Odată ce software-ul este încărcat, placa ar trebui să pornească și să ruleze pe conexiunea serială USB. Deplasați partea laterală a plăcii cu VL53L0X aproape de un perete sau de mână și ar trebui să simțiți cum motorul vibrează. Vibrația ar trebui să devină mai mică în amplitudine cu cât este mai departe de dispozitivul în care se află un obiect.

Un comportament văzut în dispozitiv este oarecum explicat în comentariile din codul sursă. Dar graficul atașat ar trebui să facă acest lucru bine. Dispozitivul nu trebuie să înceapă să vibreze decât la aproximativ 863 mm de un obiect. Acesta va atinge nivelul maxim de vibrație la 50 mm de un obiect. Dacă vă apropiați de un obiect mai aproape de 50 mm, dispozitivul nu va produce mai multe vibrații decât la 50 mm.

Pasul 13: incintă

Incintă
Incintă
Incintă
Incintă
Incintă
Incintă
Incintă
Incintă

Am proiectat o incintă și am imprimat-o 3D în plastic ABS. Puteți să-l imprimați în PLA sau ABS sau în orice material doriți. Folosesc ABS, deoarece pot să sudez bucăți de acetonă pe placă, dacă este necesar. Placa pe care am proiectat-o este simplă și are o gaură pentru portul USB de pe bibelou și o gaură pentru comutatorul de alimentare. Am făcut ca cele două scânduri să se prindă împreună cu brațe mici pe părțile laterale ale cutiei. Nu-mi place foarte mult, așa că este posibil să-l schimb. Desigur, puteți face orice schimbări doriți să vedeți.

Chiar acum pentru această versiune, cutia trebuie deschisă pentru a deconecta bateria LiPo pentru a o reîncărca. Dacă creez o placă de circuit pentru acest proiect, voi adăuga un alt conector pentru a face bateria accesibilă fără a deschide cutia. Este posibil să faceți acest lucru pe acest design protoboard și să faceți o gaură pentru conector pentru încărcare. Dacă doriți să încercați acest lucru, vă rugăm să împărtășiți rezultatele.

Am reușit să proiectez o cutie pe care nu o uram complet. O vom folosi pentru a testa sistemul. Am atașat partea de sus și partea de jos a casetei ca fișiere STL, precum și consola / ghidul pe care am adăugat partea de jos. Am adăugat o pereche de ghidaje folosind acetonă pentru sudarea chimică a pieselor între ele. Dacă faci asta, fii atent. Puteți vedea ansamblul de mai sus.

Pasul 14: acum ce?

Acum ce?
Acum ce?

Verifică-mă … Sunt bătrân și poate că am uitat ceva sau am încurcat. Recitesc și verific asta, dar îmi pot lipsi lucrurile. Simțiți-vă liber să-mi spuneți orice am făcut / am greșit.

Și, acum că ați construit placa radar periferică și ați încărcat-o, iar bateria LiPo este într-o carcasă tipărită 3D frumoasă (când o termin sau, dacă ați făcut-o pe a voastră), ce faceți în continuare? Cred că ar trebui să obțineți experiență cu modul în care funcționează și să faceți modificări software-ului. Acordul de licență din software prevede că îl puteți folosi, dar dacă faceți modificări, vi se cere să le partajați. Nu spun că software-ul pentru acest proiect este complicat sau uimitor într-un fel. Își îndeplinește obiectivele, dar există loc de îmbunătățire. Ajutați la îmbunătățirea acestui dispozitiv și împărtășiți-l cu noi toți. Amintiți-vă, acest proiect este despre a ajuta oamenii. Așadar, ajută!

Recomandat: