Inhoudsopgave:
- Stap 1: Eerste prototype
- Stap 2: Prototype #2
- Stap 3: Prototype #3
- Stap 4: Onderdelen
- Stap 5: Schematisch
- Stap 6: Het Protoboard
- Stap 7: Componentplaatsing
- Stap 8: Draden
- Stap 9: Meer draden
- Stap 10: Trillingsmotor
- Stap 11: Last but not least…
- Stap 12: Software
- Stap 13: Behuizing
- Stap 14: Wat nu?
Video: Perifere radar voor slechtzienden: 14 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:18
Als gevolg van een gruwelijk ongeluk verloor een vriend van mij onlangs het zicht in zijn rechteroog. Hij was lange tijd werkloos en toen hij terugkwam, vertelde hij me dat een van de meest zenuwslopende dingen waarmee hij te maken heeft, is dat hij niet weet wat er aan zijn rechterkant is. Minder perifeer zicht betekent tegen dingen en mensen aanlopen. Dit stoorde me. Ik besloot dat er iets moest zijn dat we konden doen.
Ik wilde een apparaat bouwen dat de afstand tot objecten aan de rechterkant van mijn vriend kon meten. Mijn plan is om een haptische motor te gebruiken om het apparaat omgekeerd evenredig met de afstand tot een object te laten trillen. Als objecten ver weg waren, zou de motor niet trillen en als een object dichterbij was, zou het op een laag niveau beginnen te trillen. Als het object dichtbij was, zou het op een veel hoger niveau trillen (of welk niveau je maar wilde). Het apparaat zou klein genoeg moeten zijn om aan de zijkant van een bril te hangen met de sensor naar rechts gericht. Mijn vriend zou het apparaat aan de rechterkant van zijn bril plaatsen, maar voor iemand anders kan het natuurlijk de linkerkant zijn.
Ik herinnerde me dat ik thuis akoestische afstandssensoren had. Maar ze zijn een beetje groot en omvangrijk, minder nauwkeurig en zouden waarschijnlijk te zwaar zijn voor gebruik op een bril. Ik ging op zoek naar iets anders.
Wat ik vond was de ST Electronics VL53L0X Time-of-Flight-sensor. Dit is een infrarood laser en infrarood detector in één pakket. Het zendt een puls van laserlicht uit buiten het voor mensen zichtbare bereik (940 nm) en registreert de verstreken tijd die nodig is om de gereflecteerde puls te detecteren. Het deelt deze tijd door 2 en vermenigvuldigt zich met de lichtsnelheid, wat een zeer nauwkeurige afstand in millimeters oplevert. De sensor kan afstanden tot 2 meter detecteren, maar zoals ik heb gezien, is 1 meter optimaal.
Adafruit heeft namelijk een VL53L0X breakout board. Dus ik had een vibrerende motor nodig, die ze ook hadden, en een microcontroller om alles te laten draaien. Ik had toevallig een PJRC Teensy 3.2 bij de hand. Hoewel groter dan ik wilde, had het de mogelijkheid om met een lage snelheid te worden geklokt. Ik wilde de kloksnelheid verlagen om energie te besparen. En wat een stroombron betreft, had ik een Sparkfun-boostregelaar in mijn junkbox samen met een AAA-batterijhouder. Ik had zo ongeveer alles wat ik nodig had.
Stap 1: Eerste prototype
Ik nam de onderdelen die ik bij de hand had en maakte een handheld-prototype van het apparaat dat ik voor ogen had. Ik heb het handvat en de montageplaat in 3D geprint en alle elektronica op een Adafruit-protoboard gesoldeerd. Ik heb de trilmotor op de Teensy aangesloten via een 2N3904 NPN-transistor. Ik heb een potentiometer toegevoegd om de maximale afstand in te stellen waarop het apparaat zou reageren.
Ik had hem het volgende weekend draaiend (zie de foto hierboven). Het was niet mooi, maar het demonstreerde het principe. Mijn vriend kon het apparaat aan zijn rechterhand houden en testen of het apparaat wel of niet nuttig zou zijn en om te helpen verfijnen wat hij wilde voor functies.
Stap 2: Prototype #2
Na het eerste draagbare prototype ben ik begonnen met het maken van een kleinere versie. Ik wilde dichter bij mijn doel komen om iets te maken dat op een bril zou passen. Met de Teensy die ik op de handheld-versie gebruikte, kon ik de klok vertragen om energie te besparen. Maar de grootte zou een factor zijn en dus schakelde ik over op een Adafruit Trinket M0. Hoewel de kloksnelheid 48 MHz is, kan de ARM-processor waarop deze is gebaseerd langzamer worden geklokt. Door gebruik te maken van de interne RC-oscillator kan deze op 8, 4 2 en zelfs 1 MHz draaien.
Prototype #2 kwam vrij snel samen omdat ik het volgende weekend alles bij elkaar had. Het circuit was hetzelfde als prototype # 1 behalve de ARM M0. Ik heb een kleine behuizing in 3D geprint en geleiders op de achterkant geplaatst zodat deze op een bril kon worden geschoven. Zie de afbeelding hierboven. In eerste instantie wordt het geklokt op de 48 MHz-snelheid.
Stap 3: Prototype #3
Dus deze Instructable begint hier echt. Ik besloot nog een laatste prototype te maken. Ik besluit om het zo klein mogelijk te persen zonder een aangepaste PWB te gebruiken (waarvan ik zeker weet dat we op weg zijn). De rest van deze Instructable gaat over het laten zien hoe je er een kunt maken. Net als mensen die 3D-geprinte handen maken voor kinderen met een handicap, hoop ik dat mensen deze zullen maken voor iedereen met een vergelijkbaar verlies van gezichtsvermogen in een oog.
Ik hield de onderdelenlijst hetzelfde als prototype #2, maar ik besloot de potentiometer te verwijderen. Na een gesprek met mijn vriend hebben we besloten om de maximale afstand softwarematig in te stellen. Omdat ik de mogelijkheid heb om een aanraaksensor te gebruiken met de Teensy, kunnen we de maximale afstand altijd instellen door aan te raken. Eén aanraking stelt een korte afstand in, of meerdere aanrakingen een langere afstand, een andere aanraking de langste afstand en dan voor nog een aanraking, wikkel je terug naar het begin. Maar eerst gebruiken we een vaste afstand om op weg te gaan.
Stap 4: Onderdelen
Voor dit prototype had ik een kleiner bord nodig. Ik ging met een Sparkfun protoboard (PRT-12702) omdat het kleine afmetingen (ongeveer 1,8 "X 1,3") een goede maat zou zijn om op te schieten.
Ik moest ook iets anders dan een AAA-batterij als stroombron gebruiken. Een LiPo leek de juiste keuze omdat deze opslagcapaciteit en een laag gewicht zou hebben. Ik heb een knoopcel geprobeerd, maar die had niet genoeg vermogen om de motor lang aan te kunnen. Ik koos voor een kleine LiPo met een capaciteit van 150 mAh.
Ik zou bij de Trinket M0 blijven en natuurlijk het VL53L0X breakout-bord.
Nu we tot de details zijn gekomen, is hier een lijst met onderdelen voor dit prototype:
Adafruit VL53L0X Vluchttijdsensor - PRODUCT ID: 3317 Adafruit - Vibrerende Mini Motor Disc - PRODUCT ID: 1201 Adafruit - Lithium Ion Polymeer Batterij - 3.7v 150mAh - PRODUCT ID: 1317 SparkFun - Soldeerbare Breadboard - Mini - PRT-12702 Sparkfun - JST haakse connector - Through-hole 2-pins - PRT-09749 10K ohm weerstand - Junkbox (kijk op je vloer) 2N3904 NPN Transistor - Junkbox (of bel een vriend) Wat aansluitdraad (ik gebruikte 22 gauge stranded)
Om de LiPo-batterij op te laden, schepte ik ook op:
Adafruit - Micro Lipo - USB LiIon/LiPoly-oplader - v1 - PRODUCT ID: 1304
Stap 5: Schematisch
Het schema voor dit apparaat is hierboven weergegeven. De aanraakinvoer zal voor een toekomstige versie zijn, maar wordt toch weergegeven in het schema. Ook biedt de 10K-weerstand tussen de Trinket M0 en de basis van de 2N3904 net genoeg basis om de motor aan te zetten zonder hem te hard te slaan.
Wat volgt is een stapsgewijze montagebeschrijving.
Stap 6: Het Protoboard
Velen van jullie die ervaren zijn, weten dit, maar dit is voor degenen die misschien nieuw zijn in het solderen van protoboards:
Het hierboven getoonde Sparkfun-protoboard (PRT-12702) heeft 17 kolommen (groepen) van 5 pinnen aan elke kant van een opening van drie tienden van een inch. Elke verticale kolom van 5 pinnen aan weerszijden van de opening zijn gemeenschappelijk voor elkaar. Hiermee bedoel ik dat elke verbinding met een pin in de groep een verbinding is met elke andere pin in de groep. Voor dit bord lijkt dat niet voor de hand liggend, maar je kunt dit verifiëren als je een DVM (Digital Volt Meter) gebruikt. Als je op de achterkant kijkt, kun je nog net de sporen onderscheiden die de groepen met elkaar verbinden.
Stap 7: Componentplaatsing
Waarschijnlijk moet je op zowel de Trinket M0 als de VL53L0X pinstrips solderen. Beide worden geleverd met de strips, maar ze moeten worden gesoldeerd. Adafruit heeft instructies in hun leercentrum voor beide onderdelen. Als dit nieuw voor je is, ga dan daar (hier en hier) voordat je de strips op de borden soldeert. De pinstrips zorgen voor een lager profiel dan een socket zou doen.
Het eerste waar u rekening mee moet houden bij het solderen van iets op een protoboard met beperkte ruimte, is de plaatsing van componenten. Ik plaatste de Trinket en de VL53L0X in de posities weergegeven in de bovenstaande afbeelding. De Trinket heeft pinnen aan beide randen van het bord, maar de VL53L0X heeft 7 pinnen aan één rand van het bord. De kant van de VL53L0X die geen pinnen heeft, zullen we gebruiken om sommige componenten aan te sluiten … zoals we zullen zien.
Ik heb ook de schuifschakelaar op zijn plaats gesoldeerd en de 2N3904 gesoldeerd. Ik heb de gaten waar die onderdelen zijn geplaatst donkerder gemaakt en voor de 2N3904 heb ik genoteerd welke pinnen de Collector, Base en Emitter zijn. Wanneer u het voor het eerst soldeert, moet u het loodrecht op het bord laten staan, zodat u andere verbindingen kunt solderen. Later kun je het (voorzichtig) buigen, zodat het dichter bij het bord komt.
OPMERKING: De JST Battery Breakout wordt op dit moment NIET op het bord gesoldeerd. Het wordt op de achterkant van het bord gesoldeerd, maar pas NADAT we onze andere verbindingen hebben gesoldeerd. Het zal het laatste zijn dat we solderen.
Stap 8: Draden
Het bovenstaande diagram toont het protoboard opnieuw met verdonkerde gaten waar componenten zullen worden geplaatst. Ik heb de labels voor hen langs de randen toegevoegd om het bedraden te vergemakkelijken. Merk op dat de vibratiemotor wordt weergegeven, maar deze bevindt zich aan de achterkant van het bord en zal bijna als laatste worden aangesloten, dus negeer deze voorlopig. Ik laat ook de JST Battery Breakout zien met een stippellijn. Zoals aangegeven in de vorige stap, sluit het niet aan, maar laat de 4 gaten aan de bovenkant van het bord open (d.w.z. soldeer er niet aan).
Ik neem aan dat je op dit punt weet hoe je de isolatie van een draad kunt strippen, de uiteinden kunt vertinnen met soldeer en op een bord kunt solderen. Zo niet, ga dan naar een van de Instructables over solderen.
Voor deze stap soldeert u de draden zoals weergegeven in het geel. De eindpunten zijn de gaten waaraan je ze moet solderen. Je moet ook de 10K ohm-weerstand op het bord solderen, zoals weergegeven. De verbindingen die worden gemaakt zijn:
1. Een verbinding van de positieve pool van de batterij naar de COMmon (midden) pool van de schuifschakelaar. Een kant van de schuifschakelaar maakt contact met de BAT-ingang naar de Trinket. De ingebouwde regelaar van de Trinket genereert 3,3 V van de BAT-ingangsspanning.
2. Een verbinding van de negatieve (aarde) pool van de batterij naar de aarde van de Trinket.
3. Een verbinding van de negatieve (aarde) pool van de batterij naar de emitter van de 2N3904
4. Een verbinding van de 3,3 volt (3V) pin van de Trinket naar de VIN van de VL53L0X. De VL53L0X zal dit voor eigen gebruik verder regelen naar 2,8 volt. Het brengt deze spanning ook naar een pin, maar we hebben het niet nodig, dus het blijft niet aangesloten.
Stap 9: Meer draden
Dus nu voegen we de volgende groep draden toe zoals hierboven weergegeven. Hier is een lijst van elke verbinding:
1. Een verbinding van de pin van de Trinket met het label 2 naar de VL53L0X SCL-pin. Dit is het I2C-kloksignaal. I2C seriële protocol is wat wordt gebruikt door de Trinket om te communiceren met de VL53L0X.
2. Een verbinding van de pin van de Trinket met het label 0 (nul) naar de VL53L0X SDA-pin. Dit is het I2C-gegevenssignaal.
3. Een verbinding van de VL53L0X GND-pin over de opening op het protoboard naar de zender van de 2N3904. Dit levert aarde aan de VL53L0X.
4. Een verbinding van de pin van de Trinket met het label 4 naar de 10K-weerstand. Dit is de aandrijving voor de vibratiemotor. Deze draad moet zeker op de achterkant van het bord worden gesoldeerd als je mijn aansluitpunt kiest.
Onthoud dat elke verticale groep van 5 pinnen gemeenschappelijk is, dus u kunt overal in deze groep verbinding maken als dat handig is. Je zult op de foto's van mijn bord zien dat ik een paar van mijn verbindingspunten heb gewijzigd. Zolang ze de juiste verbinding hebben, is de pad die je kiest in orde.
Stap 10: Trillingsmotor
De vibratiemotor wordt geleverd met een afpelbare sticker op de achterkant. Je trekt dit eraf om een kleverig materiaal te onthullen waarmee de motor op de achterkant van het bord kan worden geplakt (maar zie de opmerking hieronder voordat je het plakt). Ik plaatste het aan de linkerkant (kijkend naar de achterkant van het bord) van het JST Battery Breakout-bord dat we nog niet hebben bevestigd. Laat dus wat ruimte over voor het JST Battery Breakout board. Ik wilde er ook zeker van zijn dat de metalen behuizing van de motor geen pinnen over de opening van het protoboard zou kortsluiten. Dus ik knipte een klein stukje dubbelzijdig plakband en plakte dat aan de achterkant van de plakkerige kant van de vibratiemotor. Toen duwde ik dat op de achterkant van het bord. Het helpt om de metalen behuizing hoog en uit de buurt van pinnen te houden. Maar toch, wees voorzichtig om het op een manier te plaatsen die GEEN pinnen kortsluit.
Soldeer de rode draad van de vibratiemotor aan de 3V pin van de Trinket. De zwarte draad van de vibratiemotor is gesoldeerd aan de collector van de 2N3904. Wanneer de software de 2N3904 pulseert (geeft een logische 1 als 3,3V), gaat de transistor aan en verbindt de zwarte draad van de vibratiemotor met aarde (of dichtbij). Hierdoor gaat de motor trillen.
Ik had wat capaciteit kunnen toevoegen aan het rode draadaansluitpunt van de vibratiemotor. Maar er is capaciteit op de 3.3V-lijn van de Trinket, dus ik weet zeker dat het goed is, maar als je wat andere capaciteit wilt toevoegen, kun je … zolang je het erin kunt persen. Overigens kan de rode draad worden aangesloten rechtstreeks naar de positieve kant van de LiPo-batterij. Ik koos de 3.3V-kant om de spanning constant te houden. Tot nu toe lijkt het goed te werken.
Stap 11: Last but not least…
Als laatste verbinden we het JST Battery breakout board met de achterkant van het protoboard. Ik soldeerde pinnen op het bord en plaatste het JST Battery breakout-bord met de bovenkant naar het protoboard gericht, zoals hierboven weergegeven. Zorg ervoor dat u de draden voor positieve batterij en massa aan de juiste pinnen hebt gesoldeerd wanneer u dit onderdeel plaatst. Als je het mis hebt, keer je de polariteit om naar de onderdelen en vernietig je ze waarschijnlijk allemaal. Dus alstublieft, controleer en controleer opnieuw voordat u de batterij soldeert en aansluit.
Stap 12: Software
Om de software te installeren en/of aan te passen heb je de Arduino IDE en de bordbestanden voor de Trinket M0 nodig, evenals de bibliotheken voor de VL53L0X. Dat is allemaal hier, hier en hier.
Volg hier de instructies voor het gebruik van de Adafruit M0 op hun leersite.
Zodra de software is geladen, moet het bord opstarten en draaien op de USB-seriële verbinding. Beweeg de zijkant van het bord met de VL53L0X dicht bij een muur of je hand en je zou de motor moeten voelen trillen. De trilling zou in amplitude lager moeten worden naarmate een object verder van het apparaat verwijderd is.
Een gedrag dat in het apparaat wordt gezien, wordt enigszins uitgelegd in de opmerkingen in de broncode. Maar de bijgevoegde grafiek zou dit punt goed moeten maken. Het apparaat mag pas beginnen te trillen op ongeveer 863 mm van een object. Het bereikt zijn maximale trillingsniveau op 50 mm van een object. Als u dichter bij een object komt dan 50 mm, zal het apparaat niet meer trillingen produceren dan bij 50 mm.
Stap 13: Behuizing
Ik ontwierp een behuizing en 3D geprint in ABS plastic. Je zou het kunnen afdrukken in PLA of ABS of welk materiaal je maar wilt. Ik gebruik ABS omdat ik indien nodig stukken op het bord kan lassen met aceton. Het bord dat ik heb ontworpen is eenvoudig en heeft een gat voor de USB-poort op de Trinket en een gat voor de aan / uit-schakelaar. Ik liet de twee planken in elkaar klikken met kleine armpjes aan de zijkanten van de doos. Ik vind het niet zo leuk, dus ik ga het waarschijnlijk veranderen. U kunt natuurlijk alle wijzigingen aanbrengen die u graag zou willen zien.
Op dit moment moet voor deze versie de doos worden geopend om de LiPo-batterij los te koppelen om deze op te laden. Als ik een printplaat voor dit project maak, zal ik een andere connector toevoegen om de batterij toegankelijk te maken zonder de doos te openen. Het is misschien mogelijk om dat op dit protoboard-ontwerp te doen en een gat te maken voor de connector om op te laden. Als je dit wilt proberen, deel dan je resultaten.
Ik heb een doos kunnen ontwerpen die ik niet helemaal haatte. We gebruiken deze om het systeem te testen. Ik heb de boven- en onderkant van de doos als STL-bestanden bevestigd, evenals de beugel / gids die ik aan de onderkant heb toegevoegd. Ik voegde een paar geleiders toe met aceton om de onderdelen chemisch aan elkaar te lassen. Als je dit doet, wees dan voorzichtig. Je kunt de montage hierboven zien.
Stap 14: Wat nu?
Check me…Ik ben oud en misschien ben ik iets vergeten of heb ik het verprutst. Ik herlees en controleer dit, maar ik kan nog steeds dingen missen. Voel je vrij om me te vertellen wat ik fout deed/doe.
En nu je het Peripheral Radar-bord hebt geconstrueerd en geladen en de LiPo-batterij in een mooie 3D-geprinte behuizing zit (als ik het af heb of, als je het zelf hebt gedaan), wat ga je nu doen? Ik denk dat je ervaring moet opdoen met hoe het werkt en de software moet aanpassen. In de licentieovereenkomst in de software staat dat u deze kunt gebruiken, maar als u wijzigingen aanbrengt, moet u deze delen. Ik zeg niet dat de software voor dit project op de een of andere manier ingewikkeld of verbazingwekkend is. Het bereikt zijn doelstellingen, maar er is ruimte voor verbetering. Help dit apparaat beter te maken en deel dat met ons allemaal. Onthoud dat dit project helemaal draait om het helpen van mensen. Dus, help!
Aanbevolen:
ScanUp NFC-lezer/schrijver en audiorecorder voor blinden, slechtzienden en iedereen: 4 stappen (met afbeeldingen)
ScanUp NFC-lezer/schrijver en audiorecorder voor blinden, slechtzienden en alle anderen: ik studeer industrieel ontwerp en het project is het werk van mijn semester. Het doel is om visueel gehandicapte en blinde mensen te ondersteunen met een apparaat waarmee audio in het.WAV-formaat op een SD-kaart kan worden opgenomen en die informatie kan worden opgeroepen met een NFC-tag. Dus binnen
Haptische schoen voor slechtzienden - Ajarnpa
Haptische schoen voor slechtzienden: er zijn meer dan 37 miljoen slechtzienden over de hele wereld. De meeste van deze mensen gebruiken een wandelstok, stok of zijn afhankelijk van iemand anders om te pendelen. Het vermindert niet alleen hun zelfafhankelijkheid, maar schaadt in sommige gevallen ook hun zelf
Sonar, Lidar en Computer Vision op microcontrollers gebruiken om slechtzienden te helpen: 16 stappen
Sonar, Lidar en Computer Vision op microcontrollers gebruiken om slechtzienden te helpen: ik wil een intelligente 'stok' maken die mensen met een visuele beperking veel meer kan helpen dan bestaande oplossingen. De wandelstok kan de gebruiker op de hoogte stellen van objecten aan de voorkant of aan de zijkanten door een geluid te maken in de surround sound-type hoofdtelefoon
Apparaat voor slechtzienden: 4 stappen
Apparaat voor slechtzienden: deze tutorial is gebaseerd op een open source Arduino-project voor een Smart Cane en telefoon die blinden helpt om overal alleen te lopen met behulp van invoer via een obstakelsensor en het geven van feedback via haptiek (vibratiemotor). T
Perifere doos: 7 stappen
Perifere doos: Dus ik heb de afgelopen maanden voor mijn werk gereisd, en merkte dat ik gefrustreerd begon te sjouwen met kabels en alle verschillende randapparatuur voor mijn laptop, dus besloot ik als een weekendproject om een alles-in-één oplossing te bouwen om alles op te bergen. de vari