Rossi Pietro Alberto
Agenda Introduzione Hardware Software Programmazione, primi passi Protocolli di comunicazione Programmazione Conclusioni
Introduzione Il Raspberry Pi è una scheda elettronica impementante un intero computer (SBC, Single Board Computer). Sviluppata nel Regno Unito dalla Raspberry Pi Foundation e commercializzata a partire da Febbraio 2012. L'idea è quella di realizzare un dispositivo economico, adatto ad una clientela scolastica. Destinata inizialmente su sistemi operativi Linux based o RISC. Principalmente viene promosso con il linguaggio Python, ma può essere programmata in linguaggio C, BASIC e svariati altri linguaggi supportati dal sistema operativo ospite. Il primo Raspberry Pi era basato sul microcontrollore Atmega664. Schema e layout sono scaricabili liberamente per l'autoassemblaggio.
Hardware
Hardware Basato su un SoC Broadcom BCM2835, contiene al suo interno una CPU ARM11 a 700Mhz ed una GPU Videocore IV che arriva alla risoluzione FullHD 256-512Mb di RAM Fino a due porte USB ed una porta Ethernet 2x13 header pins per GPIO, SPI, I²C, UART SD / MMC / SDIO card slot 3.5 mm jack, RCA e HDMI Consumo massimo 3.5 Watt
Software Le versioni di sistemi operativi ottimizzati per Raspberry Pi sono diverse. Integrano le funzionalità minime e successivamente è possibile installare quasi tutte le classiche applicazioni. Raspbian, basato su Debian 6 con ambiente LXDE Arch Linux Android 4.0, CyanogedMOD 9 Fedora Gentoo
Programmazione, primi passi Conoscenze di base : Linguaggio C/C++ o Python Hardware (gestione PINOUT) Lettura datasheet Protocolli di comunicazione Elettronica digitale
Programmazione, primi passi Per comunicare con la Raspberry Pi utilizzeremo alcuni dei PIN messi a disposizione Possono essere programmati per operazioni di INPUT e di OUTPUT
Programmazione, primi passi Primi tre esempi di codice : 1) Test Led 2) Test Button 3) Test Temperature Nel nostro caso utilizzeremo sempre il linguaggio C++
Protocolli di comunicazione Nel Raspberry Pi è possibile utilizzare vari protocolli UART (Universal Asynchronous Receiver Transmitter), classico protocollo seriale basato su RS232 I2C (Inter Integrated Circuit), scambio di dati fra più master e più slave riconosciuti tramite indirizzo SPI (Serial Peripheral Interface), protocollo semplice che prevede lo scambio di dati tra un master ed uno o più slave PWM (Pulse With Modulation), modulazione di larghezza di impulso
UART I dati vengono trasmessi tramite formato seriale asincrono. Clock implicito e trasmissione di trame di bit (R e T hanno il proprio oscillatore, e c'è accordo preventivo su velocità e struttura della trama). Basato sul vecchio protocollo RS232
UART I registri più importanti sono Rx e Tx, costituiti, a livello circuitale, da due cavi che si connettono ai pin Tx e Rx predisposti dall'interfaccia del dispositivo da collegare. I due registri sono a scorrimento: Rx è uno shift register da 8 bit, che riceve dati seriali in ingresso e che li trasferisce in un pacchetto di informazioni per via parallela, mentre, allo shift register Tx arrivano dei dati in parallelo, che poi provvede a ritrasmettere, un bit alla volta, verso il dispositivo. Rx GPIO 15 Tx GPIO 14
I2C Il protocollo prevede l'utilizzo di due linee di comunicazione SDA, Serial Data Line SCL, Clock Le due linee vengono collegate all'alimentazione tramite resistenza di pull-up. Ogni dispositivo collegato è dotato di un indirizzo univoco a 7 o 10 bit e può agire sia da master sia da slave, secondo le funzioni implementate al suo interno.
I2C Il master si occupa dell'inizializzazione, gestione della tempistica e delle richieste, lo slave riceve ed invia le risposte. Entrambi posso fare da ricevente e da trasmittente. Il primo byte trasmesso è quello composto dall indirizzo dello slave con l aggiunta di un ulteriore valore che indica al ricevente quale è l operazione a lui richiesta (r/t). Viene inviato un ACK per confermare l'avvenuta richiesta.
SPI I dispositivi slave sono collegati al master tramite 4 fili SS (Slave Select), quando passa a livello basso il dispositivo entra in fase di ascolto SCK, clock generato dal master SDO, linea di uscita dei dati SDI, linea di ingresso dei dati Avere due canali per input ed output comporta che il protocollo SPI è di tipo seriale full duplex.
PWM La Modulazione di Larghezza di Impulso è un tipo di Modulazione Analogica in cui l'informazione è codificata sotto forma di durata nel tempo di ciascun impulso di un segnale. La durata di ciascun impulso può essere espressa in rapporto ai periodi dei due livelli successivi che formano l impulso, implicando il concetto di Duty Cycle.
PWM Il duty cycle è il rapporto che c è tra il segnale positivo e il periodo totale del segnale ad onda quadra ed è espresso in percentuale. Un duty cycle del 100% equivale ad un segnale alto continuo, uno del 0% equivale ad un segnale basso continuo mentre un duty cycle del 50% significa che il segnale alto dura quanto quello basso.
Programmazione Test Accelerometro
Conclusioni Per info ed approfondimenti pietroalberto.rossi@gmail.com Sito Web www.sprik.it