Make Magazin 2/2016
S. 80
Anleitung
Aufmacherbild

Kinderleicht mit viel Potenzial

Für den Einstieg in die Arbeit mit Mikrocontrollern muss es nicht immer ein Arduino sein. Die Chips aus der Picaxe-Familie sind ebenfalls günstig und einfach zu verwenden. Die Programmierung erfolgt noch näher an der Hardware über BASIC und ist besonders nachvollziehbar.

Sensoren anstecken, eingehende Signale überwachen und über LEDs wieder ausgeben – die Arbeit mit Mikrocontrollern vermittelt gleichzeitig Programmier- und Elektronikkenntnisse. Picaxe richtet sich an Schüler, Einsteiger und Lerngruppen, die auf diesem Gebiet noch kein oder nur wenig Vorwissen haben. Die Chips sind vorkonfigurierte PIC-Mikrocontroller der Firma Microchip. Sie werden in eingebetteten Systemen von der Fernbedienung bis zum Auto verwendet, das Gelernte kann man also später im professionellen Bereich anwenden. Die Grundausstattung ist günstig zu erwerben und die Software steht kostenfrei zum Download zur Verfügung. Die Programmierung erfolgt über einen klassischen Editor oder Flussdiagramme, die der beliebten Lernoberfläche Scratch ähnlich sind. Wer mag, kann über Zusatzmodule einfach neue Funktionen hinzufügen. Schließlich erleichtern eine langjährige Community und die gute, englischsprachige Dokumentation auf der Herstellerseite die Arbeit. Dort gibt es viele Beispielprojekte vom laufenden Breadboard-Roboter bis zum blinkenden LED-Stern.

Die Ausrüstung

Für erste Experimente reichen eine Handvoll Bauteile. Das Herz ist der Mikrocontroller vom Typ Picaxe. Es sind Typen verschiedener Leistungsklassen erhältlich. Für den Anfang genügt das kleinste Modell. Für die Programmierung brauchen wir noch ein Entwicklungs-Board, auf dem wir die Schaltungen aufbauen. Mit einem Download-Kabel verbinden wir das Board mit dem PC und übertragen unser Programm. Das Kabel wird dafür am USB-Port des Rechners angeschlossen. Die Entwicklungssoftware ist recht anspruchslos und läuft auch auf älteren Geräten und Betriebssystemversionen. Schließlich brauchen wir einen Batteriehalter und Batterien für die Spannungsversorgung. Das können drei AA-Batterien, vier AAA-Akkus oder ein regulierter 5-Volt-Anschluss sein.

Entwicklungsprojekt-Board, Picaxe-Chip, Software, Download-Kabel und Batteriehalter – die Grundausstattung für die Arbeit mit Picaxe, hier das große Board.

Neben den Chips gibt es auch die Boards in unterschiedlichen Leistungsklassen. Für den Anfang spielt es keine Rolle, welches Exemplar ausgesucht wird. Der Einstieg gelingt mit jeder Variante, für größere Projekte muss man sein Board entweder erweitern oder ein leistungsfähigeres Board wählen. Sinnvoll und günstig ist das Starterpack Picaxe-08, das alle nötigen Teile mitbringt, um den Chip zu programmieren, und circa 30 Euro kostet. Das Pack wird als Bausatz geliefert und muss zusammengelötet werden. Etwas Erfahrung in Sachen Elektronik ist also notwendig. Das Set enthält neben dem Mikrocontroller Picaxe-08M2 (siehe Kasten) und dem Bausatz das Verbindungskabel zum PC, einen Batteriehalter und die Software-CD. Zusätzlich kann eigene Zusatzausstattung nicht schaden, etwa LEDs inklusive Vorwiderständen und ein paar Taster. Mit Hilfe dieses minimalen Equipments kann man das Prinzip der Mikrocontroller-Programmierung lernen. Dabei ist man darauf beschränkt, einfache Signale einzulesen und auszugeben. Das können etwa LEDs sein, die wir ans Board anschließen und an- und ausschalten.

Die größeren Board-Varianten bieten Sockel für verschiedene Typen von Mikrocontrollern, LEDs und 7-Segment-Anzeige, Taster für die Signaleingabe, Potenziometer für analoge Signale und diverse weitere Schnittstellen. Auch eine größere Experimentierfläche ist vorhanden. Ein großes Board ist das Modell AXE091 (siehe unten). Es lässt keine Wünsche offen. Will man beispielsweise ein kleines Schullabor für den naturwissenschaftlich-technischen Unterricht ausstatten, so können für die Schülerinnen und Schüler die einfachen Starterboards und für die Lehrkraft ein großes Board angeschafft werden.

Einrichtung

Treiberinstallation über den Gerätemanager

Vor dem ersten Programm steht die Installation. Die Software für den Start sind der Treiber (für die Kommunikation zwischen PC und Controller) und die Entwicklungsumgebung. In den Starterpaketen liegt eine CD mit allem Notwendigen und einer Autostart-Oberfläche. Aktueller ist allerdings der Download von der Herstellerseite www.picaxe.com. In jedem Fall wird zunächst die Entwicklungsumgebung installiert: Für Windows gibt es den komfortablen Picaxe Editor 6, das einfache AXEpad ist auch für Mac OS X  und Linux verfügbar. Beide Programme werden auf Englisch installiert, können aber in den Einstellungen auf Deutsch umgestellt werden. Danach ist der Kabeltreiber einzurichten. Wir zeigen es für die aktuellen Versionen von Windows. Erst verbinden wir das Downloadkabel mit einem PC-USB-Anschluss und dem Board. Im Gerätemanager sollte das Board unter „Anschlüsse (COM & LPT)“ oder „USB-Controller“ erscheinen. Mit der rechten Maustaste wählen wir „Treibersoftware aktualisieren“, siehe Bild. Im Dialogfeld ist unbedingt die zweite Option „Auf dem Computer nach Treibersoftware suchen“ zu wählen. Hier ist das Download-Verzeichnis oder das CD-Laufwerk anzugeben. Wichtig ist anschließend, den für das Modul reservierten COM-Port zu notieren (meist COM3), da er später im Programmiereditor angegeben werden muss. Wenn man das Picaxe-Kabel immer an die gleiche USB-Buchse anschließt, bleibt auch der COM-Port gleich. Da die erfolgreiche Treiberinstallation Voraussetzung für die weiteren Schritte ist, ist man nicht fertig, solange im Gerätemanager für das Picaxe-Board noch Frage- oder Ausrufezeichen stehen. Gegebenenfalls ist der PC neu zu starten und der Vorgang zu wiederholen.

Loslegen

Wenn wir das Protoboard nutzen, müssen wir Widerstand und LED auf dem Board verlöten. Die weißen Striche zeigen, welche Stecklöcher miteinander verbunden sind. Die Zahlen 0 bis 4 stehen für die Pins. Die Reihen sind an den Rändern mit V (+) und Q (–) verbunden.

Als erstes Projekt der hardwarenahen Programmierung bringen wir eine LED zum Blinken. Dazu müssen wir eine LED an den Controller anschließen, siehe Schaltplan. Da die LED durch zu viel Strom zerstört werden könnte, begrenzen wir den Strom mit einem Widerstand, den wir davor schalten. Beim kleinen Board müssen wir den Vorwiderstand und die LED anlöten oder anschließen. Auf den größeren Boards sind die Teile bereits vorhanden und müssen nur noch über Kabel mit dem Controller verbunden werden. Ebenso muss man wissen, welchen Pin des Mikrocontrollers man verwendet. Je nach Typ ist die Anschlussbelegung anders, siehe Kasten. Außerdem entsprechen beim Picaxe die Pin-Nummern nicht den Nummern der Beinchen.

Wer mehr Platz wünscht oder nicht jedes Experiment an- und ablöten möchte, kann eine Steckleiste auflöten und über Jumperkabel Breadboards anschließen.

Nach der Beschaltung folgt die Programmierung. Starten wir dazu die Entwicklungsumgebung. Der Ausgang (bei uns C.1) soll abwechselnd aktiv und inaktiv (high und low) geschaltet werden. Das Blinken würde man allerdings aufgrund der Arbeitsgeschwindigkeit des Mikrocontrollers nicht wahrnehmen. Daher ist dazwischen immer eine Pause einzulegen. Als Quellcode schreiben wir:

LED blinken lassen

do
   high C.1
   pause 500
   low C.1
   pause 300
loop
Schaltplan zum Anschluss einer LED an den Controller. Die links angegebenen Anschlüsse entsprechen den Markierungen auf dem Protoboard. Die LED muss richtig eingesetzt werden, mit dem langen Beinchen (+) am Widerstand und dem kurzen Beinchen (–) an Q. Auf dem großen Entwicklungsboard steht 0 V statt Q.

Der Blinkvorgang soll sich ständig wiederholen, daher bindet do…loop unser Programm in eine Schleife ein. Sie läuft endlos durch, da es keine Anweisung im Programmcode gibt, die zu einem Abbruch des Programms führen könnte. Nur durch Abschalten der Stromversorgung kann man das Blinken beenden. Das Ausgeben von Signalen auf den Pins ist einfach, denn sie sind bereits als Ausgänge vorprogrammiert. Mit high C.1 wird ein High-Signal am Ausgang 1 des Ports C ausgegeben. Die LED leuchtet jetzt. Danach soll der Mikrocontroller kurz nichts tun. Wir weisen eine Pause von 0,5 Sekunden Dauer an. Der Befehl lautet pause 500, die Angabe erfolgt also in Millisekunden (ms). Damit ein Blinken zustande kommt, ist der Pin wieder auf Low-Signal zu bringen, dieses geschieht mit low C.1. Danach erfolgt eine Pause von 300 Millisekunden, bevor das Programm von vorn startet. Die LED ist also eine größere Zeitspanne an- als ausgeschaltet und blinkt nicht gleichmäßig.

Nun laden wir das Programm in den Mikrocontroller. Zuerst kontrollieren wir am linken Rand der Entwicklungsumgebung die Einstellungen zum verwendeten Controller und COM-Port. Auf dem Protoboard muss außerdem der Jumper auf den beiden Pins rechts sitzen (bei PROG). Passt alles, erfolgt das Übertragen des Programms vom PC in den Mikrocontroller (Download). Nach wenigen Augenblicken ist das Programm aufgespielt und die LED blinkt. Damit haben wir das erste Programm für den Picaxe-Mikrocontroller geschrieben, die Hardware zusammengeschaltet und das Programm erfolgreich ausgeführt.

Die Entwicklungsumgebung Picaxe Editor

Interaktion

Das Basisprogramm lässt sich einfach erweitern, wie auf dem Schaltplan auf der nächsten Seite zu sehen. Jetzt nutzen wir neben der LED noch einen Taster. Wir benötigen also zwei Pins. Der Pin der LED ist weiterhin als Ausgang geschaltet, Pin 2 wird für den Taster als Eingang programmiert. Außerdem haben wir einen 10-kΩ-Widerstand an den Eingang gesetzt und mit V verbunden. Dadurch fließt ständig etwas Strom, selbst wenn wir die Taste nicht drücken und der Eingang steht auf high. Ohne diesen Pull-up-Widerstand wäre das Signal am Eingang undefiniert und das Programm würde nicht zuverlässig funktionieren. Wenn wir nun auf die Taste drücken, kommt ein Signal über den Eingang und die LED leuchtet auf. Statt mit einem Widerstand, der an V angeschlossen ist, also Hardware, können wir das Problem auch in der Software lösen. Dabei nutzen wir einen internen Widerstand des Picaxe am Eingangs-Pin. Er ist in den Chip eingebaut, funktioniert aber wie der Widerstand auf dem Breadboard. Wir müssen ihn nur aktivieren. In das Programm main (siehe Listing Interaktion) fügen wir dazu zwei Zeilen hinter Zeile 5 ein:

pullup on

pullup %00000100

Tippen, Malen, Simulieren

Mit einem Tastendruck beginnt die LED zu leuchten.
Schaltplan für das Ein- und Ausschalten der LED
Der Anfang unseres Blinkprojekts als Flussdiagramm
Ganz bunt wird es mit Blockly.

Üblicherweise erfolgt die Programmierung durch Eingabe des Quellcodes, so wie bisher geschehen. Gerade am Anfang kann es aber schwer sein, dem Programmablauf bei mehreren Verzweigungen gedanklich zu folgen. Picaxe bietet dazu zwei Varianten, Programme grafisch zu erstellen. Zum einem können wir ein Flussdiagramm zusammenbauen. Wir klicken auf den Button Flowchart und kommen zu einem grafischen Editor. Hier können wir den Programmablauf mit Symbolen zusammenklicken. Eine Konvertierung vom Flussprogramm in „echten“ Quellcode übernimmt der Editor für uns auf Wunsch. Die andere Möglichkeit ist noch intuitiver und heißt Blockly. Das Programm wird dabei aus vorgefertigten Bausteinen zusammengestellt. Jeder Baustein kann mit bestimmten Werten angepasst werden. Beispielsweise kann man die Nummer des betreffenden Pins einstellen. Bausteine stehen für viele Verwendungen, wie Ausgaben, Eingaben, Schleifen, Verzögerungen und zur Ansteuerung von Motoren zur Verfügung. Auch von Blockly kann eine Konvertierung in Quellcode vorgenommen werden. Alternativ laden wir das Programm direkt in den Mikrocontroller.

Blockly ist an die visuelle Programmiersprache Scratch angelehnt, welche zum Lernen der Grundlagen des Programmierens dient. Sie ist für Windows-Rechner, Macs und Linux sowie iOS und Android verfügbar.

Wie weiter

Mittels Picaxe ist der Einstieg leicht, sichtbare Erfolge erreicht man schnell. Dank des geringen Preises, der freien Verfügbarkeit der Software und den unendlichen Erweiterungsmöglichkeiten kommen keine Langeweile und Frust auf. Picaxe ist bestens geeignet für den interaktiven Informatik- und Technikunterricht in der Schule. Der Übergang zur professionellen Mikrocontroller-Programmierung gelingt spielend. Auch hier werden Entwicklungsboards eingesetzt und die Logik der Programmierung bleibt trotz anderer Sprachen ähnlich. hch