Cuprins:
- Pasul 1: Ce este întinderea ceasului?
- Pasul 2: Puțin ajutor de la porci care zboară
- Pasul 3: TL; Versiunea DR
- Pasul 4: Instalare
- Pasul 5: Instalați Pigpio
- Pasul 6: Opțional: Configurare sistem Dev
- Pasul 7: Configurarea WinSCP
- Pasul 8: (w) obținerea codului
- Pasul 9: Notă pentru viitorii hackeri
Video: TinyLiDAR pe un Pi ?: 9 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:46
Buna din nou!
Ei bine, acum că ați petrecut ceva timp de calitate cu tinyLiDAR și Arduino - Raspberry Pi poate că se simte puțin singur;)
Pi are un port I2C nu? Deci, de ce să nu-l conectați și să-l încercați acolo ?! Plan bun, dar dacă ați încercat deja - este posibil să fi observat că datele par cam ciudate.
Da, pi-ul a încorporat deja 1,8K pull-up-uri, astfel încât va trebui să tăiați tampoanele I2C pe tinyLiDAR pentru a scoate pull-urile de 4,7K din circuit - consultați manualul de referință pentru detalii. Dar nu acesta este motivul pentru datele ciudate.
Acest lucru se datorează faptului că autobuzul I2C al lui pi nu este exact la înălțime. A fost așa de când pi-ul a fost introdus pentru prima dată datorită setului de cipuri Broadcom. Încă de la început nu au acceptat în mod corespunzător o caracteristică I2C numită „întinderea ceasului”.
Puteți citi mai multe despre acest bug h / w aici.
Pasul 1: Ce este întinderea ceasului?
După cum știți, autobuzul I2C este format din 3 fire. Acestea sunt pentru ceas (SCL), date (SDA) și teren comun. Ceasul și liniile de date sunt de tip colector deschis / golire deschisă, ceea ce înseamnă că au nevoie de rezistențe de tracțiune conectate la o șină de alimentare pozitivă pentru a le oferi un nivel logic ridicat. Pentru a obține un nivel logic scăzut, orice dispozitiv de pe autobuz poate trage în jos linia către un teren comun.
Conform standardului I2C, dispozitivul Master este cel care furnizează semnalul de ceas pe linia SCL, dar dacă această rată este prea rapidă, atunci dispozitivului Slave i se permite să o încetinească prin simpla menținere a liniei de ceas până când este gata de tranzacționare cu informațiile. Aceasta este ceea ce numim „întinderea ceasului”.
Oficial, întinderea ceasului a fost listată ca o caracteristică opțională în standardul I2C, dar este o caracteristică foarte comună, necesară pentru majoritatea sclavilor „inteligenți” care au nevoie de ceva timp suplimentar pentru a furniza datele senzorilor etc.
Pasul 2: Puțin ajutor de la porci care zboară
Pentru a face față acestui bug I2C h / w, am găsit o mică bibliotecă gratuită, numită „pigpio”. Este o bibliotecă foarte populară, rapidă și ușoară, scrisă în C. Rulează ca un demon de fundal pentru Raspberry Pi și ne permite să controlăm cu ușurință atât I2C, cât și orice GPIO din Python. Biblioteca tratează porturile I2C mai mult ca GPIO și astfel a ocolit eroarea de întindere a ceasului I2C. Ca toate software-urile de pe pi, biblioteca pigpio este doar o simplă „includere”, așa că hai să mergem!
Pasul 3: TL; Versiunea DR
Configurați Pi Activați SSH pentru a vă conecta cu Putty Instalați biblioteca pigpio Obțineți fișier zip tinyLiDAR Dezarhivați și rulați de la Putty
Opțional:
Configurați SublimeText cu WinSCP
Pasul 4: Instalare
Pentru Raspberry Pi 3, am folosit sistemul de operare standard New Out Of the Box (NOOBS Lite v2.4). Conține o versiune implicită a Python deja instalată pentru noi, gata de codificare. Puteți descărca sistemul de operare de aici.
Odată instalat pe un card micro SD, trebuie să conectați o tastatură și un monitor pentru a vă putea conecta la pi pentru prima dată:
Nume utilizator: pi Parolă: zmeură
Apoi, puteți porni un server shell securizat (SSH) cu aceste comenzi:
sudo systemctl activate sshsudo systemctl start ssh
În continuare, vom avea nevoie de adresa IP a pi din rețeaua dvs., astfel încât să ne putem conecta cu PuTTY. Pentru a obține acest lucru, trebuie doar să tastați:
numele gazdei -I
Și căutați o adresă în format IPv4 (pentru configurarea noastră a fost: 192.168.0.27)
Pașii de mai sus vor permite pi-ului să ruleze „fără cap”, ceea ce înseamnă că nu va mai trebui să tastați din nou pe această tastatură și, de asemenea, nu mai este nevoie de un monitor video. Vom intra în rețea printr-o conexiune SSH sigură în viitor. Comanda de mai sus face ca serverul SSH să se lanseze automat de fiecare dată când pi-ul este pornit. Acest lucru este convenabil pentru noi în timp ce codificăm, dar ar putea fi un risc de securitate mai târziu (a fi paranoic este bine), așa că, atunci când sunteți gata, puteți dezactiva această caracteristică SSH de pornire automată folosind această comandă:
sudo systemctl dezactivează ssh
Această comandă ar trebui să fie tastată la tastatura conectată la pi desigur.
PuTTY este un program terminal care este necesar pentru a emite comenzi de pe PC către pi, deci ar trebui să luați cea mai recentă copie de aici.
Instalați și porniți PuTTY. Va trebui să introduceți adresa IP de mai sus la intrarea Host Name și să utilizați setările implicite SSH. Dați sesiunii orice nume doriți și apăsați pe Salvare. Apoi apăsați încărcare și faceți clic pe DESCHIS pentru a începe o sesiune.
Ar trebui să vă ducă la ecranul de conectare pentru pi. Folosiți același nume de utilizator și parolă pe care le-ați folosit anterior.
Pasul 5: Instalați Pigpio
Acum, singurul lucru pe care trebuie să îl instalăm după aceasta ar fi biblioteca pigpio și putem face acest lucru folosind următoarele comenzi.
Sfat: Puteți pur și simplu să copiați [ctrl + c] și să lipiți [clic dreapta al mouse-ului] pe acestea și pe orice alte comenzi în terminalul PuTTY
sudo apt-get update
sudo apt-get install pigpio python-pigpio python3-pigpio
Pasul 6: Opțional: Configurare sistem Dev
Iată deci un sfat care vă poate ajuta să economisiți ceva timp în lumea dezvoltării codului. Urăm cu adevărat editorii de text bazate pe Unix. Interfața cu utilizatorul este, în mod normal, neîndemânatică, iar fonturile sunt nenorocite. GNU nano este aproape suportabil, dar niciunul nu este la fel de rafinat ca SublimeText pe care îl puteți descărca de aici
Avem un mediu de dezvoltare bazat pe Windows și ne place să folosim acest editor de text ori de câte ori este posibil. Deci, sfatul aici este în configurarea sistemului dvs. pentru a putea utiliza acest editor de text profesionist în mod nativ pe desktopul Windows pentru a codifica direct pe pi-ul fără cap.
Cum? Folosind o aplicație gratuită numită WinSCP pe care o puteți descărca de aici
Pasul 7: Configurarea WinSCP
WinSCP este un program sigur de transfer de fișiere care oferă o reprezentare grafică a fișierelor prezente pe rpi, cum ar fi ceea ce vedeți în managerul de fișiere de pe computerul Windows.
Deci, mergeți mai departe și instalați și cele două programe de mai sus.
Apoi va trebui să faceți câteva ajustări pentru ca toate să funcționeze corect.
Pentru WinSCP, puteți face clic pe NOU Site. Vom folosi setările implicite SFTP și trebuie doar să introduceți adresa IP (pentru numele gazdei) a pi-ului dvs. și numele de conectare (pentru numele utilizatorului). Puteți alege să lăsați parola goală dacă doriți - vă va solicita parola de fiecare dată când vă conectați.
Apoi, faceți clic pe butonul Avansat și apoi faceți clic pe partea stângă pentru setările Environment Shell. În partea dreaptă schimbați opțiunea „Implicit” în jos la opțiunea „sudo su -”. Acest lucru va permite ca modificările să fie scrise în pi fără erori de permisiune atunci când apăsați Salvare din SublimeText.
Setați SublimeText să fie Editor implicit în WinSCP
Pentru a face acest lucru, faceți clic pe butonul Instrumente de pe ecranul de setări de conectare WinSCP de unde ați început dialogul NewSite. Cele două capturi de ecran arată cum este configurat acest lucru, dar practic veți face clic pentru a configura preferința Editori și a adăuga un editor care va fi un editor extern. Puteți apoi să căutați fișierul.exe în care se află acest editor pe computer.
Pasul 8: (w) obținerea codului
După ce ați terminat, continuați și conectați-vă cu WinSCP și cu PuTTY.
Acum suntem pregătiți să putem începe codul nostru tinyLiDAR.
Creați un director numit tinyLiDAR sub directorul home / pi.
Puteți face acest lucru făcând clic dreapta pe partea dreaptă a ecranului WinSCP și selectând New / Directory.
Acum, la terminalul PuTTY puteți tasta
cd t
și apăsați tab pentru a permite completarea automată a comenzii dvs. pentru a ajunge la directorul tinyLiDAR.
Odată ajuns aici, tastați următoarele:
wget
pentru a obține fișierele direct de pe serverul nostru. Le putem dezarhiva apoi tastând
dezarhivați r
și apăsați tasta pentru a completa din nou numele
Pentru al rula, trebuie doar să tastați
python tlgui.py
Și tinyLiDAR dvs. va răspunde la fiecare comandă de pe pi:)
Pasul 9: Notă pentru viitorii hackeri
Continuați și aruncați o privire sub capotă făcând dublu clic pe oricare dintre fișierele de cod de la WinSCP. Acestea sunt cele cu o extensie.py. Fișierele ar trebui să se deschidă în SublimeText direct pe computer. Schimbați orice doriți și apoi apăsați Salvare. Modificările dvs. vor fi salvate direct în pi.
Când sunteți gata, îl rulați din nou utilizând tasta săgeată sus pentru ultima comandă tastată sau pur și simplu tastați-o din nou și apăsați Enter:
python tlgui.py
Este posibil să fi observat că aspectul terminalului GUI arată un pic mai frumos decât versiunea Arduino. Acest lucru se datorează faptului că PuTTY acceptă caractere unicode, așa că am putut folosi câteva caractere suplimentare de control al cursorului pentru a face să pară mai rafinat.
Există, de asemenea, o comandă adăugată aici (în comparație cu versiunea Arduino) care este „dc” pentru funcția de citire continuă. Încercați și vedeți ce credeți.
Asta e tot!
Vă mulțumim pentru citire și bucurați-vă de hacking pe pi:)
Recomandat:
Cum să dezasamblați un computer cu pași și imagini ușoare: 13 pași (cu imagini)
Cum să dezasamblați un computer cu pași și imagini ușoare: Aceasta este o instrucțiune despre cum să dezasamblați un computer. Majoritatea componentelor de bază sunt modulare și ușor de îndepărtat. Cu toate acestea, este important să fiți organizat în acest sens. Acest lucru vă va ajuta să nu vă pierdeți piese și, de asemenea, să faceți reasamblarea
CircuitPython și TinyLiDAR: Exemplu simplu: 3 pași
CircuitPython și TinyLiDAR: exemplu simplu: MicroElectronicDesign tinyLiDAR este un modul de variație a timpului de zbor (ToF) bazat pe ST VL53L0X cu o conexiune de magistrală i2c. Plăcile de microcontroler Adafruit sunt ușor conectate la acest senzor, deoarece pot vorbi protocolul i2c peste pinul lor de date
TinyLiDAR în garajul tău !: 10 pași
TinyLiDAR in Your Garage !: DIY WiFi Garage Door Opener Project Lumea IoT abia începe să explodeze - fiecare companie de tehnologie din întreaga lume încearcă să afle cum se vor potrivi în această nouă lume. Este doar o mare oportunitate! Deci, pentru acest instructabil, eu
TinyLiDAR pentru IoT: 3 pași
TinyLiDAR pentru IoT: Dacă te uiți în jur, vei observa că multe dispozitive inteligente sunt folosite în viața de zi cu zi. În mod obișnuit, acestea sunt alimentate cu baterii și, de obicei, sunt conectate la Internet (cunoscut și sub numele de „nor”). Acestea sunt toate ceea ce numim dispozitive „IoT” și ele
Pot folosi TinyLiDAR în Scratch ?: 3 pași
Pot folosi TinyLiDAR în … Scratch ?: Primim solicitări din când în când pentru a întreba dacă tinyLiDAR va funcționa pe platforma lor specială de calcul. Deși tinyLiDAR a fost conceput ca un senzor LiDAR simplu de utilizat pentru Arduino UNO, nimic nu îl împiedică să fie folosit pe alte platforme