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
  • La gestione delle librerie

  • Programmi applicativi
    • Protocollo_I2C
    • I2C_BME280
    • I2C_BME680
    • I2C_ Display_LCD_1602
    • I2C_Display_SSD1306
    • I2C_SGP30-SGP40
    • SPI_RFID_RC522
    • One-wire_18B20
    • DHT11/DHT22
    • Motore_elettrico
    • Servomotore
    • Motore a passo
    • Encoder_Joystick
    • Pulsanti/piccoli_sensori
    • Led
    • Telecamera_OpenCV
    • Gestione_immagini
    • Ingressi_Analogici
    • Display: LCD1602
    • Display: SSD1306 Oled
    • Display: ST7735
    • Ingressi analogici
    • Programmi vari














 








 
















Raspberry PI 3/4/5
Programmi per display SSD1306

s3
La connsessione del display sulla BDS


I display SSD1306 OLED sono molto flessibili. Ce ne sono di due tipi: 128 x 32  e 128 x 64 pixel. Sono veramente  piccoli e adatti per moltissimi usi. Quello che useremo principalmente nei programmi che preseteremo è quello con il visore più ampio, in grado di visualizzare un maggior numero di informazioni.
Seguono entrambi il protocollo I2C, quindi possono essere connessi insieme ad altri moduli che usano lo stesso protocollo senza che vi siano conflitti, purché abbiano indirizzi diversi.
Entrambi i visori possono essere connessi sullo zoccolo I2C1.
Sulla sinistra si vede come inserirli nel connettore sulla BDS.

64
ssd1306 128x64
32
ssd1306 128x32





I progetti con i display SSD1306 OLED
Abbiamo diviso i programmi con i display su più pagine, perchè altrimenti la pagina diverrebbe troppo lunga e complessa. Perciò è stata divisa così:

Ho riflettuto se creare un unico ambiente virtuale in cui inserire tutte le librerie e i programmi che richiedono il display SSD1306, ma poi ho pensato che se si danneggiasse qualche libreria, oppure se qualcuna andasse in conflitto con le altre sarebbe necessario ricreare l'ambiente, inserire tutte le librerie, ecc.
Così ho preferito creare un ambiente per ogni sensore. Si occupa più spazio, ma si è più sicuri del risultato.











La creazione dell'ambiente virtuale e l'inserimento delle librerie STANDARD necessarie

Ipotizziamo che sul desktop del proprio Raspberry si crei una cartella "Projects" e all'interno una sottocartella "ssd1306" in cui creeremo l'ambiente virtuale (che chiameremo "1306"), le librerie necessarie e i programmi.
Nota: naturalmente i nomi dati alle sottocartelle possono essere variati a piacere. Postulando che si siano create le cartelle indicate, si può iniziare con la programmazione.
Aprire un terminale (la quarta icona in alto a destra) term e digitare quanto segue:
cd Desktop/Projects/ssd1306  per spostarsi nella cartella "ssd280;
python3 -m venv 1306             per creare l'ambiente virtuale "280";
source  ssd/bin/activate         per attivare l'ambiente virtuale: apparirà (280) all'inizio della nuova riga;

1
Installare la prima libreria, adafruit_circuitpython_ssd1306, con il comando: "pip3 install
adafruit_circuitpython_ssd1306" 2
la libreria è stata correttamente installata
3
La seconda libreria necessaria: RPi.GPIO,
con il comando: "pip3 install RPi.GPIO "
4
e infine, l'ultima libreria necessaria: Pillow,
con il comando: "pip3 install pillow":
5

Dopo aver installato queste librerie, si potranno lanciare i programmi elencati di seguito.





Lista di programmi di test per il display SSD1306 con librerie "standard"

Questa prima serie di sketch, permette di effettuare alcuni test di funzionamento, per poi inserire le righe di testo necessarie nei propri programmi. Esse usano le librerie standard per SSd1306, come

adafruit_circuitpython_ssd1306, ecc.

Per ulteriori informazioni, fare riferimento a questo sito:
https://it.emcelettronica.com/utilizzo-dei-display-in-progetti-con-raspberry-pi
Nel caso si usi un SSD1306 128 x32 pixel, la riga del programma sarà simile a questa:
1;
se invece si usasse un SSD1306 128 x 64 pixel, modificare le informazioni tra parentesi nel modo seguente: "(128, 64, i2c)". In base anche alle dimensioni che si vogliono ottenere sullo schermo, si può anche giocare su questo parametro.





Il primo programma, "1.py" disegna i quattro punti agli angoli del display.
Clicca qui per scaricate il programma in formato ".zip".
Clicca qui per visualizzare il programma.

131

Il secondo programma, "2.py" stampa sullo schermo un testo con i caratteri standard del display.
Clicca qui per scaricate il programma in formato ".zip".
Clicca qui per visualizzare il programma.

132

Il terzo programma, "3.py" disegna sullo schermo un rettangolo, con inscritto un testo.
Clicca qui per scaricate il programma in formato ".zip".
Clicca qui per visualizzare il programma.

133

Il quarto programma, "4.py" disegna sullo schermo quattro rettangoli, a formare una tabella 2 x 2, con all'interno di ognuno un testo. Adatto per la versione del display 128 x 32
Clicca qui per scaricate il programma in formato ".zip".
Clicca qui per visualizzare il programma.

134

  La "variante" del quarto programma, "4a.py" disegna sullo schermo otto rettangoli, a formare una tabella 4 x 4, con all'interno di ognuno un testo.
Clicca qui per scaricate il programma in formato ".zip".
Clicca qui per visualizzare il programma.

135

Il quinto programma, "5.py" disegna sullo schermo alcune figure geometriche.
Clicca qui per scaricate il programma in formato ".zip".
Clicca qui per visualizzare il programma.

s139

Il sesto programma, "6.py" stampa sullo schermo un testo in caratteri truetype.
Richiede che si sia scaricato e scompattato nella stessa cartella del programma il file truetipe.zip.
Queste righe permettono di variare il tipo e le diemsioni dei caratteri stampati:
2
e le seguenti righe di testo di indicare la posizione e i caratteri che appariranno nel testo:
3

Clicca qui per scaricate il programma in formato ".zip".
Clicca qui per visualizzare il programma.

137

Il settimo programma, "7.py" stampa anch'esso sullo schermo un testo in caratteri truetype.
Richiede che si sia scaricato e scompattato nella stessa cartella del programma il file truetipe.zip.
Clicca qui per scaricate il programma in formato ".zip".
Clicca qui per visualizzare il programma.

138








Inserimento della libreria personalizzata per i prossimi programmi

Nello stesso ambiente virtuale attivato per i programmi illustrati precedentemente, aggiungere la libreria piicodev, con il seguente comando: "pip3 install piicodev", che è l'unica necessaria per i programmi seguenti.
10
La libreria piicodev gestisce anche diversi moduli utilizzati da Arduino.

E' necessario scaricare anche questo file compresso: piico.zip Esso contiene immagini e font necessari per il funzionamento dei programmi seguenti. Scaricare il file nella cartella "/Desktop/Projects/ssd1306" (se si è usato lo stesso percorso e scompattarlo al suo interno.

Da questo sito potrai avere informazioni su questa libreria, molto versatile:
https://core-electronics.com.au/guides/raspberry-pi/piicodev-oled-ssd1306-raspberry-pi-guide/







Lista di programmi di test per il display SSD1306 con libreria "personalizzata"
I programmi che funzionano utilizzando la libreria "piicodev" permettono di effettuare altri test, e parti di codici che si possono poi inserire facilmente nei propri programmi.
Ricordarsi di  scaricare e scompattare questo file compresso: piico.zip che contiene le immgini necessari per i programmi quali "bitmapx.py"




Il programma "animation.py" muove lentamente un quadtatino sullo schermo.

Clicca qui per scaricare il programma in formato ".zip"
Clicca qui per visualizzare il programma


an


Il programma "graph.py" disegna delle curve sullo schermo.

Clicca qui per scaricare il programma in formato ".zip"
Clicca qui per visualizzare il programma


gr


Il programma "rectangle.py" disegna dei rettangoli sullo schermo.

Clicca qui per scaricare il prgramma in formato ".zip"
Clicca qui per visualizzare il programma


rc


Il programma "text.py" stampa testi in vari formati sullo schermo.

Clicca qui per scaricare il programma in formato ".zip"
Clicca qui per visualizzare il programma

tx

Il programma "triangle.py" mostra sullo schermo la costruzione di un triangolo.

Clicca qui per scaricare il programma in formato ".zip"
Clicca qui per visualizzare il programma

tr


Il programma "bitmap0.py" stampa il logo piicode in formato grafico "pbm" sullo schermo.

Clicca qui per scaricare il programma in formato ".zip"
Clicca qui per visualizzare il programma

b0


Il programma "bitmap1.py" stampa l'immagine di un gatto in formato grafico "pbm" sullo schermo.

Clicca qui per scaricare il programma in formato ".zip"
Clicca qui per visualizzare il programma


b1


Il programma "bitmap2.py" stampa l'immagine di un delfino che salta in formato grafico "pbm" sullo schermo.

Clicca qui per scaricare il programma in formato ".zip"
Clicca qui per visualizzare il programma


b2


Il programma "bitmap3.py" stampa l'immagine di un cielo nuvoloso in formato grafico "pbm" sullo schermo.

Clicca qui per scaricare il programma in formato ".zip"
Clicca qui per visualizzare il programma

b3





La libreria piicodev gestisce , oltre al display, un discreto numero di moduli e sensori vari.

Il programma "mpu6050.py" utilizza un accelerometro e un giroscopio a tre assi, che inclinandosi fa spostare in modo proporzionale all'inclinazione un quadratino sullo schermo.
Il modulo mpu6050 utilizza anch'esso il protocollo I2C, e può essere connesso sullo zoccolo I2C2 (o connettendo correttamente i pin) su I2c4.

Clicca qui per scaricare il programma in formato ".zip"
Clicca qui per visualizzare il programma


 
mu



La libreria piicodev gestisce , oltre al display, un discreto numero di moduli e sensori vari.
Il programma "vl53l1x.py" utilizza un preciso sensore di distanza laser, e riporta la distanza in millimetri sulla parte alta del dispaly, mentre ne mostra pure una rappresentazione grafica sul resto dello schermo.
Il modulo
vl53l1x utilizza anch'esso il protocollo I2C, e può essere connesso sullo zoccolo I2C2 (o connettendo correttamente i pin) su I2c4.

Clicca qui per scaricare il programma in formato ".zip"
Clicca qui per visualizzare il programma

Purtroppo non ho un
immagine con il
sensore VL53L1X
perché ho avuto      
problemi di funzionamento. 









Per contatti: etdiy@centroanahata.it