Im Hause Arduino stand man den Neuerungen im Prozessrechnerwesen eher chancenlos gegenüber - um 2017 herum erzaehlte ein slowakischer Universaldistributor im Vertrauen, dass sich Arduino-Boards teilweise um den Faktor 10 schlechter verkaufen als die "einfacher programmierbaren" Raspberry Pis. Nun gibt es erste Experimente mit MicroPython.
Worum geht es hier?
Python ist eine interpretierte Sprache. Das von Damien George vorangetriebene Projekt bietet eine extrem kompakte Version des Interpreters an, die auf aller Herren Microcontroller lauffähig ist. Als IDE kommen meist Systeme wie Thonny zum Einsatz, die eher wenig komfortabel sind.
In einem der als Arduino Labs bezeichneten Experimente bieten die Italiener nun einen hauseigenen Editor an, der sich optisch an Arduino IDE 2.0 orientiert. Ausserdem gibt es für die folgenden drei Boards offizielle Firmwares:
1
x)NanoBLESense
2
x)NanoRP2040Connect
3
x)PortentaH7
Firmware am Arduino RP2040 Connect installieren
Die Auslieferung der unter https://docs.arduino.cc/micropython/ bereitstehenden Firmware erfolgt in Form einer .uf2-Datei, zu deren Installation der Controller in den Downloadmodus versetzt werden muss. Hierzu ist eine Brücke zwischen den Pins REC und GND erforderlich, danach noch ein Druck auf Reset. Sodann erscheint ein Laufwerk namens RPI-RP2, auf dem die Firmwaredatei unterkommt.
Seine Ausführung in Thonny liefert das in der Abbildung gezeigte Ergebnis.
(Bildquelle: Autor)
Für die eigentliche Kommunikation nach Außen stehen die in der Abbildung gezeigten GPIO-Mappings zur Vefügung.
(Bildquelle: Arduino)
Als Nächstes bietet sich die Ausgabe einer charakteristischen Wellenform an:
1
importtime
2
fromlsm6dsoximportLSM6DSOX
3
4
frommachineimportPin,I2C
5
p0=Pin(25,Pin.OUT)
6
7
whileTrue:
8
p0.value(1)
9
p0.value(0)
10
p0.value(1)
11
p0.value(0)
Die Abbildung zeigt die am Oszilloskop (LeCroy 9354AM) sichtbare Wellenform.
(Bildquelle: Autor)
Experimente mit dem hauseigenen Editor
Als Nächstes bietet sich der Besuch der URL https://labs.arduino.cc/en/labs/micropython an, wo die hauseigene IDE zum Download bereitsteht. Nach Download und Extraktion erfolgt der Start folgendermaßen:
Schließen Sie an dieser Stelle Thonny, und klicken Sie danach auf Connect. Nach erfolgreichem Verbindungsaufbau präsentiert sich die IDE wie in der Abbildung gezeigt.
(Bildquelle: Autor)
Bis auf arduinotypischeres Aussehen bietet diese IDE nichts, was über Thonny hinausgeht – Funktionen wie IntelliSense sucht man vergeblich.
Wie geht es weiter?
Arduino wird nicht müde, die Experimentalität dieses Produkts zu betonen - in der Theorie könnten die Italiener schon morgen aufhören, Python zu unterstuetzen. Nach Ansicht des Autors ist dies aber eher unwahrscheinlich - MicroPython ist portabel, die User könnten zu anderen Boardherstellern fliehen. Außerdem ist die hauseigene IDE alles andere als komfortabel.
Fraglich ist eher, ob sich die - doch teureren - Arduinos im Pythonbereich durchsetzen. Büedhonisdas mögen (abseits des ML-Bereichs) nicht zur Elite der Elektroniker gehören, die Community ist aber eng vernetzt...und so schwierig ist die Nutzung von ESP32-Boards am Ende dann auch wieder nicht...
Es kommt nicht immer darauf an, dass ein Board möglichst einfach zu
programmieren ist. Python hat auch Nachteile.
Wenn jemand C/C++ lernen muss, dann ist ein Einstieg mit einem
klassischen Arduino Board 100x sinnvoller, als mit Python. Und C/C++ ist
nun mal immer noch Standard in der Industrie.
Tam H. schrieb:> Büedonisdas
Ich dachte das sei ein Tippfehler, aber nun hast du es zum 2. mal
geschrieben. Ich kenne das Wort nicht, Google auch nicht. Ist das ein
Übersetzungsfehler?
Uwe L. schrieb:> wohl eher ein Verballhornung von Pythonistas …
aha, mir war das nicht klar.
Wenn Sprache nicht mehr verständlich ist sollte man Wortspiele besser
weglassen. Oder erklären, zumal in "Pyhtonista", auch ausgesprochen, ein
"ü" nicht mal vorkommt. Und weil's dann nicht mehr lustig ist vielleicht
doch lieber bleiben lassen. Oder zumindest googeln, ob das noch
irgendjemand anders auf der Welt benutzt.
Stefan F. schrieb:> Tam H. schrieb:>> Büedonisdas>> Ich dachte das sei ein Tippfehler, aber nun hast du es zum 2. mal> geschrieben. Ich kenne das Wort nicht, Google auch nicht. Ist das ein> Übersetzungsfehler?
Hallo,
sorry, war etwas langsam mit dem Reagieren...bin im Moment wegen einer
Kundin nachtaktiv. Es ist eine Verballhornung von Pythonista...was ein -
me nach idiotischer - Ausdruck für einen Pythoncodierer ist.
Stefan schrieb:> Als IDE ist VSCode mit der Pico-W-Go Extension die beste Wahl.> https://marketplace.visualstudio.com/items?itemName=paulober.pico-w-go> Daneben gibt es auch noch den MU-Editor. https://codewith.mu> Warum Arduino nicht die IDE 2.0 benutzt erschließt sich mir nicht.
Hallo,
mir wirkt das Ganze wie ein Schnellschuss, um von MicroPython /
CircuitPython zu profitieren.
Entre Nous werden sie wahrscheinlich auch Angst haben, dass ihnen ihr
alter Weggefaehrte AdaFruit mit CircuitPython zu viel vom Keks
wegfrisst.
lg
th
Tam H. schrieb:> was ein -> me nach idiotischer - Ausdruck für einen Pythoncodierer ist.
… nix für ungut, aber bei idiotischen Ausdrücken für irgendwas spielst
du selbst ja auch ganz vorne mit („uptonscher Prozessrechner“, etc.) …
;)
Tam H. schrieb:> Pythonista...
Habe ich noch nie gelesen. Wie kommt man auf so was?
> was ein ... idiotischer Ausdruck für einen Pythoncodierer ist.
Allerdings
Jack V. schrieb:> Tam H. schrieb:>> was ein ->> me nach idiotischer - Ausdruck für einen Pythoncodierer ist.>> … nix für ungut, aber bei idiotischen Ausdrücken für irgendwas spielst> du selbst ja auch ganz vorne mit („uptonscher Prozessrechner“, etc.) …>> ;)
Hallo,
das kann ich mir nicht verkneifen. :)
Uptoniten...Sunniten, Schiiten, etc. Betont die religiöse
Komponente...lustig war es als ich vor ein paar Jahren auf deren Stand
mal Shenzhen Xunlong erwähnte, die beleidigten und pissigen Reaktionen.
(Ich war von Anfang an Beobachter der RPi-Sache, und mag die Uptoniten
nicht...)
Oh man, was für ein Quatsch. Warum tut man das? Glauben die wirklich, es
gibt irgendeinen Käufer ihrer Produkte, der sagt: normale
Arduino-Programmierung kann ich nicht, ich brauche Python? Das ist doch
völlig absurd, jetzt eine noch langsamere Sache auf den Arduino zu
bringen, als der Mist eh schon ist! Die sollten lieber mal zusehen, dass
sie einen Arduino auf Basis des ESP32 auf den Markt bringen! Aber nein,
stattdessen lieber völlig wilde Varianten von irgendwelchen Atmels mit
zusätzlichen Chips als Peripherie. Schizophren! Wer bitte kauft diese
Teile? Adafruit ist da deutlich näher am Puls des Marktes und versucht
sich halt eine Nische mit Python aufzubauen.
Trotzdem weiß jeder, der mit den Dingern gearbeitet hat, das
insbesondere CircuitPython so schnell an Ressourcengrenzen stößt, dass
man immer darauf angewiesen ist, dass entweder das Projekt echt simpel
ist oder einer ne perfekte Library anbietet...
Ich habe nicht von schwach geschrieben! Python ist überall langsam. Wenn
der ESP32 billig ist, umso besser! Originale Arduinos leiden eh an zu
hohen Preisen.
>Und ESP32 Boards gibts reichlich
Gilt für die Sachen die Arduino verbaut ebenfalls. Stichwort Adafruit.
Arduino original kaufen die Leute nur weil zuverlässig und Ökosystem. Da
können die den billigsten Chip verbauen und so noch Leute mitnehmen,
weil sie etwas günstiger werden können.
Jemin K. schrieb:> Glauben die wirklich, es> gibt irgendeinen Käufer ihrer Produkte, der sagt: normale> Arduino-Programmierung kann ich nicht, ich brauche Python?
Ich denke zwar nicht so, aber kenne ein paar Leute die so denken. Sie
lesen "C war ursprüngliche eine Verarschung um Programmierer zu
verwirren" und "Python ist geil". Also wollen sie Python. Python ist
unter jungen Leuten der Heiße Scheiß, C ist der alte Kram von Opa.
Schau dir mal die BMW Werbung an (Freude am Fahren). Die setzen
erfolgreich auf Gefühle, statt Fakten.
Insofern denke ich schon, dass sich Boards mit/für Python gut verkaufen
lassen. Nicht an jeden, aber an viele.
Was viel visionärer wäre, eine Unterstützung für Rust auf Arduino.
Python ist heute halt Standard, aber es ist eine Scripting-Sprache und
irgendwann wird es von was neuem ersetzt... Rust hingegen würde echte
Vorteile bringen.
Technisch nachvollziehbar, aber bedenke die Größe der Gemeinschaft. Wenn
ein Softwareprojekt von der Gemeinschaft leben soll, oder muss, ist eine
große besser als eine kleinere.
Da gebe ich Dir Recht. Aber Python erfüllt diesen Zweck nicht. Das ist
typische CEO Denke. Wenn ich ein Projekt habe, bestimmt die Aufgabe die
Programmiersprache. Könnte ich nicht programmieren, wäre ich gezwungen
den Arduino C-Dialekt zu verwenden. Das wäre aber kein Problem, wie
hunderttausende Projekte von Elektroniknoobs zeigen.
Könnte man parallel und für lau ein Python-Ökosystem hochziehen, klar,
dann greift man noch die drei Leute ab, die vom Buzzword Python
angezogen werden. Kann man aber nicht. Man braucht Ressourcen. Und die
Ressourcen muss man entweder zusätzlich schaffen (Produkte werden dann
teurer) oder von vorhandenen Aufgaben abziehen. Damit leidet das
Kernökosystem, was ja eben DAS Argument für Arduino ist! Das Geld könnte
man stattdessen investieren, um die bestehenden Stärken auszubauen oder
Schwächen zu beseitigen. Zum Beispiel mal die völlig missratene
Drecks-IDE gegen etwas Vernünftiges tauschen!
Die meisten Leute, die einen Python Arduino kaufen, würden auch einen
"normalen" kaufen. Man wildert sozusagen im eigenen Marktsegment. Sowas
ist nicht sonderlich clever. Clever ist es, zu schauen, wo die Reise
hingeht, wie man neue Märkte und Anwendungen erschließt etc. Wie gesagt,
wenn das alles umsonst wäre, klar, immer her damit. Aber das ist es
nicht. Arduino verzettelt sich. Und exakt das machen sie schon die ganze
Zeit. Deshalb kaufe ich nur noch selten da.
Das es clever ist ist ja auch niemand behauptet 😁
Clever wäre es gewesen von Anfang an auf eine SkriptSprache zu setzen.
Aber da werden wir unterschiedlicher Meinung sein.
Was völlig okay ist, da wir (wahrscheinlich) einen sehr
unterschiedlichen Hintergrund haben.
Kolja L. schrieb:> Clever wäre es gewesen von Anfang an auf eine SkriptSprache zu setzen.
So wie der C-Control? Der war aber sehr lahm. Ebenso diverse Projekte
mit Java (Bytecode) Interpreter.
Stefan F. schrieb:> Es kommt nicht immer darauf an, dass ein Board möglichst einfach zu> programmieren ist.
Aber ja doch, genau darauf kommt es an. Das ist nämlich das erklärte
Ziel des Arduino-Projekts: genau die Leute an Elektronik und
Mikrocontroller heranzuführen, die bisher keine Entwickler sind.
Stefan F. schrieb:> Der war aber sehr lahm.
Kenne ich nur von früher aus den.Katalogen 😃
Aber ja, zu langsam für die Aufgaben der Zielgruppe darf es natürlich
nicht sein.
Ein T. schrieb:> Aber ja doch, genau darauf kommt es an.
Ja, Ihr seid nicht diejenigen, für die das Konzept entwickelt wurde,
auch wenn es ein Mikrocontroller ist 😛
Tam H. schrieb:> (Ich war von Anfang an Beobachter der RPi-Sache, und mag die Uptoniten> nicht...)
Du scheinst Vieles nicht zu mögen, vor allem wenn es nicht von Microsoft
stammt. Leider merkt man das viel zu oft in Deinen Artikeln.