Ethical DIY

Progetti hardware & software etici


Menu orizzontale con sottomenu CSS






 




Pagina principale per Raspberry



Informazioni di base




La basetta sperimentale (BDS)


Applicazioni



Librerie e programmi


Link per Raspberry PI





Torna alla pagina principale (home)







 








 
















Raspberry PI 3/4/5:
la basetta sperimentale (BDS)
istruzioni di uso e funzionamento

darkImmagine in scala 1:1 della basetta didattica e sperimentale (BDS) per Raspberry PI 2/3/4/5

Vedi 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).

45

  Rendering rimpiccionito della BDS in prospettiva a 45°




Le connessioni disponibili
mcp3008
MCP3008

Questo chip fornisce al
Raspberry PI otto porte analogiche.



ds
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!
Nota 2: l'uso della tensione +5v può danneggiare sia le periferiche che il Raspberry. Utilizzarla sotto la propria personale responsabilità.




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.


018

jy
Joystick

gp7
GPS NEO7M



I jumpers: le tue possibilità di scelta

jump
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:
  • Sulla destra della basetta, in alto, ci sono i connettori evidenziati in rosso per la scelta, sia per +3,3v che +5v. Se si desidera selezionare l'alimentazione da Raspberry (INT) o con un alimentatore esterno (EXT). Ovviamente se non si sceglie il tipo di sorgente di alimentazione, oppure si sceglie quella esterna e non è collegato l'alimentatore, la scheda non verrà alimentata. Quattro led indicano le scelte effettuate.
  • A livello più basso, sparsi sulla basetta si trovano i connettori evidenziati in rosso relativi alla scelta di alimentazione per i vari sensori. Nel dubbio, per evitare danni anche gravi ai componenti, selezionare sempre di base i +3,3v. Solo con cognizione di causa utilizzare l'alimentazione a +5v. Ovviamente se non si effettua alcuna selezione, i sensori collegati ai connettori corrispondenti non verranno alimentati. Tutte le scelte di alimentazione locale, sia a +3,3v che a +5v, dipendono dalle scelte effettuate a livello gerarchicamente superiore e saranno tutti alimentati o da Raspberry o dall'esterno.
    Unica eccezione la scelta di alimentazione di MT1 (motore elettrico), in quato a causa del notevole assorbimento sarà alimentato esclusivamente dall'esterno. Eccezione anche alla tensione di alimentazione: può essere alimentato o a +5v, oppure alla tensione fornita direttamente dall'alimentatore esterno.
  • In verde invece sono evidenziati i connettori relative alle scelte dell'uso dei GPIO:
    • relativalemte ad "Analogic inputs": sono presenti 4 jumpers. Se sono inseriti tutti, il circuito integrato viene connesso al Raspberry, e quindi si attivano le porte analogiche. Questa scelta è stata effettuata per evitare eventuali conflitti con altri sensori (multiplexer e Rfid).
    • connettore"RFID1": "Spi-sel" permette di selezionare a quale canade SDI connettere il sensore Rfid. Di default viene utilizzato il GPIO8 (CE0). Quello alternativo è GPIO7 (CE1). Peroò, affinchè funzioni, è necessario inserire le opportune righe di programma.
    • connettore I2C2: oltre ai canonici GPIO relativi a SDA e SCL (rispettivamente 2 e 3), sono stati agglinti altri due GPIO, ovvero 16 e 17, utili per moduli che utilizzino quattro porte digitali. Sono stati inseriti questi jumper perchè si è notato che alcune periferiche I2C, quali BME680 che possiedono sei pin, hanno difficoltà quando connessi anche a GPIO16 e 17. Per cui è possibile disattivarli quando non sono necessari.


jmp
I ponticelli di vari colori



L'alimentazione della BDS



al1
al

 
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
din
 
   

din1


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!

da

d1

Questa è la sezione che permette di selezionare l'alimentazione a +3,3v oppure a +5v. Qui a sinistra si può vedere il particolare del selettore della tensione, mentre nelle figure a destra viene evidenziata con un quadrato rosso la sua reale collocazione.
 Di base lasciare sempre il settaggio su +3,3v e utilizzare solo i +5v quando necessario. Se sin usa in modo errato questo settaggio, si potrebbe danneggiare sia il modulo che lo stesso Raspberry!


I moduli per il connettore "Data"
cdata

Nota
: il connettore "Data" presenta tutte le porte digitali, quindi teoricamente si potrebbe collegare ad esso connettere qualsiasi modulo digitale.
 

dd

dd1



I connettori per le periferiche I2C

i2c1


i2c
I quattro ingressi per il protocollo I2C: I2C1, I2C2, I2C3 e I2C4


bme280
BME280
     


shtc
SHTC3

  


bme680
BME680

   ssd1306          
               SSD1306

16021602i

Il display LCD16012 con l'adattatore per il protocollo I2C (16 caratteri su 2 colonne) può essere connesso direttamente su I2C4. Funziona anche a 3,3v, seppure i caratteri siano un po' sbiaditi...
Può essere molto utile nei progetti in cui non si debbano mostrare troppi dati.
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)
Come possiamo stabilire l'ordine dei pin su I2C4? come si vede, sono presenti tre serie di connettori. Quello Marcato "H22" è collegato direttamente alle porte del Raspberry e all'alimentazione. Con una serie di corti cavetti maschio-maschio, potremmo collegarli nell'ordine desiderato sul connettore "H20", il quale è connesso direttamente e in modo simmetrico al connettore I2C4. In questo modo potremmo stabilire l'ordine e il tipo delle connessioni.
Nell'immagine in 2D, i collegamenti in rosso mostrano la simmetria di collegamenti tra i due connettori, H20 e I2C4.

i4

ic2

I moduli per il connettore "I2C2":
ic2

I moduli per il connettore "I2C3":
ic3

I moduli per il connettore "I2C4":
ic4
* Il display nativamente funziona a +5v, però seppure un po' sbiadito, è leggibile anche a +3.3v



La connessione con il multiplexer (CD74HC4067)

mp

mp1

multip
 
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.

Nell'immagine relativa al multiplexer si vede in alto a sinistra un connettore maschio "PWR Sel." inserito per  selezionare l'alimentazione a +3,3v oppure +5v, per il modulo multiplexer, usando un ponticello.

multi1

multi2

Sempre nell'immagine dello spazio del multiplexer, in basso a sinistra si trova un altro connettore maschio di alimentazione, denominato "PWR out", che è relativo all'alimentazione dei sensori/attuatori che si collegheranno all'uscita del multiplexer.
I moduli per il connettore "Multiplexer":
mpl



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).

Proprio per poter utilizzare più moduli SPI contemporaneamente, appena sopra il connettore per RFID, è stato inserito un connettore maschio, con la possibilità discegliere "CEO" (GPIO8), oppure "CE1" (GPIO7).
Teoricamente utilizzando CE1 - GPIO7 per il sensore Rfid è possibile far convivere insieme le due periferiche. Purtroppo non ho ancora trovato come inserire nel programma la porta corretta, spero di trovare presto le righe di programma necessarie.

Nota: l'utilizzo del protocollo "SPI" deve essere attivato utilizzando la funzione "raspi-config".  (Vedi paragrafo dedicato)

ceo

522

Normalmente quando si acquista un sensore RC522 viene fornito con una scheda, per poter iniziare immediatamente le prove. Naturalmente se ne servono altre, possono essere acquistate separatamente.


rfid
rfid1
I moduli per il connettore "Rfid":
rfd



La gestione di un servomotore

sv1
sv11
srvm


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":
srv



La connessione con un motore elettrico

mt1

dc1
La selezione della tensione
e il collegamento per
il motore elettrico.



mot_el
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.

ic
ic1
Il posizionamento del circuito integrato.

ld
ld1
Le connessioni e l'immagine del circuito integrato  L293D
I moduli per il connettore del "motore elettrico":
mtl



L'uso di due pulsanti "touch"

bt


btx

 
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.



g1
Vista 3D

neo6m


Neo6m, a 4 pin
Connettere a GPS1


g2
Vista 2D
neo7m
Neo 7/8M, a 5 pin
Connettere a GPS2

I moduli per il connettore "GPS1":
gp1

I moduli per il connettore "GPS2":
gp2

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)



dg

dgx
 

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:

ky004
KY-004
dht11DHT11
ky-006
KY-006
I moduli per il connettore "singola porta digitale - 1":
da2



Connessione con periferiche digitali che utilizzano una singola porta (2)
dg45
visione 2D
dg5
visione 3D

pir
laser
touch
Alcuni sensori adatti a questi connettori:
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":
da1
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 :
  • tre porte digitali;
  • due porte digitali e una analogica;
  • una porta digitale e due analogiche.

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:
GPIO20 (digitale, fisso)
GPIO27 (digitale); in alternativa: A3 (analogica)
GPIO22 (digitale); in alternativa: A4 (analogica).



add

ad2

joy
enc
   Joystick              Encoder
I moduli per il connettore "AD1":
aad1



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




adx

adx
hw496
HW-496
mq135
MQ135

I moduli per il connettore "AD1A":
add1a

I moduli per il connettore "AD1B":
add1b
add1bb
I moduli per il connettore "AD1A":
add1a

I moduli per il connettore "AD1B":
add1b
add1bb
I moduli per il connettore "AD1A":
add1a

I moduli per il connettore "AD1B":
add1b
add1bb
I moduli per il connettore "AD1A":
add1a

I moduli per il connettore "AD1B":
add1b
add1bb
I moduli per il connettore "AD1A":
add1a

I moduli per il connettore "AD1B":
add1b
add1bb



Un ingresso per moduli "One Wire"
ow

ow1


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)

18b20
Il sensore di temperatura 18B20



Gli ingressi analogici "Analogic Inputs"



ai1

aix
 
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:
ky018
ky039
sen18

I moduli per il connettore "Analogic Inputs":
ain


Nota: all'inerno del riquadro relativo agli ingressi analogici, è presente anche AN1 (evidenziato in giallo, in alto a sinistra), progettato per poter connettere direttamente alcuni semplici sensori analogici, quale un modulo LDR (con fotoresistenza).  E' connesso alla porta A2.

an1






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.

potenz un potenziometro da basetta              

Nota: poichè i potenziometri sono connessi direttamente sulla basetta, non è possibile connettere altri moduli su questo ingresso.
  

2pt

2pot



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.

t_conf
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.
 
ssd1306



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".

pcb



Per contatti: etdiy@centroanahata.it