Immagine
in scala 1:1 della basetta didattica e sperimentale (BDS)
per Raspberry PI 2/3/4/5Vedi altre immagini della BDS Attenzione: il progetto è rilasciato "as it is" e non si riconoscerà alcuna garanzia, implicita o esplicita sul suo funzionamento e alcun indennizzo per eventuali danni a persone o cose derivate dal suo utilizzo. |
|
Questa
è una pagina importante e piuttosto lunga, perché ricca di
informazioni relative all'uso e alla configurazione di
base della BDS, la descrizione dei vari connettori,
dei moduli che teoricamente*
possono essere utilizzati su ogni connettore e sui
possibili conflitti che potrebbero manifestarsi. Si
consiglia di leggere i prossimi paragrafi con attenzione,
e segnalare eventuali sviste e/o errori.
* Non tutti i moduli
elencati sono stati effettivamente testati con questa BDS.
|
| |
| Logica
di funzionamento della BDS |
La logica di funzionamento di questa basetta didattica e sperimentale (BDS) per Raspberry PI è simile a quella pensata per tutte quelle progettate per i microcontroller Arduino Nano (Uno R3/R4), ESP01, ESP8266 ed ESP32, ovvero dare allo sperimentatore o allo studente la possibilità di sperimentare un numero illimitato di progetti e combinazioni di periferiche in modo rapido, semplice, sicuro e senza usare (o con un numero estremamente modesto di) cavi. La differenza sostanziale con le basette precedenti è che il Raspberry non è posizionato direttamente sulla BDS, ma collegato con un cavo a 40 pin (quelli che si usavano per i vecchi hard disk IDE) ad essa. Questa scelta progettuale è stata naturalmente suggerita dalla disposizione dei pin sul Raspberry PI, su cui quindi non si agisce direttamente, evitando il rischio di pericolosi contatti, e riducendo le dimensioni della BDS, simile a quella per ESP32, ovvero della superficie simili a quelle di un foglio A5 (210 x 140 mm). |
| Le
connessioni disponibili |
![]() MCP3008
Questo
chip fornisce al
Raspberry PI otto porte analogiche. ![]() I
pin del MCP3008
|
Sono state predisposte una serie di connettori atti a semplificare il collegamento con le varie periferiche, siano essi sensori, come pulsanti, lettori Rfid, sensori gps, magnetici, di luminosità, ecc, o attuatori, come relè, led, motori e altri. Raspberry PI per una scelta progettuali non fornisce ingressi analogici, per cui non è possibile connettere nativamente potenziometri e altri sensori analogici. E' stato inserito un chip in grado di gestire otto ingressi analogici. Pertanto, in sintesi, sulla BDS sono presenti:
Nota
1: alcuni connettori sono stati studiati per
inserire delle periferiche particolari, come un sensore
Rfid o una scheda GPS, però nulla vieta di usarli per
altri apparati. La tua fantasia può trovare delle
applicazioni a cui il progettista di questa scheda
non aveva pensato! |
| I
sensori utilizzabili per questa BDS |
Se si fa una piccola ricerca in internet, cercando per esempio "sensori per Arduino", oppure "sensori per Raspberry", appaiono centinaia di componenti, siano essi sensori, attuatori o display. Ne sono stati selezionati alcuni (sono sempre più di 120!), ma naturalmente ognuno di noi può trovarne tanti altri, che possono essere adatti ai propri progetti. Alcuni sensori sono specifici, e quindi richiedono l'uso di librerie dedicate; ma altri, più semplici, possono utilizzare programmi praticamente identici, magari molti moduli possono usare una stessa libreria, o addirittura funzionare semplicemente con quelle nativamente presenti per il linguaggio Python. Ecco
la lista dei sensori che possono essere utilizzati per
ogni connettore:
Clicca qui
per visualizzare/scaricare le immagini dei sensori
parzialmente testati.
Clicca qui
visualizzare/scaricare il file contente le informazioni
dei moduli relativi ai vari connettori.
|
![]() ![]() Joystick![]() GPS NEO7M |
| I
jumpers: le tue possibilità di scelta |
![]() Immagine
2d della BDS con evidenziati i punti in cui inserire i
ponticelli (jumpers)
Nei riquadri rossi quelli relativia ll'alimentazione; verdi quelli relativi al segnale. |
| I
ponticelli (jumpers) sono fondamentali per ffettuare le
proprie scelte relative alla gestione della BDS. Sulla basetta i connettori su cui si inseriranno i ponticelli sono sono tutti maschi (per ovvi motivi). In rosso sono evidenziati i connettori che scelgono la tensione di alimentazione, mentre in verde quelli relativi ai GPIO di segnale. Andando con ordine di importanza:
|
![]() I
ponticelli di vari colori
|
| L'alimentazione della BDS |
![]() ![]() |
|
La
BDS può essere alimentata sia direttamente dal Raspberry PI,
sia con un alimentatore esterno, che in questo caso fornirà
una tensione compresa tra 7,5 e 9 v. E' bene che
l'alimentatore eroghi una corrente di almeno 2A. Un circuito interno alla BDS provvederà poi a fornire le tensioni +3,3v 3 +5v ai vari utilizzi. Perchè è prevista un'alimentazione esterna? Il Raspberry PI può fornire una corrente di 8 mA su ogni porta digitale, che può essere insufficiente per alcune periferiche, come per esempio servomotori o relè, che a causa dell'elevato assorbimento potrebbero danneggiare la porta a cui sono connessi. Sulla parte superiore dell'immagine si vede stilizzato un connettore standard femmina da 6m mm, a cui si collegherà l'alimentatore esterno. Appena sotto di esso è presente la sessione di alimentazione a +3,3v, evidenziata da due led verdi. Spostando un ponticello si potrà scegliere se usare un alimentatore esterno (posizione su "EXT"), oppure se usare quella fornita da Raspberry ("INT"). Si accenderà il led corrispondente. La sezione per la tensione +5v è analoga, solo che sarà indicata da un paio di led rossi. Il colore rosso dei led stessi dovrebbe indicare che l'uso della tensione di 5v potrebbe danneggiare sia il Raspberry che i moduli funzionanti a 3,3v. Quindi deve essere usata con attenzione e cautela. Di base utilizzare sempre la tensione più bassa. Solo nel caso questa non sia sufficiente e sis sia certi di non creare danni, passare 8sulla propria responsabilità) all'uso dei +5,5v. Vicino ad alcuni connettori per dati, sia analogici che digitali, è presente un connettore maschio che con uno spostamento di un jumper può fornire l'alimentazione a + 3,3v che +5v. Dove non è presente questo connettore, la tensione erogata sarà esclusivamente a +3,3v. |
| La connessione dati con Raspberry PI |
![]() |
|
![]() |
Questo
connettore doppio (20 + 20 pin) è il gemello di quello
presente sul Raspberry PI, e permette di mettere
direttamente in contatto le due schede. Si può usare un vecchio connettore a 40 pin per dischi fissi IDE; probabilmente tutti noi ne abbiamo ancora qualcuno in cantina, oppure si possono facilmente tra il materiale di seconda mano. A volte questi connettori, per evitare di essere collegati in modo erroneo, mancano di un foro. Se possibile, trovare quelli con tutti i pin disponibili. Altrimenti, si può tentare di forare il pin mancante con una punta da 1 mm, evitando di andare troppo in profondità. Ma in questo caso perderemo un pin! Invece no! Il pin "chiuso" è il numero dieci di una fila, che faremo corrispondere con uno dei pin di ground, il decimo appunto, quello evidenziato con un riquadro verde. Poichè ce ne sono ben otto pin di ground sul Raspberry, e tutti sono connessi anche sulla BDS, non subiremo alcuna perdita di funzionalità. Nota 1: sotto il connettore "Data in" si trova un piccolo connettore femmina che fornisce i +5v prelevati dall'alimentatore esterno. Può servire come alimentazione ausiliaria, per esempio per alimentare una batteria di relè, oppure una ventola di raffreddamento per il Raspberry, senza dover accedere direttamente alla basetta del microcomputer. Nota2: fare attenzione a inserire il connettore nello stesso senso sia sul Raspberry che sulla BDS, altrimenti si potrebbero danneggiare entrambi! |
| La connessione "universale" DATA
per le porte digitali |
Questo connettore è composto da 3 file di pin: in quella più asinistra, sono presenti tutte le porte digitalipresenti sul Raspberry PI, in ordine crescente di GPIO: da 0 a 27. La fila centrale di pin è collegata tutta a massa (ground, abbrevviato in "GND), mentre quella più interna è connessa all'alimentazione (power, "PWR"). Per l'alimentazione si può scegliere sia +3,3v che +5v. Attenzione: l'alimentazione sarà uguale per tutte le periferiche che verranno connesse, quindi è bene non collegare insieme apparati che funzionano sia a +3,3v che +5v, specialmente se l'alimentazione del connettore sarà settata a +5v!
I moduli per il connettore "Data" ![]() Nota: il connettore "Data" presenta tutte le porte digitali, quindi teoricamente si potrebbe collegare ad esso connettere qualsiasi modulo digitale. |
|
![]() ![]() |
| I connettori per le periferiche I2C |
Su
questa scheda sono presenti quattro connettori per le
periferiche che utilizzano il protocollo I2C, che ha la
particolarità di poter connettere più sensori in
parallelo, purché abbiano indirizzi interni differenti.
Sono stati progettati quattro connettori sia per essere adatti a vari tipi di periferica, sia per permettere di collegarne diverse in parallelo, sfruttando la caratteristica del I2C. Da destra a sinistra si trovano rispettivamente I2C1, I2C2, I2C3, I2C4. I2C4 è un connettore particolare, adatto ad ospitare una vasta gamma di periferiche. Infatti si può stabilire la sequenza dei pin, alimentare sia a +3,3v che a 5v, e oltre alle porte tradizionali GPIO2 per SDA e GPIO3 per SCL, dà la possibilità di utilizzare anche GPIO16 e GPIO17. Così lo potremmo utilizzare per apparati (anche non necessariamente I2C) che richiedono quattro porte digitali. Naturalmente anche sugli altri connettori potremmo utilizzare periferiche non-I2C, ma in questo caso potremmo connettere un sensore solo su uno dei quattro connettori, pena conflitti di indirizzi. Nota: l'utilizzo del protocollo "I2C" deve essere attivato utilizzando la funzione "raspi-config". (Vedi paragrafo dedicato)
![]() I moduli per il connettore "I2C2": ![]() I moduli per il connettore "I2C3": ![]() I moduli per il connettore "I2C4": ![]() *
Il display nativamente funziona a +5v, però seppure un po'
sbiadito, è leggibile anche a +3.3v
|
| La connessione con il multiplexer
(CD74HC4067) |
![]() ![]() ![]() |
|
La
scheda CD74HC4067 è molto interessante, perché a fronte
dell'utilizzo di cinque porte digitali, mette a disposizione
ben sedici porte digitali! Utilizza il protocollo SPI, quindi attualmente non può essere usato contemporaneamente al connettore per ingressi analogici e a Rfid1, pena conflitti e malfunzionamenti. La scheda (visibile in basso sulla sinistra) andrà inserita nel rettangolo violetto presente sulla BDS. Il connettore marcato "H16" contiene le 16 porte disponibili, che sono connesse direttamente e in modo simmetrico a quelle del multiplexer (H13), indicate da "15" a "0". Sono utilizzate le porte GPIO9,10,11, 16 e 17 di Raspberry.
|
I moduli per il connettore "Multiplexer":![]() |
| L'ingresso per un sensore Rfid |
Un sensore Rfid, come per esempio un RC522, permette di leggere delle schede RF, utile per controllare accessi, serrature elettroniche, antifurti, ecc. Queste schede sono collegate al Raspberry con il protocollo SPI, quindi al momento incompatibili a funzionare contemporaneamente con gli ingressi analogici e il multiplexer. In futuro, variando il parametro SS/CS (CE0/CE1), si potrebbero utlizzare contemporaneamente le porte analogiche (collegate al Raspberry con un integrato MCP3008 con protocollo SPI su CE0 - GPIO8) insieme al lettore Rfid. (vedi righe seguenti).
|
![]() ![]() |
I moduli per il connettore "Rfid":![]() |
| La gestione di un servomotore |
![]() ![]() ![]() |
La differenza principale tra un motore elettrico e un servomotore, e che quest'ultimo non gira ininterrottamente fino a quando riceve tensione, ma si sposta di un angolo che può essere controllato da un programma, per esempio con la rotazione di un potenziometro, e in genere l'angolo consentito è di 180°, più raramente di 90° o 360°. Pertanto è molto utile nei casi in cui è necessario un movimento preciso, come per esempio lo sterzo delle ruote in un robot, ecc. Il connettore SV1sulla BDS è maschio, a differenza della maggior partedi quelli su cui si collega una periferica che sono femmina, perché quasi sempre dotato di un cavetto a tre poli con terminazione femmina, in cui il codice dei colori è rosso per +5v, marrone per la massa e giallo per il segnale di controllo. Il pin di controllo del servomotore è collegato a GPIO13. Nota: sebbene il basso assorbimento di corrente e l'alimentazione a +5v di un servomotore potrebbe anche permettere l'alimentazione diretta con il Raspberry, è sempe meglio usare un alimentatore esterno, per evitare danni alla porta del microcomputer. |
I moduli per il connettore "Servomotore":![]() |
| La connessione con un motore
elettrico |
![]() ![]() La
selezione della tensione
e
il collegamento per
il
motore elettrico.
![]() Un
esempio di un
piccolo
motore elettrico
|
La connessione di un motore elettrico a Raspberry è decisamente più complessa, almenno da un punto di vista progettuale, rispetto a quella di un servomotore. Infatti un motore elettrico, anche se alimentato a +5v, assorbe una corrente che un Arduino non può assolutamente fornire. Il motore può essere alimentato a +5v, oppure "PWR IN", che alimenterà il motore direttamente con l'alimentatore esterno (compresa tra 7,5 - 9v, massimo 12v). Nota: sia che si scelga "POWER IN" che l'alimentazione a +5v, assicurarsi che l'alimentatore esyerno sia collegato, altrimenti il motore non si avvierà! Infatti, poichè un motore elettrico assorbe una potenza che il Raspberry non sarebbe in grado di erogare, si è scelto, proprio per non danneggiarlo, di adottare esclusivamente un'alimentazione esterna. I GPIO per connettere il motore, attraverso il circuito inegrato sono i seguenti: GPIO5, 6 e 23. Lo schema elettrico della BDS è leggermente più complesso del solito, perchè è necessario alimentare il motore attraverso un circuito integrato apposito, per disaccoppiarlo dal Raspberry, che invierà semplicemente al transistor il comando di avviamento del motore. L'uso di un integrato, invece di un semplice transistor Mos-fet (che si usa come un interruttore), permette un controllo più approfondito del funzionaento del motore: infatti lo si potrà fare ruotare in entrambe le direzioni, e con l'uso di uno dei potenziometri integrati anche regolare a piacere la velocità di rotazione. Nota: per non danneggiare il circuito integrato con il calore della saldatura, è consigliabile usare uno zoccolo da 16 pin. |
![]() ![]() Il
posizionamento del circuito integrato.
![]() ![]() Le
connessioni e l'immagine del circuito
integrato L293D
|
I moduli per il connettore del "motore
elettrico":![]() |
| L'uso di due pulsanti "touch" |
|
|
Ho
inserito sulla BDS anche due pulsanti touch (è sufficiente
avvicinare un dito per attivarli), che possono essere utili
in tantissimi programmi quando è necessario fare qualche
test di acceso/spento; sostituiscono temporaneamente e
rapidamente tutta una serie di sensori digitali. Con alcune righe di programma possono essere trasformati in interruttori (toggle) , in cui una pressione avvia, e una successiva spegne. BT1 è connesso a GPIO24; BT2 è connesso a GPIO26. Nota: poichè i sensori "touch" sono saldati direttamente sulla basetta, non è possibile connettere altri moduli su questo ingresso. A differenza dei pulsanti "fisici", dopo qualche secondo passano da condizione "high" (accesa) a "low" (spenta). |
| Gli ingressi per moduli GPS |
I due ingressi, "GPS1" e "GPS2", sono stati inseriti nella BDS espressamente per NEO6M, NEO7M,NEO8M. GPS1 e GPS2 sono connessi sulle medesime porte del Raspberry, quindi possono essere usati solo in alternativa l'uno con l'altro, pena malfunzionamenti e/o conflitti. I moduli GPS sono molto interessanti, perché seppure molto economici, permettono di rilevare esattamente la propria posizione, fornendo una notevole serie di informazioni, quale longitudine, latitudine, velocità, altezza, data e ora, satellite su cui si è collegati Sono stati inseriti due connettori perché i moduli GPS, in base al modello e al fatto che abbiano l'antenna integrata o esterna, usano una diversa disposizione dei pin, oltre ad avere 4 o 5 piedini. Le porte "TDX" e "RDX" dei moduli GPS sono incrociati rispetto al Rapberry: TDX di uno si connette a RDX dell'altro, e viceversa. Naturalmente possono essere utilizzati anche per altri moduli digitali che funzionino a +3,3v e utilizzino al massimo due porte digitali. TDX del GPS si connette alla porta GPIO15 del Raspberry, mentre RDX è collegato a GPIO14. GPIO15 e GPIO14 sono le porte standard del microcomputer rispettivamente per RX e TX. Nota: i moduli per agganciarsi al satellite richiedono parecchi secondi, a volte addirittura minuti. E' necessario essere pazienti. Se si è all'interno di un edificio, è necessario essere vicini a auna finestra o su un balcone, poiché le antenne non sono molto efficienti. |
|
I moduli per il connettore "GPS1":![]() I moduli per il connettore "GPS2": ![]() Nota: poichè i due connettori utilizzano le stesse porte del Raspberry, devono essere usati in alternativa. |
| Connessione con periferiche
digitali che utilizzano una singola porta (1) |
![]() ![]() |
|
In
questa BDS ho inserito ben tre connettori per moduli che
utilizzano una singola porta digitale, perché ci sono
tantissimi sensori semplici e attuatori digitali (come relè
singoli) che utilizzano questa configurazione. DG1, DG2 e DG3 presentano tutti la stessa disposizione dei pin. DG1 si connette alla porta GPIO19 di Raspberry; DG2 a GPIO18 e DG3 a GPIO21. DG2 e DG3 sono inseriti in un riquadro a parte perché è possibile scegliere (insieme per entrambi) l'alimentazione, se a +3,3v oppure a +5v, mentre per DG1 è disponibile solo l'alimentazione a +3,3v. Come sempre porre una grande attenzione all'alimentazione scelta, per non rovinare sia il modulo che il Raspberry. Iniziare sempre provando la tensione di alimentazione più bassa. Accanto a ogni connettore è presente la predisposizione per inserire un led, alimentato attraverso una resistenza per ridurre la corrente fornita. Abbiamo pensato che questo potrebbe essere utile per simulare la presenza di un attuatore, come un relè ma con un assorbimento molto minore, per proteggere le porte del Raspberry. I led non devono essere inseriti quando si utilizzano dei sensori (quindi porte di Input), perchè potrebbe falsare i dati. Nota: nel caso si utilizzassero realmente dei relè, o apparati che assorbono molta corrente, usare sempre un alimentatore esterno, configurando correttamente i jumper di alimentazione. |
Alcuni
sensori digitali:![]() KY-004 DHT11![]() KY-006 |
I moduli per il connettore "singola porta
digitale - 1":![]() |
| Connessione con periferiche digitali che utilizzano una singola porta (2) |
![]() visione
2D
![]() visione
3D
Pir sensor; laser detect; touch button. |
Anche questi due connettori sono stati pensati per semplici periferiche digitali che utilizzano una sola porta digitale; la differenza tra queste ultime (DG4 e DG5) con quelle presentate nel paragrafo precedente (DG1, DG2 e DG3) consiste solo nella posizione dei pin, adatti per diversi altri moduli. DG4 accetta periferiche alimentate esclDG5usivamente a +3,3v; permette un'alimentazione sia a +3,3v che a +5v. Utilizzare le stesse cautele nell'usare +5v, che rischia di danneggiare alcuni moduli e lo stesso Raspberry. Nel dubbio, come prima scelta usare sempre i +3,3v. DG4 utilizza la porta GPIO12 del microcomputer; DG5 usa la porta GPIO5. Accanto a ogni connettore è presente la predisposizione per inserire un led, alimentato attraverso una resistenza per ridurre la corrente fornita. Abbiamo pensato che questo potrebbe essere utile per simulare la presenza di un attuatore, come un relè ma con un assorbimento molto minore, per proteggere le porte del Raspberry. Non va inserito quando si utilizzano dei sensori (quindi porte di Input), perchè potrebbe falsare i dati. |
I moduli per il connettore "singola porta
digitale - 2":![]() Nota: DA2, DA3, DA4 da una parte e DA1 e DA5 dall'altra, usano tutte una singola porta digitale, ma hanno una diversa disposizione dei pin, per poter soddisfare una ampia gamma di semplici periferiche. Poiché usano porte diverse, non vanno in conflitto. |
| Un connettore con più porte
digitali e analogiche |
Questo
connettore è piuttosto versatile, in quanto ampiamente
programmabile: permette un'alimentazione a +3,3 come a +5v;
e usare :
E' stato pensato per poter connettere sia un joystick (una porta digitale e due analogiche) che un encoder (due porte digitali e una analogica), più naturalmente una vasta gamma di altre periferiche, magari da collegare con alcuni brevi connettori, nel caso non utilizzino lo stesso ordine dei pin. Ponticellando i connettori maschi J6 e J7 si possono selezionare le porte analogiche o digitali; J5 la tensione di alimentazione, per cui è necessario usare sempre le solite cautele. Le
porte disponibili: |
![]() ![]()
Joystick
Encoder
|
I moduli per il connettore "AD1":![]() |
| Due connettori (in alternativa) con una porta
digitale e una analogica |
Questi due connettori possono essere utilizzati in alternativa, in quanto utilizzano le stesse porte, e quindi andrebbero in conflitto, provocando sicuramente malfunzionamente. Ne sono stati inseriti due perché hanno una diversa disposizione di pin, adatte ad accogliere diverse categorie di periferiche. Ci sono una serie di piccole schede con sensori che forniscono informazioni sia seriali che analogiche, come un sensore di temperatura, uno switch optoelettrico, due sensori microfonici, che utilizzeranno lo zoccolo AD1A. Mentre una vasta gamma di sensori specializzati nella rilevazione di vari tipi di gas (come per esempio MQ135) richiedono il sensore AD1B. Attenzione: questi rilevatori di gas richiedono di riscaldare la propria cellula sensibile, e pertanto hanno un assorbimento elevato. Usarli sempre attivando l'alimentatore esterno! Il datasheet relativo a questi sensori di gas richiedono l'alimentazione a +5v, ma funzionano egregiamente anche a +3,3v, per cui preferire, come sempre, l'alimentazione più bassa, per non danneggiare il Raspberry! Le porte utilizzate sono le seguenti: digitale: GPIO16 analogica: A5 |
![]() ![]() ![]() HW-496
![]() MQ135
|
I moduli per il connettore "AD1A":![]() I moduli per il connettore "AD1B": ![]() ![]() |
I moduli per il connettore "AD1A":![]() I moduli per il connettore "AD1B": ![]() ![]() |
I moduli per il connettore "AD1A":![]() I moduli per il connettore "AD1B": ![]() ![]() |
I moduli per il connettore "AD1A":![]() I moduli per il connettore "AD1B": ![]() ![]() |
I moduli per il connettore "AD1A":![]() I moduli per il connettore "AD1B": ![]() ![]() |
| Un
ingresso per moduli "One Wire" |
![]() ![]() |
C'è
una categoria particolare di moduli che possiedono
internamente un proprio indirizzo, per cui possono
essere inseriti su uno stesso "filo" (ovvero sullo
stesso pin), senza andare in conflitto. Per questo
vengono denominati "one-wire". Di default vengono
configurati sul GPIO4. Naturalmente variando il file di
configurazione si può selezionare un altro pin, ma visto
che non c'era motivo di farlo, e non intendendo
complicare la configurazione, ho mantenuto quello di
default.
Al momento ho testato un solo modulo "one-wire", ovvero il sensore di temperatuta digitale Texas Instruments 18B20 che si adatta perfettamente al connettore indicato a sinistra. Il modulo completo ha codice KY-001 oppure HW-506. Nota: l'utilizzo del protocollo "one wire" deve essere attivato utilizzando la funzione "raspi-config". (Vedi paragrafo dedicato) |
![]() Il sensore di temperatura 18B20 |
| Gli ingressi analogici "Analogic Inputs" |
![]() ![]() |
|
Come
indicato nell'apertura di questo capitolo, Raspberri PI non
possiede ingressi analogici. Però è possibile, utilizzando
un circuito integrato MCP3008, dotarlo di ben otto ingressi
analogici. Nel connettore "Analogic IN", sono presenti quelli da 0 a 5. Però sono solo sei! Le porte 6 e 7 sono utilizzate per controllare due potenziometri da 10 KOhm, che verranno trattai in seguito. Penso che sei porte analogiche disponibili siano più che sufficienti per la maggior parte delle applicazioni. Il chip MPC3008 si collega al Raspberry con il protocollo SPI, di cui utilizza quattro porte, da GPIO8 a GPIO11. Per evitare eventuali conflitti con altri connettori che usano lo stesso protocollo (come per esempio Rfid1), si è pensato di inserire quattro ponticelli, evidenziati in diversi colori. Quando sono chiusi, le porte analogiche sono attive; altrimenti sono scollegate. In futuro si vedrà se variando lo schema elettrico della scheda sarà possibile ovviare al problema, in quanto teoricamente è possibile connettere più periferiche SPI contemporaneamente, variando un pin di controllo. Come visto nella sezione relativa all'alimentazione, è possibile scegliere se alimentare i moduli collegati a +3,3v oppure a +5v. La solita raccomandazione,porre molta cautela ad alimentare le periferiche a +5v, rischiano di danneggiarle e sopratutto di danneggiare il Raspberry. Nota1: per non danneggiare il circuito integrato con il calore della saldatura, è consigliabile usare uno zoccolo da 16 pin. Nota2: forse si nota che alcune porte del connettore H3, quelle da 5 a 2, sono in carattere italico, mentre le porte 1 e 0 sono nel solito carattere. Questo a significare che le porte analogiche da 2 a 5 sono condivise anche con altri zoccoli, mentre 1 e 0sono presenti solo su H3, quindi nonandranno mai in conflitto. Nota3: l'utilizzo del protocollo "SPI" deve essere attivato utilizzando la funzione "raspi-config". (Vedi paragrafo dedicato) Alcuni sensori analogici: |
![]() |
![]() |
![]() |
I moduli per il connettore "Analogic Inputs": ![]() |
| Due potenziometri
(porte analogiche) |
| Poiché
durante la progettazione di questa BDS si è deciso di
inserire un chip per gestire le porte analogiche, si è
pensato di inserire nativamente due potenziometri sulla
basetta, che possono essere molto utili per variare la
velocità di rotazione di un motore, l'angolo di rotazione di
un servomotore, la luminosità di un led, la frequenza di un
suono... Quindi i potenziometri possono essere utilissimi e pertanto trovano posto a tutto diritto sulla nostra BDS. Naturalmente, affinchè i due potenziometri possano svolgere la loro funzione, è necessario che siano posti i ponticelli nella sezione "Analogic Inputs". Come si vede, in prossimità dei due potenziometri sono stati inseriti dei condensatori elettrolitici da 100 uF, utili nel caso sia necessità di dare spunto all'avvio di attuatori che assorbono molta energia, come per esempio dei motori elettrici Il potenziometro "Trim1" è connesso alla porta "A7"; mentre quello denominato "Trim2" è connesso alla porta "A6". Queste due porte non sono presenti sul connettore di Analogic Inputs", perché se venisse collegate ad esse in parallelo un altro sensore, i dati forniti potrebbero essere falsati.
|
|
![]() ![]() |
| Tabella
dei conflitti tra porte |
I Raspberry PI fortunatamente hanno 25 porte digitali disponibili, però in fase di progettazione non se ne hanno mai abbastanza... ecco quindi la necessità di creare una tabella per i possibili conflitti tra porte. Come si potrà vedere, attualmente la maggior parte dei conflitti si manifestano per i tre connettori che utilizzano il protocollo SPI, ovvero "Analogic Inputs", "Rfid1" e "Multiplexer". Peroò variando la porta di controllo, quella che si chiama "SDA", questo conflitto dovrebbe scomparire. Attualmente tutti questi connettori utilizzano GPIO8, ma probabilmente con un piccolo intervento sulle piste della basetta sarebbe possibile ovviare a questo principale inconveniente, permettendo di utilizzarli contemporaneamente. A breve vedremo come intervenire. Ecco intanto l'immagine delle varie porte utilizzate. ![]() Come si può vedere dalla legenda, ci sono alcune porte il cui utilizzo è sconsigliato, ovvero GPIO0 e GPIO1, perchè utilizzate dal sistema. Le porte colorate in grigio, vanno in conflitto tra loro, se usate contemporaneamente su due connettori diversi. I moduli I2C non provocano conflitti, sempre che abbiano indirizzi interni differenti. Esiste anche un modulo (TCA9548) che permette di connettere insieme ben otto periferiche I2C con lo stesso indirizzo, come per esempio otto display SSD1306, ma richiedono una programmazione particolare. I moduli in verde scuro non producono conflitti. Quelli in verde chiaro sono relativi a due moduli "gemelli", come per esempio GPS1 e GPS2, oppure AD1A e AD1B, che come si vede nella descrizione particolareggiata, utilizzano le stesse porte e sono stati progettati per essere usati uno solo alla volta. Il colore azzurro indica i moduli alimentatti a +3,3v, e quelli in arancio i moduli alimentati a +5v. Come sempre, vale la cautela dell'uso dei +5v, in quanto il Raspberry sebbene fornisca anche questa tensione, lavora nativamente a +3,3v. Clicca qui per scaricare la tabella in formato PDF Clicca qui per scaricare la tabella in formato ODS |
| Tabella
dei sensori disponibili per ogni connettore della BDS |
Da questo paragrafo è possibile scaricare il file nei due formati ods e pdf contenente tutte le informazioni relative alle varie periferiche per ogni connettore. Clicca qui visualizzare/scaricare il file in formato PDF contente le informazioni dei moduli relativi ai vari connettori. Clicca qui visualizzare/scaricare il file in formato ODS contente le informazioni dei moduli relativi ai vari connettori. |
| Immagine
dei moduli per Arduino/Raspberry |
Clicca qui per visualizzare/scaricare le immagini dei sensori parzialmente testati. Nota: è scritto parzialmente testati, perché quelli che si vedono descritti sono stati sperimentati principalmente con i vari Arduino e ESP32, ESP8266. |
|
![]() |
| I
file Gerber (per la realizzazione della BDS) e gli schemi elettrici |
| Troverai
maggiori informazioni cliccando
qui. Clicca qui per scaricare i file Gerber E' sufficiente fornire senza alcun intervento la cartella ".zip" a una ditta specializzata nella realizzazione di basette stampate. Clicca qui per scaricare lo schema elettrico in formato ".png". |
![]() |