Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-13 06:58
For synshemmede, bruk dette for å få en bedre forståelse av verden rundt deg.
Rekvisita
Ting som brukes i dette prosjektet
Maskinvarekomponenter Walabot Creator × 1
ADAFRUIT DRV2605L HAPTIC MOTOR CONTROLLER × 1
Raspberry Pi 3 Model B × 1
Adafruit VIBRATING MINI MOTOR DISC × 1
5.1V batteripakke × 1
ryggsekk × 1
Stikkledninger (generisk) × 5
Trinn 1: Abstrakt
Hvordan ville det vært hvis du kunne føle objekter rundt deg? Betyr du at du kan navigere rundt i rommet selv om synet ditt ble kompromittert? Ikke bare for svaksynte, denne ideen kan også brukes av nødetater (nemlig brannvesenet) i røykfylte miljøer. Lyd er ikke alltid den beste og mest diskrete måten å gi instruksjon på, haptisk tilbakemelding, derimot, vil være perfekt.
Trinn 2: Grunnideen
Jeg ønsket å lage en sensor som ville være i stand til å plukke opp hindringer, og deretter gi brukeren råd om å bruke haptisk tilbakemelding hvor langt unna objektet er, og om det kommer fra venstre, høyre eller død foran. For dette trenger jeg: En sensor som er i stand til å se 3D -plass Haptisk tilbakemeldingsdriver Haptisk tilbakemeldingsaktuator Et eksternt batteri En ryggsekk som den kan festes til.
Trinn 3: Walabot
Vil du se gjennom vegger? Sanseobjekter i 3D -rom? Følelse hvis du puster fra andre siden av rommet? Vel, du har flaks.
Walabot er en helt ny måte å kjenne på rommet rundt deg ved å bruke lav effektradar. Dette skulle bli nøkkelen til dette prosjektet. Jeg vil kunne ta de kartesiske (X-Y-Z) koordinatene til objekter i 3D-rom, disse vil bli kartlagt til en rekke haptiske tilbakemeldinger for å gi brukeren en bedre forståelse av rommet rundt dem.
Trinn 4: Komme i gang
Første ting først, du trenger en datamaskin for å kjøre Walabot, for dette prosjektet bruker jeg en Raspberry Pi 3 (her referert til som RPi) på grunn av den innebygde WiFi og generelle ekstra oomph.
Jeg kjøpte et 16 GB SD -kort med NOOBS forhåndsinstallert for å holde tingene fine og enkle, og valgte å installere Raspian som mitt foretrukne Linux -operativsystem (hvis du ikke er kjent med hvordan du installerer Raspian, vennligst ta deg tid til å lese litt om dette) OK, når du har kjørt Raspian på RPi -en din, er det noen få konfigurasjonstrinn du må ta for å gjøre tingene klare for prosjektet vårt. Først må du kontrollere at du kjører den nyeste kjerneversjonen og se etter oppdateringer ved å åpne et kommandoskall og skrive:
sudo apt-get oppdatering
sudo apt-get dist-upgrade
(Sudo er lagt til for å sikre at du har administrative privilegier, f.eks. Ting vil fungere.) Dette kan ta litt tid å fullføre, så ta en god kopp te. 2.
Du må installere Walabot SDK for RPi. Fra din RPi -nettleser, gå til https://www.walabot.com/gettingstarted og last ned Raspberry Pi installasjonspakken.
Fra et kommandoskall:
nedlasting av cd
sudo dpkg -I walabotSDK_RasbPi.deb
Vi må begynne å konfigurere RPi for å bruke i2c -bussen. Fra et kommandoskall:
sudo apt-get install python-smbus
sudo apt-get install i2c-tools
Når dette er gjort, må du legge til følgende i modulfilen.
Fra et kommandoskall:
sudo nano /etc /modules
legg til disse 2 strengene på separate linjer
i2c-dev
i2c-bcm2708
Walabot trekker en god del strøm, og vi vil også bruke GPIO til å kontrollere ting, så vi må sette dem opp.
Fra et kommandoskall:
sudo nano /boot/config.txt
legg til følgende linjer på slutten av filen:
safe_mode_gpio = 4
max_usb_current = 1
RPi er et utmerket verktøy for produsenter, men det er begrenset i strømmen det kan sende til Walabot. Derfor legger vi til en maksimal strøm på 1 ampere i stedet for den mer vanlige 500mA.
Trinn 5: Python
Hvorfor Python? Vel, siden det er superenkelt å kode, raskt å komme i gang, og det er mange gode python -eksempler tilgjengelig! Jeg hadde aldri brukt det før og var snart i gang på kort tid. Nå er RPi konfigurert for det vi ønsker, neste trinn er å konfigurere Python til å ha tilgang til Walabot API, LCD Servo -grensesnitt.
For Walabot
Fra et kommandoskall:
Sudo pip installer "/usr/share/walabot/python/WalabotAPI-1.0.21.zip"
For Haptic Driver
Fra et kommandoskall:
sudo apt-get install git build-essential python-dev
cd ~
git klon
Adafruit DRV2605 haptic driver board er flott fordi du kan sende I2C signaler for å utløse tonnevis med lagrede haptiske profiler. Den eneste ulempen var at det ikke var noe Python -bibliotek for dette tilgjengelig. Men ikke frykt! Jeg har skrevet en som en del av dette prosjektet.
Trinn 6: Kjør skriptet automatisk
Nå som alt er konfigurert og konfigurert, og vi har Python -koden klar, kan vi sette ting til å kjøre automatisk, slik at vi kan slippe tastaturet og skjermene.
Det er et par ting å gjøre:
Opprett en ny skriptfil for å kjøre ut Python -programmet
sudo nano walaboteye.sh
Legg til disse linjene
#!/bin/sh
python /home/pi/WalabotEyeCLI.py
Sørg for å lagre den. Deretter må vi gi skriptet tillatelse til å kjøre ved å skrive:
Sudo chmod +x /home/pi/walaboteye.sh
Og til slutt må vi legge til dette skriptet i /etc/rc.local -filen
Sudo nano /etc/rc.local Legg til hjem/pi/walaboteye.sh &
Sørg for å inkludere "&". Dette gjør at Python Script kan kjøre i bakgrunnen Høyre! Det er all konfigurasjon og programvare som er sortert, neste gang er det på tide å koble til maskinvaren.
Trinn 7: Maskinvaren
Dette er ikke min fineste time, men det føles herlig hacky! Som du vil se på bildene.
Trinn 8:
Ledningen er superenkel. Koble RPi, SDA SCL VCC og GND -pinner til de tilsvarende DRV2605 -pinnene. Koble din haptiske motor til førerkortet … det er det for den biten!
Trinn 9:
Etter det er alt du trenger å gjøre å koble walabot -USB -en til RPi og få din fineste tape og sikre alt på plass som vist:
Trinn 10: Slik fungerer det
Ideen er veldig enkel. Avhengig av hvor langt unna hindringen er, avhenger av hvor sterk buzz vil føles på skulderen din. 2 meter unna er en myk buzz, under 70cm er en veldig sterk buzz og alt i mellom.
- Sensoren kan også fortelle deg om hindringen er død foran, fra venstre eller fra høyre.
- Måten den gjør dette på er å legge til en ny haptisk buzz, avhengig av hvor objektet er. Hvis hindringen er død foran, er det en enkel repeterende sum, med styrken avhengig av hvor langt den er.
- Hvis hindringen er til høyre, legges det til en rampe opp buzz etter hoved -buzz. Igjen, styrken avhenger av hvor langt unna det er
- Hvis hindringen er til venstre, legges det til en rampe ned -buzz etter hoved -buzz
Enkel!
Trinn 11: Kode
Walabot Eye Github
DRV2605 GitHub