Tutto sul Raspberry Pi Pico W

Oggi, 30 giugno 2022, alle ore 8.00 del mattino (ora del Regno Unito) Raspberry Pi ha rilasciato il Pico W.

Ecco tutto quello che sappiamo sul nuovo Raspberry Pi.

Contenuto nascondere

Questa nuova variante dell'amato Pico è dotata di funzionalità wireless grazie al chip wireless CYW43439.
Proprio come il Pico, al centro di ogni Pico W è RP2040, il primo chip di silicio di Raspberry Pi.

Per finire, Raspberry Pi ha rilasciato anche le varianti Pico H e Pico WH.

Nota: Se state cercando di prenotare un acceleratore USB Raspberry Pi 4 / 4 GB o Pi 4 / 8 GB o Coral e vi trovate nell'UE e in Svizzera, date un'occhiata alla nostra nuovissima funzione PiCockpit, l'acceleratore USB Coral. Strumento di prenotazione per Raspberry Pi - Uno per cliente, e si è in una coda giusta invece di dover correre quando Pis diventa disponibile. Se un numero sufficiente di persone ce lo chiede, potremmo anche rendere disponibile la Pico W per la prenotazione.

Varianti di Raspberry Pi Pico

VariantePrezzo Testate?Senza fili?Rilascio (M/YY)
Pico$4NoNo1/21
Pico H$5No6/22
Pico W$6No6/22
Pico WH$7Nel 2022

Pico H - $5 - Un Raspberry Pi Pico con header pre-saldati

Pico W - $6 - Un Raspberry Pi Pico con wireless

Pico WH - $7 - Un Raspberry Pi Pico con header wireless e pre-saldati.

I modelli Pico H e Pico W sono stati rilasciati il 30 giugno 2022, mentre i modelli Pico W e Pico H sono stati rilasciati il 30 giugno 2022. Pico WH uscirà nell'agosto 2022.

Il Pico WH ha una tempistica di rilascio aggiornata che è "più tardi quest'anno" nel 2022, secondo quanto riportato da Alasdair Allen di Raspberry Piche ha detto: "Nel corso di quest'anno probabilmente vedrete l'arrivo del Pico WH, e credo che possiate capire da soli di cosa si tratta".

Ecco un aggiornamento sul Pico WH di ottobre. Ho ricevuto un aggiornamento da Alasdair Allen che mi ha detto,

"È terribilmente vicino all'uscita [...] e dovrebbe uscire 'da un momento all'altro'. Volevamo essere sicuri di avere un volume decente prima di spingerlo fuori dalla porta, in modo che la gente potesse acquistarlo facilmente".

In questo post spiegheremo le somiglianze e le differenze tra il Pico W e il Pico. Naturalmente presenteremo anche alcuni interessanti progetti Pico W.

Il Pico H è solo un Pico tradizionale con header pre-saldati?

Raspberry Pi Pico vs Pico H. La differenza principale è rappresentata dagli header di debug SWD.

In sostanza, sì.

Ma c'è una leggera differenza in corrispondenza degli header di debug SWD e non c'è castellatura (fori a semicerchio sul bordo) sui pin.

Per utilizzare il connettore di debug SWD sul Pico H, è necessario utilizzare questi connettori: Connettori JST 'SH' a 3 pin con passo di 1,0 mm del tipo BM03B-SRSS-TB (ingresso dall'alto) o SM03B-SRSS-TB (ingresso laterale), o alternative compatibili.

Anche i pin di messa a terra sono nettamente quadrati sul Pico H, invece di essere un normale foro rotondo.

Dove posso acquistare un Pico W?

Raccogliete il vostro Pico W presso il nostro negozio.

Contenuto nascondere

Per una rapida panoramica, guardate questo video.

Hardware

Interfaccia wireless Pico W (CYW43439)

Il dispositivo Infineon CYW43439 supporta la LAN wireless IEEE 802.11 b/g/n e il Bluetooth 5.2. Al momento del lancio, sarà supportata solo la LAN wireless.

Rispetto al Raspberry Pi 4, il Pico W dispone solo di Wi-Fi 4 a banda singola a 2,4 GHz. Il Pi 4 dispone di Wi-Fi a doppia banda 2,4/5 GHz, ma per quanto riguarda il Bluetooth, il Pico W supera l'ammiraglia del Raspberry Pi, che ha solo il Bluetooth 5.0. Il CYW43439 supporta BLE e una singola antenna condivisa tra Wi-Fi e Bluetooth.

Nota Il Bluetooth non è ancora disponibile. Probabilmente verrà aggiunto in un futuro aggiornamento del firmware.

Se si osserva da vicino il Pico W, si noterà l'antenna PCB a forma di triangolo, simile a quella del Raspberry Pi 4. Il Raspberry Pi utilizza un'antenna a bordo concessa in licenza da ABRACON.

Antenna PCB
Antenna PCB

Ciò significa che non è necessaria un'antenna aggiuntiva. L'interfaccia wireless è collegata via SPI all'RP2040.

Secondo la scheda tecnica ufficiale, l'Infineon CYW43439 presenta anche le seguenti caratteristiche:

- WiFi 4 (802.11n), a banda singola (2,4 GHz)
- WPA3
- SoftAP (fino a 4 client)

La scheda tecnica ufficiale suggerisce inoltre che, per ottenere le migliori prestazioni wireless, è necessario posizionare l'antenna in uno spazio libero.

La presenza di metallo sotto o vicino all'antenna può ridurne le prestazioni in termini di guadagno e larghezza di banda.

Tuttavia, l'aggiunta di metallo collegato a terra ai lati dell'antenna può migliorare la larghezza di banda dell'antenna.

Il Pico W può essere trasformato in un punto di accesso WiFi?

Sì, perché Infineon CYW43439 supporta SoftAP (fino a 4 client).

Hardware di elaborazione

Ad eccezione dell'interfaccia wireless, l'hardware è quasi identico a quello del Pico originale.

  • Microcontrollore RP2040 con 2 MB di memoria flash
  • Interfacce wireless a banda singola da 2,4 GHz integrate (802.11n)
  • Porta Micro USB B per alimentazione e dati (e per riprogrammare la flash)
  • 40 pin 21mmx51mm stile 'DIP' PCB da 1mm di spessore con pin a foro passante da 0,1″ anche con castellature sui bordi
  • Espone 26 I/O multifunzione a 3,3 V per uso generale (GPIO)
  • 23 GPIO sono solo digitali, tre dei quali con capacità ADC.
  • Può essere montato a superficie come modulo
  • Porta di debug a filo seriale (SWD) ARM a 3 pin
  • Architettura di alimentazione semplice ma altamente flessibile
  • Varie opzioni per alimentare facilmente l'unità da micro USB, alimentatori esterni o batterie
  • Cortex M0+ dual-core fino a 133MHz
  • Il PLL su chip permette una frequenza del nucleo variabile
  • SRAM ad alte prestazioni multi-bank da 264kByte
  • Flash Quad-SPI esterna con eXecute In Place (XIP) e cache on-chip da 16kByte
  • Tessuto bus full-crossbar ad alte prestazioni
  • USB1.1 integrato (dispositivo o host)
  • 30 I/O multifunzione di uso generale (quattro possono essere utilizzati per l'ADC)
  • 1,8-3,3V Tensione di I/O
  • Convertitore analogico-digitale (ADC) a 12 bit da 500ksps
  • Varie periferiche digitali
  • 2 × UART, 2 × I2C, 2 × SPI, 16 × canali PWM
  • 1 × timer con 4 allarmi, 1 × orologio in tempo reale
  • 2 × blocchi I/O programmabili (PIO), 8 macchine a stati in totale

La piedinatura esterna è quasi identica a quella del Raspberry Pi Pico.

Piedinatura Pico W
Piedinatura Pico W

L'unica differenza è rappresentata dai pin di debug LED e SWD.

Il LED a bordo è controllato tramite il pin WL_GPIO0 del chip Infineon 43439. Sul Pico, il LED è stato collegato al pin 25 del GPIO.

Inoltre, i pin di debug SWD sono stati spostati verso il centro della scheda, per creare spazio per l'antenna del PCB. Si trovano tra l'RP2040 e il CYW43439 e l'ordine da sinistra a destra è ancora SWCLK, GND, SWDIO.

Software

Poiché il Pico W è basato sul chip RP2040, è possibile programmarlo proprio come il Pico. Ciò significa che si può programmare in C/C++ e MicroPython e che il codice scritto per il Pico (che non utilizza il LED a bordo) dovrebbe funzionare sul Pico W.

Raspberry Pi fornisce un Connessione a Internet con Raspberry Pi Pico W per C/C++ e MicroPython. Per facilitare l'inizio dell'utilizzo di Pico W, abbiamo messo insieme anche alcuni progetti di esempio.

C/C++ e il Pico-SDK

C'è un aggiornamento del Pico-SDK per abilitare le funzionalità wireless del Pico W. L'impostazione e l'utilizzo sono esattamente gli stessi del Pico. Guarda il nostro video per iniziare a lavorare con Pico W e C/C++.

Il Pico-SDK aggiornato contiene anche alcuni esempi per l'uso del wireless.

MicroPython e Thonny

Il modo più conveniente per utilizzare MicroPython con Pico W è quello di utilizzare l'IDE Thonny. Raspberry Pi ha rilasciato un nuova porta MicroPython per il Pico W.

Nota MicroPython è specifico per ogni scheda. Per questo motivo esistono versioni di MicroPython diverse (e incompatibili) per Pico e Pico W. Assicuratevi di utilizzare sempre la versione corretta per la vostra scheda.

Detto questo, il modo di programmare il Pico W è esattamente lo stesso, quindi se avete già usato il Pico con MicroPython, dovrebbe essere un gioco da ragazzi.

Pico H e Pico WH

Come già detto, Raspberry Pi ha rilasciato anche i modelli Pico H e Pico WH. La 'H' aggiunta al nome significa che è dotato di header presaldati. La Pico H è proprio come la nostra Pico Comfort, ma per i pin di debug SWD Raspberry Pi utilizza un header di debug JTAG orizzontale. La Pico WH probabilmente utilizzerà le stesse due file di header 1×20 e qualche header verticale per i pin di debug.

Come iniziare con il Raspberry Pi Pico W

Questa sezione mette in evidenza semplici trucchi e schemi che vi aiuteranno a iniziare a lavorare con il vostro Raspberry Pi Pico W.

Piedinatura di Raspberry Pi Pico W

Piedinatura di Raspberry Pi Pico W (immagine dalla scheda tecnica ufficiale)

Flashing di MicroPython UF2

Un'operazione di configurazione fondamentale da eseguire è quella di flashare MicroPython UF2 sul Pico W.

Primo, scaricare il file UF2 appositamente realizzato per il Raspberry Pi Pico W qui. In alternativa, è possibile trovare le build notturne qui.

Si noti che non è possibile utilizzare l'UF2 del Raspberry Pi Pico originale.

Tenere premuto il pulsante BOOTSEL, quindi collegare l'USB al Raspberry Pi Pico W.
Tenere premuto il pulsante BOOTSEL, quindi collegare l'USB al Raspberry Pi Pico W.

Per caricare il file UF2, è necessario tenere premuto il pulsante BOOTSEL e poi collegare l'USB.

Nel file explorer verrà visualizzato un nuovo volume chiamato RPI-RP2.

Copiare il file UF2 su quell'unità.

Si disconnetterà automaticamente al momento del caricamento.

Ecco fatto! Il vostro Raspberry Pi Pico W è ora pronto ad accettare il codice MicroPython.

Passiamo alla fase successiva...

Installazione dell'IDE Thonny

Thonny che gestisce il nostro progetto per principianti (vedi sotto)

Il modo più semplice per eseguire codice MicroPython e accedere a una shell su Raspberry Pi Pico W è utilizzare l'IDE Thonny.

Thonny viene fornito di default sul sistema operativo Raspberry Pi. Tuttavia, per comodità, si consiglia di installarlo sul computer principale.

Ecco come fare: andare su https://thonny.org/ e potrete trovare le ultime versioni in prima pagina.

Probabilmente sarete accolti da una finestra pop-up che vi chiederà di aggiornare. Andate avanti.

L'aggiornamento è andato bene quando ho eseguito Thonny sul mio Raspberry Pi OS, tuttavia, su Windows, c'era questo errore che diceva "SSL: CERTIFICATE_VERIFY_FAILED".

Puoi risolvere questo problema scaricando questo certificato (https://letsencrypt.org/certs/lets-encrypt-r3.der), quindi fare clic con il pulsante destro del mouse sul file scaricato e "Installa certificato" e non si verificherà più questo errore.

Assicuratevi di aver scelto "MicroPython (Raspberry Pi Pico)" nell'angolo in basso a destra.

Caricare i file sul Raspberry Pi Pico W

Caricate i file sul vostro Raspberry Pi Pico W facendo clic su Caricare su /

Ecco come caricare i file MicroPython su Raspberry Pi Pico W con Thonny.

Collegare il Raspberry Pi Pico W.

A Thonny, andare a Visualizza > File.

Si vedranno due sezioni. I file sul computer, in alto, e i file sul Raspberry Pi Pico W, in basso.

Fare clic con il tasto destro del mouse sui file che si desidera caricare e selezionare Caricare su /

Lampeggia il LED di bordo

Una differenza fondamentale tra il Raspberry Pi Pico originale e il Pico W è la modalità di lampeggiamento del LED integrato.

In passato, si controllava il LED utilizzando questo codice:

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

Tuttavia, su Raspberry Pi Pico W, si usa "LED" piuttosto che 25.

led = machine.Pin('LED', machine.Pin.OUT)

Quindi, per far lampeggiare il LED di bordo, si scriverà questo codice:

import machine
import time

led = machine.Pin('LED', machine.Pin.OUT)

while (True):
    led.on()
    time.sleep(.2)
    led.off()
    time.sleep(.2)
   

Salva questo come main.py e si avvia automaticamente quando il Pico W viene alimentato.

Connessione al WiFi

Di seguito viene riportato un codice semplificato che consente di

  • Connettersi al WiFi
  • Timeout di 10 secondi
  • Stampa "In attesa di connessione" durante la connessione alla rete definita nelle variabili ssid e pw
  • Accensione del LED di bordo in caso di connessione riuscita
import network
import time

wlan = network.WLAN(network.STA_IF)
wlan.active(True)

ssid = "insert-your-SSID-here"
pw = "insert-your-pw-here"

wlan.connect(ssid, pw)

def light_onboard_led():
    led = machine.Pin('LED', machine.Pin.OUT)
    led.on();

timeout = 10
while timeout > 0:
    if wlan.status() >= 3:
        light_onboard_led()
        break
    timeout -= 1
    print('Waiting for connection...')
    time.sleep(1)
   
wlan_status = wlan.status()

In un progetto reale, sarebbe preferibile creare un file separato (ad esempio, secrets.py) e memorizzare il ssid e pw lì, quindi importarlo nel file principale.

Inoltre, questo codice non offre un feedback e non gestisce gli errori. Se si riesce, si ottiene un LED acceso. In caso contrario, non si ottiene alcun feedback.

Ecco quindi un modo più elegante per connettersi a una rete.

Il codice che segue regola le differenze regionali nel rp2.paese("DE"). Cambiare il nome con quello del proprio Paese, ad esempio "GB", "US", ecc.

Quando ci si connette correttamente a una rete WiFi, si vedranno tre lampeggi del LED di bordo. Qualsiasi altro numero di lampeggi significa qualcos'altro, in base al seguente numero di lampeggi:

# Handle connection error
# Error meanings
# 0  Link Down
# 1  Link Join
# 2  Link NoIp
# 3  Link Up

main.py

import rp2
import network
import ubinascii
import machine
import urequests as requests
import time
from secrets import secrets
import socket

# Set country to avoid possible errors
rp2.country('DE')

wlan = network.WLAN(network.STA_IF)
wlan.active(True)
# If you need to disable powersaving mode
# wlan.config(pm = 0xa11140)

# See the MAC address in the wireless chip OTP
mac = ubinascii.hexlify(network.WLAN().config('mac'),':').decode()
print('mac = ' + mac)

# Other things to query
# print(wlan.config('channel'))
# print(wlan.config('essid'))
# print(wlan.config('txpower'))

# Load login data from different file for safety reasons
ssid = secrets['ssid']
pw = secrets['pw']

wlan.connect(ssid, pw)

# Wait for connection with 10 second timeout
timeout = 10
while timeout > 0:
    if wlan.status() < 0 or wlan.status() >= 3:
        break
    timeout -= 1
    print('Waiting for connection...')
    time.sleep(1)

# Define blinking function for onboard LED to indicate error codes    
def blink_onboard_led(num_blinks):
    led = machine.Pin('LED', machine.Pin.OUT)
    for i in range(num_blinks):
        led.on()
        time.sleep(.2)
        led.off()
        time.sleep(.2)
    
# Handle connection error
# Error meanings
# 0  Link Down
# 1  Link Join
# 2  Link NoIp
# 3  Link Up
# -1 Link Fail
# -2 Link NoNet
# -3 Link BadAuth

wlan_status = wlan.status()
blink_onboard_led(wlan_status)

if wlan_status != 3:
    raise RuntimeError('Wi-Fi connection failed')
else:
    print('Connected')
    status = wlan.ifconfig()
    print('ip = ' + status[0])

segreti.py

secrets = {
    'ssid': 'your-ssid',
    'pw': 'your-pw',
    }

Servire una pagina web su un IP locale

Per servire una pagina web utilizzando il Raspberry Pi Pico W, sono necessari tre file.

  • main.py - la parte principale del codice (che viene eseguito automaticamente su Pico W)
  • segreti.py - contenente ssid e pw
  • indice.html - contenente la pagina web che verrà servita

main.py si collegherà alla rete WiFi, definita in segreti.py. Quindi, aprirà un socket che ascolterà le connessioni al Raspberry Pi Pico W.

Se qualcuno si connette, viene consegnata la pagina web, denominata indice.html.

Ecco il codice per main.py e indice.html. segreti.py può essere tratto dall'esempio precedente.

main.py

import rp2
import network
import ubinascii
import machine
import urequests as requests
import time
from secrets import secrets
import socket

# Set country to avoid possible errors
rp2.country('DE')

wlan = network.WLAN(network.STA_IF)
wlan.active(True)

# See the MAC address in the wireless chip OTP
mac = ubinascii.hexlify(network.WLAN().config('mac'),':').decode()
print('mac = ' + mac)

# Load login data from different file for safety reasons
ssid = secrets['ssid']
pw = secrets['pw']

wlan.connect(ssid, pw)

# Wait for connection with 10 second timeout
timeout = 10
while timeout > 0:
    if wlan.status() < 0 or wlan.status() >= 3:
        break
    timeout -= 1
    print('Waiting for connection...')
    time.sleep(1)

# Define blinking function for onboard LED to indicate error codes    
def blink_onboard_led(num_blinks):
    led = machine.Pin('LED', machine.Pin.OUT)
    for i in range(num_blinks):
        led.on()
        time.sleep(.2)
        led.off()
        time.sleep(.2)

wlan_status = wlan.status()
blink_onboard_led(wlan_status)

if wlan_status != 3:
    raise RuntimeError('Wi-Fi connection failed')
else:
    print('Connected')
    status = wlan.ifconfig()
    print('ip = ' + status[0])
    
# Function to load in html page    
def get_html(html_name):
    with open(html_name, 'r') as file:
        html = file.read()
        
    return html

# HTTP server with socket
addr = socket.getaddrinfo('0.0.0.0', 80)[0][-1]

s = socket.socket()
s.bind(addr)
s.listen(1)

print('Listening on', addr)

# Listen for connections
while True:
    try:
        cl, addr = s.accept()
        print('Client connected from', addr)
        response = get_html('index.html')
        cl.send('HTTP/1.0 200 OK\r\nContent-type: text/html\r\n\r\n')
        cl.send(response)
        cl.close()
        
    except OSError as e:
        cl.close()
        print('Connection closed')

indice.html

<!DOCTYPE html>
<html>
    <head>
        <title>Pico W</title>
    </head>
    <body>
        <h1>Pico W</h1>
    
    </body>
</html>

Trasmissione di una rete WiFi (punto di accesso SoftAP)

Sto scrivendo questo articolo a metà luglio 2022, quindi le cose stanno cambiando rapidamente.

Se non avete ancora flashato il vostro Raspberry Pi Pico W con l'ultima versione di MicroPython UF2, fatelo subito perché gli ingegneri di Raspberry Pi lo stanno aggiornando proprio in questi giorni. Ottenete l'ultima versione qui.

L'ultima nightly build, rilasciata il 15 luglio, contiene diversi aggiornamenti. In primo luogo, consente di proteggere la rete WiFi con una password (prima non era possibile).

Ci sono alcuni bug. Ad esempio, non sono riuscito a cambiare il nome dell'SSID fermando ed eseguendo lo script in Thonny. Ho dovuto eseguire un reset più difficile staccando l'USB da Pico W.

La parte cruciale per la configurazione di un punto di accesso è questo segmento:

import network
import machine

ssid = '<your-ap-name>'
password = '<your-pw>'

ap = network.WLAN(network.AP_IF)
ap.config(essid=ssid, password=password)
ap.active(True)

while ap.active() == False:
  pass

print('Connection successful')
print(ap.ifconfig())
Punto di accesso trasmesso dal Raspberry Pico W. Se non si riesce a vedere l'AP così come è stato denominato, provare a staccare la spina USB e a riaccendere il Pico W.

Ecco una panoramica completa da parte del responsabile della documentazione di Raspberry Pi, Alasdair Allenche rende il Pico W un punto di accesso con SSID MicroPython-AP, password 123456789.

Quando ci si connette, viene inviata una pagina web con "Hello from Pico W".

import socket
import network
import machine

ssid = 'MicroPython-AP'
password = '123456789'

led = machine.Pin("LED",machine.Pin.OUT)

ap = network.WLAN(network.AP_IF)
ap.config(essid=ssid, password=password)
ap.active(True)

while ap.active() == False:
  pass

print('Connection successful')
print(ap.ifconfig())

html = """<!DOCTYPE html>
<html>
    <head> <title>Pico W</title> </head>
    <body> <h1>Pico W</h1>
        <p>Hello from Pico W.</p>
    </body>
</html>
"""

addr = socket.getaddrinfo('0.0.0.0', 80)[0][-1]
s = socket.socket()
s.bind(addr)
s.listen(1)

print('listening on', addr)
led.off()

# Listen for connections
while True:
    try:
        cl, addr = s.accept()
        print('client connected from', addr)
        request = cl.recv(1024)
        led.on()
        print(request)

        cl.send('HTTP/1.0 200 OK\r\nContent-type: text/html\r\n\r\n')
        cl.send(html)
        cl.close()
        led.off()

    except OSError as e:
        cl.close()
        print('connection closed')

Tutorial per principianti su Raspberry Pi Pico W

Abbiamo raccolto alcune esercitazioni per principianti per aiutarvi a conoscere il Raspberry Pi Pico W.

Controllo del LED a bordo di Pico W con un server web

Raspberry Pi Pico W controlla i LED a bordo con il server web

Questa è l'esercitazione di base che vi aiuterà a capire come collegare il vostro Raspberry Pi Pico W al WiFi, lanciare un server web e controllare il LED a bordo con il server web.

Verrà visualizzata una pagina web con un pulsante "on/off" che può essere utilizzato per controllare il LED di bordo.

Questa esercitazione costituisce la base per molti altri progetti che richiedono il controllo remoto tramite WiFi.

CLICCA QUI: Controllo del LED a bordo di Pico W con un servizio webr

Streaming dei dati dei sensori tramite server web su Raspberry Pi Pico W

Tutorial Raspberry Pi Pico W per lo streaming dei dati dei sensori

Utilizzando l'accelerometro ADXL343, questa esercitazione vi mostrerà come aggiornare dinamicamente le letture su una pagina web servita dal vostro Raspberry Pi Pico W.

La pagina web si aggiorna ogni secondo quando un client visita l'indirizzo IP di Pico W. È presente anche una funzione di dadi web digitali che si attiva quando si tocca l'ADXL343.

Si apprenderà come utilizzare le librerie, impostare il WiFi, servire una pagina web e come visualizzare i valori del sensore sulla pagina web.

CLICCA QUI: Streaming dei dati dei sensori tramite WiFi con Raspberry Pi Pico W

Tutorial sul campanello Wi-Fi Raspberry Pi Pico W (richieste HTTP e IFTTT)

Raspberry Pi Pico W progetta un campanello e una notifica WiFi

Questa esercitazione vi insegnerà come utilizzare il Raspberry Pi Pico W per inviare una richiesta HTTP.

Utilizzeremo un pulsante per simulare un campanello. Quando viene premuto, il pulsante innesca il Pico W per colpire l'endpoint di IFTTT, che poi attiverà una notifica via e-mail o via app.

CLICCA QUI: Tutorial sul campanello Wi-Fi Raspberry Pi Pico W (richieste HTTP e IFTTT)

Stazione meteorologica remota Raspberry Pi Pico W (alimentata a energia solare e SoftAP)

Stazione meteo softap Raspberry Pi Pico W

In questo tutorial, impariamo a trasmettere un punto di accesso SoftAP che trasmette i dati della stazione meteorologica in modalità wireless e ad alimentarlo con l'energia solare!

CLICCA QUI: Stazione meteorologica remota Raspberry Pi Pico W (alimentata a energia solare e SoftAP)

Progetti Pico W

Con Raspberry Pi Pico W si può fare tutto ciò che si può fare con il Pico. Ma è possibile migliorarlo aggiungendo un controllo o un'uscita wireless.

La maggior parte dei progetti richiede un hardware aggiuntivo, per cui abbiamo pensato a voi con i nostri Kit Pico.

Burgerbot: aggiornato da un normale Pico

Kevin McAleer ha costruito un Burgerbot con il Pico normale e quando è uscito il Pico W ha colto l'occasione per aggiornarlo.

Nel suo video su YouTube, spiega come utilizza Pico W, Node-Red e aggiorna il suo codice per collegare Pico W a Burgerbot via MQTT.

Kevin ha scelto Node-Red per costruire una dashboard e programmare i messaggi MQTT perché rende il processo più semplice.

pico w robot kevin mcaleer burgerbot
Burgerbot di Kevin McAleer (screenshot da YouTube).

randomizzatore di immagini di gattini in carta elettronica

Placekitten è un sito web che ospita simpatiche immagini di gatti da utilizzare come segnaposto per i web designer.

Phil Howard è riuscito a far sì che il Pico W effettuasse un ping al sito web di Placekitten e caricasse una foto a caso di un gatto sul suo display e-ink.

Schermata di Placekitten, dove è possibile ottenere foto di gatti inviando un URL.

Pimoroni produce il Pico Inky Pack, un display e-ink da 2,9″ che si adatta perfettamente a un Pico W (con gli header saldati).

Una volta connesso al WiFi, Phil ha inviato un URL per ottenere un'immagine da visualizzare sul display e-ink. Il Pico Inky ha un display di 296x128px, il che significa che se si utilizza l'URL http://placekitten.com/296/128, si otterrà un'immagine che si adatta perfettamente al display.

Fate in modo che le vostre piante vi mandino un messaggio

Quando i vostri amici hanno sete, vi manderanno un messaggio per chiedervi se volete andare a bere qualcosa.

Perché non fare la stessa esperienza con le piante di casa?

Sandeep Mistry ha fatto esattamente questo con Raspberry Pi Pico W, Pimoroni Grow Kit e Twilio SMS API.

Fondamentalmente, la pianta vi dirà quando ha bisogno di acqua. Il sensore emette un segnale digitale a impulsi con una frequenza compresa tra 1 Hz e 30 Hz. Se la pianta è asciutta, la frequenza è alta e questo fa sì che il Pico W invii un messaggio all'API Twilio SMS.

Consultate la guida completa qui.

Raspberry Pi Pico W vs Espressif ESP32

Il Raspberry Pi Pico W è una vera e propria rivoluzione.

Quando abbiamo confrontato il Raspberry Pi Pico con l'ESP32, abbiamo scelto il PICO-KIT perché aveva il fattore di forma più simile al Pico.

Il grande vantaggio dell'ESP32 rispetto al Pico W è rappresentato dal WiFi e dal Bluetooth.

Ma non è più così. Il Pico W è ora dotato di WiFi e, sebbene il chip WLAN sia in grado di gestire il Bluetooth, all'inizio di luglio non è ancora abilitato.

Quindi, se avete bisogno della funzionalità Bluetooth ora, farete meglio a scegliere l'ESP32.

Detto questo, l'ESP32 presenta altri vantaggi, tra cui la possibilità di variare le frequenze della CPU, con due velocità più elevate rispetto al Pico W.

L'ESP32 è sul mercato da molto più tempo e quindi ci sono molti più progetti costruiti su di esso. La documentazione, la sperimentazione e i componenti aggiuntivi sono di gran lunga superiori alla gamma Raspberry Pi Pico.

Raspberry Pi Pico WEspressif ESP32-PICO-KIT
Frequenza della CPU133MHz80/160/240MHz
MicrocontrolloreRP2040Xtensa LX6
Nuclei22
Memoria flash2MB4MB
RAM264KB520KB
GPIO26 (utilizzabile dall'utente)36
Ha l'USB?microUSBmicroUSB
WiFi e/o BT?Sì, entrambi, BT non abilitato al lancioSì, entrambi
Tensione1.8 - 5.5V o 5V USB3,3 V (tramite pin) o 5 V tramite USB o 5 V-12 V (tramite regolatore di tensione)
Dimensione51x21mm52x20mm
LingueMicroPython / CMicroPython / C

Opinioni della comunità su Pico W vs ESP32

Abbiamo aperto un thread sul forum di Raspberry Pi proprio su questo argomento e qui ci sono alcune grandi riflessioni da parte della comunità:

Scruss del forum Raspberry Pi ha dichiarato che l'ESP32 ha una maggiore potenza di elaborazione con la variante a 160 MHz, citando 1639 pystones/secondo contro i 1243 del Pico W. Il 240 MHz è ancora più veloce.

Ha anche elencato i seguenti motivi per cui l'ESP32 avrebbe trionfato sul Pico W.

  • timer hardware
  • un ADC davvero eccellente, con regolazione dell'intervallo e lettura diretta della tensione
  • DAC a 2 canali
  • touch capacitivo
  • Sensore magnetico a effetto Hall (se si agita un magnete, può dire che si sta agitando un magnete)
  • Canali RMT per PWM piuttosto intelligenti

D'altra parte, l'utente scotty101 ha commentato i vantaggi del Pico W:

  • Ambiente di sviluppo
  • Sostenere Raspberry Pi e i suoi obiettivi educativi
  • Prevalenza e dimensione della comunità.
  • Facilità di inserimento di un nuovo binario sul Pico

"Mi piace l'ESP32 ma odio dover scaricare l'esptool ogni volta che riavvio un progetto abbandonato. Ho così poco tempo che MicroPython su Pico è veloce e facile da usare", ha detto scotty101.

Infine, cleverca22 ha fornito una visione equilibrata di ciò che ha visto in entrambe le tavole. Al di là delle argomentazioni sopra esposte, ecco i punti aggiuntivi:

Il Raspberry Pi Pico W è dotato di PIO (Programmable IO).

cleverca22 afferma di ritenere che la piattaforma ESP disponga di una speciale unità di gestione della memoria tra lo XIP e la flash, in modo da poter memorizzare più applicazioni contemporaneamente e consentire il rollback.

Inoltre, la piattaforma ESP controlla il WiFi e il Bluetooth direttamente dalla CPU, consentendo azioni RF non standard, mentre quella del Pico W sarà probabilmente gestita da un blob closed-source, che consente solo azioni RF approvate.

Pico W vs Zero 2 W

Forse state sgranando gli occhi perché pensate che stiamo paragonando mele e arance.

Ma lo siamo davvero?

Parliamo della differenza fondamentale. Il Raspberry Pi Pico W è un microcontrollore, mentre il Raspberry Pi Zero 2 W è un microcomputer.

In parole povere, il Raspberry Pi Pico W è progettato per eseguire una sola cosa. Lo Zero 2 W è pensato per essere più dinamico: può eseguire più attività, diversi sistemi operativi e può essere programmato in più lingue.

Ecco una tabella che spiega le differenze:

Può...Microcontrollore (ad es. Raspberry Pi Pico W)Microcomputer (ad es. Raspberry Pi Zero 2 W)
Gestire un server?No
Lampeggiare un LED?Molto più veloce dall'inizio alla fineMolto più lento; molti più processi da attraversare
Riavvio automatico del programma in caso di mancanza di corrente?Non di default
Giocare ai videogiochiNon senza un grande sforzo
Funziona a batteria?Sì, è molto probabile che duri più a lungo in mediaSì, non dura in media così a lungo
Gestione del calore?Nessuna richiesta di solitoDissipatori di calore, ventilatori, casse termicamente conduttive
Costi?InferiorePiù alto
Dimensioni?Più piccoloPiù grande

Il WiFi ora non è più il vantaggio del Pi Zero W

Ora, uno degli aspetti che ha attratto alcuni utenti della serie Pi Zero è il wireless integrato.

In passato, era necessario acquistare un accessorio per dotare il Pico originale di funzionalità wireless. Questo è stato il punto che ha spinto le persone a utilizzare lo Zero come sostituto per i loro progetti.

Detto questo, con il Pico W dotato di wireless, il vantaggio che aveva lo Zero W non esiste più.

Il Bluetooth rimane un vantaggio del Pi Zero W... per ora

Al momento del rilascio, il Pico W è dotato di un chip Bluetooth, ma non è stato abilitato.

Raspberry Pi ha dichiarato che lo abiliterà in futuro. Quando sarà.

Quindi, per il momento, se avete bisogno di Bluetooth, il Pi Zero W è l'opzione migliore.

Raspberry Pi Zero 2 carenza di W = vantaggio di Pico W

Un altro elemento che conferisce al Pico W un vantaggio rispetto allo Zero 2 W è la sua disponibilità.

Nelle prime due settimane di uscita, erano ancora disponibili in molti negozi, compreso il nostro. Questo non riflette certamente la situazione del Pi Zero 2, che è destinato a una fornitura ridotta per il resto del 2022.

Naturalmente, se si dispone di un account PiCockpit, gli utenti UE/Svizzeri può anche utilizzare il nostro strumento di prenotazione per prenotare il suo prossimo Raspberry Pi.

Come decidere?

Ecco la logica che uso per decidere quale usare:

ScenarioCosa prendere
Sono migliore in un linguaggio diverso da C/PythonZero
Ho una potenza "illimitata" (cioè un caso d'uso non solare o a batteria)Zero
Ho bisogno di salvare dei dati (come i registri delle temperature)Zero
Ho bisogno di usare una macchina fotograficaZero
Voglio un'interfaccia grafica/un'uscita videoZero
Ho bisogno del WiFiO
Ho bisogno del BluetoothZero (a partire da luglio 2022)
Ho bisogno della configurazione più compattaPico W
Ho bisogno di un riavvio rapido in caso di crash/interruzione di correntePico W
Non voglio impostare un sistema operativoPico W
Voglio l'opzione più economicaPico W

Al microscopio

Peter Mount ha girato questo video del Pico W...

In che modo Raspberry Pi ha annunciato l'uscita di Pico W?

Secondo Raspberry Pi, nessuno ha ricevuto il teaser, che era una mucca con la grafica di Raspberry Pi.

Il teaser di Raspberry Pi per il Pico W

Hanno dichiarato: "Non riusciamo ancora a credere che nessuno di voi abbia colto il teaser molto astratto che abbiamo lanciato su Twitter la sera prima del lancio di Pico W". È una mucca. Capito?".

Raspberry Pi Cow riorganizzato è Raspberry Pico W.

Immagino che ora che il gatto è fuori dal sacco, parlarne sia abbastanza muggitot.

Ulteriori informazioni

Abbiamo un'enciclopedia di informazioni per il normale Raspberry Pi Pico che vi aiuterà a iniziare a lavorare con il Raspberry Pi Pico W. Ecco dove iniziare a conoscere il Raspberry Pi Pico.

CLICCA QUI: Tutto quello che c'è da sapere sul Raspberry Pi Pico

È inoltre disponibile una documentazione generale e specifica direttamente da Raspberry Pi:

4 commenti

  1. Pico User in Luglio 15, 2022 il 11:12 am

    I connettori di debug di Pico H per il lato cavi/fili sono effettivamente
    SHR-03V-S (senza flangia) o SHR-03V-S-B (con flangia).

    https://www.jst.co.uk/downloads/series/eSH_(21-03-24).pdf
    https://shop.pimoroni.com/products/pimoroni-pico-debug-cable
    https://kabel-me.eu/details/48010

  2. JJE in Ottobre 30, 2022 il 2:14 pm

    Ottimo lavoro, sarebbe ancora più utile se non avessi spinto il codice python attraverso il traduttore.

    • Xuyun Zeng in Novembre 4, 2022 il 8:15 pm

      Grazie JJE per averci segnalato questo problema. È sicuramente qualcosa su cui lavorare.

Lascia un commento