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
Motore elettrico con display SSD1306

Per ulteriorei informazioni sul motore elettrico, andare alla pagina dedicata



Come collegare il motore elettrico e il display SSd1306 alla BDS

mm3
La BDS con collegato il motore elettrico e il display SSD1306

Nel riquadro in alto, leggermente a destra, è evidenziato il circuito integrato L293D che controlla il motore elettrico,

Il connettore per il motore elettrico si connette allo zoccolo "MT1 (riquadro giallo), mentre il jumper "PWR_sel" (riquadro rosso) permette di selezionare se il motore sarà alimentato a 5v  (selettore a sinistra) oppure (selettore a destra) alla tensione che proviene direttamente dall'alimentatore (7,5 - 12v). Questa scelta è stata inserita nel progetto per poter alimentare anche motori che richiedono più di 5v.
Nota: il motore funzionerà esclusivamente se la BDS sarà collegata all'alimentatore esterno.


mt1s
  Connessionde del
motore elettrico
trm1
Controllo del motore

Per controllare il funzionamento del motore, è necessario utilizzare gli strumenti presenti nel riquadro:
- TRM1 (riquadro violetto) regola la potenza fornita al motore da 0 a 100% (ruotando in senso orario):
- BT1
(riquadro giallo) avvia il motore con senso antiorario;
- BT2 
(riquadro verde) avvia il motore con senso orario.
Nota: il motore si avvierà solamente se si premerà uno dei due tasti "touch"

Il display SSD1306, che segue il protocollo I2C, può essere inserito sul connettore I2C1.
s3








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

Ipotizziamo che sul desktop del proprio Raspberry si crei una cartella "Projects" e all'interno una sottocartella "ssdmot" in cui creeremo l'ambiente virtuale (che chiameremo "motor"), 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/ssdmot  per spostarsi nella cartella "ssdmot ";
python3 -m venv motor            per creare l'ambiente virtuale "motor ";
source  motor/bin/activate         per attivare l'ambiente virtuale: apparirà (motor) all'inizio della nuova riga;
m1

Installeremo ora le librerie necessarie.
la prima è RPi.GPIO, con il comando "pip3 install RPi.GPIO":
m2
Poi installeremo gpiozero:
"pip3 install gpiozero":
m3
s4
Di seguito installeremo pillow
"pip3 install pillow", per poter gestire i font di caratteri truetype:
m5
E infine, adafruit_ssd1306
"pip3 install adafruit_circuitpython_ssd1306", per gestire il display:
m6
m7

A questo punto potremmo lanciare il nostro primo programma, con "python ssdmotor1.py"







Il primo programma: visualizzazione dei dati sul display
Il primo programma coinvolge l'uso di due pulsanti touch: BT1 permetterà di fare ruotare il motore in senso antiorario (backwards), mentre BT2 lo farà ruotare in senso orario (forwards). Il potenziometro TRM1 regolerà la velocità di rotazione fluidamente da 0 a 100%.
Sul display appariranno le informazioni dell'attività in corso:
- se non è premuto alcun tasto, sul visore apparirà la scritta "Waiting";
- se è premuto (o sfiorato) il tasto BT1 il motore ruoterà in senso antiorario. Sul display apparirà "Backwards" e la percentuale della potenza fornita;

- se è premuto (o sfiorato) il tasto BT2 il motore ruoterà in senso orario. Sul display apparirà "Forwards" e la percentuale della potenza fornita.

Nota: il motore ha necessità di un minimo di tensione per poter avere la forza sufficiente a ruotare, quindi sarà difficile che cominci a ruotare prima di una percentuale di potenza di 20/30%).
L'uscita di MT1 non ha un positivo e un negativo, in quanto attraverso il circuito integrato si può variare il senso do rotazione; per cui la rotazione in senso orario o antiorario dipenderò da come avremo inserito il connettore del motore allo zoccolo.

mw

mb

mf


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

Se stai eseguendo queste operazioni direttamente dal Raspberry, puoi scaricare e scompattare direttamente il programma nella cartella  "Desktop/Projects/ssdmot"
e lanciarlo con il seguente comando: "python ssdmotor1.py"

Controllare di aver attivato l'ambiente virtuale e scaricato le librerie necessarie.






Per contatti: etdiy@centroanahata.it