Innholdsfortegnelse:
- Trinn 1: Hva er klokke stretching?
- Trinn 2: Litt hjelp fra griser som flyr
- Trinn 3: TL; DR -versjon
- Trinn 4: Installasjon
- Trinn 5: Installer Pigpio
- Trinn 6: Valgfritt: Dev System Setup
- Trinn 7: Konfigurere WinSCP
- Trinn 8: (w) å få koden
- Trinn 9: Merknad for snart-til-være hackere
Video: TinyLiDAR på en Pi?: 9 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:25
Hallo igjen!
Vel, nå som du har brukt litt kvalitetstid med tinyLiDAR og din Arduino - din Raspberry Pi føler deg kanskje litt ensom;)
Pi har vel en I2C -port? Så hvorfor ikke koble den til og prøve den der ?! God plan, men hvis du allerede har prøvd - har du kanskje lagt merke til at dataene ser litt merkelige ut.
Ja, pi har allerede innebygd 1.8K pull-ups, så du må kutte I2C-putene på tinyLiDAR for å få 4.7K pull-ups ut av kretsen-se referansehåndboken for detaljer. Men dette er ikke årsaken til de merkelige dataene.
Det er fordi pi's I2C -buss ikke akkurat er opp til spesifikasjonene. Det har vært slik siden pi ble først introdusert på grunn av Broadcom -brikkesettet. Helt fra begynnelsen har de ikke støttet en I2C -funksjon som kalles "klokkestrekning".
Du kan lese mer om denne h/w -feilen her.
Trinn 1: Hva er klokke stretching?
Som du kanskje vet, består I2C -bussen av 3 ledninger. Disse er for klokke (SCL), data (SDA) og felles grunnlag. Klokken og datalinjene er av åpen kollektor/åpen dreneringstype, noe som betyr at de trenger opptrekkmotstander koblet til en positiv forsyningsskinne for å gi dem en logisk høyde. For å få en logikk lav, kan enhver enhet på bussen trekke ned linjen til felles grunn.
I henhold til I2C -standarden er Master -enheten den som leverer klokkesignalet på SCL -linjen, men hvis denne hastigheten er for rask, får Slave -enheten lov til å bremse den ved ganske enkelt å holde nede klokkelinjen til den er klar til å håndtere med informasjonen. Dette er det vi kaller "klokketrekk".
Offisielt ble klokkestrekning oppført som en valgfri funksjon i I2C -standarden, men det er en veldig vanlig funksjon som er nødvendig for de fleste "intelligente" slaver som trenger litt ekstra tid for å gi sensordata etc.
Trinn 2: Litt hjelp fra griser som flyr
For å håndtere denne I2C h/w bug, fant vi et fint lite gratis bibliotek kalt "pigpio". Det er et veldig populært, raskt og lett bibliotek skrevet i C. Det kjører som bakgrunnsdemon for Raspberry Pi og lar oss styre I2C så vel som alle GPIO enkelt fra python. Biblioteket behandler I2C -portene mer som GPIO og har derved omgått I2C klokke strekkfeil. Som all programvare på pi, er pigpio -biblioteket bare et enkelt "inkluder" unna, så la oss gå!
Trinn 3: TL; DR -versjon
Oppsett Pi Aktiver SSH for å logge på med Putty Installer pigpio -bibliotek Få litenLiDAR zip -fil Pakk ut og kjør fra Putty
Valgfri:
Sett opp SublimeText med WinSCP
Trinn 4: Installasjon
For Raspberry Pi 3 brukte vi standard New Out Of the Box Software (NOOBS Lite v2.4) operativsystem. Den inneholder en standardversjon av Python som allerede er installert for oss klar til å kode med. Du kan laste ned operativsystemet herfra.
Når det er installert på et micro SD -kort, må du koble til et tastatur og en skjerm, slik at du kan logge på pi for første gang:
Brukernavn: pi Passord: bringebær
Deretter kan du starte en sikker shell -server (SSH) med disse kommandoene:
sudo systemctl aktiver sshsudo systemctl start ssh
Deretter trenger vi IP -adressen til pi på nettverket ditt, slik at vi kan logge inn med PuTTY. For å få dette, bare skriv:
vertsnavn -I
Og se etter en IPv4 -formatadresse (for oppsettet vårt var det: 192.168.0.27)
De ovennevnte trinnene vil tillate pi å kjøre "hodeløst", noe som betyr at du ikke trenger å skrive på dette tastaturet igjen, og det er heller ikke behov for en videomonitor lenger. Vi vil logge inn via nettverket via en sikker SSH -tilkobling fremover. Kommandoen ovenfor får SSH -serveren til å starte automatisk hver gang pi slås på. Dette er praktisk for oss mens vi koder, men det kan være en sikkerhetsrisiko senere (å være paranoid er bra), så når du er klar, kan du deaktivere denne autostart -SSH -funksjonen ved å bruke denne kommandoen:
sudo systemctl deaktiver ssh
Denne kommandoen skal selvfølgelig skrives på tastaturet som er koblet til pi.
PuTTY er et terminalprogram som er nødvendig for å utstede kommandoer fra PC -en til pi, så du bør ta den siste kopien herfra.
Installer og start opp PuTTY. Du må skrive inn IP -adressen ovenfra i vertsnavnoppføringen og bruke standard SSH -innstillinger. Gi økten hvilket navn du vil, og trykk lagre. Trykk deretter på last og klikk ÅPEN for å starte en økt.
Det bør komme deg til påloggingsskjermen for pi. Bruk samme brukernavn og passord som du brukte tidligere.
Trinn 5: Installer Pigpio
Det eneste vi trenger å installere etter dette er pigpio -biblioteket, og vi kan gjøre dette ved å bruke følgende kommandoer.
Tips: Du kan ganske enkelt kopiere [ctrl+c] og lime inn [museklikk] disse og andre kommandoer i PuTTY -terminalen
sudo apt-get oppdatering
sudo apt-get install pigpio python-pigpio python3-pigpio
Trinn 6: Valgfritt: Dev System Setup
Så her er et tips som kan hjelpe deg med å spare tid i kodeutviklingsverdenen. Vi hater virkelig unix -baserte tekstredigerere. Brukergrensesnittet er normalt klønete og skriftene suge. GNU nano er nesten utholdelig, men ingen er så raffinerte som SublimeText som du kan laste ned herfra
Vi har et Windows -basert utviklingsmiljø og liker å bruke denne tekstredigereren når det er mulig. Så tipset her er å sette opp systemet ditt for å kunne bruke denne profesjonelle tekstredigereren innfødt på skrivebordet i Windows for å kode direkte på din hodeløse pi.
Hvordan? Ved hjelp av en gratis app kalt WinSCP som du kan laste ned herfra
Trinn 7: Konfigurere WinSCP
WinSCP er et sikkert filoverføringsprogram som gir en grafisk fremstilling av filene som er tilstede på rpi, omtrent som det du ser i filbehandleren på Windows -PCen.
Så fortsett og installer de to ovennevnte programmene også nå.
Deretter må du gjøre noen justeringer for at alle skal fungere skikkelig.
For WinSCP kan du klikke på NYTT nettsted. Vi bruker standard SFTP -innstillinger, og du trenger bare å angi IP -adressen (for vertsnavn) på pi -en din og påloggingsnavnet (for brukernavn). Du kan velge å la passordet stå tomt hvis du vil - det vil be deg om passordet hver gang du logger inn.
Klikk deretter på Avansert -knappen, og klikk deretter på venstre side for miljøskallinnstillinger. Endre "Standard" på høyre side til alternativet "sudo su -". Dette gjør at endringer kan skrives til pi -en din uten tillatelsesfeil når du trykker på lagre fra SublimeText.
Angi SublimeText som standardredigerer i WinSCP
For å gjøre dette, klikk på Verktøy -knappen på skjermbildet for innstillinger for innlogging i WinSCP der du startet NewSite -dialogboksen. De to skjermbildene viser hvordan dette er konfigurert, men i utgangspunktet klikker du for å konfigurere redigeringspreferansen og Legg til en redaktør som vil være en ekstern editor. Du kan deretter søke etter.exe -filen der dette redigeringsprogrammet er plassert på datamaskinen din.
Trinn 8: (w) å få koden
Når det er gjort, fortsett og logg inn med WinSCP og med PuTTY.
Nå er vi klare, vi kan starte vår tinyLiDAR -kode.
Lag en katalog kalt tinyLiDAR under hjem/pi -katalogen din.
Du kan gjøre dette ved å høyreklikke på høyre side av WinSCP -skjermen og velge Ny / katalog.
Nå på PuTTY -terminalen kan du skrive
cd t
og trykk på fanen for å la kommandoen autofullføre for å komme til tinyLiDAR -katalogen.
Når du er her, skriver du inn følgende:
wget
for å få filene direkte fra serveren vår. Vi kan deretter pakke dem ut ved å skrive
pakke ut r
og trykk på fanen for å autofullføre navnet igjen
For å kjøre den, bare skriv
python tlgui.py
Og din tinyLiDAR vil svare på hver kommando på pi:)
Trinn 9: Merknad for snart-til-være hackere
Ta en titt under panseret ved å dobbeltklikke på noen av kodefilene fra WinSCP. Det er de med en.py -forlengelse. Filene skal åpnes i SublimeText direkte på PCen. Endre hva du vil, og trykk deretter på lagre. Endringene dine blir lagret direkte på pi -en din.
Når du er klar, kjører du den igjen ved å bruke pil opp -tasten for den siste tastede kommandoen eller bare skrive den inn igjen og trykke enter:
python tlgui.py
Du har kanskje lagt merke til at Terminal GUI -oppsettet ser litt bedre ut enn Arduino -versjonen. Det er fordi PuTTY støtter unicode -tegn, så vi kunne bruke noen ekstra markørkontrolltegn for å få det til å se mer raffinert ut.
Det er også en ekstra kommando her (sammenlignet med Arduino -versjonen) som er "dc" for Continuous Read -funksjonen. Prøv det og se hva du synes.
Det er alt!
Takk for at du leser og nyt hacking på pi:)
Anbefalt:
Slik demonterer du en datamaskin med enkle trinn og bilder: 13 trinn (med bilder)
Slik demonterer du en datamaskin med enkle trinn og bilder: Dette er en instruksjon om hvordan du demonterer en PC. De fleste grunnkomponentene er modulære og fjernes lett. Det er imidlertid viktig at du er organisert om det. Dette vil bidra til å hindre deg i å miste deler, og også i å gjøre monteringen igjen
CircuitPython og TinyLiDAR: Enkelt eksempel: 3 trinn
CircuitPython og TinyLiDAR: Enkelt eksempel: MicroElectronicDesign tinyLiDAR er en ST VL53L0X-basert time-of-flight (ToF) -modul med en i2c-bussforbindelse. Adafruit -mikrokontrollerkortene kobles enkelt til denne sensoren, ettersom de kan snakke i2c -protokollen over datapinnen
TinyLiDAR i garasjen din !: 10 trinn
TinyLiDAR in Your Garage !: DIY WiFi Garage Door Opener Project IoT -verden begynner bare å eksplodere - hvert teknologiselskap rundt om i verden prøver å finne ut hvordan de vil passe inn i denne nye verden. Det er bare en stor mulighet! Så for dette instruerbare, jeg
TinyLiDAR for IoT: 3 trinn
TinyLiDAR for IoT: Hvis du ser deg rundt, vil du legge merke til at mange smarte små enheter blir brukt i hverdagen. De er vanligvis batteridrevne og vanligvis koblet til Internett (aka "skyen") på en eller annen måte. Dette er alt vi kaller "IoT" -enheter, og de
Kan jeg bruke TinyLiDAR i Scratch ?: 3 trinn
Kan jeg bruke TinyLiDAR i … Scratch ?: Vi får av og til forespørsler om å spørre om tinyLiDAR vil fungere på deres spesielle databehandlingsplattform. Selv om tinyLiDAR ble designet som en brukervennlig LiDAR -sensor for Arduino UNO, er det ingenting som hindrer den i å bli brukt på andre plattformer