Sisukord:

Perifeerne radar nägemispuudega inimestele: 14 sammu
Perifeerne radar nägemispuudega inimestele: 14 sammu

Video: Perifeerne radar nägemispuudega inimestele: 14 sammu

Video: Perifeerne radar nägemispuudega inimestele: 14 sammu
Video: Radaris 15. detsembril 2015 2024, November
Anonim
Perifeerne radar nägemispuudega inimestele
Perifeerne radar nägemispuudega inimestele

Õudse õnnetuse tagajärjel kaotas mu sõber hiljuti parema silma nägemise. Ta oli pikka aega töötu ja tagasi tulles ütles ta mulle, et üks närvilisemaid asju, millega ta peab tegelema, on teadmatus, mis on tema paremal küljel. Vähem perifeerne nägemine tähendab asjade ja inimestega kokku puutumist. See häiris mind. Otsustasin, et me peame midagi tegema.

Tahtsin ehitada seadme, mis suudaks mõõta kaugust sõprade paremal küljel asuvatest objektidest. Minu plaan on kasutada haptilist mootorit seadme vibreerimiseks pöördvõrdeliselt objekti kaugusega. Kui objektid oleksid kaugel, siis mootor ei vibreeriks ja kui objekt oleks lähemal, hakkaks see madalal tasemel vibreerima. Kui objekt oleks lähedal, vibreeriks see palju kõrgemal tasemel (või mis tahes tasemel, mida soovite). Seade peaks olema piisavalt väike, et rippuda prillide küljel, andur peaks olema suunatud paremale. Mu sõber paneks seadme prillide paremale küljele, kuid loomulikult võib see kellegi teise jaoks olla vasakpoolne.

Mulle meenus, et mul olid kodus mõned akustilised kaugusandurid. Kuid need on pisut suured ja mahukad, vähem täpsed ja oleksid prillide jaoks tõenäoliselt liiga rasked. Hakkasin midagi muud otsima.

Leidsin ST Electronics VL53L0X lennuaja anduri. See on infrapunalaser ja infrapunaandur ühes pakendis. See kiirgab laservalguse impulsi väljaspool inimese nähtavat vahemikku (940 nm) ja salvestab peegeldunud impulsi tuvastamiseks kulunud aja. See jagab selle aja 2 -ga ja korrutab valguse kiirusega, andes väga täpse vahemaa millimeetrites. Andur suudab tuvastada kaugust kuni 2 meetrit, kuid nagu ma olen näinud, on 1 meeter optimaalsem.

Nagu juhtub, on Adafruitil VL53L0X väljalülitusplaat. Nii et mul oli vaja vibreerivat mootorit, mis neil ka oli, ja mikrokontrollerit, et seda kõike juhtida. Mul juhtus olema PJRC Teensy 3.2 käepärast. Kuigi see oli suurem kui ma tahtsin, oli sellel võimalus aeglase kiirusega kella panna. Tahtsin energia säästmiseks kella kiirust vähendada. Ja mis jõuallikasse puutub, siis mul oli rämpspostis Sparkfuni võimendusregulaator koos AAA patareihoidjaga. Mul oli peaaegu kõik vajalik olemas.

Samm: esimene prototüüp

Esimene prototüüp
Esimene prototüüp
Esimene prototüüp
Esimene prototüüp

Võtsin osad, mis mul käepärast olid, ja tegin kujuteldavast seadmest käeshoitava prototüübi. Trükkisin 3D käepideme ja kinnitusplaadi ning jootsin kogu elektroonika Adafruit protoboardile. Ühendasin vibreeriva mootori Teensyga 2N3904 NPN transistori kaudu. Lisasin potentsiomeetri, millega seadistada maksimaalne kaugus, millele seade reageerib.

Mul oli see järgmisel nädalavahetusel käimas (vt ülaltoodud pilti). See ei olnud ilus, kuid näitas põhimõtet. Mu sõber võiks seadet paremal küljel hoida ja testida, kas seade oleks kasulik või mitte, ning aidata täpsustada, mida ta funktsioonide jaoks soovis.

Samm: prototüüp nr 2

Prototüüp nr 2
Prototüüp nr 2
Prototüüp nr 2
Prototüüp nr 2
Prototüüp nr 2
Prototüüp nr 2

Pärast esimest käeshoitavat prototüüpi hakkasin tegema väiksemat versiooni. Tahtsin jõuda lähemale oma eesmärgile teha midagi, mis prillidele mahub. Teensy, mida kasutasin pihuarvutis, võimaldas mul energia säästmiseks kella aeglustada. Kuid suurus oli oluline tegur ja nii läksin üle Adafruit Trinket M0 -le. Kuigi selle taktsagedus on 48 MHz, saab sellel põhinevat ARM -protsessorit aeglasemalt aeglustada. Kasutades sisemist RC -ostsillaatorit, võib see töötada sagedustel 8, 4 2 ja isegi 1 MHz.

Prototüüp nr 2 sai üsna kiiresti kokku, kuna mul oli see kõik järgmisel nädalavahetusel koos. Vooluring oli sama mis prototüüp nr 1, välja arvatud ARM M0. Trükkisin 3D -ga väikese korpuse ja panin juhikud tagaküljele, et seda saaks prillidele libistada. Vaadake ülaltoodud pilti. Esialgu kiirustatakse sagedusel 48 MHz.

Samm: prototüüp nr 3

Prototüüp nr 3
Prototüüp nr 3

Niisiis, see juhendatav algab tõesti siit. Otsustasin teha viimase prototüübi. Otsustan pigistada selle nii väikeseks, kui mul oleks võimalik kohandatud PWB -d kasutada (olen kindel, et oleme teel). Ülejäänud selles juhendis kirjeldatakse teile, kuidas seda teha. Nii nagu inimesed, kes teevad puuetega lastele 3D -prinditud käsi, loodan, et inimesed teevad neid kõigile, kellel on sarnane nägemiskaotus.

Jätsin osade loendi samaks kui prototüüp nr 2, kuid otsustasin potentsiomeetri eemaldada. Pärast sõbraga rääkimist otsustasime teha tarkvara abil maksimaalse kauguse. Kuna mul on võimalus kasutada Teensy abil puuteandurit, saame maksimaalse kauguse alati puudutades seadistuseks muuta. Üks puudutus määrab lühikese vahemaa või rohkem puudutuse pikema vahemaa, teine puudutus pikima vahemaa ja seejärel veel ühe puudutuse korral ümber algusesse. Kuid alguses kasutame liikumiseks kindlat vahemaad.

4. samm: osad

Osad
Osad

Selle prototüübi jaoks vajasin väiksemat plaati. Ma läksin Sparkfuni protoboardiga (PRT-12702), sest selle väikesed mõõtmed (umbes 1,8 "X 1,3") sobiksid pildistamiseks.

Mul oli vaja toiteallikana kasutada ka midagi muud kui AAA patareid. LiPo tundus õige valik, kuna sellel oleks mälumaht ja kerge kaal. Proovisin mündiandurit, kuid sellel ei olnud piisavalt jõudu, et mootorit väga kaua käsitseda. Valisin väikese LiPo, mille võimsus on 150 mAH.

Ma kavatsesin jääda Trinket M0 ja loomulikult VL53L0X purunemisplaadi juurde.

Nüüd, kui oleme üksikasjadeni jõudnud, on siin selle prototüübi osade loend:

Adafruit VL53L0X Lennuaja kaugusandur - TOOTE ID: 3317 Adafruit - vibreeriv minimootoriga ketas - TOOTE ID: 1201 Adafruit - liitium -ioonpolümeerpatarei - 3.7v 150mAh - TOOTE ID: 1317 SparkFun - jootetabeli leivaplaat - Mini - PRT -12702 Sparkfun - JST täisnurga pistik - 2 -kontaktiline läbiv auk - PRT -09749 10 K oomi takisti - Junkbox (vaadake oma põrandat)

LiPo aku laadimiseks võtsin ka kokku:

Adafruit - Micro Lipo - USB LiIon/LiPoly laadija - v1 - TOOTE ID: 1304

Samm: skemaatiline

Skeem
Skeem

Selle seadme skemaatika on näidatud ülal. Puutetundlik sisend on tulevase versiooni jaoks, kuid see on skemaatiliselt näidatud. Ka 10K takisti Trinket M0 ja 2N3904 aluse vahel on just piisav alus mootori sisselülitamiseks ilma seda liiga tugevasti löömata.

Järgnev on samm-sammuline kokkupaneku kirjeldus.

Samm 6: Protoboard

Protoboard
Protoboard

Paljud teist, kes on kogenud, teavad seda, kuid see on mõeldud neile, kes võivad esiplaatide jootmisel olla uued:

Eespool näidatud Sparkfuni protoplaadil (PRT-12702) on 17 veergu (gruppi), millel on 5 tihvti, mõlemal pool kolmekümnendikku tolli. Iga vertikaalne, 5 tihvtiga veerg mõlemal pool pilu on üksteisele ühised. Sellega pean ma silmas seda, et igasugune ühendus grupi tihvtiga on ühendus grupi kõigi teiste tihvtidega. Selle plaadi puhul ei tundu see ilmne, kuid saate seda kontrollida, kui kasutate DVM -i (digitaalset voltmeetrit). Kui vaatate tagakülge, saate lihtsalt rühmi ühendavaid jälgi välja tuua.

7. samm: komponentide paigutus

Komponentide paigutus
Komponentide paigutus
Komponentide paigutus
Komponentide paigutus

Tõenäoliselt peate jootma nööpnõelad nii Trinket M0 kui ka VL53L0X külge. Mõlemad on ribadega kaasas, kuid need tuleb jootma hakata. Adafruitil on nende õppekeskuses mõlema osa jaoks juhised. Kui te pole selles osas uus, minge enne ribade jootmist laudadele sinna (siin ja siin). Tihvtribad pakuvad madalamat profiili kui pistikupesa.

Esimene asi, mida tuleb piiratud ruumi mahutavale protoplaadile jootmisel arvestada, on komponentide paigutus. Asetasin nipsasja ja VL53L0X ülaltoodud joonisel näidatud asenditesse. Nipsasjal on tahvli mõlemal serval tihvtid, kuid VL53L0X plaadi ühel serval on 7 tihvti. VL53L0X külg, millel pole tihvte, kasutame mõnede komponentide ühendamiseks… nagu näeme.

Jootsin ka liuglüliti asendisse ja jootsin 2N3904. Olen need osad asetanud augud tumedamaks teinud ja 2N3904 puhul olen märkinud, millised tihvtid on koguja, alus ja emitter. Esmakordsel jootmisel peaksite jätma selle plaadi suhtes risti, et saaksite teisi ühendusi joota. Hiljem saate seda painutada (ettevaatlikult), nii et see on lauaga samal tasemel.

MÄRKUS. JST aku purunemine EI ole praegu plaadile joodetud. See joodetakse plaadi tagaküljele, kuid alles pärast seda, kui me muud ühendused jootame. See jääb viimaseks jootma.

8. samm: juhtmed

Juhtmed
Juhtmed

Ülaltoodud skeemil on protoboond koos tumedate aukudega, kus komponendid asuvad. Lisasin neile sildid mööda äärt, et oleks lihtsam juhtmeid ühendada. Pange tähele, et vibratsioonimootor on näidatud, kuid see asub plaadi tagaküljel ja ühendatakse peaaegu viimaseks, nii et lihtsalt ignoreerige seda. Näitan ka katkendjoonega JST aku purunemist. Nagu eelmises etapis tuvastatud, ärge seda ühendage, kuid jätke plaadi ülaosas olevad 4 auku lahti (st ärge jootke neid).

Eeldan, et siinkohal teate, kuidas juhtmest isolatsioon eemaldada, otsad jootma ja jootma plaadiks. Kui ei, siis vaadake ühte jootmise juhendit.

Selle sammu jaoks jootke juhtmed kollasega. Lõpppunktid on augud, kuhu peaksite need jootma. Näitena peaksite plaadile jootma ka 10K oomi takisti. Ühendused, mida tehakse, on järgmised:

1. Ühendus aku positiivsest klemmist liuglüliti COMmon (kesk) klemmiga. Lükandlüliti üks külg puutub kokku nipsasja PVT sisendiga. Trinketi pardaregulaator genereerib PVT sisendpingest 3,3 V.

2. Ühendus aku negatiivsest (maandus) klemmist nipsasja maandusega.

3. Ühendus aku negatiivse (maandus) klemmiga 2N3904 emitteriga

4. Ühendus Trinketi 3,3 -voldise (3V) tihvti ja VL53L0X VIN -i vahel. VL53L0X reguleerib seda enda tarbeks veelgi 2,8 voltini. See viib selle pinge ka tihvtini, kuid me ei vaja seda, nii et see jääb ühendamata.

Samm: rohkem juhtmeid

Veel juhtmeid
Veel juhtmeid

Nüüd lisame järgmise juhtmete rühma, nagu eespool näidatud. Siin on iga ühenduse loend:

1. Ühendus nipsasja tihvtiga, mis on märgistatud 2 -na, VL53L0X SCL -tihvtiga. See on I2C kella signaal. I2C jadaprotokoll on see, mida Trinket kasutab VL53L0X -iga suhtlemiseks.

2. Ühendus nipsasja nööpnõelast, mis on märgistatud kui 0 (null), VL53L0X SDA tihvtiga. See on I2C andmesignaal.

3. Ühendus VL53L0X GND tihvtiga läbi protoboardi pilu 2N3904 kiirguriga. See loob pinnase VL53L0X -le.

4. Ühendus Trinketi tihvtiga, mis on tähistatud 4 -ga, 10K takistiga. See on vibratsioonimootori ajam. See traat tuleks kindlasti joota plaadi tagaküljele, kui valite minu ühenduspunkti.

Pidage meeles, et kõik 5 tihvtiga vertikaalsed rühmad on üksteisele ühised, nii et saate ühendada selle rühma kõikjal, kus see on mugav. Märkate minu tahvli fotodel, et muutsin mõnda oma ühenduspunkti. Niikaua kui need on õiged ühendused, sobib ükskõik milline valitud padjake.

Samm: vibratsioonimootor

Vibratsioonimootor
Vibratsioonimootor

Vibratsioonimootoriga on tagaküljel kleebitav kleebis. Tõmbate selle välja, et paljastada kleepuv materjal, mis võimaldab mootori plaadi tagaküljele kinnitada (kuid enne selle kleepimist vaadake allpool olevat kommentaari). Asetasin selle JST Battery Breakout plaadi vasakule (vaadates tahvli tagakülge), mida me pole veel kinnitanud. Niisiis, jätke ruumi JST aku purunemisplaadile. Tahtsin ka veenduda, et mootori metallkorpus ei ühendaks protoboardi vahega ühtegi tihvti. Niisiis, lõikasin väikese tüki kahepoolset teipi ja kleepisin selle vibratsioonimootori kleepuva külje taha. Siis lükkasin selle laua tagaküljele. See aitab hoida metallkorpust kõrgel ja tihvtidest eemal. Kuid siiski olge ettevaatlik ja asetage see nii, et see ei lühistaks ühtegi tihvti.

Jootke vibratsioonimootori punane traat nipsasja 3V tihvti külge. Vibratsioonimootori must traat on joodetud 2N3904 kollektori külge. Kui tarkvara annab impulsi 2N3904 -le (loogika 1 on 3,3 V), lülitub transistor sisse, ühendades vibratsioonimootori musta juhtme maaga (või selle lähedal). See paneb mootori vibreerima.

Ma oleks võinud lisada vibratsioonimootori punase juhtme ühenduspunkti mahtuvust. Kuid Trinketi 3.3V liinil on mahtuvus, nii et olen kindel, et see on korras, kuid kui soovite lisada mõnda muud mahtuvust, saate seda… niikaua kui saate selle sisse pigistada. Sel juhul võib punane juhe ühendada otse LiPo aku positiivsele poolele. Valisin 3,3 V külje, et hoida pinget konstantsena. Siiani tundub, et see töötab hästi.

Samm: viimane, kuid mitte vähem…

Viimane, kuid mitte vähem…
Viimane, kuid mitte vähem…
Viimane, kuid mitte vähem…
Viimane, kuid mitte vähem…

Lõpuks ühendame JST aku purunemisplaadi protoboardi tagaküljega. Jootsin tahvlile tihvtid ja asetasin JST aku purunemisplaadi nii, et selle ülemine külg oleks protoboardi poole, nagu ülal näidatud. Veenduge, et selle osa paigutamisel oleks aku joodised ja maandus õigete tihvtideni joodetud. Kui eksite, muudate osade polaarsuse ja tõenäoliselt hävitate need kõik. Nii et palun kontrollige ja kontrollige uuesti enne jootmist ja aku ühendamist.

12. samm: tarkvara

Tarkvara
Tarkvara

Tarkvara installimiseks ja/või muutmiseks vajate Arduino IDE -d ja Trinket M0 tahvli faile ning VL53L0X teeke. Kõik see on siin, siin ja siin.

Järgige Adafruit M0 kasutamise juhiseid nende õppimissaidil siin.

Kui tarkvara on laaditud, peaks plaat käivituma ja töötama USB -jadaühendusega. Liigutage plaadi külg VL53L0X -ga seina või käe lähedale ja peaksite tundma, kuidas mootor vibreerib. Mida kaugemal seadmest objekt asub, peaks vibratsiooni amplituud vähenema.

Seadmes nähtud käitumist selgitatakse mõnevõrra lähtekoodi kommentaarides. Kuid lisatud graafik peaks selle punkti hästi välja tooma. Seade peaks vibreerima hakkama alles umbes 863 mm kaugusel objektist. See saavutab oma maksimaalse vibratsioonitaseme 50 mm kaugusel objektist. Kui liigute objektile lähemale kui 50 mm, ei tekita seade rohkem vibratsiooni kui 50 mm.

13. samm: ümbris

Korpus
Korpus
Korpus
Korpus
Korpus
Korpus
Korpus
Korpus

Kujundasin korpuse ja printisin selle 3D -vormingus ABS -plastikust. Saate selle printida PLA või ABS või mis tahes soovitud materjalist. Kasutan ABS -i, sest vajadusel saan plaadile keevitada tükke atsetooniga. Minu kujundatud plaat on lihtne ja sellel on auk nipsasja USB -pordi jaoks ja auk toitelüliti jaoks. Panin kaks tahvlit karbi külgedele väikeste kätega kokku klõpsatama. Mulle see väga ei meeldi, nii et tõenäoliselt muudan seda. Loomulikult saate teha mis tahes muudatusi, mida soovite näha.

Selle versiooni jaoks tuleb karbi avamiseks LiPo aku lahti ühendada, et seda uuesti laadida. Kui loon selle projekti jaoks trükkplaadi, lisan veel ühe pistiku, et muuta aku ligipääsetavaks ilma kasti avamata. Sellel protoboard -konstruktsioonil võib olla võimalik seda teha ja teha pistiku jaoks laadimiseks auk. Kui soovite seda proovida, jagage oma tulemusi.

Mul õnnestus kujundada kast, mida ma täielikult ei vihanud. Me kasutame seda süsteemi testimiseks. Olen lisanud kasti üla- ja alaosa STL -failidena, samuti kronsteini/juhendi, mille alumise osa lisasin. Lisasin paar juhendit, kasutades osade keemiliseks keevitamiseks atsetooni. Kui teete seda, olge ettevaatlik. Kokkupanekut näete ülal.

14. samm: mis nüüd?

Mis nüüd?
Mis nüüd?

Kontrollige mind … Olen vana ja võib -olla olen midagi unustanud või sassi läinud. Ma loen ja kontrollin seda uuesti, kuid ma võin ikkagi asjadest ilma jääda. Räägi mulle julgelt, mida ma tegin/tegin valesti.

Ja nüüd, kui olete ehitanud perifeerse radari plaadi ja laadinud selle ning LiPo aku on kenas 3D -prinditud korpuses (kui ma selle lõpetan või kui te ise tegite), mida te edasi teete? Arvan, et peaksite saama kogemusi selle toimimisest ja tarkvara muutma. Tarkvara litsentsilepingus on kirjas, et saate seda kasutada, kuid muudatuste tegemisel peate neid jagama. Ma ei ütle, et selle projekti tarkvara oleks mingil moel keeruline või hämmastav. See täidab oma eesmärgid, kuid arenguruumi on. Aidake seda seadet paremaks muuta ja jagage seda meie kõigiga. Pidage meeles, et selle projekti eesmärk on aidata inimesi. Niisiis, appi!

Soovitan: