Innehållsförteckning:

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

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

Video: TinyLiDAR på en Pi?: 9 steg (med bilder)
Video: tinyLiDAR From Concept to Creation 2024, November
Anonim
TinyLiDAR på en Pi?
TinyLiDAR på en Pi?

Hej igen!

Nu när du har spenderat lite kvalitetstid med tinyLiDAR och din Arduino - din Raspberry Pi kanske känner dig lite ensam;)

Pi har väl en I2C -port? Så varför inte koppla in det och prova det där ?! Bra plan, men om du redan har försökt - du kanske har märkt att data ser lite konstigt ut.

Ja, pi har redan inbyggt 1.8K pull-ups så att du måste klippa I2C-kuddarna på tinyLiDAR för att få 4.7K pull-ups ur kretsen-se referenshandboken för detaljer. Men detta är inte anledningen till de konstiga uppgifterna.

Det beror på att pi: s I2C -buss inte riktigt är upp till specifikationerna. Det har varit så här sedan pi först introducerades på grund av Broadcom -chipsetet. Redan från början har de inte korrekt stöd för en I2C -funktion som kallas "klocksträckning".

Du kan läsa mer om detta h/w -fel här.

Steg 1: Vad är klocksträckning?

Vad är klocksträckning?
Vad är klocksträckning?

Som du kanske vet består I2C -bussen av 3 ledningar. Dessa är för klocka (SCL), data (SDA) och gemensam grund. Klockan och datalinjerna är av öppen kollektor/öppen dräneringstyp, vilket innebär att de behöver uppdragningsmotstånd anslutna till en positiv matningsskena för att ge dem en logisk hög. För att få en logik låg kan alla enheter på bussen dra ner linjen till gemensam mark.

Enligt I2C -standarden är Master -enheten den som levererar klocksignalen på SCL -linjen, men om denna hastighet är för snabb kan slavenheten sakta ner den genom att helt enkelt hålla nere klocklinjen tills den är klar att hantera med informationen. Detta är vad vi kallar "klocksträckning".

Officiellt listades klocksträckning som en valfri funktion i I2C -standarden, men det är en mycket vanlig funktion som är nödvändig för de flesta "intelligenta" slavar som behöver lite extra tid för att tillhandahålla sensordata etc.

Steg 2: Lite hjälp från grisar som flyger

För att hantera detta I2C h/w -fel hittade vi ett trevligt litet gratisbibliotek som heter "pigpio". Det är ett mycket populärt, snabbt och lätt bibliotek skrivet i C. Det körs som en bakgrundsdemon för Raspberry Pi och låter oss enkelt styra I2C och alla GPIO från python. Biblioteket behandlar I2C -portarna mer som GPIO och har därigenom kringgått I2C -klocksträckningsfelet. Liksom all programvara på pi är pigpio -biblioteket bara ett enkelt "inkludera" bort så låt oss gå!

Steg 3: TL; DR -version

Konfigurera Pi Aktivera SSH för att logga in med Putty Installera pigpio -bibliotek Få litenLiDAR zip -fil Packa upp och kör från Putty

Frivillig:

Konfigurera SublimeText med WinSCP

Steg 4: Installation

Installation
Installation

För vår Raspberry Pi 3 använde vi standardoperativsystemet New Out Of the Box Software (NOOBS Lite v2.4). Den innehåller en standardversion av Python som redan är installerad för oss redo att koda med. Du kan ladda ner operativsystemet härifrån.

När du har installerat det på ett micro SD -kort måste du ansluta ett tangentbord och en bildskärm så att du kan logga in på pi: n för första gången:

Användarnamn: pi Lösenord: hallon

Sedan kan du starta en säker skal -server (SSH) med dessa kommandon:

sudo systemctl aktivera sshsudo systemctl start ssh

Därefter behöver vi IP -adressen för pi: n i ditt nätverk så att vi kan logga in med PuTTY. För att få detta, skriv bara:

värdnamn -I

Och leta efter en IPv4 -formatadress (för vår installation var det: 192.168.0.27)

De ovanstående stegen tillåter pi att köra "huvudlöst" vilket innebär att du inte behöver skriva på det här tangentbordet igen och det finns heller inget behov av en videomonitor längre. Vi kommer att logga in via nätverket via en säker SSH -anslutning framöver. Kommandot ovan gör att SSH -servern startas automatiskt varje gång pi slås på. Detta är bekvämt för oss medan vi kodar, men det kan vara en säkerhetsrisk senare (att vara paranoid är bra) så när du är redo kan du inaktivera denna autostart -SSH -funktion med det här kommandot:

sudo systemctl inaktivera ssh

Det här kommandot ska naturligtvis skrivas in på tangentbordet som är anslutet till pi.

PuTTY är ett terminalprogram som krävs för att utfärda kommandon från datorn till pi så du bör ta den senaste kopian härifrån.

Installera och starta PuTTY. Du måste ange IP -adressen ovanifrån vid värdnamnposten och använda standard SSH -inställningarna. Ge sessionen vilket namn du vill och tryck på spara. Tryck sedan på ladda och klicka på ÖPPNA för att starta en session.

Det borde ta dig till inloggningsskärmen för pi. Använd samma användarnamn och lösenord som du använde tidigare.

Steg 5: Installera Pigpio

Det enda vi behöver installera efter detta är pigpio -biblioteket och vi kan göra detta med hjälp av följande kommandon.

Tips: Du kan helt enkelt kopiera [ctrl+c] och klistra in [mus högerklicka] dessa och alla andra kommandon i PuTTY -terminalen

sudo apt-get uppdatering

sudo apt-get install pigpio python-pigpio python3-pigpio

Steg 6: Valfritt: Dev System Setup

Valfritt: Dev System Setup
Valfritt: Dev System Setup

Så här är ett tips som kan hjälpa till att spara lite tid i din kodutvecklingsvärld. Vi hatar verkligen de unixbaserade textredigerarna. Användargränssnittet är normalt klumpigt och teckensnittet suger. GNU nano är nästan uthärdlig men ingen är så förfinad som SublimeText som du kan ladda ner härifrån

Vi har en Windows -baserad utvecklingsmiljö och älskar att använda denna textredigerare när det är möjligt. Så tipset här är att konfigurera ditt system för att kunna använda den här professionella textredigeraren på ditt Windows -skrivbord för att direkt koda på din huvudlösa pi.

Hur? Med en gratis app som heter WinSCP som du kan ladda ner härifrån

Steg 7: Konfigurera WinSCP

Konfigurera WinSCP
Konfigurera WinSCP
Konfigurera WinSCP
Konfigurera WinSCP

WinSCP är ett säkert filöverföringsprogram som ger en grafisk representation av filerna som finns på din rpi ungefär som vad du ser i filhanteraren på din Windows -dator.

Så fortsätt och installera ovanstående två program också nu.

Därefter måste du göra några justeringar för att alla ska fungera korrekt.

För WinSCP kan du klicka på NY webbplats. Vi använder standard SFTP -inställningarna och du behöver bara ange IP -adressen (för värdnamn) på din pi och inloggningsnamnet (för användarnamn). Du kan välja att lämna lösenordet tomt om du vill - det kommer att uppmana dig att ange lösenordet varje gång du loggar in.

Klicka sedan på knappen Avancerad och klicka sedan på vänster sida för miljöskalinställningar. Ändra "Standard" på höger sida till alternativet "sudo su -". Detta gör att ändringar kan skrivas till din pi utan tillståndsfel när du trycker på spara från SublimeText.

Ställ in SublimeText som standardredigerare i WinSCP

För att göra detta, klicka på knappen Verktyg på WinSCP -inloggningsinställningsskärmen där du startade din NewSite -dialog. De två skärmdumparna visar hur detta är konfigurerat, men i princip klickar du på för att konfigurera redaktörernas preferenser och Lägg till en redigerare som kommer att vara en extern redigerare. Du kan sedan söka efter.exe -filen där den här redigeraren finns på din dator.

Steg 8: (w) att få koden

(w) att få koden
(w) att få koden

När du är klar, fortsätt och logga in med WinSCP och med PuTTY.

Nu är vi klara, vi kan starta vår tinyLiDAR -kod.

Skapa en katalog som heter tinyLiDAR under din hem/pi -katalog.

Du kan göra detta genom att högerklicka på höger sida av WinSCP -skärmen och välja Ny / katalog.

Nu på PuTTY -terminalen kan du skriva

cd t

och tryck på fliken för att låta det automatiskt komplettera ditt kommando för att komma till tinyLiDAR -katalogen.

En gång här skriver du följande:

wget

för att få filerna direkt från vår server. Vi kan sedan packa upp dem genom att skriva

packa upp r

och tryck på fliken för att autoslutföra namnet igen

För att köra det, skriv bara

python tlgui.py

Och din tinyLiDAR kommer att svara på alla dina kommandon på pi:)

Steg 9: Obs för snart-att-vara hackare

Ta en titt under huven genom att dubbelklicka på någon av kodfilerna från WinSCP. Det är de med en.py -förlängning. Filerna ska öppnas i SublimeText direkt på din dator. Ändra vad du vill och tryck sedan på Spara. Dina ändringar sparas direkt i din pi.

När du är klar kör du den igen genom att använda uppåtpilen för det senast skrivna kommandot eller bara skriva in den igen och trycka på enter:

python tlgui.py

Du kanske har märkt att Terminal GUI -layouten ser lite snyggare ut än Arduino -versionen. Det beror på att PuTTY stöder unicode -tecken, så vi kunde använda några extra markörkontrolltecken för att få det att se mer förfinat ut.

Det finns också ett extra kommando här (jämfört med Arduino -versionen) som är "dc" för funktionen Kontinuerlig läsning. Prova och se vad du tycker.

Det är allt!

Tack för att du läste och njut av att hacka på pi:)

Rekommenderad: