En esta publicación me gustaría mostrarle cómo se empieza a utilizar la Pico, la instalación del primer programa y posiblemente también se resuelven algunos problemas iniciales. Aquí vamos.
Lo que necesitamos
- Raspberry Pi Pico
- Cable microUSB para la transferencia de datos
- PC con conexión a Internet (de forma alternativa: Raspberry Pi 4 (B))
La primera impresión
La Raspberry Pi Pico y el chip RP2040 que se utilizan se encuentran documentados muy bien y en detalle en raspberrypi.com. En cuanto al reloj de la CPU, sus 133 MHz lo sitúan por detrás del ESP32. No cuenta con un chip Wi-Fi / Bluetooth. Sin embargo, tiene un montón de GPIOs, incluyendo dos interfaces I2C, tres convertidores ADC de 12 bits (contando de 0 a 4095), un sensor de temperatura incorporado (conectado a ADC4). También hay una PIO (interfaz de E/S programable) con cuatro máquinas de estado, que se puede utilizar para simular, por ejemplo, interfaces de hardware. La Pico está diseñada para funcionar con muy poca energía, lo que debería hacerla adecuada para el funcionamiento con baterías móviles. También está disponible una interfaz de depuración de hardware.
Nota importante: Al igual que con la Raspberry Pi grande, el voltaje de los pines es sólo un máximo de 3,3 V. Los sensores o actuadores que trabajan con 5 V deben operarse con un convertidor de nivel lógico intermedio!
Aquí se presenta el pinout:
Descargar Pinout como PDF (Fuente: raspberrypi.com)
No se confunda. No hay ningún estado LED que se ilumine cuando se conecta la Pico por USB. Hay un LED incorporado (también lo hacemos parpadear directamente). Pero no se puede saber en qué modo está la Pico, o si ha sido reconocida en absoluto. Sólo se puede ver e el sistema anfitrión.
Programación de la Pico
Lo más importante primero: para transferir un binario (es decir, el programa compilado) a la Pico, normalmente se debe mantener presionada la tecla BOOTSEL, y luego conectar la Pico a través de USB. A continuación, se abre una unidad USB denominada "RPI-RP2", en la que se copian los programas (por ejemplo, arrastrando y soltando), si el entorno de desarrollo no lo hace de forma automática. Los archivos deben estar disponibles como *.eu2.
Eso es lo que probaremos en primer lugar. Programamos (o copiamos) el clásico Blink. Puede descargar de este sitio web el blink.uf2.
- Mantenga presionado BOOTSEL
- Conecte la Pico a través de USB
- Abra la unidad USB (si no se hace de forma automática)
- Copia sobre UF2
La Pico se reiniciará y el LED de la placa debería parpadear.
Programación con MicroPython
Una manera de incorporar MicroPython en la Raspberry Pi Pico es utilizar el Thonny Python IDE. Está disponible para Windows, Linux (también ARM)y MacOS en thonny.org. Descargue el programa e instálelo. En Linux, recomiendo ejecutar el siguiente comando en la terminal:
bash <(wget -O - https://thonny.org/installer-for-linux)
Esto debería instalar la versión actual.
En la Raspberry Pi ( se recomienda una versión actual del Raspberry Pi OS [con el escritorio], que se puede descargar desde aquí), el Thonny Python IDE ya está preinstalado. Se inicia por defecto en el modo Simple UI, es decir, con la barra de menús oculta. Amplíe la ventana hacia la derecha hasta que vea la nota "Cambiar a modo estándar" en la esquina superior derecha. Haga clic en él y reinicie el Thonny IDE.
A partir de aquí, el proceso debería ser el mismo en todos los sistemas. En el menú "Extras", seleccione la opción "Opciones" (el nombre depende del lenguaje de la interfaz del programa). Allí encontrará la pestaña "Intérprete". En el menú desplegable superior, seleccione "MicroPython (Raspberry Pi Pico)" y, a continuación, en el campo inferior, seleccione el puerto COM al que está conectada la Pico (el nombre del puerto es diferente de un sistema a otro). A continuación, debe seleccionar "Instalar o actualizar el firmware" en la parte inferior derecha de la ventana.
A continuación, debería aparecer una ventana con el título "Install MicroPython Firmware for Raspberry Pi Pico". Ahora desconecte la conexión USB al Pico, mantenga presionado el botón BOOTSEL, vuelva a conectarlo al PC, espere a que lo reconozca de nuevo y posiblemente a que el controlador se vuelva a configurar y seleccione "Instalar". Una vez completado este proceso, cierre las ventana. En la parte inferior derecha de la ventana principal de Thonny debería ver ahora "MicroPython (Raspberry Pi Pico)". En la parte inferior se encuentra la línea de comandos. Allí, verá la pista para el intérprete de MicroPython con información de la versión y el símbolo del sistema >>>.
Es posible que el firmware no se instale por completo en Raspberry Pi OS. Puede descargarlo aquí (en Firmware -> Versiones, haga clic en [.uf2]). A continuación, inicie la Pico en modo de descarga presionando BOOTSEL y copie el archivo descargado en la memoria USB de la Pico. A continuación, inicie el Thonny IDE.
Si tiene problemas para iniciar el intérprete de MicroPython Raspberry Pi Pico (reconocible por la ausencia del prompt >>> en el área inferior de la ventana), entonces configure el intérprete como "MicroPython Generic".
Si desconecta y vuelve a conectar la conexión USB a la Pico, probablemente tendrá que reiniciar el intérprete. Para ello, haga clic en el nombre del intérprete en la parte inferior derecha de la ventana y simplemente selecciónelo de nuevo. El prompt de entrada y la información del intérprete deberían volver a aparecer en la línea de comandos.
Para la primera prueba, copie este breve programa en la ventana del editor y guárdelo como main.py:
de máquina importar Código PIN
de tiempo importar dormir
dirigió = Código PIN(25, Código PIN.FUERA)
tiempo cierto:
dirigió.palanca()
dormir(1)
dirigió.palanca()
dormir(1)
Inicie el programa haciendo clic en el triángulo verde de la zona superior. El LED verde de la Pico debería estar ahora parpadeando.
Raspberry Pi Pico y el Arduino IDE
Ahora puede programar la Pico con el Arduino IDE. Descargue la última versión del programa de este sitio web y realice la instalación.
En la Raspberry Pi 4 (B): en Raspberry Pi OS, seleccione la variante Linux ARM. Ejecute los siguientes comandos en la terminal (la versión 1.8.16 puede ser diferente para usted):
Mando |
Información |
cd ~ |
Directorio de inicio |
cd Descargas |
Cambiar al directorio de descargas |
ls |
Mostrar archivos |
tar -xf arduino-1.8.16-linuxarm.tar.xz |
Descomprimir el archivo |
sudo mv Arduino-1.8.16 / opt |
Mover el Arduino IDE en la carpeta opt |
sudo /opt/arduino-1.8.16/install.sh |
Ejecutar la instalación |
Ahora puede iniciar el Arduino IDE a través del menú de Inicio haciendo clic en "Desarrollo".
Bajo Linux en el PC, es posible que todavía tenga que ejecutar un script si la carga en la Pico no tiene éxito. Puede encontrarlo (el número de versión puede ser diferente) en
/home/[USERNAME]/.arduino15/packages/arduino/hardware/mbed_rp2040/2.5.2/
Allí ejecute el post_install.sh el fin:
sudo ./post_install.sh
El proceso de instalación de la Pico Core es el mismo que el de los ESP. Añada esta línea
https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
en las preferencias como una URL adicional del administrador de la placa:
A continuación, abra el gestor de placas en Herramientas -> Placas -> Gestor de placas e ingrese "pico" en el campo de búsqueda. Instale el núcleo de la placa Arduino Mbed OS RP2040. Le recomiendo que también instale Raspberry Pi Pico/RP2040 Core ya que viene con más ejemplos de sketches:
Ahora seleccione la Raspberry Pi Pico en Herramientas -> Placas -> Placas Arduino Mbed OS RP2040 o Placas Raspberry Pi RP2040:
Abra el Blink Sketch a través del menú Archivo -> Ejemplos 01.Basics. Si el microcontrolador se pone en modo de descarga con BOOTSEL, puede que no aparezca ningún puerto. Sin embargo, la carga debería funcionar. En este modo, el dispositivo se presenta como una unidad USB. El binario compilado se copiará en él (automáticamente). En cuanto se completa este proceso, también se muestra el puerto.
Sin embargo, bajo Raspberry Pi OS, un puerto ya será visible. Puede cargar el sketch "Fade". Para ello, debe seleccionar la tabla del Núcleo de Earle F. Philhower, III. Sólo entonces serán visibles los sketches de ejemplo en Ejemplos -> rp2040:
A continuación, inicie el proceso de compilación y cargue como de costumbre. Una vez finalizado este procedimiento, debería tener este aspecto y el LED de la placa de la Pico debería encenderse y apagarse:
Para utilizar el monitor de serie, por ejemplo para el sketch de ejemplo "Temperatura", tiene que cambiar el puerto después del procedimiento de carga:
Luego, puede abrir el monitor de serie y ver la salida de la pantalla. En este caso los valores del sensor de temperatura interno de la Pico:
Windows 7/8
Estos sistemas operativos no son compatibles con el RP2040, es decir, no hay ningún controlador para que la Pico sea reconocido en el puerto USB. Sin embargo, alguien encontró esta solución para que funcione después de todo. Me gustaría describir en seguida el procedimiento.
- Detrás del enlace, que se acaba de mencionar, se encuentran las instrucciones sobre cómo reeescribir el archivo del controlador que allí se indica. He hecho esto por ti. Descargue el archivo pico-serial.inf
- Conecte la Pico a su PC (sin BOOTSEL)
- Seleccione el botón de Inicio y ingrese en el cuadro de búsqueda "devmgmt.msc" y presione "Enter"
- En el Administrador de dispositivos que se abre, debería haber un elementos con un signo de exclamación amarillo bajo "otros dispositivos" llamado "Board CDC"
- Haga clic derecho en Board CDC y seleccione "Actualizar el software de controlador ..."
- Seleccione "Buscar software de controlador en el ordenador"
- Haga clic en "Examinar ..." y seleccione el archivo pico-serial.inf descargado y luego haga clic en "Siguiente"
- Si aparece el mensaje "No se ha podido verificar el editor del software del controlador", seleccione "Instalar este software de controlador de todos modos"
- Si esto fue exitoso, el dispositivo ahora se llama Pi Pico Serial Port y se le asigna un puerto COM
Al principio tuve algunos problemas. Después de haber programado el Pico bajo Linux con el Arduino IDE, también se ejecutó bajo Windows 7. Sin embargo, el nombre del puerto fue entonces llamado ArduinoPico o también Raspberry Pi Pico en el administrador de dispositivos. Cuando aparezca, puede volver a hacer clic con el botón derecho y actualizar el controlador. A continuación, seleccione "Seleccionar de una lista de controladores de dispositivos en el ordenador". Desplácese hacia abajo hasta "Atmel, Inc." en Fabricante a la izquierda y seleccione Puerto Serie Pi Pico a la derecha. Como ejemplo de sketch, puede seleccionar de nuevo "Temperatura" en el Arduino IDE, o simplemente este sencillo programa:
vacío configurar() {
De serie.empezar(115200);
}
vacío círculo() {
De serie.println("Hola Mundo");
demora(1000);
}
Después de la descarga, debería aparecer el mismo nombre que en el administrador de dispositivos como puerto. Al abrir el monitor de serie, debería aparecer el famoso "Hello World". Usar Windows 7 o 8 no es tan fácil de implementar. Sin embargo, con algunos ajustes, es posible.
Si el proceso de carga no funciona en absoluto después de la compilación, esta solución le puede ayudar:
Active el elemento "Salida detallada durante la compilación" en las preferencias del Arduino IDE. Después de compilar el sketch de Blink, busque en la ventana inferior el directorio del archivo .uf2. Para mí lo es:
C: \ Usuarios \ [Username] \ AppData \ Local \ Temp \ arduino_build_764914 \ blink.ino.uf2
La carpeta AppData está oculta. Seleccione "Opciones de carpeta y búsqueda" a través de la opción "Organizar". En la ventana que se abre, seleccione la pestaña "Ver" en la parte superior y desplácese hacia abajo en la selección hasta el elemento "Archivos y carpetas ocultos". Allí puede "Mostrar archivos, carpetas y unidades ocultas".
Inicie la Pico con BOOTSEL en modo de descarga y copie el Blink.ino.uf2 en la unidad USB. El LED incorporado de la Pico debería ahora parpadear.
Opciones de programación adicionales
En este sitio web, el usuario Shabaz muestra con gran detalle cómo programar la Pico en Windows en C/C++ con Visual Studio Code y compilar CMake. La Guía de inicio para el SDK de C/C++ y el SDK de MicroPython de raspberrypi.com son también documentaciones muy detalladas. También puede utilizar Eclipse como entorno de programación. Sin embargo, esto pertenece entonces al ámbbito de la programación profesional, es mucho más complejo de configurar y ya no se puede jugar con él rápidamente.
Conclusión
Con el Thonny de IDE, se puede poner en marcha la Pico con relativa rapidez con Python y en diferentes sistemas. El soporte para el Arduino IDE es todavía relativamente nuevo, pero ya funciona bastante bien. Si está acostumbrado a este entorno, puede utilizarlo para programar la Pico como un microcontrolador compatible con ESP o ATmega328 en C/C++. Ambos lenguajes están prácticamente cubiertos.
¡Le deseo éxito!
15 comentarios
Andreas Wolter
@JoKa: es ist möglich, dass es Probleme mit den Versionen der Arduino IDE und den Bibliotheken gibt.
Ich erinnere mich (und es steht auch so im Beitrag), dass nur der USB-Port (bei mir /dev/TTYAMA0) angezeigt wird in der Arduino IDE. Der Upload funktionierte damit. Nach dem Upload erschien dann auch der Raspi Port. Hatten Sie das so auch ausprobiert?
Grüße,
Andreas Wolter
AZ-Delivery Blog
JoKa
noch ’n Nachtrag: auf anderem Mint-PC die Arduino-IDE neu installiert. beide RPI2400-Versionen installiert. Pi-Pico auf Werkseinstellung zurückgesetzt. Bei Postinstall gleicher Fehler. RPi wird auch da nicht gefunden. Auch kein COM-Port zu aktivieren.
Gruß, JoKa
JoKa
nachtrag: habe die Ausgabe für Kopilierung und Hochladen aktiviert, kann aber nirgends eine *.uf2 von dem Sketch finden.
JoKa
Hallo Herr Wolter, danke für die Rückmeldung. postinstall.sh hatte ich noch nicht benutzt. Habe das jetzt nachgeholt, kam mit Fehlermeldung ’
‘sudo sh post_install.sh
post_install.sh: 15: [: Illegal number:
Reload rules…’
Bei Port wird nur /ttys4 angezeigt. Kein anderer Port wählbar.
Habe den Eindruck, ich muss die Arduino-IDE mal neu installieren.
Gruß, JoKa
Andreas Wolter
@JoKa: ich hatte den Pico auch in Linux Mint verwendet. So sind die Screenshots entstanden. Hatten Sie die postinstall.sh ausgeführt?
Der Pico hat sich in der Arduino IDE oft seltsam verhalten. Ich musste dann erneut in den Bootmode wechseln oder es sah so aus, als wäre er nicht angeschlossen. Der Upload funktionierte dann aber. Es ist schon ein paar Jahre her, seit der Beitrag entstanden ist. Es kann also sein, dass mit den Updates der Bibliotheken wiedermal Probleme auftreten. Das kommt mit den ESPs z.B. ständig vor.
Wenn der Upload mit Thonny funktioniert, scheint irgendwas mit dem Treiber für die Arduino IDE nicht zu stimmen.
Grüße,
Andreas Wolter
AZ-Delivery Blog
JoKa
Hallo Herr Wolter,
als Neuling mit dem RPi-Pico kam mir die Anleitung Arduino:
Raspberry Pi Pico – Quick Start gerade recht. Leider klappt das bei mir nicht richtig.
Ich arbeite unter LinuxMint und habe die Treiber für entsprechend der Anleitung für die Arduino-IDE installiert. RPi-Pico im Boot-Mode an USB angeschlossen. Wird jedoch nicht unter ‘Port’ gefunden. Nur der Eintrag ’—serial /dev/ttyS4 ’ ist zu sehen.
Was ist das Problem? Was muss ich ändern?
Unter Thonny konnte ich ein Prog installieren.
Gruß, JoKa
Andreas S.
Herzlichen Dank für die Antwort, Herr Wolter.
Ich arbeite am Liebsten auf der Kommandozeile unter Debian Linux bzw. auch Raspbian. Da ist das Flashen auch kein Hexenwerk:
sudo /bin/bash -c ‘(test -d /tmp/s || mkdir /tmp/s ; mount /dev/sdb1 /tmp/s ; cp firmware.uf2 /tmp/s ; umount /tmp/s; rmdir /tmp/s )’
Wichtig: /dev/sdb1 durch das richtige Device ersetzen ( sieht man mit ls -rtl /dev/sd?1 nach Anschluss des Picos im Programmiermodus) und den firmeware.uf2 durch den Namen der richtigen Datei ersetzen.
Das Vorgehen hat noch eine weitere positive Nebenwirkung: Durch den Unmount wird das Device sauber abgemeldet bevor der Puffer fertig auf den Pico synchronisiert wird und damit den Neustart mit der neuen Firmware auslöst.
Viele Grüße,
Andreas
Andreas Wolter
@Andreas S.: normalerweise sollte ein externes Laufwerk erscheinen, wenn Sie den Pico mit der MicroPython Firmware geflasht haben. Ich hatte damit einige Probleme unter Windows 7, da dieses OS offiziell nicht mehr unterstützt wird. Wenn Sie aber sowieso z.B. Thonny verwenden, um die Firmware zu flashen, bietet es sich an, auch gleich in der IDE zu bleiben, da man sich damit das Kopieren auf das externe Laufwerk erspart. Wenn man den externen Interpreter auswählt, kann man jede Änderung am Code auch direkt auf dem Pico ausführen.
Schauen Sie doch auch mal in diese Pico Beiträge:
https://www.az-delivery.de/blogs/azdelivery-blog-fur-arduino-und-raspberry-pi/raspberry-pi-pico-als-analoge-uhr
https://www.az-delivery.de/blogs/azdelivery-blog-fur-arduino-und-raspberry-pi/wetterstation-mit-raspberry-pi-pico-und-oled-display
Grüße,
Andreas Wolter
AZ-Delivery Blog
Andreas S.
Ich habe mir vor ein paar Tagen auch einen Pico zugelegt und bin damit erstaunlich schnell vorwärts gekommen.
Unter circuitPython bekomme ich ähnlich wie vom BootLoader ein Laufwerk simuliert, über das ich den Python-Code auf das Modul kopieren kann, so dass er dann auch ohne USB-Verbindung zum Rechner (Stromversorgung durch Ladegerät reicht) ablaufen kann.
Geht das auch mit MicroPython ?
Auch das Original C-SDK liess sich problemlos auf einem Pi 3 installieren und die Beispiele konnten auf Anhieb zu lauffähigen Firmwaredateien compiliert werden. Zugegeben, etwas Tipperei auf der Kommandozeile, aber dafür compilierter Code und kein Interpreter.
Mein Fernziel ist es, den Pico über die HID-Funktionen der tinyUSB-Schnittstelle als virtuelle Tastatur zu programmieren, die beispielsweise üner die serielle Verbindung von einem anderen Rechner aus gesteuert werden kann.
Andreas Wolter
@Martin Fitzke: Danke für den Hinweis. Im Idealfall sollte genau das passieren. Ein USB-Laufwerk erscheint, auf das man die MicroPython-Dateien kopiert. Lediglich unter Win7/8 wird man Probleme bekommen.
Grüße,
Andreas Wolter
Martin Fitzke
Hallo Andreas,
vielen Dank für den Artikel. Ich habe heute den ersten rp2040 bekommen und deinen Artikel gut für den Start nutzen können. Mich haben die Benennungen (rp2040, Arduino nano rp2040 Connect, Raspberrypi rp2040) erstmal verwirrt, das gibt sich wahrscheinlich mit der Zeit.
Zum Programmieren habe ich einen Win10 PC und Arduino IDE 1.8.51.0 genommen.
Als Ergänzung zum Artikel habe ich zwei (eventuell wichtige) Infos.
- Wenn man bei der Boardverwaltung “Arduino Mbed OS RP2040 Boards” installiert bekommt man das rp2040 Board, ich brauchte den github Link nicht als Quelle installieren.
- Ich habe zuerst kein Board bei den Ports (und im Gerätemanager) angezeigt bekommen. Bei Verbinden mit dem Rechner gab es ein Explorerfenster für das Board als Laufwerk. Nach dem ersten Compilieren und Hochladen wird der USB Treiber für das Board von der IDE nachgeladen und installiert. Man muss nichts manuell machen (wie geschrieben, Version 1.9.51.0 und Win10)
Viele Grüße und alles Gute,
Martin
Andreas Wolter
danke für den Hinweis. Es ist natürlich RP2040 und wurde korrigiert.
Die Info zu der englischsprachigen Variante gebe ich weiter, damit sich jemand darum kümmert.
Danke für die weiterführenden Links. Ich habe auch sehr viel auf Herstellerseiten und in Foren recherchiert, um es hier gesammelt darzustellen. Es kann trotzdem nicht schaden, sich andere Quellen anzusehen.
Grüße,
Andreas Wolter
Peter
Schoene Intro, aber mit einem Verwirrpunkt.
Mich hat schon der diesmonatige RP2041 verwirrt (wirebonded-RAM-on-top-ueber-einem-fertigen quadcore-ARM im rpi zero 2), aber gibt’s wirklich auch noch einen RP2042?
Sollte das im Artikel nicht eher der RP2040 sein – restlicher Text und Abbildungen passen zum Original-Pico…
cu
Peter
tokabln
Vielleicht für den Einen oder Anderen von Interesse, die nachfolgenden Links führen zum Forum des:
“Vereins zum Erhalt klassicher Computer e.V.”
dessen Mitglieder beschäftigen sich auch durchaus mit aktuellen Themen, wie z.B. der User “guidol”
Hier zwei Beispiele zum Raspberry Pico…
MMBasic auf dem Raspberrry Pico
https://forum.classic-computing.de/forum/index.php?thread/25781-picomite-mmbasic-auf-dem-raspberry-pi-pico/&postID=328025&highlight=picomite#post328025
RunCPM auf dem Raspberry Pico
https://forum.classic-computing.de/forum/index.php?thread/25805-runcpm-auf-dem-raspberry-pi-pico/&postID=328121#post328121
Hugh
Hallo Andreas, die Englische Version deine Pico Raspberry blog kommt leider sehr “Denglish” vor😎. Da könnte ich dir vielleicht behilflich sein – Profi Übersetzer bin ich nicht, aber immerhin ein “native speaker”. Sag ’s mir einfach ?
Grüße, Hugh