Raspberry Pi Pico - vilka möjligheter

Detta är säkert något som inte är nytt för många. För mig viste jag att de fanns, men inte vad som var skillnaden mellan de olika Raspberry Pie modellerna, Arduino och andra, numera lättillgängliga mikrokontrollers. Jag hade en idé om att skapa en belyst skylt som skulle kunna ändra färg och generera olika färgmönster. Jag hittade så småningom Picon och NeoPixels och detta ville jag bara testa.
Jag kommer att skriva mer om skyltprojektet lite senare. Det är vid skrivandet av denna artikel fortfarande under uppbyggnad. Eller rättare sagt, jag väntar på leverans av ett väsentligt verktyg för att kunna bygga detta projekt på det sättet jag vill.
Det fantastiska med Picon är att den inte kostar så mycket. Den billigaste modellen var den som jag tänkte skulle vara perfekt för min skylt och den kostade bara 60 kronor. Helt klart möjlig att köpa även om man bara vill testa att leka lite med den.
Picon är en mikrokontroller, det betyder att det inte är en fullfjädrad dator. Det är ett litet chip som kan köra kod som skrivs, antingen i C/C++ eller i MicroPython. Till att börja med kommer jag att skriva min kod i MicroPython. Inte för att jag är någon Pythonstjärna, utan snarare för att det är väldigt lätt att hitta andra projekt skrivna i MicroPython för just Picon.
Mikrokontrollen har en dubbelkärnig ARM-processor på 133MHz. Det är fullt möjligt att nyttja båda kärnorna för kod och på detta sätt kan man skriva program med trådar som körs parallellt. Det finns 264kb minne för programmen och en 2MB flash för program och filer.
Picon har 30 GPIO (General Purpose Input Output) pinnar men på ett kontroller kort finns “bara” 23 av dessa tillgängliga. Några används internt för utvecklingskortet. För mig är detta mer än nog och det räcker fint till de projekt jag kan se mig angripa inom en överskådlig framtid. 3 av dessa 23 pinnar kan dessutom användas för att läsa en analog signal med hjälp av den inbyggda 12 bitars A/D-omvandlaren. Perfekt om man har en analog sensor som behöver avläsas.
En annan häftig funktion är de 8 “state machines” som finns. Detta är 8 små autonoma slavchip som kan användas för att avlasta läsning och skrivning till pinnarna. När en mikrokontroll kommunicerar med omvärlden sker detta ofta genom att data “skickas” genom att sätta en pinne hög (1) eller låg (0) i en förutbestämd tid. Detta går att styra med processorn men det kräver mycket kapacitet från kontrollen. Detta kallas för “bit bashing”. Genom att avlasta denna funktion till en state machine kan processorn göra andra saker under tiden data succesivt skickas.
Jag kommer att skriva kod till min Pico med hjälp av MicroPython. För att underlätta detta arbete finns det ett litet program som heter Thonny. Med hjälp av detta kan man enkelt skapa kod, starta och stoppa mikrokontrollen. Fördelen med MicroPython är att det finns väldigt många kodbibliotek färdigskrivna som enkelt kan användas. Om man inte har programmerat tidigare är Python ett relativt enkelt språk att lära sig. För mitt kommande skyltprojekt finns det färdiga NeoPixel bibliotek som gör det väldigt enkelt att styra dioderna.

När man har köpt sin Pico så är det bara att komma igång. Ta ut den ut förpackningen (ofta en ESD-påse). Tryck in knappen (bootsel) på kortet samtidigt som USB-kablen matas in. Då kommer en ny USB-enhet synas på datorn. Skall man köra MicroPython behöver man ladda upp senaste versionen av detta till mikrokontrollen. Ladda ner den från Raspberry PIs webbsida. Tänk på att du laddar ner rätt version beroende på om du har Picon med Wifi (Pico W eller Pico WH) eller utan (Pico eller Pico H). Den nerladdade UF2-filen skall bara kopieras över till USB-enheten som då startas om och du är redo att börja koda.
Starta Thonny och i den kommer att ansluta till Picon. Du kan se detta i bottenlisten i programmet. Nu kan du skapa Python filer och köra dessa på Picon.
Picons motsvarighet till ett “Hello, World!"-program är att få den inbyggda leden att blinka. Genom att styra pin 25 kan man kontrollera leden, hög pinne får den att lysa och låg pinne får den att slockna. Följande program kan klistras in i Thonny, sparas på Picon och sedan köras. Didoden kommer då att börja blinka.
from machine import Pin
import utime
led = Pin(25, Pin.OUT) # Pin 25 = Onboard led
led.value(0) # led av
while True:
led.toggle() # Toggla pin/led
utime.sleep(1) # Sov i 1 sekundDetta är ett litet enkelt program visar hur du kommer i gång med att koda för din Pico. Nu är det bara att komma på vad du vill göra dvs vilka projekt vill du bygga med en Pico. Just nu har jag mitt skyltprojektet men även ytterligare två projekt så om du är intresserad; håll ett koll på sidan här.