PicAsSo-Adventskalender: Wir öffnen das erste Türchen

Seite 2: BASIC-Programm aufspielen

Inhaltsverzeichnis

Für die nächsten Schritte nutzen wir den Picaxe-Editor 6. Falls noch nicht vorhanden, kann man die Software hier herunterladen. Eine Anleitung für die Installation ist im Make Picaxe-Special zu finden. Das von uns vorbereitete Beispielprogramm kann hier heruntergeladen werden . Nach dem Öffnen laden wir über den Button Öffnen das Beispielprogramm (picasso_1_candle.bas) in den Editor. Damit kann man den Hardwareaufbau gut überprüfen. Zunächst checken wir aber das Programm an sich. In den Einstellungen auf der linken Seite muss als Typ der Picaxe-14M2 ausgewählt werden. Durch Klick auf den Button Überprüfen wird das Programm überprüft. Daraufhin sollte, wenn alles richtig umgesetzt wurde, eine Erfolgsmeldung erscheinen.

In den Einstellungen (hier auf Englisch gezeigt) müssen der Picaxe-Typ 14-M2 und der richtige COM-Port (mit USB-Serial CH340) ausgewählt werden.

Anschließend verbinden wir das Nano-Axe-Board mit dem USB-Anschluss des PCs, am besten über einen zwischengeschalteten USB-Hub. So wird der PC vor Schaden durch einen möglichen Verdrahtungsfehler auf dem Steckbrett geschützt. Auf dem Nano-Axe-Board sollte nun die orange LED leuchten und auf dem PC ein virtueller COM-Port verfügbar sein, der ebenfalls in den Einstellungen ausgewählt werden muss. Ist keiner zu sehen, kann man die Liste mit einem Klick auf Aktualisiere COM-PORT Liste neu laden. Danach schicken wir durch Klick auf den Button Programmieren den Pogrammcode an den Picaxe. Auf dem PC ist dabei ein Fortschrittsbalken sichtbar. Nach einigen Sekunden sollte der Download abgeschlossen sein.

Der Programmablauf ist in mehrere Abschnitte unterteilt: Zunächst aktivieren wir in main: den internen Pullup-Widerstand für den Taster mit pullup KEY_PULLUP und warten dann etwas (pause 1000). Anschließend wird in main_loop: mit sertxd ein Begrüßungstext auf dem seriellen Terminal ausgegeben und mit dem Befehl play ein Weihnachtslied über den Piezo abgespielt, wobei die gelbe und blaue LED im Takt blinken. Danach wird in candle: durch zufälliges Flackern der LED der Schein einer brennenden Kerze simuliert – es ist schließlich der erste Advent. Wird die Taste währenddessen mindestens 400 Millisekunden lang gedrückt, beginnt das ganze Spiel wieder von vorne.

Die Terminalausgabe wird durch den Befehl #terminal nach dem Programm-Download automatisch gestartet (in der zweiten Zeile unseres Programms) oder kann im Menü unter PICAXE / Werkzeuge geöffnet werden. Dort muss ebenfalls der passende COM-Port ausgewählt sein, im Beispiel ist es COM4. Die Baudrate beträgt 4800 Bd, die Standardeinstellung für sertxd bei der Default-Taktfrequenz des Picaxe-14M2 von 4 MHz. Die Ausgabe auf das Terminal erfolgt über das Programmierkabel, in unserem Fall über das Nano-Axe-Board zum USB-Port des PCs.

Die Simulation des Kerzenscheins erledigen wir über die Pulsweitenmodulation-Ausgabe des Picaxe (PWM), die ein Rechtecksignal mit einer Frequenz von 1 kHz (der Wert für period ist 249) ausgibt: pwmduty LED_PWM, dutyCycle Damit die Kerze flackert, füttern wir die nötige Angabe mit zufälligen Werten: dutyCycle = randomValue % 300. Der mögliche Angabenbereich liegt zwischen 0 und 399, wird aber durch die Modulo-Operation auf Werte bis 299 begrenzt. Der Anteil des High-Pegels am LED-Ausgangspin beträgt also nur zwischen 0 und 75 Prozent. Da die LED durch einen Low-Pegel eingeschaltet wird, leuchtet sie zwischen 25 und 100 Prozent der Zeit. Für das menschliche Auge scheint sie also nie komplett auszugehen. Mit einer weiteren Zufallsfunktion variieren wir noch die Länge von pause delay zwischen den pwmduty-Befehlen auf Werte zwischen 100 und 399 Millisekunden, um das unregelmäßige Flackern einer Kerze zu simulieren.

Für die Tastenabfrage nutzen wir eine if-Schleife, die den Pin C.4 (symbol KEY = PINC.4) überprüft. Wenn der Pin gedrückt und damit mit GND verbunden wird (KEY = 0), schaltet der Picaxe zunächst die Pulsweitenmodulation aus (pwmout LED_PWM, off). Schließlich geht es mit goto main_loop zurück zur Soundausgabe in main_loop:. Darin ruft der play-Befehl übrigens das Lied mit der Nummer 1 auf:

play PIEZO, 1, LED_MASK_PIEZO

Insgesamt stehen bei diesem Befehl sogar vier unterschiedliche Lieder zur Verfügung. Welche das genau sind? Einfach ausprobieren! Damit ist der erste Test von Hard- und Software erfolgreich absolviert. Nächste Woche geht es weiter mit der Ansteuerung eines OLED-Display per I2C-Bus. Wir wünschen einen schönen 1. Advent! (hch)