Adafruit-Controller

 26. April 2024 •  Ekkart •  Adafruit, Basteln, Computer •  Computer

Mal ein kleines Bastelprojekt: einen LED-Ring mit einem kleinen Controller ansteuern.

Die Wahl fiel auf den Adafruit Trinket M0, einen kleines Board mit einem Microcontroller, der direkt Python ausführt.

In der Theorie einfach anschließen und loslegen. Wenn sofort ein Laufwerk erscheint, gut so und nach den nächsten Schritten weitermachen.

In der Praxis anschließen und er erscheint nicht als Laufwerk. Dafür blinkt die eine LED hektisch und die andere zeigt lauter Regenbogenfarben. Immerhin sind die Fehlercodes fröhlich 😄

Dann der Anleitung folgen:

  1. anschließen
  2. Reset-Knopf doppelklicken
  3. es erscheint ein neues Laufwerk (Boot)
  4. das aktuelle CircuitPython runterladen (die Ausführungsumgebung für den Python-Code)
  5. die runtergeladene uf2-Datei auf das Board-Laufwerk ziehen
  6. die LED blinkt, dann verschwindet das Boot-Laufwerk und das richtige Laufwerk erscheint

Hier die code.py im Editor Eures Vertrauens öffnen (Anleitung dazu). Folgenden Code reinkopieren:

import board
import digitalio
import time

led = digitalio.DigitalInOut(board.LED)
led.direction = digitalio.Direction.OUTPUT

while True:
	led.value = True
	time.sleep(0.5)
	led.value = False
	time.sleep(0.5)
	print("Hello, world!")

Der Code wird kurz verarbeitet und die rote LED blinkt (im Sekundentakt, 0,5 Sekunden ein und aus, siehe Code).

Um die Print-Ausgabe zu sehen, muss man die Serial Console auf dem Rechner anzeigen, siehe Anleitung bzw. Anleitung für Linux.

  1. screen installieren.
  2. Board anstecken
  3. Port (ttyACM…) und Gruppe des Boards rausfinden
  4. User in die Gruppe des Boards aufnehmen (sonst muss man alles als Admin machen)
  5. Rechner neu starten (oder anderweitig die Gruppe übernehmen)
  6. Gruppe prüfen
  7. Serial Console aufrufen
  8. Ausgabe ansehen
$ ls -lisa /dev/ttyACM*
1033 0 crw-rw---- 1 root dialout 166, 0 Apr 27 01:06 /dev/ttyACM0
$ groups $USER
myname : myname adm cdrom sudo lpadmin ...
$ sudo usermod --append --groups dialout $USER
$ groups $USER
myname : myname adm cdrom dialout sudo lpadmin ...
$ screen /dev/ttyACM0 115200
Hello World
Hello World
...

Jetzt Strg+C drücken und noch eine Taste, dann ist man im interaktiven Modus (REPL) des Boards und kann Python direkt eingeben. Mit Strg+D kommt man wieder zurück auf die Konsole…

KeyboardInterrupt:

Code done running.
Auto-reload is on. Simply save files over USB to run them or enter REPL to disable.

Press any key to enter the REPL. Use CTRL-D to reload.

Adafruit CircuitPython 9.0.4 on 2024-04-16; Adafruit Trinket M0 with samd21e18
>>> print("Hallo, Welt.")
Hallo, Welt.
>>>