Micro-Python auf dem Calliope mini - wie?


#1

Hallo Zusammen,

Ich würde gerne Python-Programme auf dem Mini ausführen. Grundsätzlich soll es dank des microbit-Editors kein Problem sein. Wenn ich die Hex Datei, die aus dem Download resultiert, auf den Mini kopiere gibt es offenbar eine Fehlermeldung und die Anzeige geht in den Dauer-Blinkmodus über.

Ich vermute, dass mein Mini (es ist die erste Generation aus der Kickstart-Kampagne) noch kein Python versteht.

Kann mir jemand weiterhelfen? Muss ich die Firmware aktualisieren? Ich habe eine Datei mit dem Namen kl26z_calliope_if_crc.bin im Maintancance-Modus auf den Mini übertragen, aber offenbar ohne Erfolg.

Danke und viele Grüße,
Peter


#2

Hallo Peter,

das sollte eigentlich nicht am mini liegen.
Kannst du uns deine Hex-Datei hier hochstellen und evtl. dein Programm-Code posten?
Dann könnte man das zumindest ausprobieren.

Beste Grüße
Jörn


#3

Hallo Jörn,

Das Programm ist nur ein simples Hallo,Welt-Programm.

Meine Fragen waren eher grundsätzlicher Natur:

Welche Voraussetzungen müssen erfüllt sein, dass der Mini Python-Code ausführen kann?

Gibt es eine aktuellere Firmware-Version, wenn man noch den Mini aus dem Kickstarter-Projekt hat?

Ich habe dazu leider trotz längere Suche nichts gefunden. Andere User dürfte das ja auch interesieren.

Durch das Kopieren der Hex-Datei habe ich mir offenbar mein Gerät lahmgelegt - es blinkt nur noch "S O X " (?) im Dauerbetrieb.

Ich wollte eigentlich die Hex-Datei beigefügen, aber als neuer Benutzer darf ich das offenbar noch nicht.

Ich habe die Befehle direkt aus einem Blog kopiert:

Der Autor hat inzwischen auf meine Frage auch geantwortet (hatte ich gerade erst entdeckt).

Eventuell hat sich meine Frage damit auch bereits geklärt. Ein allgemeiner Hinweis wäre aber hilfreich, da Micro Python aus meiner Sicht eine attraktive Alternative zu den rein visuellen Editoren darstellt.

VIele Grüße,
Peter


#4

Hallo Peter,

ich hatte im Blog ja schon die URL zur Erklärung gepostet. MicroPython kann direkt interpretiert werden.
Es hat nichts mit der Version des mini zu tun. Ich habe bei dem Online-Editor allerdings Probleme mit der Datei. Der ist aber auch schon länger nicht mehr gewartet worden, deshalb liegt es vermutlich auch daran. Am einfachsten ist es, wenn du den kostenlosen Mu Editor nimmst.

Grüße
Jörn


#5

Hallo Peter,

wir erstellen noch eine Seite mit Anleitungen und weiteren Infos, hier findest du aber die angepasste MicroPython Version:

Grüße
Jörn


#6

Hallo zusammen,
ich will auch mit MicroPython arbeiten… verstehe aber nicht so ganz wie ich mit den Dateien von GitHub umgehen soll. Kann ich mit Windows überhaupt arbeiten oder geht das nur auf Linux?
Freue mich sehr über Hilfe!
Danke und viele Grüße
Marie


#7

Daraus kannst du dir die nötige Runtime erstellen (und ggf. für dich individuell anpassen).
Letztlich benötigst du aber nur die Runtime, ich habe eine beispielsweise angehängt
Die kannst du in einen Editor z.B. Mu nehmen, um daraus dann dein Programm zusammenstellen zu lassen…
calliope-micropython.hex (581,4 KB)
In der kommenden Version (1.1) vom Mu soll diese direkt als Modul integriert sein.
Um sie dann nutzen zu können, musst du “from calliope_mini import *” dann als erstes aufrufen.
Grüße
Jörn


#8

Ok, super, danke! Ich habe jetzt noch Probleme, die Pins mit MicroPython anzusprechen… Geht das evtl gar nicht?
Danke und viele Grüße!


#9

Doch, das geht. Pin 0 - Pin 30 sind drin. Es ist aber wichtig, dass du “from calliope_mini import *” nutzt.
Grüße
Jörn


#10

Ich verwende jetzt die portable Version des Mu-Editors… Wenn ich eingebe “import calliope_mini *” bekomme ich einen Syntax error für Zeile 1.
“from calliope_mini import *” hingegen funktioniert. Mache ich was falsch? Die Pins funktionieren so nicht…

from calliope_mini import *
while True:
if button_a.is_pressed():
display.show(Image.SAD)
elif pin0.is_touched():
display.show(Image.HAPPY)


#12

Um alle Module aus der Calliope mini Bibliothek zu importieren:
from calliope_mini import *
Die Pins funktionieren auch schon, jedoch gibt es zur Zeit noch ein Problem mit der is_touched Funktion.
Die pins können digital und analog ausgelesen werden:

from calliope_mini import *
while True:
    print(pin1.read_digital())
    print(pin1.read_analog())
    sleep(500)