Innholdsfortegnelse:

TinyLiDAR på en Pi?: 9 trinn (med bilder)
TinyLiDAR på en Pi?: 9 trinn (med bilder)

Video: TinyLiDAR på en Pi?: 9 trinn (med bilder)

Video: TinyLiDAR på en Pi?: 9 trinn (med bilder)
Video: Как использовать 2 или более лазерных датчиков расстояния VL53L0X 2024, Juli
Anonim
TinyLiDAR på en Pi?
TinyLiDAR på en Pi?

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?

Hva er klokke stretching?
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

Installasjon
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

Valgfritt: Dev System Setup
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

Sette opp WinSCP
Sette opp WinSCP
Sette opp WinSCP
Sette opp 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

(w) å få koden
(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: