Raspberry Pi Pico: Vale a pena aprender?
Aprenda como usar todos os periféricos do Raspberry Pi Pico, Como instalar bibliotecas no Thonny IDE e ainda veja um comparativo do Pico/Pico W com ESP32, tudo em um único post.
Mais completo que isso somente o datasheet.
O Raspberry Pi Pico desde o lançamento vem sendo muito desejado por muitos projetistas, mas será que realmente vale a pena aprender? Neste post você vai aprender tudo sobre ele.
1 Surgimento do Raspberry Pi Pico
Quem acompanha a empresa Raspberry Pi, sabe que todos seus lançamentos tem um preço base para um determinado produto e o propósito disso é democratizar ao máximo o acesso aos produtos…
Ver no WordPress
0 notes
Raspberry Pi Pico W has been designed to be a low cost yet flexible development platform for RP2040, with a 2.4GHz wireless interface and the following key features:
RP2040 microcontroller with 2MB of flash memory
On-board single-band 2.4GHz wireless interfaces (802.11n)
Micro USB B port for power and data (and for reprogramming the flash)
40 pin 21mmx51mm ‘DIP’ style 1mm thick PCB with 0.1″ through-hole pins also with edge castellations
Exposes 26 multi-function 3.3V general purpose I/O (GPIO)
23 GPIO are digital-only, with three also being ADC capable
Can be surface mounted as a module
3-pin ARM serial wire debug (SWD) port
Simple yet highly flexible power supply architecture
Various options for easily powering the unit from micro USB, external supplies or batteries
High quality, low cost, high availability
Comprehensive SDK, software examples, and documentation
Dual-core Cortex M0+ at up to 133MHz
On-chip PLL allows variable core frequency
264kByte multi-bank high-performance SRAM
2 notes
·
View notes
10 Exciting RP2040 Project Ideas
The Raspberry Pi Pico, powered by the RP2040 microcontroller, has taken the maker community by storm with its affordability and versatility. If you're looking for some exciting project ideas to try with your RP2040, you're in the right place! In this article, we'll explore 10 innovative projects that showcase the capabilities of the RP2040 and inspire your next creation.
Introduction
The RP2040 is a powerful microcontroller that can be used in a wide range of projects, from simple LED blinkers to complex IoT devices. Its dual-core ARM Cortex-M0+ processor and generous amount of RAM make it ideal for multitasking and handling various tasks simultaneously. Let's dive into some exciting project ideas to unleash the full potential of the RP2040.
1. Blinking LED
A classic project for beginners, the blinking LED demonstrates the basic functionality of the RP2040. By controlling the GPIO pins, you can make an LED blink at different rates, creating various patterns and effects.
2. Temperature Monitoring System
Use the RP2040's ADC to read temperature values from a sensor and display them on an LCD screen. You can also set up alerts to notify you when the temperature exceeds a certain threshold.
3. Motion-Activated Camera
Create a motion-activated camera using the RP2040 and a camera module. The RP2040 can detect motion using a PIR sensor and trigger the camera to capture images or videos.
4. Smart Weather Station
Build a weather station that collects data such as temperature, humidity, and air pressure using sensors. Display the data on an OLED screen and upload it to a cloud service for remote monitoring.
5. Home Automation System
Control lights, appliances, and other devices in your home using the RP2040 and relays. You can create a mobile app or a web interface to control the system remotely.
6. Game Console Emulator
Turn your RP2040 into a retro game console emulator by installing emulators for classic gaming consoles. Use the GPIO pins to connect controllers and play your favorite games.
7. MIDI Controller
Build a MIDI controller using the RP2040 and potentiometers, buttons, and sliders. Use it to control music software or hardware synthesizers.
8. Internet Radio
Create an internet radio player using the RP2040 and a Wi-Fi module. Stream music from online radio stations and control playback using buttons or a web interface.
9. AI Voice Assistant
Build an AI voice assistant using the RP2040 and a microphone. Use services like Google Assistant or Alexa to control smart devices, play music, and answer questions.
10. Conclusion
The RP2040 opens up a world of possibilities for makers and hobbyists. With its powerful features and affordable price, it's the perfect platform for experimenting with electronics and programming. Whether you're a beginner or an experienced maker, these project ideas will help you get started with the RP2040 and unleash your creativity.
0 notes
Ein erster Blick auf den Melopero Cookie RP2040: Raspberry Pi Pico meets micro:bit
In diesem Beitrag möchte ich mit dir zusammen einen ersten Blick auf den Melopero Cookie RP2040 werfen. Dieser Mikrocontroller ist ein Mix aus Raspberry Pi Pico, BBC micro:bit und auch der Calliope Mini findet sich irgendwie hier wieder.
Diesen Mikrocontroller habe ich im Onlineshop von Botland.de für knapp 16 € zzgl. Versandkosten erstanden. In diesem Shop bekommst du diesen Mikrocontroller derzeit zum besten Preis.
Warum noch ein Klon?
Die große Frage, welche man sich zunächst stellen kann, ist "Warum noch ein Klon?". Diese Frage ist berechtigt, denn, dieser Mikrocontroller mit dem RP2040 Chip, einigen Anschlüssen und einer LED-Matrix ist jetzt nicht das neueste und bringt auch nicht soviel zusätzlichen Spaß. Theoretisch könnte hier der Beitrag enden, jedoch möchte ich diesem eine Chance geben und einmal ins Detail schauen.
Pins & Anschlüsse
Vor allem, wenn man sich das Format etwas genauer betrachtet, dann finden wir die Pins rings um den Mikrocontroller angeordnet, welche man mit Krokodilklemmen oder Bananenstecker (3 mm) abgreifen kann.
Batterieanschluss & USB-C Schnittstelle
Am Mikrocontroller findest du den Pin VBAT über diesen kannst du deinen Mikrocontroller via Batterie zu betreiben. Der Hersteller gibt hier an, dass die gleichzeitige Verwendung beider Stromanschlüsse dazu führen kann, dass entweder deine Batterie oder dein PC zerstört werden kann. Ich würde sogar so weit gehen, dass eher der Mikrocontroller zerstört wird!
Features des Melopero Cookie RP2040
Der Mikrocontroller bietet wie erwähnt einige Features, welche wir bei anderen bereits finden. Zu diesen Features zählen:
- eine 5x5 RGB LED Matrix,
- zwei Taster,
- eine USB-C-Schnittstelle,
- einen Qwii-Anschluss,
- Kontakte Abgreifbar via Krokodilklemme& Bananenstecker,
- zwei Löcher zur Montage
Abmaße des Mikrocontrollers sind Ø 50,8 mm.
Technische Daten des RP2040 Chips
Verbaut ist ein RP2040 Chip von der Raspberry Pi Foundation, welcher nachfolgenden technischen Daten hat:
MikrochipRP2040, Dual-Core Arm Cortex M0+ mit bis zu 133 MHzSpeicher SRAM264 KBFlash2 MBSchnittstellenUSB 1.1 2x SPI, 2x I²C, 2x UART 3x 12-bit ADC (Analog Digital Converter)En/Ausgänge26 Pins 16x PWM ChannelSensoren & AktorenTemperatursensor Timer
Pinout & Aufbau des Melopero Cookie RP2040
Auf dem Mikrocontroller findest du diverse Aktoren, welche du recht einfach programmieren kannst. Die LED ist als einzige von diesen mit "21" beschriftet.
Aufbau des Melopero Cookie RP2040
Qwiic / Stemma Anschluss
Über den Qwiic / Stemma Anschluss kannst du spezielle Sensoren und Aktoren in Reihe schalten und einzeln adressieren. Die Kommunikation läuft dabei über I2C.
Jedoch sind derzeit die Sensoren & Aktoren für dieses Ökosystem recht teuer, sodass sich ein Wechsel, nach meiner Meinung noch nicht lohnt.
Einrichten und Programmieren des Melopero Cookie RP2040
Wie üblich, kannst du deinen Mikrocontroller in MicroPython, CircuitPython sowie in der Arduino IDE programmieren. Ich möchte im Nachfolgenden den Mikrocontroller in MicroPython programmieren.
https://youtu.be/3M3b8clU-FU
Der Hersteller hat zu diesem Mikrocontroller eine offizielle, englische Dokumentation bereitgestellt, wo gezeigt wird, wie dieser geflasht und für MicroPython eingerichtet wird.
Flashen des Mikrocontrollers für MicroPython
Das Flashen des Melopero Cookie RP2040 für MicroPython ist sehr einfach, unterscheidet sich jedoch deutlich vom Raspberry Pi Pico. Denn man muss bei verbundenem Gerät die Taste "BT" (grüner Kreis) & "RS" (roter Kreis) drücken und die Taste "RS" loslassen, dann wird das Laufwerk eingebunden und wir können die Taste "BT" loslassen. Also eigentlich sehr einfach.
Wenn das Laufwerk eingebunden ist, dann musst du nun die entsprechende UF2-Datei mit der neuen Firmware auf diesen kopieren.
Die Firmware bekommst du unter http://www.melopero.com/Melopero_Cookie_RP2040.zip. In der ZIP-Datei findest du die Firmware für CircuitPython und MicroPython sowie eine Bibliothek mit Beispielen für C++.
Programmieren in der Thonny IDE
Den Mikrocontroller kannst du nach dem Flashen dann zum Beispiel in der Thonny IDE programmieren. Dazu musst du zunächst den Interpreter einrichten.
Im Programm klickst du unten rechts auf den derzeit ausgewählen Mikrocontroller und wählst aus dem Menü "Konfiguriere den Interpreter ...".
Im neuen Dialog wählst du dann als Erstes den Eintrag "MicroPython (RP2040)" (1) aus. Danach den Port (2). Solltest du mehrere serielle Geräte an deinem PC angeschlossen haben, so schaue einmal in den Geräte-Manager, um den passenden zu finden.
Die Auswahl bestätigen wir mit der Schaltfläche "OK" (3).
Wenn du nun in der Taskleiste auf die Schaltfläche "Stopp/Restart ausführen" klickst, dann sollte in der Kommandozeile die nachfolgende Ausgabe erscheinen.
Programmieren der Taster & LED
Wie oben gezeigt findest du auf dem Mikrocontroller zwei Taster und eine kleine SMD LED. Als erstes möchte ich dir zeigen, wie diese programmiert wird. Mit den Tastern A & B möchte ich zunächst die LED AN & AUS schalten.
#aus dem Modul machine die Klasse Pin laden
from machine import Pin
#Modul time importieren
import time
#die LED ist am GPIO 21 angeschlossen
#und wird als Ausgang definiert
led = Pin(21, Pin.OUT)
#die Taster sind an den GPIOs 10 & 11
#angeschlossen und werden als Eingang
#definiert
buttonA = Pin(10, Pin.IN)
buttonB = Pin(11, Pin.IN)
#starten einer Endlosschleife
while True:
#Wenn der Taster A gedrückt wird, dann...
if buttonA.value() == 1:
#LED aktivieren
led.on()
#einlegen einer kleinen Pause,
#damit entprellen wir den Taster
time.sleep(0.5)
#Wenn der Taster B gedrückt wird, dann...
if buttonB.value() == 1:
#LED deaktivieren
led.off()
#einlegen einer kleinen Pause,
#damit entprellen wir den Taster
time.sleep(0.5)
Wenn wir den Code auf dem Mikrocontroller ausführen, dann können wir mit den beiden Tastern die kleine SMD LED Ein- und Ausschalten.
Programmieren der 5x5 RGB LED Matrix
Mit der Firmware zu MicroPython bekommst du Module zum Abfragen der Taster sowie für die RGB LED-Matrix. Diese Module müssen nicht zusätzlich installiert werden und du brauchst diese lediglich importieren und kannst diese verwenden.
Für die Programmierung der 5x5 RGB LED-Matrix hast du fertige, kleine Funktionen um entweder einzelne LEDs anzusteuern oder auch Scrolltext auf dieser auszugeben. Das finde ich besonders gut gelungen.
#Importen der Klasse Cookie_RP2040 aus dem Modul melopreo_cookie
from melopero_cookie import Cookie_RP2040
#Text für den Scrolltext
msg = "Hallo Welt!"
#erzeugen eines Objektes vom Typ Cookie_RP2040
cookie=Cookie_RP2040()
#LEDs löschen
cookie.clear_screen()
#setzen der Textfarbe als RGB Wert
#Der letzte Wert bildet die Helligkeit ab!
cookie.set_rgb_color(0, 0, 255,0.05)
#setzen der Hintergrundfarbe
cookie.set_rgb_background(0,0,0, 0.1)
#anzeigen / abspielen des Scrolltextes
cookie.show_message(msg)
Mit diesem kleinen Code erzeugen wir nun die Laufschrift "Hallo Welt!" auf der LED-Matrix. Die Farbe für den Text habe ich in Blau gesetzt.
Read the full article
0 notes
Raspberry Pi Pico ADC Characterized
https://koliasa.com/raspberry-pi-pico-adc-characterized/
Raspberry Pi Pico ADC Characterized - https://koliasa.com/raspberry-pi-pico-adc-characterized/ [Markomo] didn’t find much useful information about the Raspberry Pi ...
0 notes
Gruseliges Raspberry Pi Pico Projekt: Die Spooky Box für Halloween
Passend zur kommenden Halloween-Zeit möchte ich dir heute ein passendes kleines Projekt vorstellen, welches du easy an einem Wochenende erstellen kannst, es ist eine Spooky Box mit Soundausgabe. Als Mikrocontroller verwende ich den Raspberry Pi Pico in der Ausführung mit WiFi / Bluetooth.
Die Idee dazu bekam ich vom Leser meines Blogs, welcher mir per Mail ein ähnliches Projekt vorgestellt hat. Dieses war jedoch mit dem weniger verbreiteten Calliope Mini. Der Vorteil des Calliope Mini ist jedoch, dass dieser besonders für Anfänger einfacher zu programmieren ist. Jedoch auch die Programmierung in MicroPython ist, wie du gleich sehen wirst, nicht allzu schwierig.
Teileliste für die Spooky Box mit einem Raspberry Pi Pico
Wenn du die Spooky Box nachbauen möchtest, dann benötigst du:
- einen Raspberry Pi Pico oder Pico W,
- ein Micro-USB-Datenkabel,
- eine Lochrasterplatine,
- zwei 40 Pin Buchsenleisten,
- zwei LEDs mit Vorwiderstände (220 Ohm),
- einen Taster,
- einen Servomotor Typ SG90,
- einen Piezo Buzzer
Für den Aufbau auf der Lochrasterplatine benötigst du noch zusätzlich:
- einen Lötkolben,
- Lötzinn & Lötfett,
- eine hitzebeständige Unterlage
- einen kleinen Seitenschneider,
- Litze / Draht in unterschiedlichen Farben
Spooky Box
Die Box selber habe ich aus dem örtlichen Tedi Mark für 3 € gekauft, zusätzlich noch Acrylfarbe und Pinsel, somit ergab dieses genau 6 €.
Wenn du das ganze online suchst, dann findest du hier eine kleine Liste:
- eine kleine Schatzkiste aus Holz,
- Acrylfarbe,
- Pinselset,
Der Vorteil an der Acrylfarbe ist, dass diese recht schnell trocknet. Du kannst deine Spooky Box natürlich nach Belieben anders bemalen und bekleben.
Aufbau der Schaltung am Raspberry Pi Pico
Nachdem die Box fertig bemalt ist und trocknen muss, kümmern wir uns um die Schaltung am Raspberry Pi Pico.
Programmieren
Das Programm erstellen wir wie erwähnt in MicroPython, dafür nutze ich die Thonny IDE. Das Gute gleich vorweg, wir benötigen keine zusätzliche Bibliothek für dieses Projekt, d.h. du könntest auch rein theoretisch den MU-Editor verwenden.
Nachfolgend folgt nun eine Schritt-für-Schritt-Anleitung, wie du das Programm aufbaust.
Schritt 1 - Abspielen des Halloween Sounds am Raspberry Pi Pico
Die Spooky Box soll bei Aktivierung einen Sound abspielen, diesen habe ich jedoch lediglich für ein Arduino Programm gefunden, dieses habe ich für MicroPython umgeschrieben.
#Module zum ansteuern der GPIOs und
#erzeugen eines PWM Signals
from machine import Pin, PWM
from utime import sleep
#der Buzzer ist am GPIO1 angeschlossen
buzzer = PWM(Pin(1))
#Tonname & Frequenz in einem Dictionary mappen
tones = {
"cs6": 1109,
"fs5" : 740,
"d6" : 1175,
"c6" : 1047,
"f5" : 698,
"b5" : 988,
"e5" : 659,
"bf5" : 932,
"ef5" : 622,
"b4" : 494,
"g5" : 784,
}
#Töne vom Lied
song =
#Spielt einen Ton in einer Frequenz ab
def playtone(frequency):
buzzer.duty_u16(1000)
buzzer.freq(frequency)
#Verstummt den Buzzer
def bequiet():
buzzer.duty_u16(0)
#Spielt das Lied ab
def playsong(mysong):
#läuft über die Liste mit den Tönen
for i in range(len(mysong)):
#abspielen eines Tones aus der Liste mit dem Index i
playtone(tones])
#kleine Pause von 200 Millisekunden
sleep(0.2)
#verstummen des Buzzers
bequiet()
#Abspielen des Liedes
playsong(song)
Der Code bewirkt lediglich das, dass Lied auf dem Piezo Buzzer abgespielt wird.
Schritt 2 - Auslesen des Fotowiderstandes
Der Fotowiderstand ist am ADC0 / GP26 angeschlossen und wird als analoger Wert ausgelesen.
#Module für das auslesen des LDR
from machine import Pin, ADC
from utime import sleep
#der LDR ist am GPIO26 / ADC0 angeschlossen
adc = ADC(0)
#Starten einer Endlosschleife
while True:
#auslesen des LDR und
#ausgeben auf der seriellen Schnittstelle
print(adc.read_u16())
#kleine Pause von 300 Millisekunden
sleep(0.3)
Wenn du den obrigen Code ausführst, dann wird kontinuierlich die Helligkeit gemessen und ausgegeben. Solltest du deinen Finger auf diesen Sensor legen, so ändert sich der Wert in der Konsole entsprechend.
Auf diesen Wert können wir jetzt reagieren und somit erkennen, ob der Deckel unserer Spooky Box geöffnet wurde.
Schritt 3 - Taster interrupt erstellen
Wenn der Taster betätigt wird, soll der Sound aufhören zu spielen und die kleine Pappfigur soll abgesenkt werden. Dazu müssen wir einen Interrupt erstellen, der Pi Pico bietet an jeden der GPIOs die Möglichkeit ein Interrupt anzuhängen.
#Module zum ansteuern der GPIOs
from machine import Pin
#der Taster ist am GPIO5 angeschlossen,
#zusätzlich wird dieser über den internen PullUp
#Widerstand verbunden
button = Pin(5, Pin.IN, Pin.PULL_UP)
#Funktion welche ausgeführt werden soll
#wenn der Taster betätigt wird.
def button_handler(pin):
print("Hello, world!")
#konfigurieren eines Interrupts
button.irq(trigger = machine.Pin.IRQ_RISING, handler = button_handler)
#Starten einer Endlosschleife,
#diese wird benötigt damit das Programm sich nicht selbstständig beendet
while True:
pass
Wenn du den Taster betätigst, wird die Funktion "button_handler" ausgeführt. Egal, was gerade parallel auf dem Mikrocontroller ausgeführt wird.
Schritt 4 - Steuern des Servomotors
Der Servomotor wird per PWM Signal gesteuert, hier musst du noch zusätzlich ins Datenblatt des verwendeten Servos schauen. Wenn du wie ich den Servo SG90 verwendest, dann hat dieser die Frequenz von 50 Hz für einen Schritt.
#Module zum steuern der GPIOs
from machine import Pin, PWM
from utime import sleep
#Servomotor am GPIO0 angeschlossen
servo = PWM(Pin(0))
#der Servomotor arbeitet mit einer
#Frequenz von 50 Hz
servo.freq(50)
#0° hat ein Dutycycle von..
grad0 = 500000
#90° hat ein Dutycycle von..
grad90 = 1500000
#Starten einer Endlosschleife
while True:
#Servo auf 90° bewegen
servo.duty_ns(grad90)
#kleine Pause von 500 Millisekunden
sleep(0.5)
#Servo auf 0° bewegen
servo.duty_ns(grad0)
#kleine Pause von 500 Millisekunden
sleep(0.5)
Der Code lässt den Servomotor immer zwischen den Winkeln 0° und 90° bewegen.
Probleme mit zwei unterschiedliche PWM Signale
Der Piezo Buzzer & der Servomotor werden beide über PWM Signale gesteuert. Das Problem, welches wir haben ist, dass der Pi Pico lediglich ein Signal zulässt. Wir müssen also nun etwas herumtricksen, dass der Piezo Buzzer das Lied abspielt, aber der Servo auch gesteuert werden kann.
Meine Lösung hierzu ist, dass ich den jeweils nicht benötigten Aktor auf einen GPIO zuweise, welcher nicht belegt ist, somit ist der Aktor quasi deaktiviert. Bevor ich diesen wieder verwende, muss dieser dann lediglich wieder korrekt zugewiesen werden.
from machine import Pin, PWM
from utime import sleep
servo = None
buzzer = None
grad0 = 500000
grad90 = 1500000
tones = {
"cs6": 1109,
"fs5" : 740,
"d6" : 1175,
"c6" : 1047,
"f5" : 698,
"b5" : 988,
"e5" : 659,
"bf5" : 932,
"ef5" : 622,
"b4" : 494,
"g5" : 784,
}
song =
def playtone(frequency):
if isinstance(buzzer, Pin):
initBuzzer()
buzzer.duty_u16(1000)
buzzer.freq(frequency)
def bequiet():
if isinstance(buzzer, Pin):
initBuzzer()
buzzer.duty_u16(0)
def playsong(mysong):
for i in range(len(mysong)):
if (mysong == "P"):
bequiet()
else:
playtone(tones])
sleep(0.2)
bequiet()
#GPIO des Servomotor initialisieren
def initServo():
global servo
servo = PWM(Pin(0))
servo.freq(50)
#konfigurierten Pin ändern
def resetServo():
global servo
servo = Pin(8, Pin.IN, Pin.PULL_UP)
#GPIO Buzzer initialisieren
def initBuzzer():
global buzzer
buzzer = PWM(Pin(1))
#konfigurierten Pin ändern
def resetBuzzer():
global buzzer
buzzer = Pin(9, Pin.IN, Pin.PULL_UP)
while True:
initServo()
servo.duty_ns(grad90)
sleep(0.5)
servo.duty_ns(grad0)
sleep(0.5)
resetServo()
sleep(0.2)
initBuzzer()
sleep(0.2)
playsong(song)
sleep(0.2)
resetBuzzer()
sleep(0.2)
Im Video siehst du nun das zunächst der Servo von 0° zu 90° wechselt und danach wird das Lied abgespielt.
Das fertige Programm für die Spooky Box am Raspberry Pi Pico
Hier jetzt das fertige Programm zum Download:
MicoPython Code für die Halloween SpookyBox
Read the full article
0 notes
PicoBoy Review: Dein Einstieg in die Welt der Elektronikprojekte
In diesem ersten Beitrag zum PicoBoy möchte ich dir diesen vorstellen und aufzeigen, was dieser leistet und programmiert wird. Der kleine Mikrocontroller kommt mit einem RP2040 Chip und einigen Sensoren & Aktoren daher und bietet dir hier kompakt die Möglichkeit den Einstieg in die Entwicklung von Mikrocontroller zu starten.
Disclaimer: Dieser Beitrag enthält meine persönliche Meinung und Erfahrung mit dem PicoBoy. Funduino hat mir das Produkt kostenfrei zur Verfügung gestellt, um ein Review zu erstellen. Meine Bewertung basiert auf meinen eigenen Eindrücken und unabhängigen Tests.
Was sind die technischen Daten des PicoBoy?
Wie erwähnt hat der kleine PicoBoy einen RP2040 Chip verbaut und daher zunächst die gleichen technischen Daten wie der Raspberry Pi Pico.
MikrochipRP2040, Dual-Core Arm Cortex M0+
mit bis zu 133 MHzSpeicher SRAM264 KBFlash16 MBSchnittstellenUSB-Typ-C 2x SPI, 2x I²C, 2x UART 3x 12-bit ADC (Analog Digital Converter)Sensoren & AktorenTemperatursensor, Timer (auf dem RP2040) 5-Wege-Joystick, BeschleunigungssensorDisplay1,3" schwarz/weiß OLED-Display,
128 x 64 Pixel, Typ SH1107zusätzliche Stromversorgungüber Knopfzelle CR2032 (liegt bei)technische Daten des PicoBoy mit RP2040 Chip und vielen zusätzlichen Features
Vorteile des PicoBoy
Die Vorteile des PicoBoy liegen auf der Hand, denn dieser ist fertig bestückt und getestet, somit kannst du direkt mit der Programmierung starten.
Der RP2040 Chip ist schon einige Zeit auf dem Markt und so hat sich eine breite Community gebildet, welche viel Hilfe zu diesem anbietet und du als Anfänger einen leichten Einsteig bekommst. Auch ich habe hier schon diverse Beiträge veröffentlicht, welche du auf diesen leicht abgewandelt ausführen kannst.
- Ampelschaltung mit LEDs,
- Soundausgabe mit Micropython,
Gut finde ich, die zusätzliche Stromquelle über eine Knopfzelle, somit braucht man sich darum nicht kümmern, wenn man sein kleines Projekt mal ohne PC verwenden möchte.
Nachteile vom PicoBoy
Wo Vorteile sind, sind auch Nachteile. Jedoch liegen diese im Auge des Betrachters. Mir persönlich fehlen hier ein paar digitale Aus-/Eingänge. Der RP2040 Chip hat 26 GPIOs von diesen werden für die verbauten Komponenten nicht alle benötigt und so könnte man gewiss einige nach außen führen.
Kaufen des PicoBoy im offiziellen Shop
Derzeit bekommst du den kleinen Mikrocontroller exklusiv im Shop von Funduino für derzeit 24,90 € zzgl. Versandkosten.
Lieferumfang
Zum Lieferumfang gehört neben dem kleinen Mikrocontroller zwei CR2032 Knopfzellen und ein kleines Putztuch für das Display.
Durch die standardisierte USB-C-Schnittstelle ist es okay, wenn so ein Kabel nicht beiliegt.
Aufbau des PicoBoy
Der PicoBoy verfügt auf der Vorderseite über ein 1,3" OLED-Display und drei verschiedenfarbige SMD LEDs. Auf der Rückseite findest du den Adapter für die Knopfzelle sowie einen Schalter für den Wechsel von USB auf Batterie, eine USB-C-Schnittstelle und eine Taste für Reset und Boot.
Erster Start des PicoBoy
Wie erwähnt kannst du den PicoBoy über eine Knopfzelle mit Strom versorgen und auf diesem sind bereits 5 Demos vorinstalliert (davon 2 Spiele), welche du sofort ausführen kannst. Um diese zu starten, musst du lediglich den kleinen Schalter von USB auf BAT umstellen, kannst dann mit dem Joystick diese auswählen.
Tetris auf dem PicoBoy
Eines der Spiele ist Pictris, ein Tetris Spiel, wie man es vom Nintendo Game Boy kennt.
Programmieren des PicoBoy
Der PicoBoy kann in Micropython, sowie in der Arduino IDE via C/C++ programmiert werden. Dazu müssen wir diesen je nach gewünschter Sprache flashen.
Auf den nachfolgenden Seiten von Jan Schulz welcher diesen Mikrocontroller entworfen hat, wird erläutert, wie du diesen für die jeweilige Sprache vorbereitest:
- Micropython - Bevor es losgeht – Vorbereitungen,
- C++/Arduino - Vorbereitungen
Anschluss an den PC
Wenn du deinen PicoBoy an den PC mit einem passenden USB-Typ-C Datenkabel angeschlossen hast, dann wird dieser als Pico erkannt und als "Serielles USB-Gerät" eingerichtet.
Vorbereiten des PicoBoy für die Programmierung in Micropython
Damit ich den PicoBoy in diesem Review in Micropython programmieren kann, muss ich zunächst eine UF2-Datei für den Raspberry Pi Pico herunterladen und per Drag'n Drop über den Explorer auf diesen kopieren.
Damit wir dieses jedoch machen können, müssen wir zunächst die Taste "BOOT" festhalten und dann das USB-Kabel mit dem PC verbinden. Es sollte dann ein Laufwerk im Explorer sichtbar werden, auf welchen wir dann unsere UF2-Datei mit der Firmware für Micropython kopieren können.
Die UF2-Datei für den RP2040 bekommst du für einen Raspberry Pi Pico, mit und ohne WiFi / Bluetooth Support. In unserem Fall benötigen wir diese ohne die drahtlosen Schnittstellen. Unter https://micropython.org/download/RPI_PICO/ findest du eine Liste mit verfügbaren Firmwaredateien.
Ich empfehle dir eine Datei aus dem Abschnitt "Release" dieses sind offizielle Dateien welche getestet sind. Die Dateien aus einem "Nightly builds" sind Entwicklungsstände, welche Features enthalten können, aber auch Fehler.
Thonny IDE zum Flashen des PicoBoy nutzen
Man kann auch die Thonny IDE zum Flashen des PicoBoy bzw. des RP2040 nutzen. Wie du das machst, zeige ich dir in nachfolgendem kurzen YouTube-Video.
https://youtu.be/haqcy8fBg8k
Programmieren in der Thonny IDE
Das Tool Thonny kannst du dir unter https://thonny.org/ für Microsoft Windows, Linux und macOS kostenfrei herunterladen. In dieser Entwicklungsumgebung (kurz IDE) kannst du deinen Mikrocontroller recht einfach programmieren und Bibliotheken dazuladen (zbsp. für das OLED-Display).
Einrichten der Thonny IDE für den PicoBoy
Wenn du das Tool gestartet hast, dann musst du unten rechts einen Interpreter wählen.
Danach musst du die Art des Interpreters wählen, in meinem Fall habe ich den PicoBoy für Micropython geflasht und muss hier den Eintrag "MicroPython (Raspberry Pi Pico)" auswählen.
Wenn nun der Mikrocontroller korrekt erkannt wurde, sollte in dem Reiter "Kommandozeile" die nachfolgende (graue) Ausgabe erfolgen. Ggf. musst du in der Toolbar ein bis zweimal auf das Stop Symbol klicken.
Erstellen einer Datei für das Programm
Bei der Entwicklung mit Micropython gibt es zwei wichtige Dateien:
- code.py
- boot.py
Die Datei boot.py wird geladen, sobald der Mikrocontroller Strom erhält, d.h. alles, was du darin schreibst, wird sofort ausgeführt. Die Datei code.py wird über eine IDE wie zbsp. Thonny gestartet.
Probleme mit der Datei boot.py
Ein Problem mit der Datei boot.py kann auftreten, wenn du keinen Ausgang für dein Programm definiert hast, quasi dieses in einer Endlosschleife läuft. Dann musst du ggf. deinen Mikrocontroller neu flashen, damit du deinen Code, welchen du hoffentlich vorher auf dem PC gespeichert hast, neu aufspielen und ändern kannst.
Daher ist diese Datei wirklich nur für finale Stände deines Programmes sinnvoll.
Erstellen der Datei code.py auf dem PicoBoy
Zum Erstellen einer Datei auf dem PicoBoy gibt es zwei Wege. Beide funktionieren ähnlich und unterscheiden sich nur wenig.
Erstellen einer Datei über die Toolbar
In der Toolbar findest du das Icon "Neu", ein Klick auf dieses erzeugt einen neuen Reiter, in welchem wir nun unseren Code schreiben können.
Wenn wir dann die Schaltfläche "Speichern" klicken oder Strg+S betätigen, erscheint ein Dialog, in welchem wir den Ort wählen müssen.
Im neuen Dialog vergeben wir dann einen Dateinamen und bestätigen diesen mit der Schaltfläche "OK".
Erstellen einer Datei über das Kontextmenü
Im Bereich "Raspberry Pi Pico" klicken wir die rechte Maustaste und wählen dann aus dem Kontextmenü den Eintrag "Neue Datei..." aus.
Im neuen Dialog geben wir dann den gewünschten Dateinamen "code.py" ein und bestätigen dieses mit der Schaltfläche "OK".
Es wurde soeben ein neuer Reiter "*" erzeugt.
Das Sternchen symbolisiert ungespeicherte Dateien!
Sobald diese Datei gespeichert wird, wird diese auf dem Mikrocontroller erzeugt.
Ausführen der Datei code.py
Die erzeugte Datei können wir über die Toolbar mit der Schaltfläche "Aktuelles Skript ausführen" oder mit der Taste F5 ausführen.
Wenn wir Änderungen durchführen möchten, dann muss zunächst das aktuelle Skript über die Schaltfläche "Stopp/Restart ausführen" beendet werden.
Programmierbeispiele für den PicoBoy
Auf der Seite https://picoboy.de/micropython/eins-nach-dem-anderen-das-erste-programm/ findest du zwei sehr gut erläutertes Beispiel, wie du die LEDs und das OLED-Display programmierst.
Sowie findest du auch noch viele weitere Beispiele und Erläuterungen.
Fazit
Als Fazit zu dem PicoBoy ziehe ich, dass dieser Mikrocontroller mit seinen Features sehr cool ist und einiges an Potential bietet.
Im nächsten Beitrag zum PicoBoy werde ich dir weitere Beispiele zeigen, welche in den Schwierigkeitsstufen von einfach bis komplex steigen. Sei also gespannt.
Read the full article
0 notes
WeAct Studio Pico
In diesem Beitrag möchte ich dir den Mikrocontroller WeAct Studio Pico vorstellen und zeigen, wie dieser programmiert wird.
Dieser Mikrocontroller verfügt über einen RP2040 Chip, welchen ich dir bereits am original Raspberry Pi Pico vorgestellt habe (siehe Raspberry PI Pico #1 – Vorstellung)
Vorderseite des Mikrocontrollers
Rückseite des Mikrocontrollers
RP2040 Chip auf dem WeAct Studio Pico
Kaufen eines WeAct Studio Pico
Den mir vorliegenden Mikrocontroller habe ich auf aliexpress.com für 6 € zzgl. Versandkosten erstanden.
Lieferumfang
Dem WeAct Studio Pico liegen zwei 20 Pin Stiftleisten und eine 4 Pin Stiftleiste bei.
Verpackter Mikrocontroller weAct Studio Pico
Lieferumfang des WeAct Studio Pico
Aufbau des Mikrocontrollers
Bevor man den Mikrocontroller in Schaltungen verwenden kann, müssen die Stiftleisten angelötet werden.
Ich benutze hierfür immer ein Breadboard, da dann die Stiftleisten in einem sauberen Winkel angelötet werden kann.
WeAct Studio Pico zum löten auf dem Breadboard
fertig gelöteter Mikrocontroller
Pinout des Mikrocontrollers
Der Mikrocontroller ist dem Raspberry Pi Pico / Pico W sehr ähnlich und auch die Pins sind an den gleichen Stellen. Diese Eigenschaft macht es dir sehr leicht dein derzeitiges Projekt, welches ggf. etwas groß geworden ist und mehr Speicher benötigt, zu erweitern.
Pinout des Raspberry PI Pico
technische Daten des WeAct Studio Pico
Hier nun die technischen Daten des Mikrocontrollers:
MicrocontrollerRP2040 dual-core Cortex-M0+ mit 133 MHz (Übertaktbar bis 250 MHz)Speicher264 KB SRAM
16 MB QSPI Flash SpeicherSchnittstellen1x Typ-C USB 1.1,
2x UART, 2x I²C, 2x SPI
4 Pin Arm serieller Debug PortErweiterungen2x 20 Pin 2,54 mm Stiftleisten
28 GPIOs, 3x 12-bit ADC (bis zu 500 Kbps), 16x PWMSpannungsversorgung5 V über USB, oder 2 bis 5 V über Pin VSYSAbmaße (L x B)53 mm x 21,5 mm
Programmieren
MU-Editor zum Programmieren
Zum Programmieren nutze ich die einfache Entwicklungsumgebung Mu-Editor. Dieses Tool kannst du unter https://codewith.mu/ für Microsoft Windows, macOS und Linux herunterladen.
Wenn du das Tool zum ersten Mal startest, dann kann dieses etwas dauern, da noch einige Ressourcen aus dem Internet nachgeladen werden.
Wenn die IDE nun endlich gestartet ist, dann müssen wir den Modus wählen. Da unser Mikrocontroller eigentlich vom Typ RP2040 ist, wählen wir den Eintrag "RP2040" aus der Liste (siehe Grafik).
MU-Editor , wählen des Modus für den RP2040
Wenn wir jetzt das kleine Skript mit der Ausgabe von "Hello World!" in einem Intervall von 10 Sekunden ausführen, erhalten wir nachfolgende Ausgabe.
import time
while True:
print("Hello World!")
time.sleep(10)
In der Ausgabe können wir zusätzliche Informationen zum angeschlossenen Board auslesen. In meinem Fall ist es ein "Pimoroni Pico LiP 16MB with RP2040".
MicroPython v1.17 on 2021-12-01; Pimoroni Pico LiPo 16MB with RP2040
Type "help()" for more information.
>>>
>>>
>>>
>>>
raw REPL; CTRL-B to exit
>OK
MPY: soft reboot
Traceback (most recent call last):
File "_boot.py", line 9, in
KeyboardInterrupt:
raw REPL; CTRL-B to exit
>OK
Hello World!
Kleines Beispiel
Da wie erwähnt der hier vorgestellte Mikrocontroller mit dem Raspberry Pi Pico baugleich ist, kann ich dir leider keine speziell abgestimmten Beispiele zeigen, denn dieser hat ja lediglich mehr Speicher.
Wir können also größere Projekte bauen oder mehr Daten sammeln und diese im Speicher ablegen.
LED blinken
Als erstes kleines Beispiel möchte ich eine LED zum Blinken bringen.
Hierfür benötigst du:
- den Mikrocontroller WeAct Studio Pico,
- ein USB-Typ-C Datenkabel,
- eine LED,
- ein 220 Ohm Widerstand,
- zwei Breadboardkabel,
- ein 270 Pin Breadboard, und ein 170 Pin Breadboard, oder
- ein 800 Pin Breadboard
kleine Schaltung - Mikrocontroller WeAct Studio Pico mit LED
import time
#wird benötigt um die GPIOs anzusteuern
from machine import Pin
#die LEDs sind auf dne GPIOs 01 bis 07
led = Pin(15, Pin.OUT)
while True:
led.value(1)
time.sleep(0.5)
led.value(0)
time.sleep(0.5)
Flashen für die Programmierung in CirtuitPython
Auf der Seite https://circuitpython.org/board/weact_studio_pico/ kannst du ein Flash-File für den Mikrocontroller herunterladen. Damit du diese Datei auf den Mikrocontroller kopieren kannst, musst du diesen in einen speziellen Modus starten, dazu trennst du diesen zunächst von einer aktiven Verbindung zum Computer und hältst die Taste "BOOT" auf dem Mikrocontroller gedrückt und baust die Verbindung erneut wieder auf.
Wie das gemacht wird, habe ich dir bereits im Beitrag zum Raspberry Pi Pico gezeigt (jedoch wird hier von CircuitPython auf MicroPython gewechselt) https://draeger-it.blog/raspberry-pi-pico-1-vorstellung/#aufspielen_einer_neuen_Firmware_fuer_Micropython.
In meinem Fall hat der geöffnete Mu-Editor erkannt, dass ein Mikrocontroller mit CircuitPython angeschlossen wurde und möchte den derzeit gewählten Modus ändern.
Wenn der Vorgang abgeschlossen ist, kannst du nachfolgendes Script nutzen, um deine LED erneut zum Blinken zu bringen.
import time
import board
import digitalio
led = digitalio.DigitalInOut(board.GP15)
led.direction = digitalio.Direction.OUTPUT
while True:
led.value = True
time.sleep(0.5)
led.value = False
time.sleep(0.5)
Read the full article
1 note
·
View note
Raspberry Pi Pico W mit Wi-Fi Support
In diesem Beitrag stelle ich dir den neuen Raspberry Pi Pico W vor, welcher mit Wi-Fi Support und dem bekannten RP2040 Chip daher kommt.
Den betagten Raspberry Pi Pico, welcher im Jahr 2020 erschienen ist, habe ich dir bereits im Beitrag Raspberry PI Pico #1 – Vorstellung vorgestellt.
Bezug eines Raspberry Pi Pico W
Der Raspberry Pi Pico W ist Ende Juni 2022 erschienen und kann über die bekannten Shops erstanden werden.
ShopPreisVersandkostenhttps://www.reichelt.de6,99 €5,95 €https://www.elektor.de8,95 €4,95 €https://www.berrybase.de6,80 €3,95 €
Da der Mikrocontroller recht neu auf dem Markt ist, denke ich, dass noch weitere Shops wie Conrad-Elektronik, Amazon etc. folgen werden, auch ist die Verfügbarkeit am Anfang recht gering und daher muss man sehr schnell sein, um einen zu bekommen.
Lieferumfang
Der mir vorliegende Mikrocontroller wurde in einer kleinen Blisterverpackung geliefert. Diese ist lediglich von einer Rolle mit mehreren Mikrocontrollern abgeschnitten.
Raspberry Pi Pico W verpackt
Montage der Stiftleisten
Der Mikrocontroller wird ohne Stiftleisten geliefert. Die können jedoch recht günstig zbsp. über ebay.de für 2,89 € inkl. Versandkosten erstehen.
Raspberry Pi Pico W auf Breadboard mit Stiftleisten
Im Shop von Eckstein-Komponente gibt es spezielle, farbige Stiftleisten, welche wie ich finde, eine sehr gute Erheiterung für den Mikrocontroller ist, um die Pins nochmal deutlich hervorzuheben. Mit knapp 3 € für das Paar Stiftleisten vielleicht nicht gerade ein Schnäppchen, aber es nutzt sich ja nicht ab ;) .
Pinout des Pico W
Der Pico W ist dem Vorgängermodell aus dem Jahr 2020 von den Pins her baugleich.
Pinout des Raspberry PI Pico
Das Bild zum Pinout des Pi Pico, darf ich mit freundlicher Genehmigung der Raspberry Foundation verwenden.
Vergleich mit dem Vorgängermodell
Vergleichen wir zunächst die beiden Mikrocontroller. Da wie erwähnt, die beiden Mikrocontroller baugleich sind.
Technische Daten
MikrochipRP2040, Dual-Core Arm Cortex M0+ mit bis zu 133 MHzSpeicherSRAM - 264 KBFlash - 2 MBSchnittstellenUSB 1.12x SPI, 2x I²C, 2X UART3x 121-bit ADC (Analog Digital Converter)Ein-/Ausgänge26 Pins12 PWM ChannelSensoren/AktorenTemperatursensorTimer
Wi-Fi Support mit CYW43439 Chip
Auf dem Pico W ist der Wi-Fi-Chip CYW43439 verbaut, welcher an die internen GPIO Pins GPIO23, GPIO25, GPIO26, GPIO29 zum RP2040 per SPI verbunden ist.
Eigentlich verfügt dieser Chip auch über eine Bluetooth-Unterstützung, jedoch ist diese in der aktuellen Baureihe des Pi Pico W 2022 deaktiviert.
Der verbaute Wi-Fi-Chip arbeitet mit dem Standard IEEE 802.11 b/g/n und sollte sich somit mit jedem Netzwerk verbinden können.
Boards mit RP2040 Chip
Auf dem Markt gibt es bereits Boards welche einen RP2040 Chip & Wi-Fi Support haben. Eines von diesen habe ich dir bereits im Beitrag Maker Pi Pico von Cytron vorgestellt habe und im weiteren Beitrag MAKER Pi Pico #1 – senden von Sensordaten an ThingSpeak gezeigt habe wie man Daten per Wi-Fi an den IoT Dienst ThingSpeak sendet.
Maker Pi Pico mit ESP01-S Chip
Read the full article
0 notes