Indholdsfortegnelse:

TinyLiDAR på en Pi?: 9 trin (med billeder)
TinyLiDAR på en Pi?: 9 trin (med billeder)

Video: TinyLiDAR på en Pi?: 9 trin (med billeder)

Video: TinyLiDAR på en Pi?: 9 trin (med billeder)
Video: Hackaday Supercon - Дженнифер Ванг: Создание системы распознавания жестов на основе IMU 2024, November
Anonim
TinyLiDAR på en Pi?
TinyLiDAR på en Pi?

Hej igen!

Nu hvor du har brugt lidt kvalitetstid med tinyLiDAR og din Arduino - føler din Raspberry Pi sig måske lidt ensom;)

Pi har en I2C port ikke? Så hvorfor ikke tilslutte det og prøve det der ?! God plan, men hvis du allerede har prøvet - har du muligvis bemærket, at dataene ser lidt mærkelige ud.

Ja, pi'en har allerede indbygget 1.8K pull-ups, så du bliver nødt til at skære I2C-puderne på tinyLiDAR for at få 4.7K pull-ups ud af kredsløbet-se referencehåndbogen for detaljer. Men det er ikke årsagen til de mærkelige data.

Det er fordi pi's I2C -bus ikke ligefrem er op til specifikationerne. Det har været sådan siden pi'en først blev introduceret på grund af Broadcom -chipsættet. Fra begyndelsen har de ikke korrekt understøttet en I2C -funktion kaldet "urstrækning".

Du kan læse mere om denne h/w -fejl her.

Trin 1: Hvad er urstrækning?

Hvad er urstrækning?
Hvad er urstrækning?

Som du måske ved, består I2C -bussen af 3 ledninger. Disse er til ur (SCL), data (SDA) og fælles grundlag. Uret og datalinjerne er af åben-kollektor/åben-afløbstype, hvilket betyder, at de har brug for pull-up-modstande forbundet til en positiv forsyningsskinne for at give dem en logisk højde. For at få en logisk lav, kan enhver enhed i bussen trække linjen ned til fælles grund.

I henhold til I2C -standarden er master -enheden den, der leverer urets signal på SCL -linjen, men hvis denne hastighed er for hurtig, får slaveenheden lov til at bremse den ved blot at holde urlinjen nede, indtil den er klar til at håndtere med oplysningerne. Det er det, vi kalder "urstrækning".

Officielt blev urstrækning angivet som en valgfri funktion i I2C -standarden, men det er en meget almindelig funktion, der er nødvendig for de fleste "intelligente" slaver, der har brug for lidt ekstra tid til at levere sensordata osv.

Trin 2: Lidt hjælp fra svin, der flyver

For at håndtere denne I2C h/w -fejl fandt vi et dejligt lille gratis bibliotek kaldet "pigpio". Det er et meget populært, hurtigt og let bibliotek skrevet i C. Det kører som baggrundsdæmon for Raspberry Pi og giver os mulighed for let at styre I2C såvel som enhver GPIO fra python. Biblioteket behandler I2C -portene mere som GPIO og har derved omgået I2C -urets strækningsfejl. Som al software på pi'en er pigpio -biblioteket kun et simpelt "inklusiv" væk, så lad os gå!

Trin 3: TL; DR -version

Konfigurer Pi Aktiver SSH for at logge ind med Putty Installer pigpio -bibliotek Få lilleLiDAR zip -fil Unzip og kør fra Putty

Valgfri:

Opsætning af SublimeText med WinSCP

Trin 4: Installation

Installation
Installation

Til vores Raspberry Pi 3 brugte vi standard operativsystemet New Out Of the Box (NOOBS Lite v2.4). Den indeholder en standardversion af Python, der allerede er installeret, så vi er klar til at kode med. Du kan downloade OS'et herfra.

Når det er installeret på et micro SD -kort, skal du tilslutte et tastatur og en skærm, så du kan logge på pi for første gang:

Brugernavn: pi Adgangskode: hindbær

Derefter kan du starte en sikker shell -server (SSH) med disse kommandoer:

sudo systemctl aktiver sshsudo systemctl start ssh

Dernæst skal vi bruge pi'ens IP -adresse på dit netværk, så vi kan logge ind med PuTTY. For at få dette skal du bare skrive:

værtsnavn -I

Og se efter en IPv4 -formatadresse (til vores opsætning var det: 192.168.0.27)

Ovenstående trin giver pi'en mulighed for at køre "hovedløs", hvilket betyder, at du ikke behøver at skrive på dette tastatur igen, og der er heller ikke behov for en videomonitor længere. Vi logger ind via netværket via en sikker SSH -forbindelse fremover. Ovenstående kommando får SSH -serveren til at starte automatisk, hver gang pi'en tændes. Dette er praktisk for os, mens vi koder, men det kan være en sikkerhedsrisiko senere (at være paranoid er godt), så når du er klar, kan du deaktivere denne autostart -SSH -funktion ved hjælp af denne kommando:

sudo systemctl deaktiver ssh

Denne kommando skal selvfølgelig skrives på tastaturet, der er forbundet til pi.

PuTTY er et terminalprogram, der er påkrævet for at udstede kommandoer fra pc'en til pi'et, så du bør få fat i den nyeste kopi herfra.

Installer og start PuTTY. Du bliver nødt til at indtaste IP -adressen ovenfra ved indtastning af værtsnavn og bruge standard SSH -indstillingerne. Giv sessionen et navn, du ønsker, og tryk på Gem. Tryk derefter på load, og klik på OPEN for at starte en session.

Det skulle få dig til login -skærmen til pi. Brug dit samme brugernavn og adgangskode, som du brugte tidligere.

Trin 5: Installer Pigpio

Nu er det eneste, vi skal installere efter dette, pigpio -biblioteket, og vi kan gøre dette ved at bruge følgende kommandoer.

Tip: Du kan simpelthen kopiere [ctrl+c] og indsætte [højreklik med musen] disse og andre kommandoer i PuTTY -terminalen

sudo apt-get opdatering

sudo apt-get installer pigpio python-pigpio python3-pigpio

Trin 6: Valgfrit: Dev System Setup

Valgfrit: Dev System Setup
Valgfrit: Dev System Setup

Så her er et tip, der kan hjælpe med at spare tid i din kodeudviklingsverden. Vi hader virkelig de unix -baserede tekstredaktører. Brugergrænsefladen er normalt klodset, og skrifttyperne sutter. GNU nano er næsten tålelig, men ingen er så raffinerede som SublimeText, som du kan downloade herfra

Vi har et Windows -baseret udviklingsmiljø og elsker at bruge denne tekst editor, når det er muligt. Så tip her er i opsætningen af dit system for at kunne bruge denne professionelle tekstredigerer indbygget på dit Windows -skrivebord til direkte kode på din hovedløse pi.

Hvordan? Ved hjælp af en gratis app kaldet WinSCP, som du kan downloade herfra

Trin 7: Opsætning af WinSCP

Opsætning af WinSCP
Opsætning af WinSCP
Opsætning af WinSCP
Opsætning af WinSCP

WinSCP er et sikkert filoverførselsprogram, der giver en grafisk fremstilling af de filer, der er til stede på din rpi, ligesom det du ser i filhåndtering på din Windows -pc.

Så gå videre og installer ovenstående to programmer også nu.

Dernæst skal du foretage et par justeringer for at få dem alle til at fungere korrekt.

For WinSCP kan du klikke på NYT websted. Vi bruger standard SFTP -indstillingerne, og du behøver kun at indtaste IP -adressen (for værtsnavn) på din pi og login -navnet (for brugernavn). Du kan vælge at lade adgangskoden være tom, hvis du vil - det vil bede dig om adgangskoden hver gang du logger ind.

Klik derefter på knappen Avanceret, og klik derefter på venstre side for miljøindstillinger. På højre side skal du ændre "Standard" træk ned til "sudo su -" mulighed. Dette vil tillade ændringer at blive skrevet til din pi uden tilladelsesfejl, når du trykker på gem fra SublimeText.

Indstil SublimeText til at være standardeditor i WinSCP

For at gøre dette skal du klikke på knappen Funktioner på skærmen til indstillinger for WinSCP -login, hvor du startede din NewSite -dialog. De to skærmbilleder viser, hvordan dette er konfigureret, men dybest set klikker du for at konfigurere redaktørpræferencen og Tilføj en editor, som vil være en ekstern editor. Du kan derefter søge efter.exe -filen, hvor denne editor er placeret på din computer.

Trin 8: (w) Hentning af koden

(w) at få koden
(w) at få koden

Når det er gjort, skal du gå videre og logge ind med WinSCP og med PuTTY.

Nu er vi klar, vi kan starte vores tinyLiDAR -kode.

Lav et bibliotek kaldet tinyLiDAR under dit hjem/pi -bibliotek.

Du kan gøre dette ved at højreklikke på højre side af WinSCP -skærmen og vælge Ny / bibliotek.

Nu på PuTTY -terminalen kan du skrive

cd t

og tryk på fanen for at lade den autofuldføre din kommando for at komme til tinyLiDAR -biblioteket.

Når du er her, skal du skrive følgende:

wget

at få filerne direkte fra vores server. Vi kan derefter pakke dem ud ved at skrive

udpakke r

og tryk på fanen for at autofuldføre navnet igen

For at køre det skal du bare skrive

python tlgui.py

Og din tinyLiDAR reagerer på alle dine kommandoer på pi’en:)

Trin 9: Note til snart-til-være hackere

Tag et kig under emhætten ved at dobbeltklikke på en af kodefilerne fra WinSCP. Det er dem med en.py -udvidelse. Filerne skal åbne i SublimeText direkte på din pc. Skift hvad du vil, og tryk derefter på Gem. Dine ændringer gemmes direkte på din pi.

Når du er klar, kører du den igen ved at bruge pil op til den sidst indtastede kommando eller bare indtaste den igen og trykke enter:

python tlgui.py

Du har måske bemærket, at Terminal GUI -layoutet ser lidt pænere ud end Arduino -versionen. Det er fordi PuTTY understøtter unicode -tegn, så vi kunne bruge nogle ekstra markørstyringstegn for at få det til at se mere raffineret ud.

Der er også en ekstra kommando her (sammenlignet med Arduino -versionen), som er "dc" til funktionen Kontinuerlig læsning. Prøv det og se hvad du synes.

Det er alt!

Tak fordi du læste og nyd hacking på pi:)

Anbefalede: