In diesem Thread will ich einige Code-Beispiele für den PiPico sammeln.
Der ESP32 unterstützt Micropython auch
Beitrag "ESP32 Micropython"
und es stellt sich die interessante Frage, ob der PiPico gegenüber dem
ESP32 Vorzüge besitzt.
Welche GUI nutzt ihr für MicroPython?
Es wird Thonny vorgeschlagen
https://thonny.org/
Dessen Installation bei mir nicht geklappt hat und deshalb darauf
verzichten möchte.
Als Programmierschnittstelle kann man bei Ubuntu auch einfach "minicom"
verwenden. Aufruf mit
1
minicom -D /dev/ttyACM0
mit CTRL-E kommt man in den "paste mode" in den man den obigen LED-Code
einfach kopieren kann. Dieser wird dann mit CTRL-D beendet und Voila ..
die LED blinkt.
chris_ schrieb:> und es stellt sich die interessante Frage, ob der PiPico gegenüber dem> ESP32 Vorzüge besitzt.
Insgesamt ist MicroPython so ausgelegt, dass es auf jeder Plattform
möglichst gleich zu nutzen ist. Wenn deine Programme also nicht zu
hardwarenah sind, solltest™ du keinen Unterschied zwischen den beiden
Plattformen feststellen. Wenn’s allerdings näher an die Hardware geht,
lassen sich mit Einem Dinge machen, die mit dem Anderen nicht gehen. Im
Falle des Pico wären das etwa Statemachines/PIO¹ und die einfache
Nutzung des zweiten Kerns, welche es beim ESP32 nicht geben dürfte. Da
ich ESP32 nicht weiter kenne, kann ich kein Beispiel für die andere
Richtung geben – aber da gibt’s ganz sicher auch Sachen, die nur dort zu
nutzen sind, weil beim Pico nicht vorhanden.
Wenn du allerdings „nur“ Taster, Potis und irgendwelche z.B.
I²C-Standardsensoren auslesen, und Informationen über LEDs oder
irgendwelche Standarddisplays ausgeben willst, ist’s gehüpft wie
gesprungen, welches Board du wählst.
chris_ schrieb:> Es wird Thonny vorgeschlagen> https://thonny.org/> Dessen Installation bei mir nicht geklappt hat und deshalb darauf> verzichten möchte.
Geht im Grunde mit allem: PyCharm, Eclipse, Atom, VS Code, Vim, Emacs,
nano, ed, etc. – der Vorteil bei Thonny ist, dass ohne zusätzliche
Konfiguration alles mit einem Klick geht: MicroPython auf die Platine
packen, verschiedene Programme direkt vom Speicher des Pico in den
Editor laden und andersrum, und solche Sachen. Die Installation war
zumindest bei mir auch ganz einfach: ›yay thonny‹ (bei Debian und
RaspberryOS ist’s im Repo zu finden, so dass es sich auch dort einfach
via ›apt install thonny‹ installieren lassen sollte. Von diesen
eingeschränkten Betriebssystemen, wie man sie manchmal auf fertigen
Rechnern findet („Windows“ wird wohl viel verwendet), habe ich hingegen
keine Ahnung.
---
¹) ein verhältnismäßig einfaches Beispiel findet sich unter
https://core-electronics.com.au/tutorials/how-to-use-ws2812b-rgb-leds-with-raspberry-pi-pico.html
– da wird die Ansteuerung von WS2812B darüber realisiert.
chris_ schrieb:> und es stellt sich die interessante Frage,> ob der PiPico gegenüber dem ESP32 Vorzüge besitzt.
Hat ein Trekker gegenüber einem Laster Vorzüge?
Da es sich um zwei völlig unterschiedliche Produkte handelt, kommt es
doch sehr darauf an, was du damit machen willst.
OK, du will MicroPython ausführen. Das ist aber keine Anwendung, sondern
eine Programmiersprache. Du musst musst schon konkreter werden.
Stefan ⛄ F. schrieb:> OK, du will MicroPython ausführen. Das ist aber keine Anwendung, sondern> eine Programmiersprache.
Das allerdings ist ’ne Definitionssache: das MicroPython auf dem μC ist
sehr wohl ein Programm, welches die Scripte ausführt.
Jack V. schrieb:> Das allerdings ist ’ne Definitionssache: das MicroPython auf dem μC ist> sehr wohl ein Programm, welches die Scripte ausführt.
Man kauft sich aber weder einen ESP32 noch einen Raspberry Pi, um Python
Scripte auszuführen. Sondern man führt Python Scripte aus, um etwas
bestimmtes zu erreichen. Auf dieses "etwas" kommt es an.
Stefan ⛄ F. schrieb:> Man kauft sich aber weder einen ESP32 noch einen Raspberry Pi, um Python> Scripte auszuführen. Sondern man führt Python Scripte aus, um etwas> bestimmtes zu erreichen. Auf dieses "etwas" kommt es an.
Hm. Wortklaubereien. Für mich kommt es auf das „wie“ genauso an: man
nutzt die meisten Programme ja auch nicht, um Programme zu benutzen,
sondern um etwas Bestimmtes zu erreichen. MicroPython ist ein Programm,
das auf dem Pico oder ESP-Board (oder einer anderen Plattform) läuft,
dort RAM und Rechenzeit beansprucht, und dafür sorgt, dass die Eingaben
(Scripte) entsprechend umgesetzt werden.
BTT?
Die Frage, ob darauf Python läuft ist natürlich ebenso zentral, wenn man
in Python programmieren will. Diese hast du ja schon umfangreich
beantwortet. Dafür habe ich dir ein +1 gegeben.
Mittlerweil läuft bei mir Thonny:
Das Problem war meine Python Installation.
Ich hatte es mehrfach mit
pip3 install thonny
versucht. Aber scheinbar liegt da eine zu alte Python Version dahinter.
Mit
pip3.7 install thonny
hat es funktioniert.
In "thonny" selbst muss man dann noch bei "run" "select interpreter"
auswählen und dort den PiPico Microphython Interpreter selektieren.
Hier gibt es ein interessantes Repository mit dem PiPico als
Waveform-Generator:
https://github.com/romilly/pico-code/tree/master/src/pico_code/pico/experiments
( den ich noch nicht ausprobiert habe )
chris_ schrieb im Beitrag #6595875:
> Deine Klugscheisserei geht mir langsam ernsthaft auf die Nerven.
Ich habe diesen Beitrag geschrieben, weil ich dir eine zur Anwendung
passende Antwort geben wollte.
Wenn du keine konkrete Anwendung im Sinn hast, sondern einfach nur ein
bisschen Python ausprobieren willst, dann kannst du das einfach
mitteilen und gut ist.
Wer hier die Helfer beschimpft, muss damit rechnen, bald keine Hilfe
mehr zu bekommen. Oder gar verarscht zu werden - hatten wir alles schon
oft genug.
jaaaaa, sein "Oszi" hat aber nur 1 Aufnahme gemacht und deinem Oszi ein
paar mehr die übereinander liegen. Guck dir die PWM signal an ob es
evtl. "sauber" aussieht. Leider habe ich jede Menge Platinen aber keine
PiPicos :/.
Aber uPython geht auch mit dem ESP32... wäre ein versuch Wert...
Alex P. schrieb:> Aber uPython geht auch mit dem ESP32... wäre ein versuch Wert...
MicroPython generell wohl ja. Das „Funktionsgenerator“-Beispiel hingegen
dürfte Pico-Pi-exklusiv sein: es nutzt die PIO, und nutzt beide Kerne.
Stefan ⛄ F. schrieb:> Will ihm niemand mehr helfen?
Naja, es fehlt eine Frage.
Jack V. schrieb:> Naja, es fehlt eine Frage.chris_ schrieb:> und es stellt sich die interessante Frage, ob der PiPico gegenüber dem> ESP32 Vorzüge besitzt.
Stefan ⛄ F. schrieb:> Jack V. schrieb:>> Naja, es fehlt eine Frage.>> chris_ schrieb:>> und es stellt sich die interessante Frage, ob der PiPico gegenüber dem>> ESP32 Vorzüge besitzt.
Ich denke, dazu bereits etwas geschrieben zu haben.
Ansonsten hat so’n netter Schweizer das Thema mal aufgegriffen (und dazu
noch den STM32 von den BlackPill-Boards in den Vergleich aufgenommen):
https://www.youtube.com/watch?v=cVHCllbN3bQ
chris_
>und es stellt sich die interessante Frage, ob der PiPico gegenüber dem>ESP32 Vorzüge besitzt.
Jack V. (jackv)
>Ansonsten hat so’n netter Schweizer das Thema mal aufgegriffen (und dazu>noch den STM32 von den BlackPill-Boards in den Vergleich aufgenommen):>https://www.youtube.com/watch?v=cVHCllbN3bQ
Eine sehr schöne Analyse meiner Eingangsfrage, welche das ganze auf den
Punkt bringt. Das Video sollte man vielleicht im Hautpthread posten:
Beitrag "Raspberry Pi Pico: Mikrocontroller-Board mit Cortex M0+"
Die Ansichten von Andreas Spiess ( "the guy with the swiss accent" )
sind aber ein wenig "biased".
Ich weiß, er hat den ULP des ESP32 ziemlich genau analysiert und die PIO
des RP2040 damit verglichen. Die PIO ist, was den Befehlssatz angeht,
weniger leistungsfähig. Allerdings wird man mit dem ULP kein DVI-Signal
erzeugen können.
Im Vergleich wird auch gezeigt, dass der RP2040 keine I2S Schnittstelle
hat. Aber genau die dürfte man mit der PIO gut realisieren können.
Von Pimoroni gibt's bereits ein Shield dazu:
https://shop.pimoroni.com/products/pico-audio-pack
Insofern: In einigen Aspekten ist der RP2040 deutlich weniger
leistungsfähig als der ESP32, aber bei bestimmten Anwendungen wird der
ESP32 nicht mithalten können, wenn die speziellen Hardwareeinheiten SIO
und PIO benötigt werden.
Ich möchte einen I2C Peripherie Baustein an den PiPico anschließen.
Um den Baustein einfach testen zu können, will ich die Register auslesen
und über Tastatureingaben direkt verändern können.
Es wird also eine Hexadezimal Aus- und Eingabe gebraucht.
Der Python Syntax scheint stark bezüglich der Versionsn 2.x und 3.x sehr
unterschiedlich zu sein.
Eine HEX-Ausgabe habe ich auf diese Weise geschafft:
1
ar=[1,2,10,127,255,0xB,0xAA]
2
3
forbinar:
4
print("0x%02x"%b)
1
>>> %Run -c $EDITOR_CONTENT
2
0x01
3
0x02
4
0x0a
5
0x7f
6
0xff
7
0x0b
8
0xaa
3 Zeilen Code und eine halbe Stunde rumprobieren, deshalb poste ich die
Zeilen hier.
Hat jemand einen einfachen Editor für HEX-Eingaben?
chris_ schrieb:> Der Python Syntax scheint stark bezüglich der Versionsn 2.x und 3.x sehr> unterschiedlich zu sein.
Ist nicht vornehmlich die Syntax und man kann es kaum übersehen, da
(fast) alle Tutorien streng zwischen den Versionen unterscheiden.
Trotzdem gibt es für den Anfänger viele unerwartete Fallstricke. So habe
ich z.B. nicht geschnallt, dass die Vers. 3.6 kein Upgrade von 3.4 ist!
Da hilft nur hartnäckiges Forschen. Ich wünsche viel Erfolg.
Gruß Rainer
Uwe D. (monkye)
28.02.2021 13:30
>Hier noch eine ähnliche Lösung:>https://www.instructables.com/Arbitrary-Wave-Generator-With-the-Raspberry-Pi-Pic/
Nicht schlecht ... 125MSPs mit Python.
OK, es wird nur die DMA zusammmen mit der PIO konfiguriert, aber das
Projekt ist ziemlich gut gemacht.
Wahrscheinlich lässt sich der Transistortester mit dem RP2040 auf eine
ganz neue Stufe stellen.
Bei Python scheint mir die Byteverarbeitung deutlich komplizierter als
in C.
Ich habe eine Funktion zum Schreiben von 3 Bytes an einen externen
SPI-Baustein erstellt. Der Code funktioniert, gefällt mir aber nicht. Es
muss eine elegantere Möglichkeit in MicroPython geben.
Hat jemand einen Tipp?
Hier der aktuelle Code:
Wirklich erstaunlich, was man mit Webinterfaces heutzutage machen kann.
Ich habe die Schaltung von oben mit dem MPU6050 mal ins WOKWI übertragen
und nach dem Start