Archivi tag: MicroPython

Corso IoT con ESP32 – corso base – lezioni operative per docenti

10 lezioni pratiche per partire da zero e arrivare al controllo di dispositivi reali

Quando si parla di IoT a scuola si rischia spesso di cadere in due estremi: da una parte attività troppo teoriche, che restano astratte e poco coinvolgenti; dall’altra una successione di mini-progetti interessanti ma scollegati tra loro, che non aiutano davvero gli studenti a costruire competenze solide.

Per questo ho deciso di raccogliere in questa pagina un percorso completo in 10 lezioni dedicato all’uso della ESP32 con MicroPython, pensato in modo particolare per docenti e per chi parte con competenze iniziali ancora fragili.

L’idea di fondo è molto semplice: costruire un corso che sia graduale, pratico e coerente, in cui ogni attività prepari la successiva. Si parte dall’ambiente di sviluppo e dai primi GPIO, si passa attraverso sensori, ADC, PWM, Wi-Fi, pagine web locali e Bluetooth BLE, per arrivare infine al controllo della velocità di un motore DC da browser.

In realtà durante la scrittura di tutte queste lezioni mi sono accorto che il corso stava diventando un libro molto pratico, pertanto se desiderate leggere in anteprima i capitoli del libro potete farlo

iscrivendovi all’area Premium del mio sito
(in abbonamento mensile o annuale)

L’iscrizione permetterà di leggere ed utilizzare la documentazione che utilizzo per i miei corsi in presenza e online destinati a docenti, studenti e appassionati di elettronica e tecnologie. Per sapere come è struttura la guida docente, le schede operative di laboratorio, valore didattico dell’opera vi invito a leggere il post di presentazione su Scholaria.

La pubblicazione avverrà periodicamente tendenzialmente un capitolo ogni 10 giorni circa.

Ho scelto di usare ESP32 perché è una piattaforma estremamente versatile e, soprattutto in un contesto scolastico, permette di lavorare con:

  • ingressi e uscite digitali;
  • letture analogiche;
  • PWM;
  • Wi-Fi;
  • Bluetooth BLE;

tutto con una sola scheda e senza cambiare continuamente ambiente di lavoro.

Ho scelto invece MicroPython perché consente di introdurre la programmazione hardware con una sintassi più accessibile, pur mantenendo un buon livello di rigore tecnico.

In questo post trovate lo sviluppo dell’intero percorso in una forma ordinata, così da poterlo usare come indice generale del corso, come pagina di riferimento di studio oppure come hub centrale del blog a cui collegare le singole lezioni.

A chi è rivolto il corso

Questo percorso è pensato soprattutto per:

  • insegnanti della secondaria di primo e secondo grado;
  • classi che stanno iniziando a lavorare con microcontrollori e IoT;
  • studenti con competenze iniziali basse o intermedie;
  • docenti che desiderano una sequenza di attività già organizzata in modo progressivo.

Ogni lezione è stata costruita con una attenzione particolare a quattro aspetti:

  • linguaggio semplice ma corretto;
  • forte connessione tra codice e cablaggio;
  • verifica immediata in laboratorio;
  • crescita graduale della complessità.

Come è costruito il percorso

Il corso segue una logica molto precisa.

All’inizio si lavora sui fondamentali:

  • ambiente di sviluppo;
  • primo programma;
  • GPIO;
  • LED;
  • lettura di segnali analogici.

Successivamente si passa ai sensori e alla logica di controllo:

  • potenziometro;
  • LDR;
  • DHT11;
  • soglia di intervento;
  • PWM.

Dopo questa base, il percorso entra nella parte più chiaramente “IoT”:

  • ESP32 come Access Point;
  • pagina web locale;
  • dashboard;
  • controllo e monitoraggio via browser;
  • collegamento BLE con smartphone.

Infine si chiude con un’attività più completa e più vicina a un sistema reale:

  • controllo della velocità di un motore DC con driver L298N e slider web.

In questo modo ogni nuova lezione aggiunge un solo gradino tecnico alla volta, evitando di sovraccaricare gli studenti con troppe novità contemporaneamente.

Indice completo delle 10 lezioni

Lezione 1 – Thonny, ESP32 e MicroPython: primi passi nell’ambiente di sviluppo
In questa prima lezione si impara a installare e usare Thonny, a collegare correttamente la ESP32 al computer, a selezionare l’interprete MicroPython e a distinguere tra shell, script e file salvati sulla scheda. È la base necessaria per tutto il corso.

  • Argomenti principali: Thonny, interpreter, REPL, main.py, primi test.
  • Obiettivo: rendere gli studenti autonomi nei passaggi iniziali di lavoro con ESP32 e MicroPython.

Lezione 2 – GPIO digitali con ESP32: accendere e far lampeggiare un LED
La prima vera attività hardware del percorso. Si introduce il concetto di GPIO come uscita digitale e si realizza il classico circuito con LED e resistenza, pilotato da MicroPython.

  • Argomenti principali: Pin.OUT, on(), off(), value(), tempi di attesa.
  • Obiettivo: capire come un programma può produrre un effetto fisico reale.

Lezione 3 – Potenziometro, ADC e PWM: regolare la luminosità di un LED
Qui gli studenti scoprono come leggere una grandezza analogica con l’ADC e come usare il PWM per regolare la luminosità di un LED in modo continuo.

  • Argomenti principali: potenziometro, ADC, read_u16(), PWM, duty_u16().
  • Obiettivo: collegare ingresso analogico e uscita PWM in un primo sistema di controllo continuo.

Lezione 4 – LDR e soglia di intervento: luce notturna automatica con ESP32
In questa attività la ESP32 legge il livello di luce ambientale tramite una LDR e accende automaticamente un LED quando si supera una soglia di buio.

  • Argomenti principali: partitore resistivo, LDR, soglia, if/else, automazione.
  • Obiettivo: introdurre la logica decisionale basata su misura e confronto.

Lezione 5 – DHT11 con ESP32: misurare temperatura e umidità in locale
Si introduce il sensore DHT11, leggendo temperatura e umidità direttamente nella shell di Thonny, senza ancora coinvolgere la rete.

  • Argomenti principali: modulo dht, measure(), temperature(), humidity().
  • Obiettivo: comprendere il funzionamento di un sensore ambientale digitale e visualizzarne correttamente i dati.

Lezione 6 – ESP32 come Access Point: creare una rete Wi-Fi locale senza Internet
La ESP32 viene trasformata in un piccolo Access Point Wi-Fi, capace di creare una rete locale a cui collegare smartphone o computer, senza bisogno di router o connessione Internet.

  • Argomenti principali: network.WLAN, AP_IF, active(True), ifconfig().
  • Obiettivo: preparare la base per tutte le lezioni successive con interfaccia web locale.

Lezione 7 – DHT11 su pagina web locale: primo web server Wi-Fi con ESP32
Qui si uniscono sensore e rete: la ESP32 legge temperatura e umidità dal DHT11 e le pubblica in una pagina web locale accessibile dal browser.

  • Argomenti principali: DHT11, Access Point, socket, HTML, server HTTP.
  • Obiettivo: costruire un primo vero progetto IoT locale con sensore e pagina web.

Lezione 8 – Pulsanti reali e dashboard: contatore con interfaccia web
Tre pulsanti fisici collegati alla ESP32 permettono di aumentare, diminuire o azzerare un contatore, mentre una dashboard web mostra il valore aggiornato quasi in tempo reale.

  • Argomenti principali: Pin.IN, Pin.PULL_UP, contatore, dashboard, aggiornamento dinamico.
  • Obiettivo: collegare eventi fisici reali a una interfaccia web di monitoraggio.

Lezione 9 – Controllo wireless via Bluetooth BLE con ESP32 e MicroPython
In questa lezione si cambia tecnologia e si introduce il Bluetooth Low Energy. La ESP32 si comporta come periferica BLE e riceve comandi dallo smartphone per pilotare un LED.

  • Argomenti principali: BLE, peripheral, central, advertising, servizi e caratteristiche GATT.
  • Obiettivo: mostrare una seconda modalità di comunicazione wireless, diversa dal Wi-Fi ma molto utile nei dispositivi IoT.

Lezione 10 – Controllo velocità motore DC da browser con ESP32, PWM e driver L298N
La lezione conclusiva del percorso: il browser controlla la velocità di un motore DC tramite slider web, mentre la ESP32 genera il PWM e il driver L298N gestisce la parte di potenza.

  • Argomenti principali: PWM, motore DC, L298N, slider HTML, controllo velocità.
  • Obiettivo: integrare interfaccia web, controllo PWM e attuazione reale in un progetto finale completo.

Materiali necessari per il corso

Di seguito trovi una lista generale dei materiali utili per seguire l’intero percorso.

Hardware di base

  • 1 scheda ESP32
  • cavo USB dati
  • breadboard
  • jumper maschio-maschio

Componenti elettronici

  • LED
  • resistenze da 220 Ω
  • potenziometro da 10 kΩ
  • LDR
  • resistenza da 10 kΩ per partitore
  • sensore DHT11
  • 3 pulsanti
  • motore DC
  • modulo L298N

Dispositivi esterni

  • computer con Thonny
  • smartphone, tablet o PC con Wi-Fi
  • smartphone con app BLE generica
  • alimentazione esterna per il motore DC

Per le prime lezioni bastano davvero pochi componenti:
ESP32, breadboard, LED, resistenze, potenziometro e LDR.
I moduli più “strutturati”, come DHT11, BLE e L298N, entrano solo nella parte centrale e finale del corso.

Come consiglio di usare queste lezioni

Questo percorso può essere usato in diversi modi.

Come corso lineare
È la modalità che consiglio di più. Le lezioni sono state pensate per essere affrontate in ordine, perché ogni tappa prepara la successiva.

Come raccolta di attività laboratoriali
Un docente può anche scegliere singole lezioni da usare in momenti diversi dell’anno, ma conviene comunque tenere presente la progressione logica del percorso.

Come riferimento per studio individuale
Uno studente motivato può usare il corso anche da solo, purché proceda con calma e senza saltare i passaggi fondamentali.

Un possibile uso in classe

Una scansione semplice potrebbe essere questa:

  • lezioni 1–2: familiarizzazione con ambiente e GPIO
  • lezioni 3–5: sensori, ADC, PWM e acquisizione dati
  • lezioni 6–8: rete locale e dashboard web
  • lezione 9: controllo BLE
  • lezione 10: progetto finale con motore

Questa organizzazione consente di trasformare il percorso anche in un piccolo modulo laboratoriale di più settimane.

Quando si costruisce un corso IoT per studenti dell’ITIS, la vera difficoltà non è trovare idee interessanti: quelle non mancano. La difficoltà vera è creare un percorso che abbia una progressione chiara, che non spaventi chi parte da zero e che mantenga sempre un forte legame tra teoria e pratica.

Questo corso nasce proprio con questa intenzione: portare gli studenti a capire che dietro la parola “IoT” non ci sono formule magiche, ma una serie di competenze concrete che si costruiscono passo dopo passo:

  • saper programmare una scheda;
  • saper leggere un sensore;
  • saper pilotare un’uscita;
  • saper comunicare in rete;
  • saper controllare un dispositivo reale.

Ed è in questa continuità che, secondo me, sta il vero valore di un buon percorso laboratoriale.

Sviluppi possibili

Chi conclude questo percorso può poi proseguire, ad esempio, verso:

  • logging dati;
  • dashboard più evolute;
  • controllo di relè;
  • servo e motori con inversione di direzione;
  • sensori ambientali più accurati;
  • integrazione con piattaforme cloud;
  • piccoli progetti di robotica o automazione.

Se siete interessati a sostenere questo corso/libro vi invito ad iscrivervi all’area Premium.

Buon Making a tutti 🙂

Raspberry Pi Pico – come cancellare un file dalla memoria del microcontrollore

Come avrete notato durante le prime sperimentazioni con il PiPico, possiamo depositare all’interno della memoria del microcontrollore più programmi in MicroPython e decidere quali di questi mandare in esecuzione. Nel caso in cui si desideri rendere l’avvio automatico e continuo uno programma non appena il PiPico  viene connesso ad una fonte di alimentazione, è sufficiente rinominate il file in main.py.
Può accadere quindi che le nostre sperimentazioni ci portino a memorizzare più programmi all’interno della memoria del PiPico pertanto si potrebbe avere la necessità di dover cancellare o rinominare alcuni di questi.
In questo breve tutorial vedremo come cancellare un file usando i comandi che inseriremo nella shell di Thonny.

Come aprire un programma memorizzato nel PiPico

Per poter consultare la lista di file memorizzati all’interno del microcontrollore con l’IDE Thonny, fate clic su “Apri” (seconda icona)

Si aprirà un pannello che richiede la selezione dell’unità da aprire: sul computer o sul PiPico, selezionare il Raspberry Pi Pico

Ciò aprirà la finestra di seguito indicata da cui poter visionare la lista dei file e con cui potrete aprire uno dei file per poi modificarlo o eseguirlo.

Cancellare un file memorizzato nel PiPico

Posizionate il cursore nella prima riga della Shell e digitate il comando. Inseriremo una serie di comandi terminali in Python:

import os

in Python “import os” consente di importare i moduli necessari per interfacciarsi con il sistema operativo sottostante su cui Python è in esecuzione ed eseguire una serie di operazioni sui file, come ad esempio la cancellazione, lo spostamento dei file, rinominare file, creare directory e molto altro. Poichè con MicroPython non si ha nessun sistema operativo il modulo os fornisce tutte quelle funzioni relative alla gestione del semplice del file system e le informazioni relativo al sistema.

Continua a leggere

Dove prelevare tutte le versione del Firmware per il Raspberry Pi Pico e come installarlo

L’installazione del Firmware sul Raspberry Pi Pico è descritta nel primo post pubblicato, rispetto alla prima pubblicazione del mio post, le pagine della documentazione di Raspberry Pi Fundation sono state modificate, il clic sul file INDEX.HTM all’interno del vostro PiPico rimandava direttamente alla pagina di download, ora invece rimanda alla home page della documentazione. Per rendere più agevole il download, quindi, così come segnalato sul mio profilo Facebook, segnalo il link diretto alla pagina e alla sezione specifica di download.

Successivamente clic su: Download the MicroPython UF2 file.

Ciò che scaricherete è l’ultima versione (stable), ma nel caso in cui abbiate necessità di avere l’ultima versione, oppure desiderate sperimentare l’uso dell’ultima versione beta o ancora avere tutte le versioni passate del firmware, il sito di riferimento è https://micropython.org

recatevi nella sezione: Download

Selezionate: Raspberry Pi RP2040 microcontroller boards

Nella pagina troverete tutte le versioni, un clic sul link corrispondente per effettuare il download

L’installazione può avvenire tramite REPL, oppure premendo il pulsante sulla scheda BOOTSEL e procedere come descritto nel mio post.

L’installazione del Firmware può avvenire in una modalità ancora più comoda utilizzando anche l’editor Thonny che abbiamo iniziato a conoscere.

Connettete il PiPico al computer mantenendo premuto il pulsante BOOTSEL, dopo non più di 3 secondi rilasciate il pulsante, comparirà l’unità USB sul vostro computer. Avviate Thonny comparirà la seguente finestra:

Clic sul “Installa”

Al termine comparirà il messaggio “Done!”

Se fate clic su “Done!” si aprirà la finestra di stato che vi dirà su quale porta USB è connesso il vostro PiPico:

Un clic su “Chiudi” per iniziare a programmare.

Buon Making a tutti 🙂

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 🙂

Raspberry Pi Pico – conosciamo la scheda ed installiamo MicroPython

Raspberry Pi Pico è una nuovissima scheda di prototipazione elettronica estremamente potente ed economica che monta il microcontrollore RP2040 costituito da un Cortex-M0+. La scheda è prodotta da Raspberry Pi ed ha un costo estremamente contenuto, circa € 4,5.
La scheda ha una dimensione simile a quella di un Arduino Nano, però rispetto alle  schede della famiglia Arduino che montano microcontrollori ATmega, possiede una potenza di calcolo e di memoria superiore. Inoltre è possibile programmarla in MicroPython, C e C++.

La scheda è stata messa in vendita qualche settimana fa e non appena commercializzata ho deciso di acquistarne 10 schede, ulteriori 10 schede mi arriveranno tra qualche giorno ciò mi permetterà di gestire un’intera classe di studenti e le prime sperimentazioni le effettuerò con i miei studenti di  5′ Elettronica e Automazione a cui assegnerò il compito di sviluppare le esercitazioni che poi utilizzerò nel prossimo anno scolastico con i miei studenti di 3′ del percorso elettronica e automazione.
Come prima attività in DaD ho chiesto ai miei allievi di realizzare in autonomia un documento di presentazione del prodotto e una tabella di confronto con le schede Arduino che montano microcontrollori ATmega tutto ciò mi farà risparmiare tempo e ci permetterà di concentraci sull’attività pratica in laboratorio.

Con questo post ne voglio presentare  le caratteristiche tecniche e la modalità di installazione del firmware ed un esempio di programmazione in MicroPython. Sul sito di riferimento potete trovare tutta la documentazione necessaria per utilizzare la scheda.

Pico viene venduto senza piedini di collegamento, quindi dovrete acquistarli e procedere poi voi a sedarli sulla scheda, quindi armatevi di tanta pazienza ed utilizzando una breadboard per fissare i pin, procedete con la saldatura.

Per maggiori informazioni seguire il link per la pagina di riferimento della scheda.

Caratteristiche tecniche

L’RP2040 è il primo microcontrollore di Raspberry Pi. I due core del processore Cortex-M0+ del  Pico funzionano a 48 MHz, anche se questo può essere modificato nel software fino a 133 MHz.

La RAM del microcontrollore è incorporata nello stesso chip dei core del processore, è costituita da sei banchi di memoria  per un totale di 264kB (264.000 byte) di RAM statica (SRAM). La RAM viene utilizzata per memorizzare i vostri programmi e i dati di cui hanno bisogno i programmi.

L’RP2040 include 30 pin GPIO (general-purpose input / output) multifunzione, 26 dei quali sono collegati a connettori pin fisici sul vostro Pico e uno dei quali è collegato a un LED integrato sulla scheda. Tre di questi pin GPIO sono collegati a un convertitore analogico-digitale (ADC), mentre un altro canale ADC è collegato a un sensore di temperatura su chip.

L’RP2040 include due UART (ricevitore-trasmettitore asincrono universale), due SPI (Serial Periferal Interface) e due bus I2C (Inter-Integrated Circuit) per i collegamenti a dispositivi hardware esterni come sensori, display, convertitori digitale-analogico (DAC) e molto altro. Il microcontrollore include anche un ingresso/uscita programmabile (PIO), che consente al programmatore di definire nuove funzioni hardware e bus nel software.

Il  Pico include un connettore micro USB, che permette un collegamento seriale UART-over-USB al microcontrollore RP2040 per la programmazione e l’interazione e che alimenta il chip. Tenendo premuto il pulsante BOOTSEL quando si collega il cavo, il microcontrollore passerà alla modalità “Dispositivo di archiviazione di massa USB”, consentendo di caricare il nuovo firmware.

L’RP2040 include anche un on-chip clock e timer, che permette di tenere traccia in modo preciso dell’ora e della data. Il clock può memorizzare l’anno, il mese, il giorno, il giorno della settimana, l’ora, i minuti e i secondi e tiene automaticamente traccia del tempo trascorso finché viene fornita l’alimentazione alla scheda. RP2040 include il single-wire debug (SWD)  un debug hardware a tre fili nella parte inferiore del tuo Pico.

Pinout del Raspberry Pi Pico

 

 

 

Caratteristiche tecniche

  • CPU: 32-bit dual-core ARM Cortex-M0+ at 48MHz, configurabile fino a 133MHz
  • RAM: SRAM da 264kB disposi in 6 banchi indipendenti configurabili
  • Memoria: flash RAM esterna da 2MB
  • GPIO: 26 pins
  • ADC: 3 × 12-bit ADC pin
  • PWM: 16
  • Clock: Orologio e timer accurati su chip con anno, mese, giorno, giorno della settimana, ora, secondi e calcolo automatico dell’anno bisestile
  • Sensori: Sensore di temperatura On-chip connesso connesso ad un ADC 12-bit
  • LED: LED su scheda indirizzabile dall’utente
  • Connessioni bus: 2 × UART, 2 × SPI, 2 × I2C, Programmable Input/Output (PIO)
  • Hardware Debug: Single-Wire Debug (SWD)
  • Mount Options: pin passanti
  • Alimentazione: 5 V via micro USB, 3.3 V via 3V3 pin, o 2–5V via VSYS pin

Installare MicroPython

Dopo che avete effettuato le saldature dei pin abbiamo bisogno di installare MicroPython sulla scheda. Colleghiamo un cavo micro USB alla porta micro USB del vostro Pico.
Per installare MicroPython sul vostro Pico dovrete scaricarlo da Internet. Questa operazione è da fare una sola volta, dopo averlo installato rimarrà sul vostro Pico a meno che voi non decidiate di sostituirlo con qualcos’altro.

Mantenete premuto “BOOTSEL” nella parte superiore del tuo Pico, vicino al connettore USB, quindi, tenendolo ancora premuto, collega l’altra estremità del cavo micro USB a una delle porte USB del vostro computer Raspberry Pi o altro computer. Contate tre secondi, dopo di che rilasciate il pulsante “BOOTSEL”. Dovreste vedere il vostro  Pico apparire come un’unità rimovibile, come se avessimo collegato un’unità flash USB o un disco rigido esterno. Sul vostro computer verrà aperta una finestra per aprire l’unità (la scheda) che avete connesso.

Nella finestra del vostro File Manager, vedrete due file sul  Pico: INDEX.HTM e INFO_UF2.TXT. Il file  INFO_UF2.TXT contiene informazioni sul  Pico tra cui la versione del bootloader attualmente in esecuzione sul Pico.

Il file, INDEX.HTM, contiene tutte le informazioni utili per usare il Pico, fate doppio clic, sarete reindirizzati sulla pagina di benvenuto da cui reperire tutte le informazioni che servono per iniziare. Fate clic sulle schede scorrete la pagina per accedere alle guide, ai progetti e alla raccolta di libri: una libreria di documentazione tecnica dettagliata che copre tutto, dal funzionamento interno del microcontrollore RP2040 il cuore della vostra scheda, alla programmazione in Python e C / C ++.

Leggete tutte le informazioni sulla pagina, andate in “Getting started with MicroPython” e fate clic sul pulsante “Scarica file UF2” per scaricare il firmware MicroPython, che è un piccolo file che contiene MicroPython per il vostro Pico. Il download dal sito di riferimento richiede pochissimi secondi.

Una volta scaricato, andate nella vostra cartella Download cercate il file “micropython” seguito da una data e dall’estensione “uf2”. Fare clic e tenere premuto il pulsante del mouse sul file UF2, quindi trascinatelo sull’unità di archiviazione rimovibile di Pico (quindi all’interno del Pico). Posizionalo sulla finestra e rilascia il pulsante del mouse per rilasciare il file sul vostro Pico.

Dopo qualche secondo il vostro Pico scomparirà dal vostro File Manager e potreste anche vedere un messaggio del vostro sistema operativo che vi dice che un’unità è stata rimossa senza essere stata espulsa: non preoccupatevi, non è successo nulla di grave, ciò accade perchè quando avete trascinato il file del firmware MicroPython sul Pico, avete detto di eseguire il flashing del firmware nella  memoria interna di Pico. Per fare il flashing il Pico esce dalla modalità speciale in cui lo avete  inserito con il pulsante “BOOTSEL” (modalità periferica USB), vedrete lampeggiare il LED sulla scheda, ciò indica che Pico ora esegue MicroPython.

Bene! Ora siete pronti per iniziare a programmare in MicroPython su Raspberry Pi Pico! 🙂

Installiamo l’IDE Thonny per programmare in MicroPython.

Scarichiamo ora l’IDE di programmazione Thonny, vedremo in una lezione successiva come utilizzare Visual Studio Code.

Andate sul sito https://thonny.org e scaricate la versione per il vostro sistema operativo

Doppio click sull’applicazione, si aprirà la seguente finestra:

Configuriamo ora l’IDE per poter programmare il Pico, dal menù > Strumenti > Opzioni… selezionare “Interprete”

Scegliere MicroPython (Raspberry Pi Pico)

Determiniamo ora la porta seriale di connessione a cui abbiamo collegato il Pico, possiamo effettuare questa operazione oppure manualmente selezionate quella identificata da una lunga serie di 0 che termina con 1

Dal menù Strumenti > Gestione plug-in… inserire nel campo di ricerca “machine”

Si avvierà l’installazione, al termine chiudete la finestra.

Vediamo ora come effettuare il blink del LED sulla scheda.
Scrivimi all’interno dell’area di programmazione il seguente codice, fate attenzione all’indentazione, come sapete in Python è importante.

import machine
import utime

led_onboard = machine.Pin(25, machine.Pin.OUT)

while True:
    led_onboard.value(1)
    utime.sleep(1)
    led_onboard.value(0)
    utime.sleep(1)

La prima linea di codice:

import machine

Questa prima linea di codice è importantissima in quanto vi consentirà di lavorare con MicroPython sul Pico, importerà la libreria “machine” che contiene tutte le istruzioni necessarie che permettono per fare comunicare MicroPython con Pico ed altri dispositivi compatibili con MicroPython.
Senza questa linea di codice non sarete in grado di controllare nessuno dei pin GPIO di Pico e non potrete controllare il LED sulla scheda.

La seconda linea di codice

import utime

Importa la libreria di MicroPython: “utime”. Questa libreria gestisce tutto ciò che ha a che fare con il tempo, dalla misurazione all’inserimento di ritardi.

led_onboard = machine.Pin(25, machine.Pin.OUT)

Questa riga definisce un oggetto chiamato led_onboard, che è il nome che assegniamo noi per fare riferimento al LED sulla scheda, possiamo tecnicamente utilizzare qualsiasi nome, possibilmente meglio scegliere nomi che abbiamo attinenza con la funzionalità dell’oggetto in modo da rendere più semplice la lettura del programma.
Come si può notare la funzione machine.Pin() è costituita da due parametri: il pin a cui è connesso il LED, il 25, seguito dalla modalità con cui viene usato il pin, OUT. Per chi ha familiarità con la programmazione con Arduino noterà che l’azione è la medesima, cambia solo la sintassi.

Definiamo un loop infinito in cui andremo ad inserire le istruzioni che vogliamo vengano ripetute per sempre.

while True:

Analizziamo le istruzioni nel corpo del while

led_onboard.value(1)

Questa linea di codice imposta il pin ad HIGH però da sola non permetterà ancora l’accensione del LED, è necessario indicare per quanto tempo il LED starà ad HIGH con la riga di codice che segue manteniamo ad 1 (HIGH) il Led per 1 secondo

utime.sleep(1)

Allo stesso modo impostiamo a 0 (LOW) il il pin a cui è connesso il LED

led_onboard.value(0)

facciamo in modo che questo stato duri per 1 secondo:

utime.sleep(1)

Fare ora clic sull’icona play per eseguire lo script:

il LED sulla scheda inizierà a lampeggiare

Per fermare l’esecuzione dello script sulla scheda fare click su STOP

Nel caso in cui invece desiderate rendere l’esecuzione automatica non appena il Pico viene connesso ad una fonte di alimentazione, rinominate il file in main.py e salvatelo sulla scheda

Buon Coding a tutti 🙂