Sommario:

TinyLiDAR su un Pi?: 9 passaggi (con immagini)
TinyLiDAR su un Pi?: 9 passaggi (con immagini)

Video: TinyLiDAR su un Pi?: 9 passaggi (con immagini)

Video: TinyLiDAR su un Pi?: 9 passaggi (con immagini)
Video: Technical Presentation of tinyLiDAR's Command Terminal Sketch 2024, Dicembre
Anonim
TinyLiDAR su un Pi?
TinyLiDAR su un Pi?

Ciao di nuovo!

Bene, ora che hai trascorso del tempo di qualità con tinyLiDAR e il tuo Arduino - il tuo Raspberry Pi forse si sente un po' solo;)

Il pi ha una porta I2C giusto? Allora perché non collegarlo e provarlo lì?! Buon piano, ma se hai già provato, potresti aver notato che i dati sembrano un po' strani.

Sì, il pi ha già integrato pull-up da 1.8K, quindi dovrai tagliare i pad I2C su tinyLiDAR per ottenere i pull-up da 4.7K fuori circuito - vedi il manuale di riferimento per i dettagli. Ma non è questo il motivo degli strani dati.

È perché il bus I2C del pi non è esattamente all'altezza delle specifiche. È stato così da quando il pi è stato introdotto per la prima volta grazie al chipset Broadcom. Fin dall'inizio non hanno supportato adeguatamente una funzionalità I2C chiamata "clock stretching".

Puoi leggere di più su questo bug h/w qui.

Passaggio 1: cos'è l'allungamento dell'orologio?

Che cos'è l'allungamento dell'orologio?
Che cos'è l'allungamento dell'orologio?

Come forse saprai, il bus I2C è composto da 3 fili. Questi sono per l'orologio (SCL), i dati (SDA) e il terreno comune. Le linee di clock e dati sono di tipo open-collector/open-drain, il che significa che necessitano di resistori di pull-up collegati a una linea di alimentazione positiva per dare loro un valore logico alto. Per ottenere un livello logico basso, qualsiasi dispositivo sul bus può abbassare la linea verso la massa comune.

Secondo lo standard I2C, il dispositivo Master è quello che fornisce il segnale di clock sulla linea SCL, ma se questa velocità è troppo veloce, il dispositivo Slave può rallentarlo semplicemente tenendo premuta la linea di clock fino a quando non è pronto a trattare con le informazioni. Questo è ciò che chiamiamo "allungamento dell'orologio".

Ufficialmente, l'allungamento del clock è stato elencato come funzionalità opzionale nello standard I2C, ma è una funzionalità molto comune necessaria per la maggior parte degli slave "intelligenti" che necessitano di un po' di tempo in più per fornire i dati del sensore, ecc.

Passaggio 2: un piccolo aiuto dai maiali che volano

Per far fronte a questo bug di I2C h/w, abbiamo trovato una piccola libreria gratuita chiamata "pigpio". È una libreria molto popolare, veloce e leggera scritta in C. Funziona come demone in background per Raspberry Pi e ci consente di controllare facilmente l'I2C e qualsiasi GPIO da Python. La libreria tratta le porte I2C più come GPIO e quindi ha aggirato il bug di allungamento dell'orologio I2C. Come tutti i software sul pi, la libreria pigpio è solo un semplice "includi" di distanza, quindi andiamo!

Passaggio 3: versione TL;DR

Imposta PiAbilita SSH per accedere con PuttyInstalla la libreria pigpio Ottieni il file zip tinyLiDARDecomprimi ed esegui da Putty

Opzionale:

Imposta SublimeText con WinSCP

Passaggio 4: installazione

Installazione
Installazione

Per il nostro Raspberry Pi 3, abbiamo utilizzato il sistema operativo standard New Out Of the Box Software (NOOBS Lite v2.4). Contiene una versione predefinita di Python già installata per noi pronta per la codifica. Puoi scaricare il sistema operativo da qui.

Una volta installato su una scheda micro SD devi collegare una tastiera e un monitor in modo da poter accedere al pi per la prima volta:

Nome utente: pi Password: lampone

Quindi puoi avviare un server shell sicuro (SSH) con questi comandi:

sudo systemctl abilita sshsudo systemctl start ssh

Successivamente avremo bisogno dell'indirizzo IP del pi sulla tua rete in modo da poter accedere con PuTTY. Per ottenere questo, basta digitare:

nome host -I

E cerca un indirizzo in formato IPv4 (per la nostra configurazione era: 192.168.0.27)

I passaggi precedenti consentiranno al pi di funzionare "senza testa", il che significa che non sarà necessario digitare nuovamente su questa tastiera e non è più necessario un monitor video. In futuro accederemo alla rete tramite una connessione SSH sicura. Il comando sopra fa sì che il server SSH si avvii automaticamente ogni volta che il pi viene acceso. Questo è conveniente per noi mentre stiamo codificando, ma potrebbe essere un rischio per la sicurezza in seguito (essere paranoici è buono), quindi quando sei pronto, puoi disabilitare questa funzione di avvio automatico SSH usando questo comando:

sudo systemctl disabilita ssh

Questo comando va ovviamente digitato sulla tastiera collegata al pi greco.

PuTTY è un programma terminale che è necessario per inviare comandi dal PC al pi, quindi dovresti prendere l'ultima copia da qui.

Installa e avvia PuTTY. Dovrai digitare l'indirizzo IP dall'alto alla voce Nome host e utilizzare le impostazioni SSH predefinite. Dai alla sessione il nome che vuoi e premi salva. Quindi premi il caricamento e fai clic su APRI per avviare una sessione.

Dovrebbe portarti alla schermata di accesso per il pi. Usa lo stesso nome utente e password che hai usato in precedenza.

Passaggio 5: installare Pigpio

Ora, l'unica cosa che dobbiamo installare dopo questo sarebbe la libreria pigpio e possiamo farlo usando i seguenti comandi.

Suggerimento: puoi semplicemente copiare [ctrl+c] e incollare [tasto destro del mouse] questi e qualsiasi altro comando nel terminale PuTTY

sudo apt-get update

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

Passaggio 6: Opzionale: configurazione del sistema di sviluppo

Opzionale: configurazione del sistema di sviluppo
Opzionale: configurazione del sistema di sviluppo

Quindi, ecco un suggerimento che può aiutare a risparmiare un po' di tempo nel mondo dello sviluppo del codice. Odiamo davvero gli editor di testo basati su Unix. L'interfaccia utente è normalmente goffa e i caratteri fanno schifo. GNU nano è quasi sopportabile ma nessuno è raffinato come SublimeText che puoi scaricare da qui

Abbiamo un ambiente di sviluppo basato su Windows e amiamo usare questo editor di testo quando possibile. Quindi il suggerimento qui è nell'impostare il tuo sistema per essere in grado di utilizzare questo editor di testo professionale in modo nativo sul desktop di Windows per codificare direttamente sul tuo pi senza testa.

Come? Utilizzando un'app gratuita chiamata WinSCP che puoi scaricare da qui

Passaggio 7: configurazione di WinSCP

Configurazione di WinSCP
Configurazione di WinSCP
Configurazione di WinSCP
Configurazione di WinSCP

WinSCP è un programma di trasferimento file sicuro che fornisce una rappresentazione grafica dei file presenti sul tuo rpi in modo simile a quello che vedi nel file manager sul tuo PC Windows.

Quindi vai avanti e installa anche i due programmi precedenti ora.

Successivamente dovrai apportare alcune modifiche per farli funzionare tutti correttamente.

Per WinSCP, puoi fare clic su NUOVO sito. Utilizzeremo le impostazioni SFTP predefinite e dovrai solo inserire l'indirizzo IP (per il nome host) del tuo pi e il nome di accesso (per il nome utente). Puoi scegliere di lasciare vuota la password se lo desideri: ti verrà richiesta la password ogni volta che accedi.

Quindi, fai clic sul pulsante Avanzate e quindi fai clic sul lato sinistro per le impostazioni di Environment Shell. Sul lato destro cambia il menu a discesa "Predefinito" con l'opzione "sudo su -". Ciò consentirà di scrivere le modifiche sul tuo pi senza errori di autorizzazione quando premi il salvataggio da SublimeText.

Imposta SublimeText come editor predefinito in WinSCP

Per fare ciò, fare clic sul pulsante Strumenti nella schermata delle impostazioni di accesso di WinSCP in cui è stata avviata la finestra di dialogo Nuovo sito. Le due schermate mostrano come è configurato, ma in pratica farai clic per configurare la preferenza Editor e Aggiungi un editor che sarà un editor esterno. Puoi quindi cercare il file.exe di dove si trova questo editor sul tuo computer.

Passaggio 8: (w) ottenere il codice

(w) ottenere il Codice
(w) ottenere il Codice

Una volta fatto, vai avanti e accedi con WinSCP e con PuTTY.

Ora che siamo pronti, possiamo avviare il nostro codice tinyLiDAR.

Crea una directory chiamata tinyLiDAR nella tua directory home/pi.

Puoi farlo facendo clic con il tasto destro sul lato destro della schermata di WinSCP e scegliendo Nuovo / Directory.

Ora al terminale PuTTY puoi digitare

cd t

e premi tab per consentire il completamento automatico del comando per accedere alla directory tinyLiDAR.

Una volta qui, digita quanto segue:

wget

per ottenere i file direttamente dal nostro server. Possiamo quindi decomprimerli digitando

decomprimi r

e premi tab per completare di nuovo automaticamente il nome

Per eseguirlo, digita

python tlgui.py

E il tuo tinyLiDAR risponderà a ogni tuo comando sul pi:)

Passaggio 9: nota per i futuri hacker

Vai avanti e dai un'occhiata sotto il cofano facendo doppio clic su uno qualsiasi dei file di codice da WinSCP. Sono quelli con estensione.py. I file dovrebbero aprirsi in SublimeText direttamente sul tuo PC. Cambia quello che vuoi e poi premi salva. Le tue modifiche verranno salvate direttamente sul tuo pi.

Quando sei pronto, eseguilo di nuovo usando il tasto freccia su per l'ultimo comando digitato o semplicemente digitalo di nuovo e premi invio:

python tlgui.py

Potresti aver notato che il layout della GUI del terminale sembra un po' più carino della versione Arduino. È perché PuTTY supporta i caratteri Unicode, quindi siamo stati in grado di utilizzare alcuni caratteri di controllo del cursore extra per renderlo più raffinato.

C'è anche un comando aggiunto qui (rispetto alla versione Arduino) che è "dc" per la funzione di lettura continua. Provalo e vedi cosa ne pensi.

È tutto!

Grazie per la lettura e buon divertimento con l'hacking sul pi:)

Consigliato: