I migliori progetti Raspberry Pi Pico per creatori

Indice

Come appassionato di creazioni sempre alla ricerca di schede microcontroller potenti ma economiche, mi sono innamorato del Raspberry Pi Pico. Le sue dimensioni compatte, le prestazioni impressionanti e le versatili opzioni di programmazione lo rendono perfetto per un’ampia gamma di progetti. In questo post, condividerò alcuni dei miei progetti Pico preferiti che ne dimostrano le capacità, dalle semplici creazioni per principianti alle applicazioni più avanzate.

Progetto 1: LED lampeggiante con modelli personalizzati (adatto ai principianti)

Configurazione hardware

Per questo progetto, avrai bisogno di un Raspberry Pi Pico, una breadboard, un LED, una resistenza da 220 ohm e dei cavi jumper. Collega l’anodo del LED al pin GPIO 25 tramite la resistenza e il catodo al pin di massa sul Pico. Questa configurazione garantisce che il LED sia protetto da sovracorrente dalla resistenza e sia correttamente collegato al pin GPIO del Pico per il controllo.

Raspberry Pi Pico with LED and resistor on breadboard
Raspberry Pi Pico with LED and resistor on breadboard

Implementazione del codice

Utilizzando MicroPython, creeremo un programma per far lampeggiare il LED in diversi modelli. Innanzitutto, importa i moduli necessari:

				
					from machine import Pin, Timer
				
			

Quindi, inizializza il pin del LED:

				
					led = Pin(25, Pin.OUT)
				
			
Crea un oggetto timer per controllare gli intervalli di lampeggio. Il seguente snippet di codice imposta un timer che fa lampeggiare il LED ogni 500 millisecondi:
				
					tim = Timer()

def tick(timer):
    led.toggle()

tim.init(freq=2, mode=Timer.PERIODIC, callback=tick)
				
			

Test e personalizzazione

Una volta caricato il codice sul Pico (salvandolo come main.py e collegando il Pico), il LED dovrebbe iniziare a lampeggiare. Puoi personalizzare i modelli di lampeggio modificando il periodo del timer o creando funzioni più complesse per controllare i tempi di accensione e spegnimento del LED. Ad esempio, potresti creare una funzione che fa lampeggiare il LED in un modello di codice Morse o un modello che cambia in base a un input esterno. Questo progetto è un ottimo modo per familiarizzare con il controllo dei pin GPIO e MicroPython sul Pico.

Progetto 2: Sistema di monitoraggio della temperatura (intermedio)

Requisiti hardware

Raccogli un Raspberry Pi Pico, un sensore di temperatura DS18B20, una resistenza da 4,7k ohm, una breadboard e dei cavi jumper. Il DS18B20 utilizza un’interfaccia 1-Wire, quindi collega il suo VCC a 3,3V, GND a massa e il pin DATA al pin GPIO 18 sul Pico. La resistenza va tra il pin DATA e VCC per tirare su il segnale. Questa configurazione garantisce una comunicazione stabile tra il Pico e il sensore di temperatura, poiché il protocollo 1-Wire richiede una corretta resistenza di pull-up per una trasmissione dati affidabile.
DS18B20 sensor connected to Raspberry Pi Pico on breadboard
DS18B20 temperature sensor linked to Raspberry Pi Pico, displaying 1 - Wire interface components.

Sviluppo del codice

In MicroPython, utilizza le librerie onewire e ds18x20 per comunicare con il sensore. Innanzitutto, importa le librerie e inizializza il bus 1-Wire:
				
					import machine
import onewire
import ds18x20
import time
				
			
Quindi, configura il bus sul pin GPIO scelto:
				
					ds_pin = machine.Pin(18)
ds_sensor = ds18x20.DS18X20(onewire.OneWire(ds_pin))
				
			
Scansiona i dispositivi e crea un oggetto DS18B20:
				
					roms = ds_sensor.scan()
print('Found DS devices: ', roms)
				
			
Il seguente codice legge la temperatura e la stampa sulla console:
				
					while True:
    ds_sensor.convert_temp()
    time.sleep_ms(750)
    for rom in roms:
        print(ds_sensor.read_temp(rom))
    time.sleep(2)
				
			

Registrazione e visualizzazione dei dati

Per rendere il sistema più utile, puoi aggiungere un piccolo display OLED (collegato tramite I2C) per mostrare la temperatura in tempo reale o registrare i dati in un file su un computer connesso. Per il display OLED, puoi utilizzare la libreria ssd1306. Innanzitutto, importa i moduli necessari e inizializza l’interfaccia I2C:
				
					from machine import I2C, Pin
import ssd1306

i2c = I2C(0, sda=Pin(0), scl=Pin(1), freq=400000)
oled = ssd1306.SSD1306_I2C(128, 32, i2c)
				
			
Quindi, modifica il ciclo di lettura della temperatura per visualizzare la temperatura sull’OLED:
				
					while True:
    ds_sensor.convert_temp()
    time.sleep_ms(750)
    for rom in roms:
        temp = ds_sensor.read_temp(rom)
        print(temp)
        oled.fill(0)
        oled.text(f"Temp: {temp} C", 0, 0)
        oled.show()
    time.sleep(2)
				
			
Per la registrazione dei dati, puoi utilizzare il seguente codice per scrivere i dati di temperatura su un file nel file system interno del Pico:
				
					file = open('temperatures.txt', 'w')
while True:
    ds_sensor.convert_temp()
    time.sleep_ms(750)
    for rom in roms:
        temp = ds_sensor.read_temp(rom)
        print(temp)
        file.write(f"{time.time()},{temp}\n")
        file.flush()
    time.sleep(2)
				
			
Questo progetto dimostra come interfacciarsi con sensori esterni utilizzando i pin GPIO del Pico e mostra la sua capacità di gestire l’acquisizione di dati dai sensori.

Progetto 3: Uploader di dati IoT (Avanzato)

Configurazione hardware

Avrai bisogno di un Raspberry Pi Pico W (con Wi-Fi integrato), un sensore ambientale BME280 (misura temperatura, umidità e pressione), una breadboard e cavi jumper. Collega il BME280 al Pico utilizzando I2C: SDA a GPIO 8, SCL a GPIO 9, VCC a 3,3V e GND a massa. Questa configurazione di connessione consente al Pico di comunicare con il sensore BME280 tramite il bus I2C, consentendo il recupero dei dati ambientali.
Raspberry Pi Pico W with BME280 sensor and Wi Fi
Raspberry Pi Pico W with BME280 sensor and Wi - Fi

Codice e integrazione IoT

Utilizzando MicroPython sul Pico W, connettiti prima a una rete Wi-Fi. Imposta le credenziali Wi-Fi:
				
					import network

ssid = 'your_SSID'
password = 'your_PASSWORD'
				
			
Connettiti utilizzando l’interfaccia di rete:
				
					wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(ssid, password)

while not wlan.isconnected():
    pass

print('Connected to WiFi')
				
			
Quindi, inizializza il sensore BME280 utilizzando la classe bme280. Potrebbe essere necessario installare la libreria bme280 se non è già installata. Ecco come puoi inizializzarla:
				
					import bme280_i2c

i2c = machine.I2C(0, sda=machine.Pin(8), scl=machine.Pin(9))
bme = bme280_i2c.BME280_I2C(i2c)
				
			
Il codice legge i dati del sensore e li carica su una piattaforma IoT come Ubidots o Thingspeak utilizzando il metodo HTTP POST. Ecco una versione semplificata della funzione di caricamento dei dati:
				
					import urequests

def upload_data(temperature, humidity, pressure):
    url = 'https://industrial.api.ubidots.com/api/v1.6/devices/your_device_label'
    headers = {'X-Auth-Token': 'your_token', 'Content-Type': 'application/json'}
    data = '{"temperature": %s, "humidity": %s, "pressure": %s}' % (temperature, humidity, pressure)

    response = urequests.post(url, headers=headers, data=data)
    if response.status_code == 200:
        print('Data uploaded successfully')
    else:
        print('Error uploading data')

    response.close()


while True:
    temperature, pressure, humidity = bme.values
    temperature = float(temperature.strip(' C'))
    humidity = float(humidity.strip(' %'))
    pressure = float(pressure.strip(' hPa'))

    upload_data(temperature, humidity, pressure)
    time.sleep(60)
				
			

Test e scalabilità

Una volta che il codice è in esecuzione, il Pico W si connetterà a Internet, leggerà i dati dal BME280 e li caricherà sulla piattaforma IoT scelta. Puoi visualizzare i dati in tempo reale sulla dashboard della piattaforma. Questo progetto evidenzia le capacità wireless del Pico W e mostra come costruire soluzioni IoT scalabili con il Pico, aprendo la porta ad applicazioni per la casa intelligente, il monitoraggio ambientale e altro ancora. Se prevedi di scalare questo progetto, puoi aggiungere altri sensori, regolare gli intervalli di raccolta dati o addirittura utilizzare una piattaforma IoT più robusta con funzionalità di analisi avanzate.

Conclusione

Il Raspberry Pi Pico è uno strumento fantastico per i creatori di tutti i livelli di abilità, offrendo possibilità infinite per progetti creativi. Che tu stia appena iniziando con un semplice lampeggio di un LED o costruendo un sistema IoT avanzato, l’accessibilità economica, le prestazioni e la facilità d’uso del Pico lo rendono una scelta principale. Spero che questi progetti ti ispirino a iniziare a sperimentare con le tue build Pico. Condividi i tuoi progetti nei commenti qui sotto – mi piacerebbe vedere cosa crei!

Iscriviti

Unisciti alla nostra lista di iscritti per ricevere aggiornamenti mensili sul blog, notizie tecnologiche, casi di studio. Non invieremo mai spam e potrai annullare l’iscrizione in qualsiasi momento.

Informazioni sull'autore

Picture of Aidan Taylor
Aidan Taylor

I am Aidan Taylor and I have over 10 years of experience in the field of PCB Reverse Engineering, PCB design and IC Unlock.

Hai bisogno di aiuto?

Torna in alto

Instant Quote