Come abilitare SPI / I2C su Raspberry Pi (E cosa usarli per)

Come abilitare SPI / I2C su Raspberry Pi (E cosa usarli per) / Fai da te

Il Raspberry Pi può essere utilizzato per quasi tutto. Dai media center domestici alle configurazioni personalizzate di giochi retrò, è sicuro dire che il Pi e simili computer a scheda singola stanno diventando onnipresenti.

Quando inizi a sperimentare con i pin GPIO su Raspberry Pi, le cose diventano ancora più interessanti. Abbiamo già spiegato cosa fanno tutti questi pin, quindi ora vediamo come abilitare i protocolli SPI e I2C sul tuo Pi e perché potresti voler.

Cos'è SPI su Raspberry Pi?

Prima di immergerti, spieghiamo brevemente cosa fanno questi due protocolli.

SPI (o Serial Peripheral Interface) consente a un microcontrollore come il Pi di comunicare con oltre 100 componenti periferici contemporaneamente. Il microcontrollore agisce come un “maestro” a tutti “schiavo” componenti e possono comunicare con loro ad alta velocità. Questo schema delinea una semplice connessione SPI:

Immagine di credito: Cburnett / wikipedia.org

Se questa è la prima volta che leggi la SPI, può sembrare piuttosto intimidatoria, ma tienilo d'occhio! SCLK è la velocità di clock impostata dal master che determina la velocità con cui le informazioni vengono condivise tra i dispositivi.

Ad ogni ciclo (o “zecca”) dell'orologio, sia il master che lo slave inviano e ricevono un bit di informazioni. Questo è ciò che MOSI (Master Out Slave In) e MISO (Master In Slave Out) sono per.

Il SS o il pin Slave Select (contrassegnato CE0 o CE1 sul Pi) viene utilizzato per comunicare a un dispositivo slave di comunicare con il master, o meno, in un dato momento. Nella maggior parte dei casi, ogni dispositivo slave richiede il proprio pin SS, ma può condividere i pin SCLK, MOSI e MISO.

Alcuni dispositivi possono essere “margherita incatenata” per condividere un pin SS, mantenendo i pin totali utilizzati fino a quattro, più due per alimentazione e terra. SPI è noto per essere incredibilmente veloce ed è comunemente usato nei registri a scorrimento o ADC (convertitori analogico-digitali) per passare i dati tra i dispositivi.

Startup Augmented Il canale YouTube ha un primer facile da seguire per SPI che spiega ulteriormente il protocollo:

Come abilitare SPI su Raspberry Pi

Per abilitare SPI sul tuo Raspberry Pi, apri Raspi-config dal terminale inserendo:

sudo raspi-config

Navigare verso Opzioni di interfaccia, e nel seguente menu selezionare P4 SPI Abilita / disabilita il caricamento automatico del modulo del kernel SPI. Selezionare al prompt della finestra. SPI ora è abilitato!

In alternativa, è possibile abilitare SPI da /boot/config.txt file. Apri una finestra di terminale e inserisci:

sudo nano /boot/config.txt

Cerca una riga che legge # Dtparam = spi = on e rimuovere il # simbolo. In qualunque modo tu abiliti SPI, riavvia il tuo Pi e SPI sarà abilitato.

Cosa puoi fare con SPI su Raspberry Pi?

Mentre ci sono centinaia di progetti diversi che utilizzano molte periferiche SPI diverse, un buon progetto iniziale è la programmazione del proprio lettore RFID.

Abbiamo usato il lettore MFRC-522 nel nostro Smart Lock fai da te con Arduino e RFID tutorial DIY Smart Lock con Arduino e RFID Smart Lock fai da te con Arduino e RFID Ecco come costruire un semplice smart lock basato su RFID usando un Arduino come backbone e pochi componenti economici. Leggi di più . Per un'introduzione all'RFID di Raspberry Pi, dai un'occhiata a Instructable approfondito di piddlerintheroot.

Anche questo tipo di installazione non è solo per l'elettronica per hobby. Nella nostra collezione dei migliori progetti Raspberry Pi I 13 migliori progetti Raspberry Pi del 2017 I 13 migliori progetti Raspberry Pi del 2017 Rimarrai stupefatto da questi progetti Raspberry Pi straordinariamente creativi. Per saperne di più, abbiamo presentato un sistema MES in scala reale che funziona con Raspberry Pi e RFID, come parte di una grande fabbrica in Europa.

Che cosa è I2C su Raspberry Pi?

I2C è un protocollo di comunicazione creato da Phillips Electronics, che ha visto un'ondata di utilizzo in progetti di hobby basati su microcontrollore. Il motivo è ovvio: utilizza solo due fili anziché i quattro minimi di SPI. È anche ben supportato da librerie create dall'utente. Ci sono molti componenti progettati per essere usati con I2C su Raspberry Pi. Mentre è più lento di SPI, funziona ancora abbastanza velocemente per la maggior parte degli usi quotidiani.

Proprio come SPI, il protocollo ha un maestro dispositivo, come il Pi, e a schiavo dispositivo, ad esempio uno schermo, un registro a scorrimento o un autista.

La prima connessione tra i dispositivi è il SCL (Serial Clock) che viene impostato dal master per sincronizzare il trasferimento dei dati. La seconda linea è la SDA (Dati seriali) che trasferisce i dati avanti e indietro tra tutti i dispositivi sul bus I2C.

Il dispositivo principale inizia la comunicazione con a inizio bit e un sette bit indirizzo esadecimale. Questo deve corrispondere al dispositivo slave affinché possano comunicare. Questo è il modo in cui così tanti dispositivi possono essere utilizzati con solo due fili.

Il dispositivo master specifica quindi se desidera leggere o scrivere (R / W) lo slave, prima di ricevere un riconoscimento o ACK indietro.

Uno sguardo semplice e approfondito su I2C viene fornito ancora una volta dalle startup aumentate di YouTuber:

Come abilitare I2C su Raspberry Pi

I2C è anche abilitato sul Pi tramite il Raspi-config menu. Apri il terminale e inserisci:

sudo raspi-config

Usa i tasti freccia per selezionare Opzioni di interfaccia, seguito da P5 I2C Abilita / disabilita il caricamento automatico del modulo del kernel I2C. Conferma che vuoi abilitare il protocollo e dovresti vedere una schermata di conferma.

Come con SPI, puoi anche abilitare I2C modificando il tuo file config.txt. Apri un terminale e inserisci:

sudo nano /boot/config.txt

Modificare #dtparam = i2c_arm = on, rimuovendo il # simbolo.

Riavvia il Pi e I2C è pronto per l'uso!

Cosa puoi fare con I2C su Raspberry Pi?

I2C è ottimo per qualsiasi progetto che richiede un numero elevato di uscite. Un uso tipico è per schermi LCD, che richiedono fino a 16 pin da utilizzare. I2C porta questo solo a due per la comunicazione e due per l'alimentazione e la messa a terra.

Molti schermi LCD sono dotati di un I2C “zaino” in allegato, rendendoli molto più semplici da configurare e liberando il resto dei pin Pi per altri sensori e periferiche.

TheRaspberryPiGuy ha un'esercitazione dettagliata su YouTube sulla configurazione e l'uso di uno schermo LCD con I2C su Raspberry Pi

Utilizzando SPI e I2C salva i pin!

SPI e I2C su Raspberry Pi non sono certamente per i principianti dell'elettronica completa, ma non hanno nulla di cui aver paura.

Prima di immergerti, sarebbe una buona idea seguire la nostra guida per principianti su Raspberry Pi per imparare le basi.

Lavorare attraverso alcuni progetti di esempio è il modo migliore per imparare, e non vediamo l'ora di vedere cosa ne pensi! Chissà quali strane e meravigliose creazioni di Raspberry Pi 10 Weirdest Raspberry Pi Projects 10 Weirdest Raspberry Pi Projects C'è uno scienziato pazzo dentro ognuno di noi, e il Raspberry Pi lascia uscire il tuo loon interiore e giocare. A volte, le cose diventano strane. Molto strano. Leggi di più che farai?

Scopri di più su: Raspberry Pi.