Teil 1: Mikrocontroller und die Lernplattform PICAXE

Mit Spaß und Spiel zur Professionalität

Mit Spaß und Spiel zur Professionalität

Teil 1: Mikrocontroller und die Lernplattform PICAXE

Mit Spaß und Spiel zur Professionalität


Minicomputer, Internet of Things und intelligente Gerätetechnik sind Trendthemen unserer Zeit. Dieser Entwicklung wird zugetraut, unser Leben nachhaltig zu beeinflussen. Grundlagenkenntnisse kann man erwerben, wenn man sich mit Mikrocontrollern beschäftigt. Die Plattform PICAXE richtet sich an Einsteiger und hilft beim Erlernen der Embedded-Programmierung.

Der Hype rund um die Themen Internet of Things (IoT) und intelligente Haus- und Gerätetechnik reißt nicht ab. Nicht alle Ideen, Prototypen und Anwendungen werden es bis zur Marktreife schaffen, und bei so manchem Projekt steht auch eindeutig der Spaß an der Sache und der seiner Erfinder im Vordergrund. Es mag fraglich sein, ob wirklich jedes Haushaltsgerät die Technik und künstliche Intelligenz eines Computers benötigt, um seinen Zweck zu erfüllen. Sicher ist aber, dass der eine oder andere Ansatz unser Leben nachhaltig verändern wird.

Um aktiv in diesem Bereich mitzuwirken und eigene Ideen auszuprobieren, sind einige grundlegende Kenntnisse notwendig. Neben soliden Programmierkenntnissen sollte man auch im Bereich der Elektronik fit sein. Eine direkte Verbindung liefert die Beschäftigung mit der Mikrocontrollertechnik. Diese Technik ist keineswegs neu und auch schon seit vielen Jahren auf dem Markt. Enorm gestiegen ist jedoch ihre Leistungsfähigkeit, und im Zuge von IoT ist es einfach „hip“, sich damit zu beschäftigen. Einen spielerischen Einstieg verspricht die Lernplattform PICAXE: Sie stammt aus England und richtet sich explizit an Einsteiger. In einer zweiteiligen Artikelserie stellen wir PICAXE umfänglich vor. Zuvor wollen wir jedoch eine grundsätzliche Einführung in die Mikrocontrollertechnik geben.

Mikrocontroller

Die heutigen Mikrocontroller (MC) kann man als Ein-Chip-Computer bezeichnen, denn sie enthalten alle wesentlichen Bestandteile des Rechnersystems (Abb. 1). Dazu gehören CPU, SRAM und Flash-Speicher für den Programmcode. Weiterhin bieten MC analoge und digitale Ports, mehrere AD/DA-Wandler, Timer und Schnittstellen zur Kommunikation mit der Außenwelt. Mit ihnen lassen sich komplexe Aufgaben lösen, für die ansonsten eine umfassende Schaltung notwendig wäre. Insbesondere ihre Programmierbarkeit, durchaus mit problemorientierten Hochsprachen wie C, Pascal oder Basic, machen ihre Verwendung in vielen Bereichen interessant.

Die meisten aktuellen MC lassen sich sogar programmieren, wenn sie in einer Schaltung eingebaut sind. Diese Möglichkeit wird als In-System Programming (ISP) bezeichnet. Die Bitzahl eines MC bezeichnet die Breite des internen Datenbusses. Typische Werte sind 8, 16 und 32 Bit. MC werden in der Regel mit Taktfrequenzen von 1 bis ca. 20 MHz betrieben, neuere 32-Bit-Modelle sogar mit weit über 100 MHz [1]. Sie werden meist in der Harvard-Architektur realisiert. Dabei ist der Daten- und Programmspeicher physisch voneinander getrennt. Der Vorteil gegenüber der Von-Neumann-Architektur, bei der Daten und Code im selben Speicherbereich liegen, ist die Möglichkeit, mit einem einzigen Taktzyklus einen Befehl und die dazugehörigen Daten zur CPU zu bringen. Daher wird diese Architektur bevorzugt.

krypczyk_picaxe_1.tif_fmt1.jpgAbb. 1: Schematischer Aufbau eines MC [1]

Die Einsatzgebiete eines MC sind sehr umfassend. Typische Beispiele sind:

  • IT-Technik: Drucker, Festplattencontroller, Monitore

  • Unterhaltungselektronik: Fernseher, Camcorder, Digitalkameras

  • Automobiltechnik: ABS, Motormanagement

  • Kommunikationstechnik: Telefon, Fax

  • Industrie: Prozessautomatisierung, Messwerterfassung, Steuerung und Regelung

  • Haushalt: Waschmaschine, Kühlschrank, Heizung

Am Beispiel der mobilen Telefone sieht man den fließenden Übergang zwischen Mikrocontrollern und Mikroprozessoren. Moderne Smartphones enthalten heute die Elemente eines kompletten PCs – sie sind in der Leistungsfähigkeit und der Ausführbarkeit von Software so weit gestiegen, dass kein MC mehr genügt. Für einfache Aufgaben der Kommunikationstechnik reicht die Leistung eines MC noch aus. Eine Liste von MC-Typen unterschiedlicher Hersteller kann unter [2] eingesehen werden.

Lernen mithilfe von PICAXE

Einen relativ einfachen Einstieg in das Thema Embedded-Programmierung verspricht die Lernplattform PICAXE. Der Name verrät es schon: Es geht um das Erlernen der Programmierung und der Beschaltung von PIC-MC. Von einer Lernplattform kann man deshalb sprechen, da ein umfassendes System aus Hardware, Software, Entwicklungs- und Experimentierboards sowie weiterem Zubehör angeboten wird, um den Einstieg so einfach wie möglich zu machen. PICAXE richtet sich durchaus an absolute Anfänger, sowohl auf dem Gebiet der Elektronik als auch im Bereich der Programmierung. Es ist also nicht notwendig, über entsprechende Erfahrungen und Kenntnisse in diesen Bereichen zu verfügen. Interessant kann PICAXE aber auch für diejenigen sein, die beispielsweise bereits über Programmierkenntnisse verfügen und nun hierüber den Einstieg in die Embedded World schaffen wollen. Um den Ansprüchen für Einsteiger auf allen Ebenen gerecht zu werden, bietet PIC­AXE Hilfen und Vereinfachungen in vielfacher Form. Wir stellen diese nachfolgend vor.

Beschaffungsmaßnahmen

Um mit der MC-Programmierung auf der Basis von PIC­AXE anzufangen, benötigt man nicht viel Equipment. Folgende Dinge sollte man sich allerdings besorgen:

  • Einen Mikrocontroller vom Typ PICAXE. Es sind Typen verschiedener Leistungsklassen erhältlich. Für den Anfang genügt das kleinste Modell.

  • Prototypenboard zum Aufbau der Schaltungen und der Übertragung des Programms vom PC auf den Controller.

  • Downloadkabel für die Verbindung zwischen PC und Schaltung. Das Kabel wird am USB-Port des PCs abgeschlossen.

  • Einen PC bzw. ein Notebook für das Schreiben der Programme und zur Übertragung der Software. Die Entwicklungssoftware ist für unterschiedliche Betriebssysteme verfügbar.

  • Software: Treiber und Entwicklungsumgebung für das Entwickeln der Programme

  • Batteriehalter und Batterien für die Spannungsversorgung

Am einfachsten kommt man zum Ziel, wenn man ein Starterpaket für den Einstieg wählt. Auch hier ist die Auswahl recht groß. Sie unterscheiden sich hinsichtlich der Funktionen, den unterstützten PICAXE-Controllern und der Möglichkeit, Versuchsaufbauten direkt auf dem Board vorzunehmen. Größere Boards enthalten extra dafür ein Steckbrett. Darüber hinaus ist es hilfreich, wenn man einige zusätzliche Bauelemente und Werkzeuge zur Verfügung hat. Empfehlenswert sind einige Leuchtdioden (LED), Widerstände als Vorwiderstände für den Anschluss der LEDs an den Controller (ca. 300 Ohm), gegebenenfalls ein Steckbrett zum Aufbau einer Versuchsschaltung und ein paar zugehörige Kabelverbindungen. Löten ist am Anfang nicht zwingend erforderlich, jedoch wird früher oder später das eine oder andere Kabel anzulöten sein.

Möchte man sich etwas umfangreicher mit der MC-Programmierung beschäftigen, ist es mit Sicherheit nicht falsch, auf ein größeres Programmier- und Entwicklungsboard zu setzen. Es werden so genannte Starter Packs angeboten, die alle notwendigen Bestandteile für die ersten Versuche enthalten. Bezüglich der Starter Packs gibt es u. a. die folgenden Auswahlmöglichkeiten:

  • PICAXE-08 Starter Pack (AXE003U): Das Paket enthält eine minimale Platine, einen PICAXE-08, die Software auf CD-ROM, das Downloadkabel und die Batteriehalterung. Die Platine muss vor der ersten Verwendung selbst zusammengelötet werden. Zusätzliche Teile, wie LEDs oder Anzeigen, sind nicht vorhanden.

  • Tutorial Starter Pack (AXE050U): Dieses Board verfügt zusätzlich über einen Fotowiderstand, Taster für die Eingabe von Signalen und eine LED-Anzeige.

Development Starter Pack (AXE091U): Dabei handelt es sich um das umfangreichste Board zum Programmieren und Experimentieren (Abb. 3). Auf diesem Board können alle erhältlichen PIC-Typen programmiert werden, was alle Möglichkeiten zum Entwickeln eigener Projekte bietet. Die auf dem Board verteilten Bausteine werden durch Drahtbrücken einfach mit einem von den drei PICAXE-Mikrocontrollern verbunden. Zusätzlich steht noch ein Steckfeld für eigene Schaltungen zur Verfügung. Neben der Spannungsversorgung über Batterien kann auch ein einfaches Steckernetzteil verendet werden. Das Board enthält den dazu notwendigen Spannungsregler. Für umfangreiche eigene Versuche stehen zur Verfügung: LED-Einzelanzeigen, Taster, Fotowiderstand, Potenziometer zur Simulation von Analogquellen, Temperatursensor, IR-Sender- und -Empfänger, 7-Segment-Anzeige und diverse weitere Schnittstellen, wie z. B. RS232.

krypczyk_picaxe_3.tif_fmt1.jpgAbb. 3: Development Starter Pack

Einrichten

Die Einrichtung umfasst die Installation des Treibers für das Board und die Entwicklungsumgebung. PIC­AXE gibt sich auch hier erfreulicherweise sehr flexibel, d. h. es steht Software für unterschiedliche Betriebssysteme zur Verfügung (Tabelle 1). Und es wird noch besser: Die wichtigsten Bestanteile, wie Entwicklungsumgebung, Quellcodeeditor und Treiber, sind kostenfrei verfügbar.

Software

Betriebssysteme

Funktion

Preis

PICAXE Editor 6

Microsoft Windows

Umfassende Entwicklungs­um­ge­bung, u. a. mit Simulator und grafischem Editor zur Programmerstellung

kostenfrei

Blockly for PICAXE

Microsoft Windows, Mac OS, Linux, Google Chrome, Android, iOS

Grafischer, blockbasierter Editor zum Erstellen von Programmen

kostenfrei

AXEpad

Microsoft Windows, Mac OS, Linux

Editor zur Programmierung mithilfe von Basic

kostenfrei

PICAXE Virtual System Modelling (VSM)

Microsoft Windows

Schaltungssimulation für PICAXE-Projekte

59,99 GBP

USB Cable Driver

Microsoft Windows, Mac OS, Linux, Google Chrome

Treiber für die Entwicklungsboards

kostenfrei

PICAXE Compilers

Microsoft Windows, Mac OS, Linux

Compiler zur Integration in eigene Softwareprojekte

kostenfrei

PICAXE-Programmer-App

Microsoft Windows, Mac OS, Linux, Google Chrome

App zum Programmieren der *.axe-Dateien

kostenfrei

PICAXE PDF Printer Driver

Microsoft Windows

Zum Drucken des Basic-Codes und der Flow-Charts

kostenfrei

Flowol

Microsoft Windows, Mac OS, Linux

Zum Erstellen von Flow-Charts

36,00 GBP

Yenka PICs

Microsoft Windows

Zum Erstellen von Flow-Charts

kostenfrei

DesignSpark PCB

Microsoft Windows

Zum Entwerfen von Platinen

kostenfrei

PEBBLE

Microsoft Windows, Mac OS, Linux

Zeichnen von Schaltungen auf Steckplatinen

kostenfrei

Scratch

Microsoft Windows, Mac OS, Linux

Interface für PICAXE-Program­mierung mittels Scratch-Program­mierumgebung

kostenfrei

Automgen

Microsoft Windows

Programmierung mithilfe Lad­der-Diagramm (Kontaktplan)

60,00 GBP

Tabelle 1: Breites Softwareangebot zur Lernplattform PICAXE

Am besten lädt man die aktuellen Softwareversionen von der Projektwebseite herunter. Wir richten die Software unter Microsoft Windows ein. Der PICAXE Editor ist unter allen gängigen Windows-Versionen lauffähig und benötigt das .NET Framework. Für die Verbindung zwischen Board und PC/Notebook wird ein Downloadkabel benötigt, das den o. g. Starterpaketen beiliegt. Ebenso ist die Treiberinstallation zu erledigen. Das geschieht über den Gerätemanager, der über die Systemsteuerung zu erreichen ist. Nach dem Anschluss des Boards über das Downloadkabel wird zunächst ein unbekanntes Gerät im Gerätemanager ausgewiesen. Nach erfolgreicher Treiberinstallation kann mit dem Board kommuniziert werden. Dabei wird der übliche Weg gewählt, d. h. der Treiber simuliert einen virtuellen COM-Port. Im Falle der vorliegenden Installation war es COM3. Sollte die Zusammenarbeit später haken, muss gegebenenfalls die Einstellung des COM-Ports in der Entwicklungsumgebung korrigiert werden.

Streifzug durch die Entwicklungsumgebung

Alle Aufgaben können im PICAXE Editor erledigt werden. Die Entwicklungsumgebung weist den typischen Aufbau mit mehreren Fenstern auf (Abb. 4). Sie ist jedoch erfreulicherweise für den Einstieg einfach und übersichtlich gehalten. Man kann eine neue Quellcodedatei anlegen oder bereits existierende Programme öffnen. Auf der Webseite und der CD findet sich eine Reihe von Beispielen. Sofern man die richtige Hardwarebeschaltung vornimmt, können auf diese Weise schon erste Experimente durchgeführt werden; den Ablauf des Programmcodes kann man später noch studieren. Klicken Sie sich einfach durch die einzelnen Punkte der Entwicklungsumgebung – es kann nichts kaputtgehen. Am Ende des Artikels erfolgen noch einige Hinweise zu besonderen Funktionen des PICAXE Editors, die ihn für Lernzwecke besonders geeignet machen.

krypczyk_picaxe_4.tif_fmt1.jpgAbb. 4: Die Entwicklungsumgebung PICAXE Editor

Hello World

Das „Hello World“ elektroniknaher Projekte ist das Blinken einer LED. Damit lassen sich bereits sehr viele grundlegende Erkenntnisse mit einer neuen Plattform gewinnen. Es geht zunächst um folgende Punkte:

  • Verbindung zwischen Entwicklungsboard und PC

  • Installation der Treiber auf dem PC

  • Installation, Einrichtung und Bedienung der Entwicklungsumgebung

  • Umsetzung einer elektronischen Schaltung, d. h. Anschluss der Bauelemente an den MC

  • Erstellung eines Programms im Basic-Dialekt

  • Übertragung eines Programms in den PICAXE

  • Starten des Programms

  • Fehlersuche im Hard- und Softwareaufbau

Kommen wir nun zum besagten „Hello World.“ Zunächst ist der Schaltplan zu entwickeln. Dieser beschränkt sich darauf, eine LED über einen Vorwiderstand an einem programmierbaren Pin des Controllers anzuschließen (Abb. 5). An dieser Stelle folgt gleich ein sehr wichtiger Hinweis: Überlasten Sie den MC nicht! Die I/O-Pins des MC sind nur minimal mit wenigen mA belastbar. Direkt anschließen kann man also nur maximal eine LED über einen entsprechenden Vorwiderstand. Größere Belastungen führen zur Zerstörung. Für uns heißt das: Für erste Experimente können wir LEDs über Vorwiderstände direkt anschließen. Das kann zum Beispiel auf einem extra Steckbrett erfolgen. Für die Verbindung zwischen Controller und der externen Beschaltung kann man Drahtbrücken verwenden. Löten dürfte für den Anfang nicht notwendig sein. Auch die anderen üblichen Vorsichtsmaßnahmen, wie das Vermeiden von Kurzschlüssen, Änderungen von Anschlüssen während des laufenden Betriebs und elektrostatische Aufladungen, sind zu treffen.

Entschließt man sich später, den MC für Steuerungsaufgaben zu nutzen, muss man für entsprechende „Verstärkung“ der I/O-Pins sorgen. Das kann über Transistoren für einzelne Pins oder durch spezielle Treiber-ICs im Fall von mehreren Pins geschehen. Welche Hardware im Endeffekt gesteuert werden soll, bestimmt dabei auch den Aufwand. Zunächst muss man sich mit der Anschlussbelegung und den grundlegenden technischen Eigenschaften der Controller vertraut machen. Es gibt unterschiedliche PIC­AXE-Controller, sie basieren auf den ursprünglichen PIC-Typen. Je nachdem, mit welchem Typ man beginnt, ist die Pin-Belegung etwas unterschiedlich. Die Ein-/Ausgabepins sind mit einem Großbuchstaben (B oder C) für den Port und einem numerischen Wert bezeichnet.

krypczyk_picaxe_5.tif_fmt1.jpgAbb. 5: Schaltplan für das Blinken einer LED

Nach der Hardware geht es an die Programmierung der Software, im Embedded-Bereich auch als Firmware bezeichnet. PICAXE-MC sind gewissermaßen vorprogrammiert, d. h. im Gegensatz zu den herkömmlichen PIC-Typen enthalten diese bereits Software. Das hat für Lernzwecke den Vorteil, dass die Programmierung mithilfe eines wirklich sehr einfachen Basic-Dialekts erfolgt. Für unser Beispiel, eine blinkende LED, haben wir die wenigen Zeile Code in Listing 1 zusammengefasst. Das Ansteuern der Pins, d. h. das Ausgeben von Signalen folgt einem sehr einfachen Prinzip. Beispielsweise wird mittels high C.1 der Ausgang C1 auf logisch high und mit low C.1 der Ausgang wieder auf low gesetzt. Auch die anderen Befehle, wie zum Beispiel pause, do…loop etc. sind sehr einfach zu verstehen. Auch Anfänger, die bisher keine Programmiererfahrung haben, können nach kurzer Zeit erste Programme schreiben. Wir lassen die LED blinken, dabei ist sie immer 1 Sekunde ein- und 0,5 Sekunden ausgeschaltet. Das Ganze findet in einer Endlosschleife statt.

Listing 1

do
  high C.1
  pause 1000
  low C.1
  pause 500
loop

Jetzt können wir das Programm in den Mikrocontroller laden. Man klickt auf den Button Program in der Entwicklungsumgebung. Sind der richtige COM-Port und MC-Typ eingestellt, erfolgt das Übertragen des Programms vom PC auf den Mikrocontroller. Dieser Vorgang wird als Download bezeichnet. Dann ist es auch schon geschafft: Die LED blinkt!

Die Einfachheit der Programmiersprache kommt insbesondere dem Anfänger entgegen. Eine Zusammenstellung der Befehle des Basic-Dialekts findet sich in Tabelle 2. Die Syntax schlägt man im Zweifelsfall in der Dokumentation nach [4]. Sofort wird sichtbar, dass PICAXE absolut lern- und anwendungsbezogen ist. Für typische Experimente, wie das Abfragen der Temperatur oder das Ansteuern eines Servos, existieren spezielle Kommandos. Das macht gerade das Programmieren am Anfang einfach, da man sich stärker auf die Problemstellung anstelle der technischen Umsetzung konzentrieren kann.

Bereich

Basic-Befehle

Output

high, low, toggle, pulsout, let pins = ,

Input

if...then, if portA…then, if portC then…, pulsin, button,

Counting

Count

ADC

readadc, readadc10

Portc config

let dirsc =

Portc output

high portc, low portc, let pinsc =

PWM

pwmout

RAM

peek, poke

Sound

sound

Serial

serin, serout

Program Flow

goto, gosub, return, branch

Loops

for...next

Mathematics

let (+, -, *, **, /, //, max, min, &, |, ^, &/, |/, ^/)

Variables

if...then, random, lookdown, lookup

Data memory

eeprom, write, read

Delays

pause, wait, nap, sleep, end

Miscellaneous

symbol, debug

Interrupt

setint

Servo Control

servo

Infrared

infrain

Temperature

readtemp, readtemp12

1-wire Serial No

readowsn

Keyboard

keyin, keyled

Scratchpad

put, get, @ptr, @ptrinc, @ptrdec

ADC

calibadc, calibadc10

Serial

hsersetup, hserout, hserin, serrxd

SPI

spiin, spiout, hspisetup, hspiin, hpsiout

I2C

hi2csetup, hi2cin, hi2cout

One-wire

owin, owout

PWM

Hpwm

Timer

Settimer

Power control

hibernate, enablebod, disablebod

Tabelle 2: Die Schlüsselworte des einfachen Basic-Dialekts [4]

Weitere Lernhilfen

PICAXE ist kein Produktivsystem, sondern eine Lernplattform. Der PICAXE Editor enthält die folgenden Elemente, die es dem Einsteiger leichter machen:

  • Flow-Charts: Programmabläufe zu verstehen, d. h. die Arbeit von Schleifen, Verzweigungen und so weiter kann für einen Anfänger recht verwirrend sein. PICAXE bietet die Möglichkeit, den Programmablauf in Form eines Flussdiagrammes zu erstellen. Einfache Algorithmen können auf diese Weise vollständig erstellt werden, für komplizierte Programme dient es als Rahmen. Das Flussdiagramm kann dann mit einem einzigen Mausklick in Basic-Code übertragen werden.

  • Blockly: Ähnlich wie Flow-Charts funktioniert die Programmierung mit Blockly. Das Vorgehen ist der visuellen Programmiersprache Scratch angelehnt, die zum Erlernen von Programmiergrundlagen dient. Das Programm wird dabei aus vorgefertigten Bausteinen, z. B. für Ausgaben, Eingaben, Schleifen, Verzögerungen und zur Ansteuerung von Motoren, zusammengestellt. Wiederum können einfache Programme direkt in Blockly erstellt und in den MC geladen werden. Bei Bedarf können sie zuvor nach Basic konvertiert werden.

  • Simulation: Programme kann man vor dem Download in den MC am PC testen. Dazu ist ein Simulator in der Entwicklungsumgebung integriert, der sogar die Pegelwechsel an den Pins des Mikrocontrollers grafisch anzeigt. Mit der Maus ist es möglich, einen Signalinput von außen, zum Beispiel einen Tastendruck, zu simulieren.

Fazit und Ausblick

Die Beschäftigung mit Mikrocontrollern ist wohl die direkteste Verbindung zwischen Hard- und Software. Hier ist man noch etwas näher an der Technik als bei klassischen IoT-Projekten, wie etwa dem Raspberry Pi. Andererseits sind die Übergänge fließend, denn auch die Minicomputer bieten direkte Schnittstellen in Form von Ein-/Ausgabeports, um auf direktem Weg mit externer Hardware zu kommunizieren. Die Lernplattform PICAXE bietet die Möglichkeit, sich intensiv in die Entwicklung von Schaltungen und die Programmierung von Software – also der Embedded-Entwicklung – einzuarbeiten. Im zweiten Teil stellen wir weitere vielfältige Optionen rund um das Projekt vor.

krypczyk_veikko_dr_sw.tif_fmt1.jpgDr. Veikko Krypczyk studierte und promovierte Betriebswirtschaftslehre mit dem Schwerpunkt Wirtschaftsinformatik. Er ist Entwickler und Fachautor.

bochkor_olena_sw.tif_fmt1.jpgOlena Bochkor studierte Betriebswirtschaftslehre u. a. mit dem Schwerpunkt Wirtschaftsinformatik.

Weitere Informationen zu diesen und anderen Themen der IT finden Sie unter http://larinet.com.

Elena Bochkor

Elena Bochkor arbeitet am Entwurf und Design mobiler Anwendungen und Webseiten.

Veikko Krypczyk

Dr. Veikko Krypczyk ist begeisterter Entwickler und Fachautor. Er ist stets auf der Suche nach neuen innovativen Lösungen und liebt die Arbeit in der Entwicklungsumgebung. Er bietet Seminare und Workshops zu unterschiedlichen Themen der Softwareentwicklung.