Taula de continguts:

TinyLiDAR en un Pi ?: 9 passos (amb imatges)
TinyLiDAR en un Pi ?: 9 passos (amb imatges)

Vídeo: TinyLiDAR en un Pi ?: 9 passos (amb imatges)

Vídeo: TinyLiDAR en un Pi ?: 9 passos (amb imatges)
Vídeo: tinyLiDAR From Concept to Creation 2024, De novembre
Anonim
TinyLiDAR en un Pi?
TinyLiDAR en un Pi?

Hola de nou!

Bé, ara que heu passat un temps de qualitat amb tinyLiDAR i el vostre Arduino: el vostre Raspberry Pi potser us sentiu una mica sol;)

El pi té un port I2C no? Llavors, per què no el connecteu i proveu-hi ?! Bon pla, però si ja ho heu provat, és possible que hàgiu notat que les dades semblen una mica estranyes.

Sí, el pi ha incorporat 1,8 K pull-ups, de manera que haureu de tallar els coixinets I2C de tinyLiDAR per treure els pulls de 4,7 K del circuit. Consulteu el manual de referència per obtenir més informació. Però aquest no és el motiu de les dades estranyes.

Es deu al fet que el bus I2C del pi no està exactament a l’alçada de les especificacions. Ha estat així des que es va introduir el pi per primera vegada a causa del conjunt de xips Broadcom. Des del principi no han suportat adequadament una característica I2C anomenada "estirament del rellotge".

Podeu llegir més sobre aquest error h / w aquí.

Pas 1: què és l'estirament del rellotge?

Què és l'estirament del rellotge?
Què és l'estirament del rellotge?

Com ja sabreu, el bus I2C consta de 3 cables. Aquests són per al rellotge (SCL), les dades (SDA) i el terreny comú. El rellotge i les línies de dades són de tipus open-collector / open-drain, cosa que significa que necessiten resistències de tracció connectades a un rail d’alimentació positiu per donar-los un nivell lògic. Per baixar la lògica, qualsevol dispositiu del bus pot fer caure la línia cap a un terreny comú.

Segons l'estàndard I2C, el dispositiu Master és el que subministra el senyal de rellotge a la línia SCL, però si aquesta velocitat és massa ràpida, es permet al dispositiu esclau frenar-lo simplement mantenint premuda la línia del rellotge fins que estigui llest per tractar amb la informació. Això és el que anomenem "estirament del rellotge".

Oficialment, l'estirament del rellotge es va incloure com a característica opcional a l'estàndard I2C, però és una característica molt comuna que és necessària per a la majoria d'esclaus "intel·ligents" que necessiten una mica de temps addicional per proporcionar dades del sensor, etc.

Pas 2: una mica d’ajuda dels porcs que volen

Per fer front a aquest error I2C h / w, hem trobat una petita biblioteca gratuïta anomenada "pigpio". És una biblioteca molt popular, ràpida i lleugera escrita en C. Funciona com a dimoni de fons per al Raspberry Pi i ens permet controlar tant l’I2C com qualsevol GPIO des de Python. La biblioteca tracta els ports I2C més com GPIO i, per tant, ha passat per alt l’error d’estirament del rellotge I2C. Com tots els programes del pi, la biblioteca pigpio només és una simple "inclusió" de distància, així que anem.

Pas 3: TL; Versió DR

Configureu Pi Habiliteu SSH per iniciar sessió amb Putty Instal·leu la biblioteca pigpio Obteniu el fitxer zip tinyLiDAR Descomprimiu-lo i executeu-lo des de Putty

Opcional:

Configureu SublimeText amb WinSCP

Pas 4: Instal·lació

Instal·lació
Instal·lació

Per al nostre Raspberry Pi 3, hem utilitzat el sistema operatiu estàndard New Out of the Box Software (NOOBS Lite v2.4). Conté una versió predeterminada de Python ja instal·lada per a nosaltres preparada per codificar. Podeu descarregar el sistema operatiu des d’aquí.

Un cop instal·lat a una targeta micro SD, heu de connectar un teclat i un monitor perquè pugueu iniciar sessió al pi per primera vegada:

Nom d’usuari: pi Contrasenya: gerd

A continuació, podeu iniciar un servidor d'intèrpret d'ordres segur (SSH) amb aquestes ordres:

sudo systemctl habilita sshsudo systemctl inicia ssh

A continuació, necessitarem l'adreça IP del pi a la vostra xarxa per poder iniciar la sessió amb PuTTY. Per obtenir-ho, només cal escriure:

nom d'amfitrió -I

I busqueu una adreça de format IPv4 (per a la nostra configuració era: 192.168.0.27)

Els passos anteriors permetran que el pi funcioni "sense cap", cosa que significa que no caldrà que torneu a escriure en aquest teclat i tampoc no necessiteu cap monitor de vídeo. Iniciarem la sessió a través de la xarxa mitjançant una connexió SSH segura en el futur. L'ordre anterior fa que el servidor SSH s'iniciï automàticament cada vegada que s'encén el pi. Això és convenient per a nosaltres mentre estem codificant, però pot suposar un risc de seguretat més tard (ser paranoic és bo), de manera que, quan estigueu a punt, podeu desactivar aquesta funció SSH d'inici automàtic mitjançant aquesta ordre:

sudo systemctl desactiva ssh

Aquesta ordre s’ha d’escriure al teclat connectat al pi, per descomptat.

PuTTY és un programa de terminal que és necessari per emetre ordres del PC al pi, de manera que hauríeu d’agafar la còpia més recent d’aquí.

Instal·leu i inicieu PuTTY. Haureu d’escriure l’adreça IP des de dalt a l’entrada del nom de l’amfitrió i utilitzar la configuració SSH per defecte. Doneu a la sessió el nom que vulgueu i premeu Desa. A continuació, feu clic a Carrega i feu clic a OBRIR per iniciar una sessió.

Us hauria de portar a la pantalla d'inici de sessió del pi. Utilitzeu el vostre mateix nom d'usuari i contrasenya que vau utilitzar anteriorment.

Pas 5: instal·leu Pigpio

Ara, l’únic que hem d’instal·lar després d’això seria la biblioteca pigpio i ho podem fer utilitzant les ordres següents.

Consell: Simplement podeu copiar [ctrl + c] i enganxar [clic dret del ratolí] aquestes i qualsevol altra ordre al terminal PuTTY

sudo apt-get update

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

Pas 6: Opcional: Configuració del sistema de desenvolupament

Opcional: Configuració del sistema de desenvolupament
Opcional: Configuració del sistema de desenvolupament

Per tant, aquí teniu un consell que us pot ajudar a estalviar una mica de temps al vostre món de desenvolupament de codi. Odiam molt els editors de text basats en Unix. La interfície d'usuari és normalment maldestra i els tipus de lletra són una xucleta. GNU nano és gairebé suportable, però cap és tan refinat com SublimeText que podeu descarregar des d'aquí

Tenim un entorn de desenvolupament basat en Windows i ens agrada utilitzar aquest editor de text sempre que sigui possible. Així, doncs, el consell aquí és configurar el vostre sistema per poder utilitzar aquest editor de text professional de forma nativa a l’escriptori de Windows per codificar directament al vostre pi sense cap.

Com? Mitjançant una aplicació gratuïta anomenada WinSCP que podeu descarregar des d’aquí

Pas 7: Configuració de WinSCP

Configuració de WinSCP
Configuració de WinSCP
Configuració de WinSCP
Configuració de WinSCP

WinSCP és un programa segur de transferència de fitxers que proporciona una representació gràfica dels fitxers presents al vostre tipus de rpi, com el que veieu al gestor de fitxers del vostre PC amb Windows.

Així que endavant, instal·leu ara els dos programes anteriors.

A continuació, haureu de fer alguns ajustos perquè tots funcionin correctament.

Per a WinSCP, podeu fer clic a NOU lloc. Utilitzarem la configuració SFTP per defecte i només cal que introduïu l’adreça IP (per al nom d’amfitrió) del vostre pi i el nom d’inici de sessió (per al nom d’usuari). Podeu deixar la contrasenya buida si voleu: us demanarà la contrasenya cada vegada que inicieu la sessió.

A continuació, feu clic al botó Avançat i, a continuació, feu clic a la part esquerra per obtenir la configuració de Environment Shell. A la part dreta, canvieu el botó desplegable "Per defecte" a l'opció "sudo su -". Això permetrà escriure canvis al vostre pi sense errors de permís quan premeu Desa des de SublimeText.

Establiu SublimeText com a editor predeterminat a WinSCP

Per fer-ho, feu clic al botó Eines de la pantalla de configuració de l'inici de sessió de WinSCP on vau iniciar el diàleg NewSite. Les dues captures de pantalla mostren com es configura això, però bàsicament feu clic per configurar la preferència Editors i Afegiu un editor que serà un editor extern. A continuació, podeu cercar el fitxer.exe d’on es troba aquest editor a l’ordinador.

Pas 8: (w) obtenir el codi

(w) obtenir el codi
(w) obtenir el codi

Un cop fet, seguiu endavant i inicieu sessió amb WinSCP i amb PuTTY.

Ara estem a punt per començar el nostre codi tinyLiDAR.

Feu un directori anomenat tinyLiDAR al directori home / pi.

Podeu fer-ho fent un clic dret a la part dreta de la pantalla de WinSCP i seleccioneu Nou / Directori.

Ara al terminal PuTTY podeu escriure

cd t

i premeu tabulador per deixar que completi automàticament la vostra comanda per arribar al directori tinyLiDAR.

Un cop aquí escriviu el següent:

wget

per obtenir els fitxers directament del nostre servidor. A continuació, podem descomprimir-los escrivint

descomprimir r

i premeu tabulador per completar de nou el nom de nou

Per executar-lo, només cal escriure

python tlgui.py

I el vostre tinyLiDAR respondrà a totes les vostres ordres del pi:)

Pas 9: Nota per als futurs hackers

Seguiu endavant i feu una ullada sota el capó fent doble clic a qualsevol dels fitxers de codi de WinSCP. Són els que tenen una extensió.py. Els fitxers s’han d’obrir a SublimeText directament al vostre PC. Canvieu el que vulgueu i premeu Desa. Els vostres canvis es desaran directament al vostre pi.

Quan estigueu a punt, torneu a executar-lo fent servir la tecla de fletxa cap amunt per a l'última ordre escrita o simplement escriviu-la de nou i premeu Retorn:

python tlgui.py

És possible que hàgiu notat que el disseny de la interfície gràfica d’usuari del terminal sembla una mica més agradable que la versió d’Arduino. Es deu al fet que PuTTY admet caràcters Unicode, de manera que hem pogut utilitzar alguns caràcters de control de cursor addicionals per fer que sembli més refinat.

Aquí també hi ha una ordre addicional (en comparació amb la versió Arduino) que és "dc" per a la funció de lectura contínua. Proveu-ho i vegeu què en penseu.

Això és tot!

Gràcies per llegir i gaudir del pirateig al pi:)

Recomanat: