Bereits Kunde? Jetzt einloggen.
Lesezeit ca. 6 Min.

Zerynth Studio: Sony Spresense mit Python programmieren Spresense goes Python


Raspberry Pi Geek - epaper ⋅ Ausgabe 2/2020 vom 05.12.2019

InstalDie IDE Zerynth Studio bietet zusammen mit Sonys Spresense- Board einen einfachen Einstieg in die Welt der Mikrocontrollerprogrammierung auf Python-Basis. Martin Mohr


Artikelbild für den Artikel "Zerynth Studio: Sony Spresense mit Python programmieren Spresense goes Python" aus der Ausgabe 2/2020 von Raspberry Pi Geek. Dieses epaper sofort kaufen oder online lesen mit der Zeitschriften-Flatrate United Kiosk NEWS.

Bildquelle: Raspberry Pi Geek, Ausgabe 2/2020

Beim Spresense handelt es sich um einen von Sony entwickelten Mikrocontroller mit besonders niedrigem Energiebedarf.

Im Fachhandel kostet das Spresense etwa 60 Euro. Der Artikel „Viele Kerne“ in der letzten Ausgabe  ging ausführlich auf dessen technische Eigenschaften ein. Die Tabelle Technische Daten Sony Spresense fasst die wichtigsten Informationen zu dem Mikrocontroller noch einmal zusammen. Abbildung 1 zeigt das Pinout des ...

Weiterlesen
epaper-Einzelheft 7,99€
NEWS 14 Tage gratis testen
Bereits gekauft?Anmelden & Lesen
Leseprobe: Abdruck mit freundlicher Genehmigung von Raspberry Pi Geek. Alle Rechte vorbehalten.

Mehr aus dieser Ausgabe

Titelbild der Ausgabe 2/2020 von Datensauger. Zeitschriften als Abo oder epaper bei United Kiosk online kaufen.
Datensauger
Titelbild der Ausgabe 2/2020 von Schutzhelm. Zeitschriften als Abo oder epaper bei United Kiosk online kaufen.
Schutzhelm
Titelbild der Ausgabe 2/2020 von Multiboot für Raspbian:Schaltzentrale. Zeitschriften als Abo oder epaper bei United Kiosk online kaufen.
Multiboot für Raspbian:Schaltzentrale
Titelbild der Ausgabe 2/2020 von Serielle Kommunikation über RS-485 mit dem Raspberry Pi:Von Pi zu Pi. Zeitschriften als Abo oder epaper bei United Kiosk online kaufen.
Serielle Kommunikation über RS-485 mit dem Raspberry Pi:Von Pi zu Pi
Titelbild der Ausgabe 2/2020 von Keep it simple. Zeitschriften als Abo oder epaper bei United Kiosk online kaufen.
Keep it simple
Titelbild der Ausgabe 2/2020 von Ressourcen überwachen auf dem Raspberry Pi: Optimaler Überblick. Zeitschriften als Abo oder epaper bei United Kiosk online kaufen.
Ressourcen überwachen auf dem Raspberry Pi: Optimaler Überblick
Vorheriger Artikel
Heimautomation mit dem PC und Linux: Lichtmeister
aus dieser Ausgabe
Nächster Artikel I2C-Workshop Teil 29: Motor ansteuern mit dem DRV8830:Startet die…
aus dieser Ausgabe

... Spresense Mainboards. Außerdem finden Sie darauf auch die Namen der einzelnen GPIOPorts, die wir später in den Python-Programmen verwenden.

Sollten Sie genauere Informationen über das Spresense-Board benötigen, dann finden Sie diese ebenso auf der Entwickler-Homepage des Projekts  wie auch eine Menge nützlicher Beispielprojekte sowie die neuesten Nachrichten rund um den Mikrocontroller.

Falls Sie neben dem Spresense-Mainboard auch das Extension-Board besitzen, das mit etwa 40 Euro zu Buche schlägt, dann montieren Sie es am besten gleich richtig mit den beiliegenden Abstandshaltern. Steckt man das Mainboard einfach nur in den Verbinder, ist die Chance hoch, keinen richtigen Kontakt zu bekommen – der Autor spricht hier aus leidiger Erfahrung.

Zerynth Studio

Die Entwicklungsumgebung Zerynth Studio  unterstützt unterschiedliche Mikrocontroller, darunter auch den Sony Spresense. Sie steht für alle gängigen Betriebssysteme wie Linux, Mac OS und Windows zum Download bereit. In Zerynth Studio erstellen Sie Programme in Python und laden sie dann in den Mikrocontroller.

Damit das Spresense mit der IDE kooperiert, installiert diese darauf einen spezieller Bootloader, der etwa 90 KByte Programmspeicher und 5 KByte Arbeitsspeicher belegt. Bevor Sie mit der InstalDie lation starten, sollten Sie schon einmal das Spresense-Board an den USB-Bus anschließen. Die Zerynth-Studio-IDE finden Sie auf der Homepage des Herstellers. Beispielhaft beschreiben wir hier die Installation unter Ubuntu 18.04, die mit Langeit-Support ausgestattet ist.

1 Das Pinout des Spresense-Mainboards mit den zugehörigen GPIO-Namen.


Erstellen Sie zunächst in Ihrem Home- Verzeichnis einen Ordner für die IDE, in den Sie das heruntergeladene Installationspaket kopieren. Danach wechseln Sie in den Ordner und entpacken das Archiv. Anschließend starten Sie die Installation mit dem Aufruf ./zerynth.

Das eigentliche Setup übernimmt ein Abfragedialog. Im ersten Fenster müssen Sie die Lizenzbedingungen annehmen und danachContinue klicken. Nun fragt der Assistent nach der Art der Installation. Hier entscheiden Sie sich fürOnline . Im nächsten Abschnitt wählen Sie bei Bedarf die gewünschte Version – die aktuellste, derzeit r2.3.2, ist bereits vorausgewählt. Mit einer halbwegs flotten Internet-Verbindung dauert die Installation weniger als zwei Minuten.

Nach dem Start der IDE erscheint zunächst ein Login-Bildschirm, über den Sie sich bei Zerynth anmelden. Die Registrierung beschränkt sich aber auf das Notwendigste 2. Die E-Mail-Adresse verwendet das Unternehmen, um Sie über Neuigkeiten zu informieren. Sie schließen den Vorgang mit einem Klick auf den Aktivierungslink in der Bestätigungsmail ab, die Sie automatisch erhalten. Nach dem Anmelden sehen Sie den Willkommensbildschirm der IDE. Auf den ersten Blick wirkt alles sehr aufgeräumt und nicht überfrachtet. Um es vorweg zu nehmen: Die IDE bietet genau die Funktionen, die man braucht, um effektiv zu arbeiten.

Bevor Sie mit dem Programmieren beginnen, gilt es, einige Einstellungen vorzunehmen. Aktuell steht im Device-Ausklappmenü nochNo device . Wählen Sie hierChoose virtual devices… aus. Im folgenden Dialog aktivieren Sie die Checkbox vor dem EintragSony Spresense und klicken danach aufSet .

Momentan steht hinterSony Spresense nochmissing deps , sprich: Es fehlen noch einige benötigte Software-Pakete. Um sie zu installieren, klicken Sie auf denZ - Button direkt neben dem Ausklappmenü und danach aufInstall . Sie sehen nun unten im Statusfenster, wie die Software fehlende Pakete nachlädt. Ein erneuter Klick auf denZ -Schalter erlaubt es nun, Ihr Spresense-Board zu registrieren. Dieser Schritt ist nötig, um später die Programme in das Spresense zu laden.

Beim Registrieren des Boards schreibt die IDE auch gleich den bereits erwähnten Bootloader in das Board.

2 Der Registrierungsdialog von Zerynth Studio beschränkt sich auf das Wichtigste.


3 Sollte es beim Installieren des Bootloaders zu Schwierigkeiten kommen, lässt er sich alternativ auch manuell einrichten.


Virtuelle Maschine

Im letzten Schritt müssen Sie eine virtuelle Maschine für das Board erstellen, über die die IDE sich mit dem Board verbindet. Dazu klicken Sie ein weiteres Mal auf denZ -Button und anschließend aufCreate . Nun öffnet sich ein Menü, in dem sie die gewünschte NuttX-Version auswählen.

Bleiben Sie hier bei der vorausgewählten Version und klicken aufCreate . Im folgenden Dialog genügt es, wenn Sie denVirtualize - Button anklicken. Nach Abschluss des Prozesses erscheint im StatusfensterDevice Virtualized . Nach dem Vorbereiten des Boards und der IDE starten Sie mit einem ersten Beispielprogramm. Sollte es zu Problemen mit dem Bootloader kommen, lässt er sich auch manuell überDevice |Info |Burn Bootloader installieren 3.

Um schnell und einfach zu starten, verwenden wir für unseren ersten Versuch ein vorhandenes Beispielprojekt. Klicken Sie dazu auf dasExamples -Icon, eine Glühbirne, in der linken vertikalen Leiste. Suchen Sie nachBlink und klicken Sie auf den gleichnamigen Eintrag in der SektionBasics . Daraufhin öffnet sich ein Fenster mit dem hinterlegten Codebeispiel. Klicken Sie danach auf den SchalterClone unten im Fenster. Damit nicht alle Ihre Programme direkt im Heimatverzeichnis landen, sollten Sie einen anderen Ort verwenden – Workspace/ ist ein bei Entwicklern beliebter Name dafür. Nach dem Klonen des Projekts öffnet die IDE es direkt. Um das eigentliche Programm einzusehen, klicken Sie in der linken Leiste ganz oben auf das IconCurrent Project und danach in der Liste rechts daneben auf main.py 4.

Das Programm bringt dieLED0 auf dem Spresense-Mainboard zum Blinken. Um es in den Mikrocontroller zu zu laden, klicken Sie auf das kleine Pfeil-Icon (Uplink ) in der Menüleiste. Im Statusfenster unten sehen Sie jetzt, wie die IDE das Programm baut und überträgt. Hier gibt Zerynth Studio auch eventuelle Programmfehler aus.

Nach dem erfolgreichen Upload sollte dieLED0 des Boards im Sekundentakt blinken. Sie können nun mit dem Programm etwas herumexperimentieren – beispielsweise eine andere LED blinken lassen oder die Taktrate ändern.

4 Das Hauptfenster der Zerynth-IDE mit dem geladenen Beispielprogramm Blink.


5 Der Schaltplan des Versuchsaufbaus.


Neues Projekt aufsetzen

Unser nächstes Beispiel liest einen analogen Spannungswert ein und gibt diesen auf einer Siebensegmentanzeige aus. Wir verwenden hierzu das Spresense- Expansion-Board. Dessen Pinout sehen Sie mit einem Klick auf das IconDevice Pinmap oben rechts in der Menüleiste ein. Besitzen Sie nur das Spresense- Mainboard, müssen Sie die GPIO-Pins im Programm an Ihren Aufbau anpassen.

Als Anzeige verwenden wir ein auf dem MAX7219 basierendes Modul .

Die Spannung, die wir anzeigen wollen, erzeugen wir in diesem Fall mit einem einfachen Spannungsteiler, den wir mit einem 10-kOhm-Potenziometer aufbauen. Abbildung 5 zeigt den dazugehörigen Schaltplan, Abbildung 6 den Testaufbau.

Um in Zerynth Studio ein neues Projekt anzulegen, klicken Sie im Menü aufProject |New . Daraufhin öffnet sich ein Dialog, in dem Sie den Namen und den Speicherort für das Projekt eingeben, alle weiteren Eingaben sind optional. Nach dem Klick auf denCreate -Button legt die IDE das Projekt an.

Öffnen Sie nun die Datei main.py links aus demProject view und starten Sie mit dem Entwickeln. Listing 1 zeigt das Beispielprogramm. Bevor Sie es in den Controller laden, müssen Sie erst dasDevice: wieder aufSony Spresense einstellen. Damit das Programm halbwegs präzise Messwerte liefert, müssen Sie es an den konkreten Aufbau anpassen. Im ersten Schritt benötigen Sie eine genaue Referenzspannung, die Sie mit einem Multimeter messen; vermutlich liegt sie etwas unter 5 Volt. Den ermittelten Wert tragen Sie in das Programm als Wert für Uref (Zeile 11) ein. Um die zweite Anpassung vorzunehmen, starten Sie das Programm und stellen das Poti so ein, dass die maximal mögliche Spannung am analogen Eingang anliegt.

Die Konsole zeigt Ausgaben des Programms im Mikrocontroller während der Laufzeit an. Diese Funktion erweist sich bei der Entwicklung oft als sehr nützlich. Sie sollten sie aber deaktivieren, sobald das Programm fehlerfrei arbeitet. Sie öffnen die Konsole über das IconOpen Console oben rechts in der Menüleiste und sehen sich die Ausgaben des Programms an.

Hier sehen Sie den Wert, den der ADWandler ausgibt, sowie die errechnete Spannung. Der aktuell angezeigte RAW Value entspricht der Referenzspannung. Tragen Sie diese Zahl als Wert für die Variable maxValue (Zeile 12) ein. Mit diesen beiden Anpassungen sollten die Spannungswerte, die das Display anzeigt, ungefähr mit den gemessenen Werten übereinstimmen.

Wenn Sie sich ein wenig mit dem Programm beschäftigen, dann fällt Ihnen sicher auf, dass die analogen Messwerte etwas schwanken. Das liegt daran, dass die 5 Volt vom USB-Bus nicht besonders stabil anliegen. Um die Schwankungen etwas zu verringern passen Sie das Programm so an, dass es eine bestimmte Zahl an Messungen vornimmt und daraus den Mittelwert berechnet. Das führt zu wesentlich präziseren Messungen.

6 Das Spresense mit Poti und Anzeige. In diesem Aufbau verwendet der Autor zusätzlich das Extension-Board.


Fazit

Der Autor, nicht unbedingt ein Fan von Python, war angenehm überrascht, wie schnell und einfach man mit dem gut strukturierten und leicht bedienbaren Zerynth Studio und dem Sony Spresense zu Ergebnissen kommt. Alle wichtigen Funktionen lassen sich über Icons direkt erreichen. In den Menüs finden sich nur wenige, aber dafür wichtige Funktionen. Um Projekte in Teams zu bearbeiten bietet die IDE eine Git-Integration an. Mithilfe zahlreicher Beispiele finden Sie schnell Codeschnipsel, die sich in eigenen Projekten verwenden lassen. (tle)

Der Autor

Martin Mohr entwickelte schon in früher Jugend eine Vorliebe für alles, was blinkt. Das verstärkte sich durch eine Ausbildung zum Elektroniker. Nach einem Studium der Informatik entwickelte er überwiegend Java-Applikationen. Mit dem Raspberry Pi erwachte die alte Liebe zur Elektronik wieder.

README

Mikrocontroller wie das Spresense von Sony programmieren Sie üblicherweise in C oder C++ – beides gerade für Einsteiger schwierig zu erlernen. Die Entwicklungsumgebung Zerynth ermöglicht es, Mikrocontroller stattdessen mit dem vergleichsweise handlichen Python zu programmieren.


74-1