Alles over de Raspberry Pi Pico
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.
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
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
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.
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).
Een analyse door Joey Castillo liet zien dat de efficiëntie van de buck converter van de Pico piekt bij 2,54V tot 3,2V (gelijk aan 2 volledig opgeladen AA oplaadbare/alkaline batterijen) als je <=10mA stroom trekt.
Bij hogere stromen kunt u echter beter 3 AA-batterijen of de spanning van één lithiumbatterij leveren.
Deze statistieken gelden misschien niet voor de Pico W, omdat de Pico W een andere buck converter gebruikt. De Pico W gebruikt de RT6154 terwijl de Pico de RT6150. Klik op de links om hun respectievelijke datasheets te bekijken.
Hier is de grafiek voor de buck converter van de Pico:
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 over het voltage dat je hem geeft? Hij accepteert alleen 4,75 - 5,25V.*
* Volgens Arya, die hieronder een reactie achterliet, kan de Raspberry Pi Zero op een enkele lithiumbatterij werken zolang je geen USB-randapparatuur hebt. Bedankt Arya.
Macro toetsenborden, draaiknoppen en andere HID's
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.
sArCaSm kEyBoArD
Bouwde een sarcasme omvormer voor je toetsenbord. Plug een gewoon toetsenbord in, zet de schakelaar om en laat de wereld weten hoe je echt over dingen denkt pic.twitter.com/J3cAOfCAvw
- Ben S (@BenSommerf) 26 januari 2022
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.
Scenario | Microcontroller (b.v. Raspberry Pi Pico) | Microcomputer (b.v. Raspberry Pi Zero) |
Een server draaien | Geen | Ja |
Een LED laten knipperen | Veel sneller van begin tot eind | Veel langzamer; veel meer processen te doorlopen |
Auto-herstart programma bij stroomuitval? | Ja | Niet standaard |
Videospelletjes spelen | Geen | Ja |
Loopt op de batterij? | Ja, de kans is groot dat hij gemiddeld langer meegaat | Ja, gaat gemiddeld niet zo lang mee |
Warmtehuishouding? | Gewoonlijk niet vereist | Koellichamen, ventilatoren, thermisch geleidende behuizingen |
Kosten? | Lager | Hoger |
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:
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.
Raspberry Pi Pico Specs
Raspberry Pi Pico | |
Prijs | €4.10 (raad) €24.95 (beginners Raspberry Pi Pico kit) |
CPU | RP2040 met dual-core Cortex M0+ tot 133MHz |
CPU mogelijkheden | On-chip PLL maakt variabele kernfrequentie mogelijk |
CPU-frequentie | tot 133MHz, over/onderklokbaar |
GPU | Geen GPU |
RAM | 264 kB ingebed SRAM in 6 banken |
Netwerk | Niet inbegrepen, maar u kunt het toevoegen |
Bluetooth | Niet inbegrepen |
HDMI-poort | Niet inbegrepen, maar u kunt het toevoegen |
USB-poort | MicroUSB voor voeding en gegevens |
Composiet video | Niet inbegrepen, maar u kunt het toevoegen |
Reset pin | Niet inbegrepen, maar u kunt het erin solderen |
Camera poort | Geen |
Stroomverbruik | ~1.3mA in SLEEP mode tot 93mA in "Popcorn" test |
Stroomvoorziening | 5V via microUSB of 1,8 - 5,5V via VSYS |
vormfactor | 51 x 21 mm |
Heeft de Raspberry Pi Pico HDMI?
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?
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.
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.
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.
Taal | MicroPython | C/C++ | CircuitPython |
Vereiste opstelling voor eerste run | Medium | Hoogste | Laagste |
Stappen om een nieuw programma te maken | Medium | Hoogste | Laagste |
Controle over hardware | Medium | Hoogste | Medium |
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
from machine import Pin, Timer
led = Pin(25, Pin.OUT)
timer = Timer()
def blink(timer):
led.toggle()
timer.init(freq=2.5, mode=Timer.PERIODIC, callback=blink)
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:
- Klik op het deel dat zegt "Geen Kit";
- Een popup zal verschijnen. Kies de optie waar staat "arm-none-eabi";
- Klik op [alles] en kies het project dat je wilt compileren. Om de interne LED te laten knipperen, koos ik knipperen
- 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.
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 board
import digitalio
import time
led = digitalio.DigitalInOut(board.LED)
led.direction = digitalio.Direction.OUTPUT
while True:
led.value = True
time.sleep(0.5)
led.value = 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?
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:
- 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.
- 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.
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,
import time
import board
import usb_hid
from adafruit_hid.keyboard import Keyboard
from adafruit_hid.keycode import Keycode
keyboard = Keyboard(usb_hid.devices)
while True:
keyboard.press(Keycode.CAPS_LOCK)
time.sleep(0.2)
keyboard.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
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.
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)
import time
import digitalio
import board
import usb_hid
from adafruit_hid.keyboard import Keyboard
from adafruit_hid.keycode import Keycode
keyboard = Keyboard(usb_hid.devices)
<strong>btn1_pin = board.GP22
btn1 = digitalio.DigitalInOut(btn1_pin)
btn1.direction = digitalio.Direction.INPUT #GP22 is an input
btn1.pull = digitalio.Pull.DOWN #DOWN means it outputs False
</strong>
<em>led = digitalio.DigitalInOut(board.LED)
led.direction = digitalio.Direction.OUTPUT</em> #powering LED, so give it OUTPUT
activated = False #this variable stores if sarcasm is on or off
while True:
<strong>if btn1.value: #if user presses btn1, start sarcasm
activated = True</strong>
if activated:
<em>led.value = True</em> #turn on board LED
keyboard.press(Keycode.CAPS_LOCK)
time.sleep(0.2)
keyboard.release(Keycode.CAPS_LOCK)
if <strong>btn1.value: #if user presses btn1 while activated, cancels sarcasm
activated = False
<em>led.value = False</em> #turn off LED
time.sleep(0.2)</strong>
<strong>#pauses while loop to give user time to remove finger from btn1</strong>
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.
import time
import digitalio
import board
import usb_hid
from adafruit_hid.keyboard import Keyboard
from adafruit_hid.keycode import Keycode
keyboard = 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:
<strong>keyboard.press(Keycode.ALT,Keycode.TAB )</strong>
time.sleep(0.2)
<strong>keyboard.release(Keycode.ALT,Keycode.TAB)</strong>
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
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.
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.
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.
Voer dan deze door Adafruit geleverde code in.
import time
import adafruit_dht
import board
dht = adafruit_dht.DHT22(board.GP0)
while True:
try:
temperature = dht.temperature
humidity = dht.humidity
# Print what we got to the REPL
print("Temp: {:.1f} *C \t Humidity: {}%".format(temperature, humidity))
except RuntimeError as e:
# Reading doesn't always work! Just print error and we'll try again
print("Reading from DHT failure: ", e.args)
time.sleep(1)
Druk op Run in Thonny en je zou een uitvoer moeten zien:
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, actief | 9.9mA |
DORMANTE modus | 0.8mA |
SLAAP-stand | 1.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?
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 ik 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.
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 Pico | Espressif ESP32-PICO-KIT | |
CPU Frequentie | 133MHz | 80/160/240MHz |
Microcontroller | RP2040 | Xtensa LX6 |
Kernen | 2 | 2 |
Flashgeheugen | 2MB | 4MB |
RAM | 256KB | 520KB |
GPIO | 26 (door gebruiker te gebruiken) | 36 |
Heeft USB? | microUSB | microUSB |
WiFi en/of BT? | Geen | Ja, allebei |
Spanning | 1.8 - 5.5V of 5V USB | 3,3V (via pinnen) of 5V via USB of 5V-12V (via spanningsregelaar) |
Stroomverbruik (met activiteit) | 93mA (popcorntest) | 100-128mA1 |
Maat | 51x21mm | 52x20mm |
Talen | MicroPython / C | MicroPython / 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 Pico | Arduino Uno Rev3 | |
CPU Frequentie | 133MHz | 16 MHz |
Microcontroller | RP2040 | ATmega328P |
Flashgeheugen | 2MB | 32KB |
RAM | 256KB | 2KB |
GPIO | 26 (door gebruiker te gebruiken) | 14 digitaal, 6 analoog |
Heeft USB? | microUSB | USB B |
WiFi en/of BT? | Geen | WiFi-variant beschikbaar |
Spanning | 1.8 - 5.5V of 5V USB | 6-20V (7-12V aanbevolen) of via USB. |
Maat | 51x21mm | 68x53mm |
Talen | MicroPython / C | C |
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
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:
Scenario | Wat te krijgen |
Ik ben beter in een andere taal dan C/Python | Zero |
Ik heb "onbeperkte" stroom (d.w.z. niet-zonne-energie of batterijgebruik) | Zero |
Ik heb WiFi en/of Bluetooth nodig | Zero |
Ik moet gegevens opslaan (zoals temperatuur logs) | Zero |
Ik moet een camera gebruiken | Zero |
Ik heb de meest compacte opstelling nodig | Pico |
Ik heb een snelle herstart nodig bij een crash/stroomstoring | Pico |
Ik wil geen OS opzetten | Pico |
Ik wil de goedkopere optie | Pico |
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 Pico | Teensy 4.1 | |
CPU Frequentie | 133MHz | 600MHz |
Flashgeheugen | 2MB | 8MB |
RAM | 256KB | 1024KB |
GPIO | 26 (door gebruiker te gebruiken) | 55 digitaal, 18 analoog |
Heeft USB? | microUSB | microUSB |
WiFi en/of BT? | Geen | Nee, maar heeft Ethernet |
Spanning | 1.8 - 5.5V of 5V USB | 5V via USB of VIN |
Maat | 51x21mm | 61x15mm |
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 gegevensblad (over de Pico, mechanische/elektrische specificaties, kenmerken, voeding, debugging, schema, plaats van de onderdelen)
Raspberry Pi Pico product beknopt (marketing deck)
Raspberry Pi Pico Fritzing bestand
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
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
Het stroomverbruik is geen 6W, maar 0,5W (100mA bij 5V)
Hé Antony, ik heb het gecorrigeerd. Bedankt voor je inbreng.
chyba na wyjściach pinów. Tak przynajmniej jest w karcie technologicznej PICO
Puedo conectar por usb una Raspberry Pi Pico con un Arduino Nano. que la rrasberry envíe por usb datos al arduino?
Gracias
pico w heeft nu wifi
> Oh, had ik al gezegd dat de Raspberry Pi Zero erg kieskeurig is over het voltage dat je hem geeft? Hij kan alleen 4.75 - 5.25V aan.
onjuist, dat is de opgegeven specificatie, maar het pakt lager dan dat en doet wonderen. zie hier: https://hackaday.io/project/19035/log/69596
Heel mooi geschreven! Ik vond dit leuk: "Nou, bijvoorbeeld, een van mijn projecten gebruikte een potentiometer om de schakelfrequentie van een relais te regelen." - Ik vroeg me af of je dit project kon delen als voorbeeld. Heb je PIO / PIO State Machine gebruikt?
Geen PIO gebruikt!
Als je een potmeter op een ADC aansluit, krijg je een waarde. Door aan de pot te draaien wordt de waarde verhoogd of verlaagd.
Ik heb die waarden gebruikt om een timer te maken. Dus als de waarde bijvoorbeeld 2000 is, komt dat overeen met 2 seconden aan en 2 seconden uit.
Buenas, es posible que la raspberry pi pico se queme al recibir de entrada una correinte de 2A pero voltaje de 5V?
Gebruikt u een mobiele cargador die een 2A kabel heeft? Hoewel er altijd risico's zijn, denk ik dat de Pico alleen de benodigde stroomsterkte gebruikt, hoewel uw auto maximaal 2A kan gebruiken.
Je bent niet beperkt tot C of microPython om te programmeren. Ik heb pico's met FORTH- en BASIC-interpreters geïnstalleerd en er is altijd nog CircuitPython.
bedankt voor de feedback - interessant om te weten dat je talen als FORTH ook op de Pico kunt draaien!
Su Raspberry Pi Pico W non riesco ad installare la libreria adafruit-circuitpython-hid.
Inizia l'installazione e dopo un po mi da errore 28 memoria piena.
dove sbaglio?
Grazie 1000
Geweldig artikel! Ik heb een Pico gebruikt voor mijn aangepaste toetsenbord met kmk-firmware (op python gebaseerd circuit) en het is geweldig.
Ik heb onlangs een paar pico klonen gekocht op aliexpress voor maar 2,7 dollar met type C en 16 mb... Nog niet getest.