Alles over de Raspberry Pi Pico

raspberry pi pico handleiding

Als u uw eerste Raspberry Pi wilt kopen, kan de Pico een zeer aantrekkelijke optie zijn.

Maar de echte vraag hier is of de Raspberry Pi Pico geschikt is voor u.

Er zijn veel voors en tegens aan de aanschaf van de Raspberry Pi Pico en het is belangrijk om het adagium "horses for courses" te begrijpen.

Inhoud verbergen

Laten we eens kijken naar de Raspberry Pi Pico

De Raspberry Pi Pico is een nieuwe ontwikkeling in de Raspberry Pi-reeks omdat het een microcontroller-ontwikkelbord is. Dit is een afwijking van de rest van de Raspberry Pis die microcomputers zijn.

Hij is voorzien van de RP2040-chip, die door Raspberry Pi zelf is ontworpen, en heeft de volgende specificaties:

  • Dubbele kern ARM Cortex M0+ CPU-kernen (tot 133 MHz)
  • 264K SRAM
  • 2MB flashgeheugen

De Raspberry Pi Pico onderscheidt zich doordat het een krachtige microcontroller is en heeft vele interessante gebruiksmogelijkheden.

Pro: Goedkoop en geweldig voor beginners

Wij verkopen de Raspberry Pi Pico voor €4,10 wat de goedkoopste Raspberry Pi is die u kunt kopen. In feite, als u nieuw bent in het knutselen met de Raspberry Pi Pico, kunt u een volledige kit voor €24.95 die alles bevat wat je nodig hebt om eenvoudige projecten te bouwen.

Pro: Geweldig voor realtime toepassingen

De Raspberry Pi Pico is perfect voor projecten waarbij u gebeurtenissen precies moet timen. Bijvoorbeeld het uitlezen van sensoren, het bedienen van motoren en het monitoren van taken.

Pro: analoge ingangen

De Raspberry Pi Pico is de eerste Raspberry Pi die vanaf de fabriek analoge ingangen heeft.

Hij wordt geleverd met een totaal van 5 ADC-ingangen (Analoog Digitaal Conversie). Twee daarvan worden door de Pico gebruikt voor zijn interne temperatuursensor en voor spanningsbewaking.

Hoe kun je voordeel halen uit een analoge ingang? Een van mijn projecten gebruikte bijvoorbeeld een potentiometer om de schakelfrequentie van een relais te regelen. De Raspberry Pi Pico zou dus een waarde van de potentiometer kunnen aflezen en de waarden gebruiken in het programma dat ik erop heb geladen.

De Raspberry Pi Pico lost ADC-signalen op met 12 bits, wat beter is dan de 10-bits ADC op de Arduino Uno. Andere kenmerken zijn:

  • SAR ADC (successive approximation ADC)
  • 500 kS/s (met externe 48MHz klok)
  • DMA-interface op ADC-ingangen die toegang heeft tot het geheugen zonder de CPU te gebruiken

Pro: programmeerbare IO (PIO)

Dit is een van de coolste eigenschappen van de Raspberry Pi Pico en het is ook wat de Pico de dynamiek geeft die sommige andere microcontrollers niet hebben.

PIO is een hardware-interface die onafhankelijk van de hoofdprocessoren kan worden geprogrammeerd. Het kan daarom veel verschillende interfaces emuleren:

  • 8080 en 6800 parallelle poort
  • I2C
  • 3 pin I2S
  • SDIO (SD-kaart interface)
  • SPI, DSPI, QSPI
  • UART
  • DPI of VGA (via weerstandsnetwerk / DAC)

De PIO State Machines zijn volledig programmeerbaar en uitsluitend bestemd voor I/O. Bijzondere aandacht wordt besteed aan een nauwkeurige timing. 

De PIO-interface kan bijvoorbeeld worden gebruikt om tijdkritische (timing-sensitive) toepassingen, zoals de aansturing van LED-strips, op een stabiele en betrouwbare manier op te zetten. 

Pro: kan video uitvoeren met aanpassing

Zag je "DPI of VGA" in de vorige sectie? Je weet wat dit betekent...

Ja, de Raspberry Pi kan video afspelen, iets waar je bij de meeste microcontrollers niet eens van zou dromen.

We hebben een tutorial die je laat zien hoe het moet, als je geïnteresseerd bent.

Pro: past op een broodplank

raspberry pi pico op broodplank

Bij de Raspberry Pi Pico zitten de pinnen aan twee tegenovergestelde kanten van de Pi Pico, u kunt de Pi Pico dus direct op het breadboard plaatsen met elke kant aan over de scheidingsgoot.

Dit maakt prototyping gemakkelijker omdat u geen male-to-female draden (of male-to-male in het geval van de Arduino Uno) nodig hebt om de Pico op een breadboard aan te sluiten.

Dit kan niet met andere Raspberry Pis omdat hun pinnen allemaal gegroepeerd zijn.

Pro: Kleinste Raspberry Pi

raspberry pi pico vergelijking
Van links, met de klok mee: Raspberry Pi Pico, Raspberry Pi Zero 2, Raspberry Pi 4

Een klein bord is goed omdat het gemakkelijker in kleine ruimtes past en gemakkelijker te monteren is. Laten we bijvoorbeeld zeggen dat u de Raspberry Pi Pico aan de muur wilt bevestigen, of in een gesloten omgeving: robots, handhelds, horloges, enz.

De Raspberry Pi Pico meet 51mm x 21mm /Bron: Raspberry Pi

Voordelen: laag stroomverbruik

Ik zei al dat de Raspberry Pi Pico klein is en dat hij in kleine ruimtes past.

Het mooie is dat u, omdat de Pico stroom verbruikt, geen grote batterij nodig hebt om hem te laten werken.

Heb ik ook al gezegd dat hij een breed spanningsbereik heeft? Hij kan werken op 1,8 - 5,5 V, wat geweldig is omdat je hem kunt laten werken op een enkele lithiumbatterij (3,7 V) of op nikkelbatterijen die in serie zijn aangesloten (elk 1,2 V).

Neutraal: Geen Linux ondersteuning op de Raspberry Pi Pico

Of dit een voor- of nadeel is van de Raspberry Pi Pico hangt af van uw project. Het ontbreken van Linux betekent dat je projecten sneller laden, maar over het algemeen kun je meer doen als je een besturingssysteem hebt.

Wat bedoel ik met sneller laden? Omdat er geen OS hoeft te worden opgestart, wordt uw code vrijwel meteen geladen als u de Pi Pico aansluit op het stroomnet.

Op elke andere Raspberry Pi zal het veel langer duren voordat u een reactie ziet.

Maar helaas, zonder een OS bent u beperkt tot programmeren met MicroPython of C, terwijl u met een OS in veel, veel meer talen kunt coderen. Bovendien kunt u spelletjes spelen, surfen op het internet en genieten van andere multimediatoepassingen.

Neutraal: Geen WiFi

Of dit een nadeel is hangt af van uw project, maar stel dat u een project ontwikkelt waarbij u het weer moet controleren of gegevens moet uploaden naar Google Sheets, dan zult u dit niet kunnen doen op de Raspberry Pi Pico.

Om eerlijk te zijn, kunt u WiFi of ethernet installeren met aftermarket onderdelen zoals het onderstaande item:

Neutraal: GPIO uitgangen 3.3V

Of dit een voor- of nadeel is, hangt af van de componenten waaraan u de Raspberry Pi Pico wilt koppelen.

Een scenario waarin ik vond 3,3V een belemmering was toen ik probeerde om het te gebruiken met 5V relais. Oeps! Ik kon niet genoeg spanning door te duwen om het relais te schakelen.

Dus ging ik over op mijn Arduino Uno, waarvan de GPIO-pennen 5V uitstralen.

Het alternatief zou zijn om componenten aan het prototype toe te voegen zodat de 3,3V kan worden opgevoerd, maar, uh, waarom dingen ingewikkelder maken als ik het gewoon met een Arduino Uno kan doen?

Dit is natuurlijk maar één scenario. Uw kilometers kunnen variëren, afhankelijk van wat u doet.

Raspberry Pi Pico Gebruiken

Het scala aan toepassingen voor de Raspberry Pi Pico is eindeloos. U kunt iets maken dat uw leven verbetert of iets maken gewoon voor de lol.

Microcontroller die MicroPython leest (in plaats van alleen C)

Als je een Arduino hebt gebruikt, weet je dat je hem in C moet programmeren.

Maar misschien houdt u niet van programmeren in C. Misschien hebt u een sterkere achtergrond in Python.

En als u dus moeite had met het schrijven van code in C op de Arduino, dan is het goede nieuws dat wat de Arduino ook kan, de Raspberry Pi Pico waarschijnlijk ook in uw gebruikssituatie kan passen.

Dus gooi die accolades weg en begin met het inspringen van je code!

Bouwt op batterijen voor lange runtime

Als u iets nodig hebt dat zo weinig mogelijk stroom verbruikt, dan bent u zeker beter af met de Raspberry Pi Pico dan met iets krachtigers zoals de Raspberry Pi Zero.

Hier is waarom: u kunt een veel breder bereik van stroomingangen gebruiken (1,8V tot 5,5V) en omdat de Raspberry Pi Pico zo efficiënt is, zult u in staat zijn om veel langere runtimes te krijgen dan wanneer u een microcomputer zoals de Raspberry Pi Zero zou gebruiken.

Oh, had ik al gezegd dat de Raspberry Pi Zero erg kieskeurig is wat betreft het voltage dat u hem levert? Hij kan maar 4.75 - 5.25V aan.

Macro toetsenborden, draaiknoppen en andere HID's

Don Hui met zijn Discord macro toetsenbord waarmee hij gemakkelijk de volumeknoppen kan omzetten / Bron: YouTube.

De Raspberry Pi Pico kan worden gebruikt als een Human Interaction Device (HID).

Maar in tegenstelling tot een saaie oude muis of toetsenbord, kunt u met de Raspberry Pi Pico een apparaat maken dat iets speciaals en specifieks doet voor uw gebruikssituatie.

Zo kun je macro toetsenborden maken die met een druk op de knop een lange string uittypen. Of je kunt het gebruiken om Discord te dempen. Of gebruiken om CTRL + ALT + DEL in te drukken. De mogelijkheden zijn eindeloos.

magi's Multifunctionele Knop die fungeert als een roterende volumeregelaar of Premiere Pro tijdlijn scrubber. Bron: YouTube

sArCaSm kEyBoArD

Wat is beter om sarcasme uit te drukken: een /s tag aan het eind van uw tekst of tYpInG lIkE tHiS?

Ik geef de voorkeur aan de tweede, omdat die onmiddellijk sArCaSm overbrengt.

De maker van dit project, Ben S, deelde dat hij twee Raspberry Pi Picos gebruikt om dit voor elkaar te krijgen. Eén Pico fungeert als een USB HID-toetsenbordapparaat voor de computer en een andere fungeert als de USB-host om invoer van het toetsenbord te lezen. De host communiceert dan met het apparaat via UART wat de toetsaanslag was.

Het Pico sarcasme toetsenbord schakelt caps lock aan en uit na elke toetsaanslag, en geeft zo sArCaStIc TeXt.

Wat kan de Raspberry Pi Pico niet?

Laten we het eens hebben over een meer typische recht-toe-recht-aan configuratie.

Ik geef toe dat er veel manieren zijn om de mogelijkheden van de Raspberry Pi Pico te vergroten. Je kunt video afspelen, ethernet opzetten, audio afspelen...

Met voldoende aanpassingen zal de Raspberry Pi Pico de mogelijkheden van een microcomputer benaderen.

Dat gezegd hebbende, geen enkele rationele zal zo ver gaan. Voorbij een bepaald niveau van aanpassing, wordt het onhaalbaar.

Waarom wordt het onhaalbaar?

Want je kunt net zo goed iets kopen waar je al deze functies direct uit de doos krijgt!

Een naaste concurrent die u in de gaten moet houden is de Raspberry Pi Zero 2. We hebben een mega-artikel dat al je vragen hier zal beantwoorden.

Op een fundamenteel niveau heeft de Raspberry Pi Pico minder rekenkracht. Vergeleken met de goedkoopste microcomputer, de Raspberry Pi Zero, heeft de Pi Pico een standaardklok van 133MHz en kan 361,76 Dhrystone Million instructions per second (DMIPS), terwijl de Raspberry Pi Zero 1250 DMIPS kan.

De Raspberry Pi Zero heeft ook 512 MB RAM, een besturingssysteem, WiFi en een SD-kaartsleuf. Voor een persoon die het meest bedreven is in JavaScript, zoals ikzelf, is de mogelijkheid om Node code te schrijven om het te verbinden met Google Cloud een reden waarom ik de Pi microcomputers graag gebruik.

Microcomputer vs microcontroller

Bij het illustreren van het vorige scenario heb ik de termen microcomputer en microcontroller gebruikt. Ik zal enkele toepassingen opsommen waarin de ene beter is dan de andere.

Een microcontroller is veel eenvoudiger dan een microcomputer, en daarom is het veel eenvoudiger om een microcontroller eenvoudige taken te laten uitvoeren. Als je alleen maar een LED hoeft te laten knipperen, een servo te laten draaien, temperatuurgegevens te meten, dan kan een microcontroller dat heel gemakkelijk en capabel.

In feite krijgt u enkele voordelen zoals snel opnieuw opstarten en een langere levensduur van de batterij.

Eenvoud brengt beperkingen met zich mee. Het is bijvoorbeeld veel gemakkelijker om uw prototype met een microcomputer op het internet aan te sluiten. U zou uw prototype bijvoorbeeld kunnen verbinden met een e-maildienst om u te pingen wanneer bepaalde drempelwaarden zijn bereikt. Ik zou die projecten liever op een Raspberry Pi Zero doen dan te proberen het te laten werken met de Raspberry Pi Pico.

ScenarioMicrocontroller (b.v. Raspberry Pi Pico)Microcomputer (b.v. Raspberry Pi Zero)
Een server draaienGeenJa
Een LED laten knipperenVeel sneller van begin tot eindVeel langzamer; veel meer processen te doorlopen
Auto-herstart programma bij stroomuitval?JaNiet standaard
Videospelletjes spelenGeenJa
Loopt op de batterij?Ja, de kans is groot dat hij gemiddeld langer meegaatJa, gaat gemiddeld niet zo lang mee
Warmtehuishouding?Gewoonlijk niet vereistKoellichamen, ventilatoren, thermisch geleidende behuizingen
Kosten?LagerHoger

Raspberry Pi pinnen

De Raspberry Pi Pico heeft 30 GPIO pinnen, waarvan er 26 beschikbaar zijn voor gebruik.

  • 2x SPI
  • 2 x UART
  • 2 x I2C
  • 8 x tweekanaals PWM

is er ook:

  • 4 x klokuitgang voor algemeen gebruik
  • 4 x ADC ingang
  • PIO op alle pennen

Hier is de pinout afbeelding van de Raspberry Pi Pico:

Raspberry Pi Pico pinnen / Bron: Raspberry Pi

Een Redditor genaamd C_King_Justice heeft ook een tool gemaakt waarmee je de GPIO-pinnen van je Raspberry Pi Pico kunt vinden. U kunt download het document hier.

Papieren pinout door C_King_Justice / Bron: Reddit

Raspberry Pi Pico Specs

Raspberry Pi Pico
Prijs€4.10 (raad) €24.95 (beginners Raspberry Pi Pico kit)
CPURP2040 met dual-core Cortex M0+ tot 133MHz
CPU mogelijkhedenOn-chip PLL maakt variabele kernfrequentie mogelijk
CPU-frequentietot 133MHz, over/onderklokbaar
GPUGeen GPU
RAM264 kB ingebed SRAM in 6 banken
NetwerkNiet inbegrepen, maar u kunt het toevoegen
BluetoothNiet inbegrepen
HDMI-poortNiet inbegrepen, maar u kunt het toevoegen
USB-poortMicroUSB voor voeding en gegevens
Composiet videoNiet inbegrepen, maar u kunt het toevoegen
Reset pinNiet inbegrepen, maar u kunt het erin solderen
Camera poortGeen
Stroomverbruik~1.3mA in SLEEP mode tot 93mA in "Popcorn" test
Stroomvoorziening5V via microUSB of 1,8 - 5,5V via VSYS
vormfactor51 x 21 mm

Heeft de Raspberry Pi Pico HDMI?

Raspberry-Pi-Pico-Video-Output-DVI-Sock

Nee, dat is standaard niet zo. Maar u kunt zelf een video toevoegen. Zie onze gids hier.

Merk op dat, hoewel de video-interface een HDMI-connector is, deze eigenlijk een DVI-signaal uitzendt. HDMI is een opvolger van DVI, dus DVI-signalen kunnen via HDMI worden doorgegeven.

In dezelfde geest kunt u een HDMI-naar-DVI-adapter kopen om de HDMI-connector om te zetten naar DVI.

Dit gezegd zijnde, merk op dat deze opstelling geen audio uitvoert.

Heeft de Raspberry Pi Pico ethernet?

Nee, dat is standaard niet zo. Maar je kunt zelf ethernet toevoegen.

Raspberry Pi heeft officieel een gids vrijgegeven die u kunt volgen om installeer ethernet op je Raspberry Pi Pico.

In essentie heb je een RMII Ethernet PHY nodig zoals een LAN8720, een breadboard en jumper draden. Op uw Raspberry Pi Pico moeten ook headers gesoldeerd zijn.

Heeft de Raspberry Pi Pico WiFi?

Nee, maar je kan het installeren met aftermarket onderdelen. Een compatibele chip die je zal helpen om WiFi-mogelijkheden te krijgen is de Adafruit Airlift WiFi Featherwing Co-Processor.

Heeft de Raspberry Pi Pico USB?

Ja, de Raspberry Pi Pico heeft een microUSB poort. Deze kan worden gebruikt om de Raspberry Pi van stroom te voorzien.

Bovendien kunt u de Raspberry Pi Pico ook gebruiken als een Human Interaction Device. Door het aan te sluiten op je computer met de juiste componenten en code kan het een joystick, macro toetsenbord, toggle, enz. worden.

Heeft de Raspberry Pi Pico Bluetooth?

Nee, maar u kunt het installeren met aftermarket onderdelen.

Voor de integratie van Bluetooth op de Raspberry Pi Pico moet u een Bluetooth-module kopen, zoals de HC-06 Bluetooth-module.

Is er een Raspberry Pi Pico camera?

Ralph Yamamoto's prototype met de HM01B0 camera module. Bron: Ralph Yamamoto/Element14

Ja, je kunt de Raspberry Pi Pico integreren met een camera module.

Een camera die u kunt gebruiken is de HM01B0 camera van Himax Imaging. Het voordeel van deze camera is dat hij extreem weinig stroom verbruikt, 1-2 milliwatt volgens Ralph Yamamoto die schreef over zijn ervaring om een camera te laten werken met de Raspberry Pi Pico.

Camera preview draait op 96×96 pixels. Bron: Ralph Yamamoto/Element14

Zijn conclusie was dat "ik er zeker van ben dat er nog veel aan moet worden gesleuteld," en verder zei hij dat hij zich beperkt voelde door zijn vaardigheid in het bewerken, en dat de documentatie van de camera ontbrak.

Raspberry Pi Pico besturingssysteem

Over het algemeen zult u geen besturingssysteem draaien op de Raspberry Pi Pico.

In de meeste projecten hoeft u waarschijnlijk alleen maar code te uploaden en dan alleen dat ene programma uit te voeren. In dat geval is er geen behoefte aan een besturingssysteem.

Maar bent u het type dat meerdere tabbladen op Chrome heeft? Stelt u zich nu eens voor dat u slechts één Chrome-tabblad zou kunnen gebruiken.

Hoewel de "klassieke" manier om de Raspberry Pi Pico te programmeren het meest efficiënt met hulpbronnen omgaat, belemmert het ook uw vermogen om meerdere taken uit te voeren.

Gelukkig zijn er besturingssystemen die op de Raspberry Pi Pico zouden werken.

Officieel RTOS (Real Time Operating System)

Die is er niet, maar Raspberry Pi zegt in zijn FAQ (vanaf feb 2022) dat ze "binnenkort zullen werken aan het porten van een RTOS".

FreeRTOS

De Raspberry Pi Pico kan FreeRTOS draaien. Hier is een korte video die je doorloopt van bare-metal programmeren (de "typische" manier waarop je een LED zou laten knipperen) naar OS-gebaseerd programmeren.

Deze vijfdelige serie gaat diep in op FreeRTOS, hoe het werkt, en hoe u het kunt instellen en gebruiken.

Fuzix

Je kunt de Raspberry Pi Pico geen Linux laten draaien met een grafische gebruikersinterface, maar je kunt wel een Unix-kloon draaien op de Raspberry Pi Pico met Fuzix.

Raspberry Pi heeft een gids gepubliceerd die je kunt volgen en wat je nodig hebt is:

  • Niet-Pico Raspberry Pi voor seriële aansluiting
  • Raspberry Pi Pico
  • MicroSD-lezer voor de Raspberry Pi Pico.

PyDOS

Github gebruiker RetiredWizard heeft zojuist een DOS-achtige shell gemaakt voor de RP2040/ESP32 borden.

Zoals je in de video hierboven kunt zien, neemt het je echt meer dan 30 jaar terug in de tijd.

Bekijk de Github repo hier.

Aan de slag met de Raspberry Pi Pico

We hebben verschillende kits ontworpen op basis van wat wij denken dat u op lange termijn het meeste zal helpen om van uw reis met de Raspberry Pi Pico te genieten.

In het meest fundamentele geval, zijn hier enkele aanbevolen Raspberry Pi Pico accessoires.

De Schottky Diode is nodig als u van plan bent een tweede stroombron aan te sluiten op de Pico. Dit is de eenvoudigste manier om een voeding te gebruiken die binnen het spanningsbereik van 2,3 V tot 5,5 V ligt, wat een Lithiumcel of drie AA-batterijen kunnen zijn.

Door deze diode toe te voegen kunt u de twee spanningen van VBUS en de externe spanning "OF" maken om VSYS te voeden, waarbij de diodes voorkomen dat een van beide spanningen de andere voedt.

Hoewel dit het eenvoudigst is, is er sprake van efficiëntieverlies. Raspberry Pi's gegevensblad wordt dit in detail uitgelegd en wordt in hoofdstuk 4.5 ook uitgelegd hoe dit kan worden tegengegaan.

Met een batterijhouder kunt u een reserve stroomvoorziening hebben (met een Schottky diode) of uw opstelling volledig off-grid laten werken.

Deze spreekt voor zich. U hebt deze kabel nodig om uw Raspberry Pi Pico aan te sluiten op uw computer om code te uploaden. Hij kan ook als stroombron dienen.

Twee 20-pins headers zijn essentieel omdat u ze nodig hebt om uw Raspberry Pi aan te sluiten op componenten of op een breadboard.

De drie-pins header is nodig voor debugging.

Koop geen 40-pin header, die is bedoeld voor de andere Raspberry Pis.

Als u de headers niet zelf wilt solderen, kunt u overwegen een Pico met voorgemolde headers.

Programmeren op de Raspberry Pi Pico

U kunt coderen in MicroPython, C/C++ en CircuitPython op de Raspberry Pi Pico. Hier is een tabel die laat zien hoeveel moeite het kost om de interne LED te laten knipperen.

TaalMicroPythonC/C++CircuitPython
Vereiste opstelling voor eerste runMediumHoogsteLaagste
Stappen om een nieuw programma te makenMediumHoogsteLaagste
Controle over hardwareMediumHoogsteMedium

MicroPython op de Raspberry Pi Pico

MicroPython is in wezen Python lite. Of dieet Python.

Het is Python met een kleine subset van de Python standaard bibliotheek, geoptimaliseerd om te draaien op microcontrollers zoals de Raspberry Pi Pico.

Om MicroPython te gebruiken, moet u het volgende downloaden Thonny en ga naar rechtsonder waar "Python 3.7.9" staat en klik erop, selecteer MicroPython (Raspberry Pi Pico).

U zult waarschijnlijk begroet worden door een pop-up venster dat u vraagt om te updaten. Ga je gang.

De update werkte goed toen ik Thonny op mijn Raspberry Pi OS draaide, maar op Windows was er deze foutmelding "SSL: CERTIFICATE_VERIFY_FAILED".

U kunt dit oplossen door dit certificaat te downloaden (https://letsencrypt.org/certs/lets-encrypt-r3.der), klik dan met de rechtermuisknop op het gedownloade bestand en "Certificaat installeren" en u zult deze fout niet meer tegenkomen.

Met MicroPython geïnstalleerd, kunt u het "Hello World" equivalent van de Raspberry Pi Pico doen en de interne LED laten knipperen door deze code te gebruiken

uit machine importeren Pin, Timer
led = Speld(25, Pin.OUT)
timer = Timer()

def knipperen(timer):
    led.toggle()

timer.init(freq=2.5, mode=Timer.PERIODIC, callback=knipperen)

Druk op RUN, sla het op als knipperen.py en de interne LED van uw Raspberry Pi zou moeten knipperen.

Laten we nu eens kijken naar het equivalente proces op C.

Verdere lectuur

PiCockpit heeft ook een paar guies om u te helpen aan de slag te gaan met MicroPython op de Raspberry Pi Pico.

Raspberry Pi Pico en MicroPython op Windows - gaan we dieper in op het opzetten van MicroPython op Windows op de Raspberry Pi, hoe de juiste driver te installeren op Windows 8.1, verbinding maken met de Pico met PuTTY en een gedetailleerde uitleg van Thonny.

C uitbreiding voor MicroPython op Raspberry Pi Pico - Wat als je MicroPython en C tegelijk zou kunnen draaien en de voordelen van beide talen zou kunnen benutten? C presteert beter dan MicroPython op rekenkundig zware taken en soms wil je misschien wat hardware via een C API vanuit MicroPython interfacen. Deze gids laat zien hoe je dat kunt doen.

Knipperende LED met C/C++

Als u veel fijnere controle nodig hebt, zult u waarschijnlijk C/C++ willen schrijven.

Je Raspberry Pi Pico laten werken met C is veel meer werk. Het is niet zo eenvoudig als het schrijven van MicroPython met Thonny.

De meest eenvoudige manier is het gebruik van een Raspberry Pi microcomputer met Raspberry Pi OS.

Als je een Mac of Windows wilt gebruiken, de officiële gids biedt instructies in hoofdstuk negen.

Voer deze drie commando's uit:

wget https://raw.githubusercontent.com/raspberrypi/pico-setup/master/pico_setup.sh 
$ chmod +x pico_setup.sh
./pico_setup.sh

U hebt ongeveer 2 GB ruimte nodig om dit commando uit te voeren. Zodra dat klaar is, herstart u door sudo herstarten .

Zodra u bent opgestart, opent u Visual Studio Code (onder de map Programmeren in het startmenu) en opent u de map die zich bevindt in /home/pi/pico/pico-voorbeelden. U moet deze map laden en niet een submap.

Dan moet u VS Code configureren. Verwijzend naar de afbeelding hierboven, doe dit:

  1. Klik op het deel dat zegt "Geen Kit";
  2. Een popup zal verschijnen. Kies de optie waar staat "arm-none-eabi";
  3. Klik op [alles] en kies het project dat je wilt compileren. Om de interne LED te laten knipperen, koos ik knipperen
  4. Druk op Build

U zult in staat zijn om de knipperen.uf2 bestand in de /build/blink map.

Kopieer het UF2-bestand naar uw Raspberry Pi Pico en u zult zien dat de interne LED begint te knipperen.

Het bouwen van je eigen project is ingewikkelder in C/C++. De officiële gids heeft hoofdstuk acht die je vertelt hoe je je eigen project maakt.

CircuitPython

Een derde nieuwkomer onder de programmeertalen die werken met de Raspberry Pi Pico is CircuitPython.

Om te beginnen, download het .UF2 bestand hier.

BOOTSEL knop

Houd de BOOTSEL knop ingedrukt en sluit uw Pico aan op uw computer. Je zou een nieuwe drive moeten zien.

Kopieer het .UF2 bestand dat je hebt gedownload naar die drive. Uw Pico zal ontkoppelen en opnieuw verbinden met een nieuwe drive genaamd CIRCUITPY.

In die map, is er een bestand genaamd code.pyen open het met de code editor van uw voorkeur (zelfs Notepad werkt).

Zet deze code erin:

import bord
invoer digitalio
invoer tijd

led = digitalio.DigitalInOut(board.LED)
led.direction = digitalio.Direction.OUTPUT

terwijl waar:
    led.value = True
    time.sleep(0.5)
    led.waarde = False
    time.sleep(0.5)

Zodra u het opslaat, zult u zien dat de interne LED van uw Pico begint te knipperen.

Over het geheel genomen was CircuitPython de vlotste en meest directe manier om je interne LED te laten knipperen. De andere twee opties waren wat omslachtiger, vooral het draaien van C op de Pico (vooral als je probeert om het op Mac/Windows te laten werken).

Met dat gezegd, als je CircuitPython op lange termijn wilt gebruiken, is er een argument om Thonny als je IDE te gebruiken, omdat het pakketten voor je kan downloaden en je ook programma's kunt starten en stoppen door op de play/stop knop op de commandobalk te drukken.

Voor verdere referentie over CircuitPython, zie Adafruit's documentatie. Om terug te gaan naar MicroPython, download een .UF2 bestand van hier en upload het naar je CIRCUITPY drive.

Bonus: Assembler op de Raspberry Pi Pico

Ja, u kunt in assembler schrijven als u de Raspberry Pi Pico niet in C of Python wilt programmeren.

In de FAQ van Raspberry Pi staat dat de Pico SDK een paar functies heeft die in assembler zijn geschreven en dat,

"De processor (dual-core ARM Cortex M0+) implementeert de ARMv6-M Thumb-instructieset, waaronder een aantal 32-bit instructies die gebruikmaken van Thumb-2-technologie. De ARMv6-M instructieset omvat alle 16-bit Thumb instructies van ARMv7-M met uitzondering van CBZ, CBNZ en IT en de 32-bit Thumb instructies BL, DMB, DSB, ISB, MRS en MSR."

Bonus: Rust programmeertaal op de Raspberry Pi Pico

Als je je chagrijnig voelt omdat je een Rustaceaan bent die niet kan wachten om in je voorkeurstaal te schrijven, dan heb ik goed nieuws voor je.

Het hart hiervan is de RP2040 Hardware Abstraction Layer die die je kunt krijgen op GitHub (genaamd rp-hal). Het werkt voor veel borden die gebruik maken van de RP2040 microcontroller anders dan de Raspberry Pi Pico.

Hier is een video die je laat zien hoe je het instelt.

Wat is UF2 en waarom wordt het zo veel gebruikt op de Raspberry Pi Pico?

Het is magisch. Je sleept een UF2 bestand naar je Raspberry Pi Pico en plotseling wordt het hermount met een nieuwe naam of het knippert plotseling met een LED.

UF2 (U F in het kwadraat) staat voor USB Flashing Format. Wanneer u dit naar uw Raspberry Pi sleept, sleept u uw code naast instructies voor de bootloader, zodat deze weet wat te doen met wat u hebt geüpload.

Aansluiten van de Pico via de seriële terminal

Windows

Verbinding maken met de Pico via de seriële terminal is eenvoudig en we hebben een gids hier.

Aansluiten op een Raspberry Pi 4 (Linux)

Om de Raspberry Pi Pico op een Raspberry Pi 4 aan te sluiten, kunt u gebruik maken van USB- of UART-pennen, minicom en een paar jumperdraden.

Raspberry Pi's Aan de slag met Pico heeft alle informatie in hoofdstuk 4, met name 4.4 en 4.5.

Debuggen van de Raspberry Pi Pico

Waar zijn die drie pinnen onderaan voor?

raspberry pi pico debug pins
Raspberry Pi Pico debug pinnen

Deze pennen geven u de mogelijkheid om de Pico te resetten, code in flash te laden, de code uit te voeren en het belangrijkste, debugging-mogelijkheden.

Het grootste voordeel is de geavanceerde debugging-mogelijkheden die u met deze pennen kunt krijgen. U bent nu in staat om veel fijnere code analyse te doen omdat u kunt:

  1. Stel breekpunten in uw code in. Met breekpunten kunt u de verdere uitvoering van de code pauzeren terwijl u bijvoorbeeld de waarden van uw variabelen controleert.
  2. Stap door code uitvoering regel voor regel. Wanneer gaat het fout? Regel voor regel maakt het eenvoudiger om te debuggen.

Ze kunnen worden aangesloten op een Raspberry Pi microcomputer via hun GPIO pinnen. Als je ze op andere machines wilt aansluiten, waarschijnlijk via USB, dan heb je een debug probe nodig.

Een Raspberry Pi Pico kan ook fungeren als een debug probe die je computer verbindt met de Pico waar je aan wilt werken. Zie het zo: je computer heeft niet de GPIO pinnen die nodig zijn om een UART/SWD verbinding te maken, dus ga je een Pico gebruiken om die verbindingen te maken samen met de picoprobe firmware die het mogelijk maakt.

Als u echter van plan bent de SWD te gebruiken voor debugging, moet u een UART-gebaseerde seriële verbinding gebruiken in plaats van een USB-verbinding. Debuggen stopt de kernen van de RP2040, waardoor de USB-verbinding wordt verbroken.

Laten we eens praten over wat elke pin doet:

SWDIO: de Serial Wire Debug Input/Output pin transporteert debug-verkeer tussen de RP2040 en de hostcomputer (een volwaardige computer of een Raspberry Pi microcomputer, bijvoorbeeld).

GND: Aarding. Nodig om een goede signaalintegriteit tussen de host en de Pico te handhaven.

SWCLK: Seriële Draadklok-pen synchroniseert de verbinding.

Je beste kans is om te verwijzen naar de Aan de slag met Pico datasheet van Raspberry Pi, met speciale aandacht voor de hoofdstukken 5, 6 en Appendix A: gebruik van Picoprobe.

Raspberry Pi Pico Projecten

Hier zijn enkele goede projecten voor beginners waarmee u aan de slag kunt met minimale extra onderdelen.

Gemakkelijk sArCasM toetsenbord en macro toetsenbord

Dit is een leuk project dat je zal toelaten om een modifier te maken die normaal typen verandert in sarcasme. In alle ernst, als je weet hoe je Adafruit's HID bibliotheek met een schakelaar moet gebruiken, kan je macro toetsen maken.

Als je sArCaSm op schaal wilt typen, is dat best vermoeiend. Er is een hele makkelijke manier om het met de Raspberry Pi Pico te doen.

Je hebt niets anders nodig dan je Raspberry Pi Pico voor het meest basale ontwerp. Je Raspberry Pi Pico moet echter CircuitPython hebben met Adafruit's HID bibliotheek.

In Thonny's normale modus, ga naar Gereedschap -> Pakketten beheren en zoek naar adafruit-circuitpython-hid. Installeer het.

Zorg er ook voor dat je de CircuitPython interpreter gebruikt, te vinden rechtsonder in Thonny.

Zet deze code erin,

invoer tijd
import bord
importeren usb_hid
importeer toetsenbord uit adafruit_hid.keyboard
uit adafruit_hid.keycode import Sleutelcode

toetsenbord = Keyboard(usb_hid.devices)

terwijl waar:

        keyboard.press(Keycode.CAPS_LOCK)
        time.sleep(0.2)
        toetsenbord.release(Keycode.CAPS_LOCK)

Upload de code naar je Pico. Indien nodig, druk op de RUN knop in Thonny.

Telkens als u nu uw Raspberry Pi Pico op de computer aansluit... HOUD HET MAgIc HAPPEn VOOR UW OGEN.

Wat dit script doet is dat het Caps Lock aan en uit zet om de 0.2 seconden, zoals aangegeven in time.sleep(0.2). Als u de waarde binnen de haakjes wijzigt, kunt u de frequentie waarmee u van koffer wisselt, nauwkeurig afstellen.

Een schakelaar toevoegen aan dit project

een schakelaar toevoegen aan raspberry pi pico

Dit basisontwerp heeft het nadeel dat je aan de USB moet trekken om het sarcasme te stoppen.

Laten we een schakelaar toevoegen waarmee we deze functie aan en uit kunnen zetten.

Laten we ook de LED van het bord aan laten als het sarcasme geactiveerd is.

Schema om een schakelaar aan te sluiten op de Raspberry Pi Pico met Wokwi.

Een drukknopschakelaar heeft vier pinnen. Verbind de 3.3V pin en GPIO 22 (gelabeld als GP 22) aan diagonaal tegenovergestelde zijden van de drukknop.

Wat hier gebeurt, is dat wanneer je de schakelaar indrukt, je de 3,3V verbindt met de GPIO 22 pin, waardoor, in lekentaal, de schakelaar wordt geactiveerd.

Dit is de enige fysieke aanpassing die je hoeft te doen. Het is heel gemakkelijk.

Wat de code betreft, die is met een flink aantal regels gegroeid, (vet = in verband met knop, cursief = in verband met LED)

invoer tijd
invoer digitalio
import bord
importeren usb_hid
importeer toetsenbord uit adafruit_hid.keyboard
uit adafruit_hid.keycode import Sleutelcode

toetsenbord = Keyboard(usb_hid.devices)

btn1_pin = board.GP22
btn1 = digitalio.DigitalInOut(btn1_pin)
btn1.direction = digitalio.Direction.INPUT #GP22 is een ingang
btn1.pull = digitalio.Pull.DOWN #DOWN betekent dat de uitgang False is


led = digitalio.DigitalInOut(board.LED)
led.direction = digitalio.Direction.OUTPUT #powering LED, dus geef het OUTPUT
 
activated = False #deze variabele slaat op of sarcasme aan of uit is

terwijl waar:
    if btn1.value: #if gebruiker drukt op btn1, start sarcasme
        geactiveerd = Waar
        
    indien geactiveerd:
        led.value = True 1TP4Draai de board LED aan
        keyboard.press(Keycode.CAPS_LOCK)
        time.sleep(0.2)
        keyboard.release(Keycode.CAPS_LOCK)
        als btn1.value: 1TP4Als gebruiker op btn1 drukt terwijl geactiveerd, annuleert sarcasme
            geactiveerd = vals
            led.value = False 1TP4Draai LED uit
            time.sleep(0.2) 
            #pauzeert while-lus om gebruiker tijd te geven vinger van btn1 te halen

Sarcasme toetsenbord omzetten in macro toetsenbord

U kunt de toets gebruiken om macro's te activeren zoals ALT + TAB, CTRL + ALT + DEL of iets anders tot een maximum van zes gewone toetsen.

Je hoeft alleen maar de toetsen binnen deze methode keyboard.press en keyboard.release aan te passen.

invoer tijd
invoer digitalio
import bord
importeren usb_hid
importeer toetsenbord uit adafruit_hid.keyboard
uit adafruit_hid.keycode import Sleutelcode

toetsenbord = Keyboard(usb_hid.devices)

btn1_pin = board.GP22
btn1 = digitalio.DigitalInOut(btn1_pin)
btn1.direction = digitalio.Direction.INPUT
btn1.pull = digitalio.Pull.DOWN

while True:
    if btn1.value:
        keyboard.press(Keycode.ALT,Keycode.TAB )
        time.sleep(0.2)
        keyboard.release(Keycode.ALT,Keycode.TAB)

Er zijn nog veel meer dingen die je met deze toetsenbordhack kunt doen. Je kunt dit bijvoorbeeld gebruiken om te voorkomen dat je screensaver opduikt door op een onschuldige toets te drukken zoals Page Up. Of je kunt het specifiek gebruiken om Zoom, Discord, OBS, Meet, enz. te bedienen.

Temperatuur-/vochtigheidsgegevens met DHT22

raspberry pi pico dht22

Als u een DHT11, DHT22 of AM2302 sensor hebt, kunt u die gebruiken met de Raspberry Pi Pico.

Deze sensoren zouden waarschijnlijk het best gekoppeld worden met een LCD of een manier om de gegevens op te slaan, maar laten we gewoon beginnen met een snelstartproject.

Je hebt drie jumper draden nodig, headers op de Raspberry Pi Pico en een weerstand van 10K. Het volgende pakket heeft alles wat je nodig hebt, behalve de Raspberry Pi Pico met headers.

Het is heel eenvoudig met Thonny, CircuitPython en Adafruit's DHT bibliotheek.

De volgende stappen maken gebruik van de DHT22.

Aansluiten van de DHT22 sensor op de Raspberry Pi Pico

Het is heel eenvoudig om de DHT22 op de Pico aan te sluiten.

raspberry pi pico dht22

Er zitten vier pinnen op de DHT22. Van links naar rechts, met de gemaasde kant naar je toe, zijn de pinnen VCC, DATANC en GND. Je hoeft NC niet aan te sluiten.

Connect VCC naar de 3.3V pin op de Pi.

Sluit de weerstand van 10K van de 3,3V aan op DATAsluit dan aan DATA naar GP0. Dit is gemakkelijker te doen met een breadboard, zodat je de 3,3V kunt splitsen. Zoals op de foto hierboven te zien is, gaat er een weerstand van de meest linkse pin naar de tweede pin, ook de groene draad is verbonden met de GPIO 0.

Connect GND aan een aardingspen van uw Raspberry Pi Pico.

Je bent klaar. Het is tijd voor software.

raspberry pi pico dht22
Schema gemaakt van Wokwi.

Codering van de DHT22 in Thonny voor de Raspberry Pi Pico

Open eerst Thonny en zorg dat je in Normale Modus bent en CircuitPython (rechtsonder). Een meer gedetailleerde handleiding voor Thonny en CircuitPython is hierboven beschikbaar.

Ga naar Extra -> Beheer pakketten -> zoek naar adafruit-circuitpython-dht.

raspberry pi pico dht22

Voer dan deze door Adafruit geleverde code in.

importtijd

importeren adafruit_dht
importeren bord

dht = adafruit_dht.DHT22(board.GP0)

terwijl waar:
    try:
        temperatuur = dht.temperatuur
        vochtigheid = dht.vochtigheid
        # Print wat we kregen naar de REPL
        print("Temp: {:.1f} *Vochtigheid: {}%".format(temperatuur, vochtigheid))
    behalve RuntimeError als e:
        # Lezen werkt niet altijd! Druk gewoon de fout af en we proberen het opnieuw
        print("Lezen uit DHT mislukt: ", e.args)

    time.sleep(1)

Druk op Run in Thonny en je zou een uitvoer moeten zien:

pi dht22

Raspberry Pi Pico scherm

De Raspberry Pi Pico is erg cool omdat hij beelden kan weergeven.

Het nadeel is dat het nogal wat werk vereist, enige technische kennis en dat u afbeeldingen krijgt die eruit zien alsof ze uit het Windows 3.1 tijdperk stammen.

Waarom is dat? Vanwege het beperkte RAM geheugen van 264KB. Dit beperkt uw beeldschermresolutie en kleurdiepte.

Dit gezegd zijnde, hier zijn enkele voorbeelden van wat u kunt uitvoeren.

Eenvoudige video-uitgang met DVI-sok

De gemakkelijkste manier om video uit te voeren is door onze gids te volgen en de DVI sok of de VGA & Audio uitbreidingskaart te gebruiken. De DVI-sok gebruikt een HDMI-kabel, wat waarschijnlijk de meest compatibele poort is met de huidige apparaten.

Lees hier het volledige artikel over hoe u kunt beginnen

DIY-manieren om Pico aan te sluiten op scherm

Er zijn andere manieren om video te produceren zonder randapparatuur aan te schaffen.

Miroslav Nemecek schreef een artikel over hoe je acht weerstanden en een VGA-poort om een monitor aan te sluiten naar uw Raspberry Pi Pico.

En hier is een manier om een HDMI-kabel en weerstanden te gebruiken om je Pico op een HDMI-monitor aan te sluiten.

Raspberry Pi Pico stroomverbruik

Het Pico-gegevensblad van Raspberry Pi biedt ons een goede basis om te begrijpen hoeveel stroom de Pico verbruikt, gebaseerd op bepaalde typische toepassingen.

Deze cijfers geven niet het absolute maximum weer dat u uit de Raspberry Pi Pico kunt halen, maar zijn een goed uitgangspunt.

Hun eerste test omvatte video, audio en SD kaart toegang om een "Popcorn" media speler demo te tonen via de VGA, SD kaart en Audio kaart.

Staat
Spelen Popcorn (video, audio, SD-kaart)93.5mA
BOOTSEL mode, actief9.9mA
DORMANTE modus0.8mA
SLAAP-stand1.3mA

U vraagt zich misschien af: wat is het verschil tussen DORMANT en SLAPEN?

Dormant vereist een externe trigger die een GPIO pin manipuleert om de Raspberry Pi Pico te wekken, terwijl SLEEP een interne klok kan laten lopen om de RP2040 te wekken, zoals geïllustreerd in de RP2040 informatieblad.

In de Raspberry Pi Pico FAQ, verduidelijken ze dat verder,

"SLEEP mode" is wanneer processoren in wfi/wfe staan en DMA inactief is, zodat je de meeste systeemklokken kunt uitschakelen, inclusief dingen als bus fabric.
DORMANT-mode is wanneer je alle oscillatoren uitschakelt, en is dus nog steeds lager vermogen, maar dan heb je minder opties om wakker te worden."

Kan ik de Raspberry Pi Pico op een powerbank laten werken?

raspberry pi pico power bank batterij

Ja, dat kan je wel.

Maar het kan zijn dat de Raspberry Pi Pico niet genoeg stroom uit de powerbank haalt en dat de powerbank in de energiebesparingsmodus gaat.

De oplossing is om, helaas, meer stroom te trekken door een weerstand tussen de powerbank en de Raspberry Pi Pico te plaatsen. Hier is een video om de ins en outs uit te leggen.

De Pico van stroom voorzien (spanningen)

De Raspberry Pi Pico kan worden gevoed via de microUSB poort. Deze voedt de VSYS vanuit de 5V VBUS spanning, via D1.

Als u de USB-poort niet gebruikt om uw Raspberry Pi Pico van stroom te voorzien, dan kunt u de VSYS aansluiten op uw stroombron in de 1,8V tot 5,5V.

Als u echter beide aansluit, moet u de tweede voedingsbron via een Schottky-diode naar de VSYS leiden, wat voorkomt dat een van beide voedingsbronnen de andere van tegenspanningen voorziet. De Schottky diode zal ook de hoogste van ofwel de VBUS spanning ofwel de externe spanning laten stromen.

Er is echter een spanningsval over de Schottky-diode, zodat u een spanning van 2,3V tot 5,5V moet leveren.

Dit betekent dat u de Raspberry Pi Pico kunt voeden met minimaal 2x nikkel oplaadbare batterijen (2,4V) of 1x lithiumbatterij (3,7V).

Om geen efficiëntie te verliezen door het gebruik van de Schottky-diode, kunt u in plaats daarvan een P-kanaals MOSFET gebruiken die een lage weerstand heeft.

Voor meer informatie, zie de Raspberry Pi Pico Datasheet.

Kan je de Raspberry Pi Pico van stroom voorzien via de USB van een TV?

Ja, dat kan je wel. Hier is een beeld waar ik interne LED liet knipperen.

raspberry pi pico stroomverbruik (2)

Een standaard USB-poort zou tot 500mA moeten kunnen leveren, wat veel meer is dan wat de Raspberry Pi Pico nodig heeft. Zoals u kunt zien in de stroomverbruiktests die door Raspberry Pi zijn gedaan, trok de meest intensieve test slechts ongeveer 90mA.

U kunt problemen krijgen als uw Raspberry Pi Pico-installatie meer dan 500 mA verbruikt, bijvoorbeeld als uw Pico randapparatuur gebruikt die veel stroom verbruikt.

Raspberry Pi Pico vs andere borden

De Raspberry Pi Pico is een late nieuwkomer in de wereld van de microcontrollers, aangezien hij pas in 2021 op de markt kwam. In de wereld van de microcontrollers is er al stevige concurrentie van ESP32's en Arduino's, die vele varianten hebben die u kunnen helpen uw project op te starten met de juiste functies, zoals WiFi.

Er zijn geen varianten met de Raspberry Pi Pico, dus u zult HATs en andere add-ons moeten kopen om hetzelfde doel te bereiken.

Bovendien, als je veel componenten gaat toevoegen... wanneer wordt het dan tijd om gewoon een microcomputer te kopen?

Laten we deze vraag beantwoorden door te kijken naar de ESP32, de Arduino Uno en de Raspberry Pi Zero.

Raspberry Pi Pico vs Espressif ESP32

De ESP32 is een grote stap vooruit ten opzichte van de Raspberry Pi Pico wat betreft zijn technologische mogelijkheden. Om een vergelijking te kunnen maken, heb ik de PICO-KIT variant gekozen, omdat die qua vormfactor het meest lijkt op de Pico.

Ten eerste is het hebben van WiFi en Bluetooth een grote verandering. Zo kunt u bijvoorbeeld op de Espressif ESP32 een server draaien die de waarden van uw sensoren weergeeft, terwijl dit niet mogelijk is op de Raspberry Pi Pico.

De ESP32 heeft ook een snellere processor, meer RAM en meer flash-geheugen, maar dit alles gaat ten koste van een hoger stroomverbruik.

De Raspberry Pi Pico is wat bescheidener in zijn specificaties, maar twee dingen vallen op. Het feit dat hij spanningen van 1,8 V tot 5,5 V aankan, maakt het echt mogelijk om één lithiumbatterij te gebruiken, wat een zeer compact pakket oplevert. Dit zou niet mogelijk zijn met de ESP32, tenzij je de 3,7V spanning van de enkele lithium batterij zou aanpassen.

Raspberry Pi PicoEspressif ESP32-PICO-KIT
CPU Frequentie133MHz80/160/240MHz
MicrocontrollerRP2040Xtensa LX6
Kernen22
Flashgeheugen2MB4MB
RAM256KB520KB
GPIO26 (door gebruiker te gebruiken)36
Heeft USB?microUSBmicroUSB
WiFi en/of BT?GeenJa, allebei
Spanning1.8 - 5.5V of 5V USB3,3V (via pennen) of 5V via USB of 5V-12V (via spanningsregelaar)
Stroomverbruik (met activiteit)93mA (popcorntest)100-128mA1
Maat51x21mm52x20mm
TalenMicroPython / CMicroPython / C

Opmerking: de energieverbruikscijfers van de ESP32 zijn gebaseerd op de uitvoering van een programma met een lege lus.

Raspberry Pi Pico vs Arduino Uno Rev3

Arduino maakt een heleboel boards en qua vormfactor komt de Arduino Nano waarschijnlijk het dichtst in de buurt, met 45 x 18 mm. Arduino produceert ook een bord dat de RP2040 microcontroller gebruikt.

Het meest gebruikte bord is echter de Arduino Uno Rev3, dus laten we eens kijken hoe deze twee borden zich tot elkaar verhouden.

Raspberry Pi PicoArduino Uno Rev3
CPU Frequentie133MHz16 MHz
MicrocontrollerRP2040ATmega328P
Flashgeheugen2MB32KB
RAM256KB2KB
GPIO26 (door gebruiker te gebruiken)14 digitaal, 6 analoog
Heeft USB?microUSBUSB B
WiFi en/of BT?GeenWiFi-variant beschikbaar
Spanning1.8 - 5.5V of 5V USB6-20V (7-12V aanbevolen) of via USB.
Maat51x21mm68x53mm
TalenMicroPython / CC

Voor beginners is een van de grootste verschillen dat de Arduino Uno werkt op 5V logica terwijl de Raspberry Pi Pico werkt op 3.3V logica.

5V kan het mogelijk makkelijker maken voor beginners omdat sommige componenten een 5V input nodig hebben, zoals relais. Als u een 5V-component hebt die u op de Raspberry Pi Pico wilt gebruiken, zult u extra componenten moeten leveren om 3,3V naar 5V op te voeren.

Het andere verschil is dat de Arduino Uno open source is, wat betekent dat je goedkopere boards kunt kopen die exact dezelfde mogelijkheden hebben. Dat gezegd zijnde, de Raspberry Pi Pico is al extreem goedkoop voor $4 of 4,10€.

De Arduino Uno kan ook een veel breder spanningsbereik aan (7-12V aanbevolen), wat betekent dat je hem op veel soorten voedingen kunt laten werken.

Wat programmeertalen betreft, heeft de Pico het voordeel dat je in MicroPython kunt coderen, terwijl je voor de Arduino C zult moeten schrijven. Dat gezegd hebbende, de Arduino heeft een grotere bibliotheek om het werken met componenten gemakkelijker te maken.

Raspberry Pi Pico vs Raspberry Pi Zero

pi zero pi pico
Foto door Harrison Broadbent.

Tot op zekere hoogte hebben de Pico en de Zero overlappende mogelijkheden. In eenvoudige schakelingen kunt u de Pico en de Zero gebruiken om precies hetzelfde te doen.

Maar hoe je tot hetzelfde punt komt, verschilt tussen de Pico en de Zero.

Hier is de logica die ik gebruik om te beslissen welke te gebruiken:

ScenarioWat te krijgen
Ik ben beter in een andere taal dan C/PythonZero
Ik heb "onbeperkte" stroom (d.w.z. niet-zonne-energie of batterijgebruik)Zero
Ik heb WiFi en/of Bluetooth nodigZero
Ik moet gegevens opslaan (zoals temperatuur logs)Zero
Ik moet een camera gebruikenZero
Ik heb de meest compacte opstelling nodigPico
Ik heb een snelle herstart nodig bij een crash/stroomstoringPico
Ik wil geen OS opzettenPico
Ik wil de goedkopere optiePico

Een meer gedetailleerd overzicht van de redenen om voor de Pico of Zero te kiezen is hierboven behandeld, en deze link brengt u erheen.

Raspberry Pi Pico vs Teensy 4.1

De Teensy 4.1 is een zeer krachtig board vanwege zijn ARM Cortex-M7 chip die op 600MHz draait.

De Teensy 4.1, die in 2021 door PJRC werd uitgebracht, zou mensen aanspreken die iets nodig hebben met veel rekenkracht, RAM, flashgeheugen, ethernet en meer GPIO-pinnen dan wat je in de Raspberry Pi Pico zou vinden.

U krijgt 55 ingangs-/uitgangspinnen, maar slechts 42 zijn "breadboardbaar". Er zijn 35 PWM pinnen, 18 analoge ingangen, 8 seriële, 3 SPI en 3 I2C.

Waar de Raspberry Pi Pico in uitblinkt, is zijn eenvoud. Als u net begint met leren en op zoek bent naar de eenvoudigste manier om aan de slag te gaan met eenvoudige projecten, dan is de Raspberry Pi Pico de eenvoudigste manier om aan de slag te gaan.

De programmeertaal van de Raspberry Pi Pico is bijvoorbeeld MicroPython, terwijl de Teensy 4.1 hoofdzakelijk in C wordt geprogrammeerd.

Het is ook heel gemakkelijk om CircuitPython te gebruiken op de Raspberry Pi Pico, wat het gemakkelijker maakt om projecten te bouwen.

De prijs van de Teensy 4.1 is met $26,85 een heel stuk hoger dan de $4 Raspberry Pi Pico.

Bovendien is het veel gemakkelijker om de Raspberry Pi Pico op een batterij te voeden, omdat hij een breed voltage aankan.

Raspberry Pi PicoTeensy 4.1
CPU Frequentie133MHz600MHz
Flashgeheugen2MB8MB
RAM256KB1024KB
GPIO26 (door gebruiker te gebruiken)55 digitaal, 18 analoog
Heeft USB?microUSBmicroUSB
WiFi en/of BT?GeenNee, maar heeft Ethernet
Spanning1.8 - 5.5V of 5V USB5V via USB of VIN
Maat51x21mm61x15mm

Raspberry Pi Pico downloads

Ik heb een lijst samengesteld van bestanden die je kunnen helpen bij je projecten. De meeste staan op de datasheet subdomein van Raspberry Pi en wat hier staat is wat relevant is voor de Raspberry Pi Pico.

Referenties

Raspberry Pi Pico pinout

Raspberry Pi Pico schema's

Raspberry Pi Pico gegevensblad (over de Pico, mechanische/elektrische specificaties, kenmerken, voeding, debugging, schema, plaats van de onderdelen)

Raspberry Pi Pico product beknopt (marketing deck)

RP2040 informatieblad

Raspberry Pi Pico Fritzing bestand

Raspberry Pi Pico FAQ

10 merkwaardige Raspberry Pi Pico feiten

Programmering

C uitbreiding voor MicroPython

Raspberry Pi Pico en MicroPython op Windows

Raspberry pi Pico Aan de slag met Pico (voor C/C++ ontwikkeling)

CircuitPython voor Raspberry Pi Pico UF2 bestand

Thonny

Aan de slag met MicroPython op Raspberry Pi Pico

Raspberry Pi Pico C SDK (software development kit) documentatie

Raspberry Pi Pico MicroPython SDK (software development kit) documentatie

CAD

Raspberry Pi Pico STEP-bestand

RP2040 minimaal KiCAD bestand

RP2040 VGA KiCAD bestand

2 Opmerkingen

  1. Antony op april 18, 2022 op 11:54 am

    Het stroomverbruik is geen 6W, maar 0,5W (100mA bij 5V)

    • Xuyun Zeng op april 20, 2022 op 5:02 am

      Hé Antony, ik heb het gecorrigeerd. Bedankt voor je inbreng.

Laat een reactie achter