Sommario:
- Passaggio 1: cos'è l'allungamento dell'orologio?
- Passaggio 2: un piccolo aiuto dai maiali che volano
- Passaggio 3: versione TL;DR
- Passaggio 4: installazione
- Passaggio 5: installare Pigpio
- Passaggio 6: Opzionale: configurazione del sistema di sviluppo
- Passaggio 7: configurazione di WinSCP
- Passaggio 8: (w) ottenere il codice
- Passaggio 9: nota per i futuri hacker
Video: TinyLiDAR su un Pi?: 9 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:04
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?
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
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
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
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
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:
Come installare Raspberry PI 4 Headless (VNC) con Rpi-imager e immagini: 7 passaggi (con immagini)
Howto: installazione di Raspberry PI 4 Headless (VNC) con Rpi-imager e immagini: ho intenzione di utilizzare questo Rapsberry PI in una serie di progetti divertenti nel mio blog. Sentiti libero di dare un'occhiata. Volevo tornare a usare il mio Raspberry PI ma non avevo una tastiera o un mouse nella mia nuova posizione. Era un po' che non installavo un Raspberry
Intelligenza artificiale e riconoscimento delle immagini con HuskyLens: 6 passaggi (con immagini)
Intelligenza artificiale e riconoscimento delle immagini con HuskyLens: Ehi, come va, ragazzi! Akarsh qui da CETech. In questo progetto, daremo un'occhiata all'HuskyLens di DFRobot. È un modulo fotocamera basato sull'intelligenza artificiale in grado di eseguire diverse operazioni di intelligenza artificiale come Face Recognitio
Riconoscimento delle immagini con schede K210 e Arduino IDE/Micropython: 6 passaggi (con immagini)
Riconoscimento immagine con schede K210 e Arduino IDE/Micropython: ho già scritto un articolo su come eseguire demo OpenMV su Sipeed Maix Bit e ho anche realizzato un video di demo di rilevamento oggetti con questa scheda. Una delle tante domande che le persone hanno posto è: come posso riconoscere un oggetto che la rete neurale non è tr
Telecomando wireless con modulo NRF24L01 da 2,4 Ghz con Arduino - Nrf24l01 Ricevitore trasmettitore 4 canali / 6 canali per quadricottero - Elicottero Rc - Aereo RC con Arduino: 5 passaggi (con immagini)
Telecomando wireless con modulo NRF24L01 da 2,4 Ghz con Arduino | Nrf24l01 Ricevitore trasmettitore 4 canali / 6 canali per quadricottero | Elicottero Rc | Aereo radiocomandato con Arduino: per far funzionare un'auto radiocomandata | Quadricottero | Drone | Aereo RC | Barca RC, abbiamo sempre bisogno di un ricevitore e trasmettitore, supponiamo che per RC QUADCOPTER abbiamo bisogno di un trasmettitore e ricevitore a 6 canali e quel tipo di TX e RX è troppo costoso, quindi ne faremo uno sul nostro
Come smontare un computer con semplici passaggi e immagini: 13 passaggi (con immagini)
Come smontare un computer con semplici passaggi e immagini: questa è un'istruzione su come smontare un PC. La maggior parte dei componenti di base sono modulari e facilmente smontabili. Tuttavia è importante che tu sia organizzato al riguardo. Questo ti aiuterà a non perdere parti e anche a rendere più facile il rimontaggio