Innehållsförteckning:
- Steg 1: Vad är klocksträckning?
- Steg 2: Lite hjälp från grisar som flyger
- Steg 3: TL; DR -version
- Steg 4: Installation
- Steg 5: Installera Pigpio
- Steg 6: Valfritt: Dev System Setup
- Steg 7: Konfigurera WinSCP
- Steg 8: (w) att få koden
- Steg 9: Obs för snart-att-vara hackare
Video: TinyLiDAR på en Pi?: 9 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:46
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?
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
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
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
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
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:
Trådlös fjärrkontroll med 2,4 GHz NRF24L01 -modul med Arduino - Nrf24l01 4 -kanals / 6 -kanals sändarmottagare för Quadcopter - Rc helikopter - RC -plan med Arduino: 5 steg (med bilder)
Trådlös fjärrkontroll med 2,4 GHz NRF24L01 -modul med Arduino | Nrf24l01 4 -kanals / 6 -kanals sändarmottagare för Quadcopter | Rc helikopter | Rc -plan med Arduino: Att driva en Rc -bil | Quadcopter | Drone | RC -plan | RC -båt, vi behöver alltid en mottagare och sändare, antag att för RC QUADCOPTER behöver vi en 6 -kanals sändare och mottagare och den typen av TX och RX är för dyr, så vi kommer att göra en på vår
Hur man tar isär en dator med enkla steg och bilder: 13 steg (med bilder)
Hur man tar isär en dator med enkla steg och bilder: Detta är en instruktion om hur man demonterar en dator. De flesta av de grundläggande komponenterna är modulära och lätt att ta bort. Det är dock viktigt att du är organiserad kring det. Detta hjälper dig att inte förlora delar, och även för att göra ommonteringen
CircuitPython och TinyLiDAR: Enkelt exempel: 3 steg
CircuitPython och TinyLiDAR: Enkelt exempel: MicroElectronicDesign tinyLiDAR är en ST VL53L0X baserad time-of-flight (ToF) -modul med en i2c-bussanslutning. Adafruit microcontroller -korten ansluts enkelt till den här sensorn eftersom de kan tala i2c -protokollet över deras datapinne
TinyLiDAR i ditt garage !: 10 steg
TinyLiDAR in Your Garage !: DIY WiFi Garage Door Opener Project IoT -världen börjar bara explodera - varje teknikföretag runt om i världen försöker ta reda på hur de kommer att passa in i denna nya värld. Det är bara en stor möjlighet! Så för detta instruerbara, jag
TinyLiDAR för IoT: 3 steg
TinyLiDAR för IoT: Om du ser dig omkring kommer du att märka att många smarta små enheter används i vardagen. De är vanligtvis batteridrivna och är vanligtvis anslutna till Internet (aka "molnet") på något sätt. Det här är allt vi kallar "IoT" -enheter och de