Archivi categoria: elettronica

BBC micro:bit: ripristinare alle condizioni di fabbrica


Recentemente mi è stato chiesto da alcuni colleghi che stanno seguendo un mio corso sulle STEAM, come ripristinare un micro:bit alle condizioni originali di fabbrica in cui sulla schede è presente il programma dimostrativo di primo avvio che mostra, in modo divertente, le principali modalità di funzionamento. Il ripristino risulta utile con gli studenti che per la prima volta utilizzano il micro:bit ed offre un’esperienza pratica di apprendimento iniziale molto piacevole per i ragazzi.

Come sapete questo programma, che prende il nome di “Out of Box Experience” viene eseguito quando aprite una nuova confezione, dopo di che iniziando le attività viene sovrascritto dai successivi programmi.
E’ possibile recuperare questo programma? Certamente sì.

Per scaricare il programma: seguite il link: Out of Box Experience

Informazione importante

Il programma “Out of Box Experience” è scritto in C ++, quindi non dovrete caricarlo attraverso il MakeCode o altro editor Python, sarà sufficiente, una volta che avrete connesso il micro:bit al computer, trascinare il file .hex all’interno della scheda.

🙂 Buon Making a tutti.

Puntata 1/3 : Invio dati da micro:bit alla piattaforma IoT ThingSpeak mediante modulo WiFi esp01

In occasione del corso gratuito STEAM: Inclusione e personalizzazione nell’insegnamento delle STEAM a cui è possibile iscriversi seguendo il link, mostrerò una serie di attività laboratoriali, tra cui anche quelle che richiedono la registrazione in tempo reale dei dati di sensori utilizzando diverse schede elettroniche, tra questi BBC miro:bit, in questo modo sarà possibile ad esempio visualizzare su grafico l’andamento dell’inquinamento atmosferico, l’umidità del terreno di una serra, l’indice UV e molto altro. L’idea è quella di mostrare, in diretta costruendo il tutto durante il corso, come realizzare un cruscotto, all’interno di una pagina web, su cui visualizzare in tempo reale il grafico delle grandezze fisiche in analisi. Questa attività specifica sarà mostrata con diverse tecnologie e in modalità diverse anche in funzione dell’ordine di scuola.

In questo tutorial suddiviso in 3 puntate che verranno pubblicate nei prossimi tre giorni, mostrerò come usare ThingSpeak, software cloud che permette di aggregare, visualizzare e analizzare flussi di dati in tempo reale nel cloud di ThingSpeak provenienti da dispositivi IoT. ThingSpeak è un servizio di MathWorks nota azienda produttrice del software matematico MATLAB.

Il servizio online può essere utilizzata in modalità gratuita e a pagamento, la versione gratuita è limitata solamente nel numero di apparati hardware che possono essere connessi e nella quantità di dati che possono essere visualizzati nel tempo sulla piattaforma, ma per un uso didattico è più che sufficiente.

In questo tutorial ne mostrerò un primo utilizzo con micro:bit, approfondendo poi durante il corso ulteriori utilizzi e sperimentazioni, applicato anche ad altre schede elettroniche.

Le 3 lezioni sono così suddivise:

  1. Registrazione al servizio
  2. Creazione del programma nel MakeCode Editor
  3. Collegare il modulo ESP01 e visualizzare i dati dei sensori

Registrazione al servizio

La registrazione richiede pochi passaggi.

Connettersi al sito
Fate clic su “Get Started For Free”

Continua a leggere

BBC micro:bit – uso del sensore di umidità e temperatura DHT11

Il sensore digitale digitale DHT11 consente di rilevare la temperatura e l’umidità relativa dell’ambiente. E’ un sensore economico molto utilizzato a livello didattico, viene impiegato con diversi tipi di microcontrollori e su questo sito trovate informazioni di utilizzo con Arduino. In questo post vedremo un primo utilizzo del sensore con BBC micro:bit e durante le lezioni del mio prossimo corso sui laboratori Green, ne approfondiremo l’utilizzo implementando specifiche funzioni: lettura remota della temperatura e dell’umidità da parte di un secondo micro:bit, avviare una ventola di raffreddamento in funzione della temperatura e umidità presente in una serra e molto altro. Continua a leggere

Arduino: water sensor

Per le attività in programma per il corso sui laboratori green, spiegherò come controllare il livello d’acqua in una cisterna utilizzata per l’irrigazione. A livello prototipale svolgerò prima sperimentazioni su singola pianta utilizzando il “water sensor” che potete acquistare per pochi centesimi online. In una fase successiva impiegherò dei sensori di livello che vengono comunemente impiegati in cisterne e controlleremo il riempimento e lo svuotamento della cisterna.

Il “water sensor” misura il livello di conduttività elettrica del liquido, conduttività che sarà funzione della quantità di superficie del sensore immerso.
Nell’acqua ed in generale nei liquidi, il passaggio di corrente è dovuto alla presenza di sali, infatti l’acqua pura non risulta conduttiva.
Le piste parallele di rame presenti sul sensore sono connesse al potenziale positivo e al GND, quando il sensore viene immerso nel liquido viene misurata una differenza di potenziale tra i due poli, d.d.p. che dipenderà dalla quantità di superficie immersa, pertanto al variare della quantità d’acqua varierà il valore di resistenza tra i due potenziali.

Sottolineo che il sensore non è preciso e richiede una taratura iniziale che dipende prevalentemente dall’acqua, inoltre sensori diversi potrebbero fornirvi misure diverse.

Il segnale di uscita del sensore (pin S) verrà inviato su un pin analogico di Arduino e da esso convertito in un valore numerico che oscillerà tra ~ 0 e ~500, pertanto se il sensore non è immerso il valore misurato sarà di circa 0, mentre se sarà totalmente immerso raggiungerà il valore massimo rilevato.

Sul sensore sono presenti 10 piste di rame parallele, connesse in modo alternato, in modo che vi siano 5 piste connesse ad un potenziale alto e 5 piste connesse a GND. E’ presente inoltre un LED che indica quando il sensore viene alimentato.

  • S (Signal): uscita analogica da connettere ad un ingresso analogico di Arduino
  • +Vcc: potenziale positivo dell’alimentazione. Si consiglia di alimentare il sensore con una tensione compresa tra 3,3 V e 5V. Si ricorda che l’uscita analogica del sensore varierà in funzione della tensione di alimentazione del sensore.
  • – : da connettere al GND

Attenzione che il sensore non è progettato per essere completamente immerso, fate in modo che solo le tracce ramate parallele esposte sul PCB vengano a contatto con l’acqua.

Continua a leggere

Raspberry Pi Pico – Blink di un LED esterno

Nel primo post pubblicato sull’uso di Raspberry Pi Pico, avevo concluso il tutorial mostrando come controllare l’accensione del LED sulla scheda, quello connesso alla pin 25. Il passo successivo, molto semplice, in quanto riprende i medesimi passaggi dell’ultimo esempio mostrato, sarà quello di controllare un LED esterno alla scheda.
Ovviamente sappiamo già che in serie al LED dovrà essere inserita una resistenza per controllare la corrente che fluisce nel LED (per approfondimenti consultare il link). Poiché in questo caso la tensione di alimentazione del LED sarà quella disponibile sulla scheda, 3,3 Volt, considerando un LED rosso, con una corrente di funzionamento di 15 mA ed una tensione di soglia di 1,8V, usando la legge do Ohm il valore della resistenza serie dovrà essere di 100 Ohm. Nel caso non abbiate questo valore potrete utilizzare anche i classici valori, 220 Ohm o 330 Ohm, che trovate in un qualsiasi kit di sperimentazione, valori più grandi di resistenza ovviamente faranno emettere a parità di tensione, una luminosità inferiore.

Colleghiamo un reoforo del resistore al pin digitale 15 (GPIO 15), il restante reoforo all’anodo del LED ed il catodo del LED al GND. Di seguito le immagini del Pin Out del PiPico e schema di collegamento:

Prendendo a riferimento il programma in MicroPython del precedente tutorial, andiamo a variare alcune linee di codice. Bisognerà modificare solamente il numero del pin digitale utilizzato:

# Prof. Maffucci Michele
# Blink LED connesso al pin 15
# 10.09.2021

# libreria che permette di utilizzare MicroPython con il RaspyMicro
import machine

# per la gestione del tempo
import utime

#pin 15 dichiarato come OUTPUT
ledEsterno = machine.Pin(15, machine.Pin.OUT)

# loop infinito, while sempre vero, che scrive, ad intervalli di 1 secondo
# sul pin 15 il valore 1 e 0
while True:
    ledEsterno.value(1)    # imposta il livello logico 1 sul pin 15
    utime.sleep(1)         # lo stato logico 1 viene mantenuto per 1 secondo
    ledEsterno.value(0)    # imposta il livello logico 0 sul pin 15
    utime.sleep(1)         # lo stato logico 0 viene mantenuto per 1 secondo

Buon coding a tutti 🙂