Gestire RaspberryPI PICO 2040 con macOS
Sfruttiamo la nuova board basata su RP2040 attraverso Thonny o Arduino IDE
L’organizzazione britannica RaspberryPI Foundation ha rilasciato una nuova board basata su di un microcontrollore programmabile RP2040. Tale sistema è basato su architettura dual-core ARM Cortex M0+ a 133 MHz offrendo ben 264KB di memoria RAM a sostegno di 2MB Flash.
Per gestire tale scheda su sistemi macOS esistono molte strade, tuttavia in questo articolo vi suggeriamo quelle ad oggi più semplici ed efficaci. Infatti, di seguito, indicheremo la procedura per programmare la scheda RaspberryPI Pico attraverso MicroPython (via ufficiale) o attraverso l’IDE Arduino (via ufficiosa).
Postazione programmazione MicroPython
Per programmare la scheda attraverso MicroPython andremo a sfruttare il software Thonny.
link: https://thonny.org
Una volta eseguito il download e aver concluso l’installazione del software possiamo avviarlo. L’interfaccia che ci apparirà sarà molto minimale:
Ci basterà cliccare nell’angolo in basso a destra sulla versione di Python e selezionare MicroPython (RaspberryPI Pico). Il software Thonny provvederà in automatico a scaricare tutti i file necessari alla configurazione. Terminato questo primo step, premiamo il pulsante fisico BOOTSEL presente sulla scheda e connettiamola (mantenendo premuto il pulsante) al nostro computer. Verrà montata come un’unità esterna. Premendo il pulsante STOP presente nel menù grafico di Thonny si avvierà l’installazione del firmware sulla board.
Per verificare il corretto funzionamento della scheda andremo a programmare il lampeggio del led spia presente sulla scheda attraverso il programma Blink.
Blink:
from machine import Pin from time import sleep led = Pin(25, Pin.OUT) n = 0 while True: led.toggle() sleep(0.5)
Una volta scritto il programma con l’apposito pulsante play potremo mandare in esecuzione l’algoritmo. Thonny, prima di questo step, ci inviterà a salvare il file sul nostro computer o direttamente sulla board.
Postazione programmazione Arduino IDE
Per prima cosa è necessario procurarsi l’ultima versione di Arduino IDE presso l’indirizzo
In seguito, dal menu selezionare Arduino >> Preferenze e alla voce “URL aggiuntive per il Gestore Schede” aggiungere il seguente url
https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
Una volta confermato, dal menu, selezionare Strumenti >> Schede >> Gestore schede… e ricercare il pacchetto “Raspberry Pi Pico/RP2040“.
A questo punto il nostro IDE sarà predisposto alla programmazione della board RaspberryPI PICO.
NB. Per far avvenire la programmazione attraverso Arduino IDE è necessario tenere premuto il pulsante fisico BOOTSEL presente sulla scheda durante la fase di alimentazione (così facendo la scheda verrà montata dal sistema come memoria esterna).
Per verificare il corretto funzionamento della scheda andremo ad applicare il lampeggio del led spia presente sulla scheda attraverso il programma Blink.
Blink:
/* Blink Turns an LED on for one second, then off for one second, repeatedly. Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to the correct LED pin independent of which board is used. If you want to know what pin the on-board LED is connected to on your Arduino model, check the Technical Specs of your board at: https://www.arduino.cc/en/Main/Products modified 8 May 2014 by Scott Fitzgerald modified 2 Sep 2016 by Arturo Guadalupi modified 8 Sep 2016 by Colby Newman This example code is in the public domain. http://www.arduino.cc/en/Tutorial/Blink */ // the setup function runs once when you press reset or power the board void setup() { // initialize digital pin LED_BUILTIN as an output. pinMode(LED_BUILTIN, OUTPUT); } // the loop function runs over and over again forever void loop() { digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second }