Introduzione a Raspberry Pi Pico (lezione 1)

Introduzione

Molte aziende che producono componenti elettronici, hanno  sicuramente compreso che la  fascia di mercato dei sistemi embedded è  in notevole crescita, alimentata da numerosi gruppi di makers, molto attivi, i quali  condividono numerosi progetti in rete. Alla luce di questo virtuoso scenario anche il gruppo Raspberry ha deciso di entrare in questo mercato con il progetto Raspberry Pico, una scheda  che monta il  microcontrollore RP2040.

In questo caso, il gruppo Raspberry è stato sicuramente lungimirante, ma non possiamo affermare  che sia stato particolarmente innovativo, anzi è arrivato in notevole ritardo rispetto ai concorrenti, altresì,  essi  hanno introdotto nel 2012, un sistema che ha sicuramento innovato il mondo dei micro PC con il progetto Rapberry PI.

Realizzare un micro PC con discrete prestazioni, ad un costo estremamente basso, con lo scopo, lodevole, di rendere disponibile la tecnologia, per uso didattico, anche ai paesi in via di sviluppo, ma oltre ogni aspettativa,  questo progetto ha riscosso un successo mondiale  con la vendita di milioni di esemplari  che hanno costretto il gruppo Raspberry ad un incremento delle linee di produzione per soddisfare le richieste di mercato.

Dopo questa breve divagazione, ritorniamo all’argomento principale del post, il microcontrollore RP2040 e’ stato progettato e prodotto dal gruppo Raspberry, che ha realizzato un sistema dalle buone caratteristiche (i dettagli li analizzeremo in seguito), con la stessa politica del progetto precedente, cioè  collocare sul mercato un prodotto dal costo molto competitivo, infatti, l’intera scheda è venduta al prezzo di soli 4 $.

Adesso analizziamo le caratteristiche del microcontrollore, con qualche nota, secondo me,  negativa. Il microcontrollore RP2040 è  un dual-core Arm Cortex M0,  le caratteristiche principali sono riassunte nei seguenti punti:

  • Frequenza massima del clock è di 133MHz
  • SRAM da 264KB
  • Memoria di programma FLASH da 2MB
  • Interfaccia USB, per la connessione al PC
  • Non è  richiesta la compilazione  del codice  sorgente ma esso deve essere caricato semplicemente con la  procedura “drag-and-drop”
  • N° 26 pins multi funzioni GPIO
  •  Periferiche configurabili: 2 × SPI, 2 × I2C, 2 × UART, 3 × 12-bit ADC e 16 × PWM
  • Un sensore di temperatura

In rapportato al prezzo, possiamo affermare che il microcontrollore  è un ottimo prodotto sia dal punto di vista delle performance, che delle periferiche montate nel chip  e come dimensioni  memorie  FLASH e RAM,  inoltre, ha un sistema di  programmazione  semplificato con la procedura del  “drag-and-drop”.

Adesso analizziamo le note negative,  sono rimasto moto deluso dalla mancanza di una periferica wireless , anche  a scapito di un aumento del prezzo di vendita,  non averla e’  anacronistico, preclude l’utilizzo della board  per lo sviluppo di sistemi come l’IOT, e per questi progetti  è preferibile usare la famosa board ESP32.

Ma non dobbiamo escludere che il gruppo Raspberry che ha sempre costantemente migliorato le caratteristiche dei propri prodotti   sia dal punto di vista delle  prestazioni  che delle funzionalità e non possa in un futuro prossimo, introdurre  un nuovo microcontrollore con almeno una  periferica wireless integrate. Nella Figura 1, è riportata la  pin function della scheda Pico,  scaricata dal sito di Raspberry.

Figura 1

Il sistema supporta i linguaggi  di programmazione Python e C++ in modo nativo,  il codice sorgente non deve essere compilato ma scaricato  direttamente all’interno della memoria FLASH con una procedura di drag e drop,  e grazie al software, precedentemente caricato, la compilazione o l’interpretazione del codice è eseguita  direttamente all’interno del microcontrollore.

Prima di scaricare il codice sorgente all’interno della memoria FLASH,  il microcontrollore deve essere configurato, pertanto,  bisogna scaricare il compilatore che deve essere caricato all’interno della memoria FLASH, in base al linguaggio di programmazione prescelto. Di seguito ho riportato i passi che devono essere eseguiti per configurare la scheda e pronta per eseguire il codice sorgente dei nostri progetti:

  • Inserire il cavo micro USB nella  scheda Pico
  • Mantenere premuto il pulsante bianco posto sulla Raspberry Pi Pico
Figura 2
  • Inserire  l’altro connettore del USB nel PC e aspettare circa 5 secondi, sempre con il pulsante premuto.
  • Rilasciare il pulsante, il PC   riconosce la scheda Pico come una memoria di massa (vedi Figura 2)
  • Selezionare il linguaggio di programmazione da questo link e scaricare il software per poi caricarlo all’interno della FLASH del microcontrollore con la stessa procedura della scrittura di una pendriver (drag and drop)
Figura 2

La nostra scheda è ora pronta per eseguire il nostro codice sorgente, ma abbiamo bisogno  dell’IDE (Integrated Development Environment), un sistema di sviluppo che ci consenta di  scrivere il codice sorgente e di caricalo  all’interno della memoria del microcontrollore.

Sul mercato ci sono diverse IDEs  per  il sistema  Pico, con alcune di esse e’ possibile gestire anche più di un linguaggio, in questo corso vorrei  utilizzare il solo linguaggio MicroPython, e propongo di usare  l’IDE Thonny, consigliato anche dagli sviluppatori della scheda Pico.

Come da tradizione, il primo codice sorgente per chi inizia a programmare o ad usare un sistema nuovo è  classico programma di “Hello World”  e credo che le tradizioni debbano essere rispettate e quindi il nostro primo codice farà accendere e spegnere un diodo LED, quello integrato sulla board. Dopo aver scaricato e installato l’IDE Thonny, seguite le istruzioni riportate nelle gif di seguito, con le istruzioni per configurare l’ambiente per la prima compilazione del codice sorgente. Dopo aver installato l’IDE Thonny, configurare l’ambiente come indicato nelle due gif riportate di seguito.

import machine
import utime
led_onboard = machine.Pin(25, machine.Pin.OUT)
while True:
    led_onboard.value(1)
    utime.sleep(0.5)
    led_onboard.value(0)
    utime.sleep(0.5)
  • Nella prima istruzione importiamo la libreria di configurazione dei pins del microcontrollore.
  • Nella seconda istruzione importiamo la libreria per la gestione dei ritardi, come il delay.

Questa istruzione setta il pin 25 del microcontrollore, dove e’ connesso il diodo LED, come un’uscita.

Questo e’ un ciclo infinto dove il i diodo LED ad intervalli regolari, impostati dall’istruzione ultime.sleep, e’ acceso.

Lascia una risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Ti sei iscritto alla newsletter

There was an error while trying to send your request. Please try again.

Quattrodispositivi utilizzerà le informazioni fornite in questo modulo per restare in contatto con te e fornire aggiornamenti del sito