Erste Schritte mit PICAXE         

von Jürgen Linder, aus ELO 2012              

Elektronik-Labor   Projekte   AVR  


PICAXE_20M2_IMG_5797.JPG

Bis vor kurzem kannte ich den PICAXE nicht. Das liegt auch vielleicht daran, dass mein Haupthobby die Astronomie ist und ich nur ab und zu Elektronikzeitschriften kaufe (Sorry, aber ich sehe öfter auf die Elo-Webseiten…).

Mein Haupt-Mikrocontroller ist der ATMEL vom TINY 13 bis ATMEL 168 und mehr. Vor einem Jahr habe ich in unserem  Astronomie-Verein  mit einem MC-Kurs begonnen. Da es die kostenlosen Tools bei ATMEL für  die Programmiersprache „C“  auch für die kleineren  ATMEL’s   gibt und der ATMEL viel verwendet wird, entschied ich mich für die ATMEL-Reihe.

Da ich immer schon E-Gitarre lernen wollte, ergab es sich per Zufall, dass es einen VHS-Kurs in meiner Nähe gab. Dies weckte mein Interesse an Gitarrenelektronik. Beim Stöbern im Internet fand ich eine kleine Soundmaschine beim US-Magazin „Make“.

Dieses elektronische Gerät war  (ist) einfach aufgebaut und hat den kleinsten PICAXE (08)  als Controller.

Somit war mein Interesse geweckt.

PICAXE ein PIC für BASIC

Die britische Firma  „Revolution Education Ltd” hat das „BASIC“  für die PIC-MC’s entwickelt.  Sie verwenden die Mikrocontroller der US - Firma Microchip. Diese Controller sind eine direkte Konkurrenz  zu ATMEL (USA).

Was ist der Vorteil und was wird benötigt? 

Jeder PICAXE hat einen Bootlader mit dem PICAXE-BASIC im FLASH-Eprom.  Die PICAXE werden mit kostenlos zur Verfügung stehenden Programmen (siehe unten) in BASIC programmiert.

Anfang der 80er Jahre hatte die Firma Intel den 8052 AH BASIC Mikrocontroller herausgebracht. Dem 8025AH, ein Derivat des 8051, wurden per Terminalprogramm  die BASIC-Zeilen übermittelt. Jahre später gab INTEL den Chip auf, gab aber den Code zur freien Verfügung frei. Der Code kann auch auf einem 8032 laufen. Auch in meinem Fundus befindet sich noch eines dieser Urtiere.

Weiter mit dem PICAXE. Man muss keinen BASIC – Compiler kaufen, hat die ganze Firmware immer auf dem Chip. Als Hardware wird ein PICAXE, das PICAXE- USB-Kabel oder das PICAXE-RS232-Kabel benötigt. Für die Anpassung der Schnittstelle wird ein 10K und 22K Widerstand gebraucht. Zur Verbindung wird eine 3.5mm Stereobuchse benötigt, die man am besten mit einem Bredboard verbindet. Damit ist der minimalste Aufbau möglich. Damit lässt sich die Kommunikation mit dem PICAXE realisieren (erste Tests, Firmware Stand lesen etc..). Wer das Franzis-Lernpaket  „MSR mit dem PC“ hat, kann dies  zur  Programmierung verwenden.  Später werde ich die Verbindung „PICAXE und MSR“ genauer beschreiben.

Für die Arbeit mit dem PICAXE wird als Software der PICAXE „Programming Editor (Windows)“  oder „AXE Pad (Windows, MAC, Linux) benötigt. Die Programme können kostenlos ohne Einschränkungen heruntergeladen werden. Die weiteren Beschreibungen in diesem Artikel beziehen sich auf den „Programming Editor“.

Beschreibungen (Manuals) und Software findet man auf der Webseite  http://www.picaxe.com/. Die Beschreibungen sind in Englisch, jedoch auch mit geringen Englisch-Kenntnissen gut zu verstehen.  Die Programme sind zum Teil in Deutsch (einstellbar).

Was ist denn nun der Vorteil? 

Nun, man kommt mit sehr wenig Hardware und Softwareaufwand zum Ziel.  Die Softwareinstallation ist einfach und benötigt wenig Festplattenplatz. Die folgenden Beispiele sollen zeigen, wie einfach die Programmierung mit dem PICAXE-BASIC ist. Der PICAXE wird bundesweit in den Schulen eingeführt, so dass fast jeder Schüler in den technischen Bereichen den PICAXE kennenlernen wird.

Woher bekomme ich den PICAXE und weitere Tools?

Zurzeit gibt es in Deutschland zwei Anbieter, die fast  das ganze PICAXE  Produktprogramm anbieten können (der Autor erhebt hier keinen Anspruch auf Vollständigkeit!).

Dies sind EDV-Beratung und Robotertechnik Jörg Pohl   http://www.roboter-teile.de/Oxid/index.php  und die SIEKLA GmbH in Nürnberg  http://www.picaxe-shop.de/ .

Wer nach „PICAXE“ im Internet sucht, der  findet noch einige weitere interessante Webseiten und Foren zum Thema!

Tipps zum PICAXE Einkauf

Für den Einsteiger gibt es  zum Beispiel das PICAXE-18M2 Tutorial-Board (AXE049) für ca. 25.-€. Das Tutoriell enthält den MC PICAXE 18M2, das USB Download-Kabel und die fertig bestückte Platine mit Tastern, LDR-Sensor, Eingängen (Lötpads), eine 7 Segment-Anzeige und vieles mehr. Die Details findet man über die oben angegebenen Webseiten.

Der Elektronikbastler (Lötkenntnisse erforderlich) kann noch mit geringerem Aufwand einsteigen! Für die Arbeit mit Breaboard‘s  gibt es das PICAXE Bread Board-Adapter-Kit als Bausatz (~4€) für den Anschluss der PICAXE das USB-Programmier  – Kabel  (AXE027 – ~ 20€) oder das  RS232  (AXE026- ~ 4 -5€). Der kleinste PICAXE  der aktuellen M2 Version kostet um die 3.50€ (Tagespreis!). Die meisten PICAXE bis zum 20er liegen bei 4bis 5€. Die größeren Chips liegen bei 6-8€ und mehr.  Als Einstieg eignet sich der 14M2 bis 20M2, der 08M2er geht natürlich auch, hat aber weniger Ein/Ausgänge zur Verfügung. Die Älteren, aber deswegen nicht unbrauchbaren PICAXE gibt es auch schon mal etwas günstiger (mehr Einschränkungen als unter den M2-Typen).  Die angegeben Preise können sich ändern und können nur als Orientierung dienen!
Eine abschließende Empfehlung kann es hier nicht geben.

 

Erste Schritte

Für die ersten Schritte muss der kostenlose Programmeditor  von PICAXE (www.picaxe.com) installiert werden, das geht auch ohne PICAXE-Hardware!  PICAXE hat ein eigenes USB-Kabel, das im Handel bezogen werden kann (siehe oben Tipps zum PICAXE Einkauf). Man kann auch ein Standard-USB an RS232 Schnittstellenkabel  (die Signale müssen evtl. invertiert werden! Sehen sie dazu im PICAXE-Forum nach).  Die RS232 Varianten habe ich nicht getestet!  Wer noch eine echte RS232-Schnittstelle am PC hat, kann auch ein RS232-Kabel verwenden (Hinweise findet man im PICAXE-Forum!).  Gehen wir jedoch zuerst von der Benutzung des Standard-USB-Kabels von PICAXE aus. Das USB-Kabel hat zur PICAXE – Seite hin einen 3.5mm Stereo – Klinkenstecker. Es werden nur Masse (0V oder GND) und die Signale TXD und RXD an den PICAXE herangeführt. Das bedeutet aber, dass der Baustein eine eigene Stromversorgung benötigt. Für die Experimente reicht eine Batteriebox mit 4.5V völlig aus. Die Spannung sollte 5.5V auf keinen Fall überschreiten, da sonst das IC zerrstört wird.

Ich verwende bei meinem Aufbau das  PICAXE – Breadboard -Adapter -Kit, dass  die Adaption zwischen Schnittstelle und einem Bredboard ermöglicht. Den Adapter gibt es nur als Bausatz. Das Bredboard könnte auch über Steckverbindungen auf eine Platine gesteckt werden, um den PICAXE zu programmieren.

Bild 1 zeigt den allgemeinen Aufbau der seriellen PICAXE – Schnittstelle. Man findet diese Schaltung hinreichend oft in den  PICAXE Beschreibungen (Manuals). 

Bild 1  Schaltung der PICAXE-Schnittstelle mit einem  3.5mm Stereo-Klinkenstecker/Buchse   www.picaxe.com

Auf  verschiedene  Typen der PICAXE’ s  werde ich später noch kurz eingehen. Die M2 Typen enthalten alle Eigenschaften der älteren M-Typen und mehr. Die  PIXACE-M2-08, 14 und 20 haben alle bei PIN 1 den  V+ (UB) Anschluss.  Der PIN auf  der gegenüberliegenden Seite ist immer 0 Volt (GND). Der serielle Eingang (RXD für die Programmierung!) ist immer der Pin 2 und gegenüber der Ausgang (TXD). Damit können wir also 3 der PICAXE-M2- Typen  plus den 20X2 (X-Serie) an denselben Ort auf dem Bredboard stecken oder bei der Herstellung einer Platine berücksichtigen.

Der folgende Schaltplan (Bild 2) zeigt den Minimalaufbau für ein Bredboard (ohne angeschlossene Peripherie).  Mit dem PICAXE Electronic Bredboard Layout Emulator „PEBBLE“ (kostenloser Download über PICAXE.com) kann der Aufbau auf dem Bredboard  grafisch am PC erstellt werden.

 

Bild 2  Minimale Beschaltung für den PICAXE 14M2 (auch für 08M2 und 20M2 geeignet),  www.picaxe.com

An der Leiste „Y“ des Bredboards wird VCC (+Ub) und an „X“ 0V angeschlossen. Bei den PICAXE-Projekten wird oft mit Batterien gearbeitet. Es reichen 4.5V für die Tests aus. Die Spannung sollte aber 5.5V nicht überschreiten, sonst wird das IC dauerhaft zerstört! Mit dem einfachen Aufbau (Bild 2) können wir die 08er, 14er oder 20er testen, ohne Umverdrahtung. Die PICAXE müssen nur einfach immer beginnend an PIN 1  eingesteckt werden.

Wenn Software und Hardware richtig installiert sind, dann können wir den Firmware Stand des PICAXE auslesen. Damit lassen sich die Verbindung  und der PICAXE auf Funktionalität testen. Einen Test mit einer  LED sollte man aber auf jeden Fall machen (siehe Bild 3).

Der Schaltungsvorschlag zur Ansteuerung der LED’ s findet man im „PICAXE Manual 1“. Ich bevorzuge die Variante die logische „1“ zu schalten.  Zum Setzen eines Ausganges kann der Befehl „high“ und zum Löschen „low“ verwendet werden.  Mit „high 4“ wird der „output pin 4“ gesetzt, mit „low 4“ rückgesetzt. Der Output Pin ist jedoch nicht identisch mit dem Ausgangsport am IC. Es empfiehlt sich die Ausgänge im Simulator (siehe unten) zu überprüfen.  Eine genauere und empfohlene Variante ist die Verwendung  des Befehls mit  dem genauen Port-Namen. Für den  Output Pin 4 wäre dies zum Setzen der Befehl „high B.4“ und zum Löschen „low B.4“. Die Entwickler des PICAXE schlagen einen 330 Ohm-Vorwiderstand zur Ansteuerung einer LED vor (Bild 3). Wer keinen 330 Ohm Widerstand zur Hand hat, kann z.B. auch einen 1K Widerstand, wie er beim MSR-USB-Lernpaket des Franzis-Verlags beiliegt, verwenden.

picaxecopyright.png

Bild 3  Beschaltung eines Ausganges am PICAXE (siehe PICAXE Manual 1,  www.picaxe.com)


Lernpaket  „Elektronik Start mit USB“  mit dem PICAXE

Zur Verwendung der Platine aus dem Franzis Lernpaket  „Elektronik Start mit USB“  mit dem PICAXE wird nur ein „PICAXE“ benötigt. Die Widerstände für die Eingangsbeschaltung zur Programmierung können aus dem Paket entnommen werden. Statt dem 22k Widerstand (PICAXE Applikation) kann der 27K Widerstand des MSR-Pakets verwendet werden. Sollte dies Probleme bereiten, dann muss ein 22k besorgt werden.

Bei mir läuft die Anwendung mit dem 27k einwandfrei.  Die Signale der USB-Schnittstelle müssen mit „Mprog“  auf  „Invert RS232“ gestellt werden, wie im MSR – Lernpaket beschrieben,  sonst kann der PICAXE – Prorammeditor nicht mit dem Chip zusammenarbeiten. 

Bei  der Arbeit mit der USB-Platine hat sich ein Problem dargestellt,  dass so mit dem PICAXE-USB-Kabel nicht vorkam.

Wenn das TXD – Kabel am RXD-Eingang gezogen wurde, stoppte der PICAXE das Programm. Dies äußerte sich darin, dass z.B. eine blinkende LED aus blieb.

Alle Applikationsvorschläge änderten an der Situation nichts. Erst ein 10K* (Bild 4) Widerstand direkt am PIN 2 nach Masse löst das Problem. Mit diesem Pull-Down- Widerstand können nun nach Belieben die Programmierleitungen gezogen und gesteckt werden, ohne den PICAXE  in der Funktion zu stören!

Bild 4  zeigt die RC – Netzwerke zwischen Original USB-Kabel und PICAXE. Erst der 10K* Widerstand nach Masse am PICAXE Eingang hilft bei Verwendung der USB – Platine (ganz rechts in Bild 4)! Die 100 Ohm Widerstände und die 10K der linken Seite werden nicht unbedingt benötigt. Die T-Schaltung auf der rechten Seite aus 22k und 2x 10K Widerständen ist für die USB-Platine nötig. Die 100  Ohm und 10K Widerstände der linken Seite können durchaus als Schutz der USB-Platine dienen. Der 22k Querwiderstand ist beim MSR-Paket nicht vorhanden. Die Schaltung hat bei mir auch mit dem 27K des Paketes funktioniert.

usbanpicaxe.png

picaxecopyright.png

Bild 4  Originalbeschaltung des PICAXE-USB A027 (links, www.picaxe.com) und dem Widerstandsnetzwerk (rechts)

Beim Anschluss des MSR-USB hatte ich unter Windows Vista/ Windows 7  das Problem, dass bei der Treiberinstallation  drei  Treiber installiert worden sind. Das Gerät erscheint als Ballpoint-Mouse und muss dann im Gerätetreiber gelöscht werden. Dies muss mit Administratorrechten erfolgen.  Ohne Löschen ist die USB-Schnittstelle nicht ansprechbar (egal ob Franzis-Tools oder PICAXE-Tools).


Installation des „Programming Editor (PE)“ für PICAXE

Die Software bekommt man über www.picaxe.com/software .  Die Installation ist problemlos und nach der Installation kann man den PE starten. Für ein Kennenlernen wird noch keine  Hardware benötigt, da der PE einen Simulator enthält und ich im Folgenden näher darauf  eingehen möchte.

Simulation von PICAXE mit dem PE

Nach der Installation starten Sie nun den PE. Die Ansicht wird in etwa dem Bild 5 entsprechen.

      Bild 5  Programmeditor  PICAXE  mit  Simulator,  www.picaxe.com

Öffnen Sie nun das Menü „Option“ über den Knopf (Werkzeug) in der Menüleiste oder über „View“.

Bild 6  Optionen PICAXE Programmeditor, www.picaxe.com

Klicken sie auf „Language“ und klicken sie auf „German“ und dann auf „Apply“. Das Menü Optionen wird geschlossen und Teile des „PE“ sind nun in deutscher Sprache. Öffnen sie nun erneut das Optionen Menü.
Unter Optionen/Modus stellen wir nun den PICAXE-Chip 08M2 ein und übernehmen diese Einstellung. Für einen ersten Überblick reicht der kleinste PICAXE völlig aus!

In der Menüleiste findet man den Knopf mit der Aufschrift  „ABC  Syntax“, damit kann man einen Syntax-Check des Programmcodes durchführen.

Wir haben noch keinen Code geschrieben, jedoch ergibt ein leerer Code bei der Syntax-Prüfung eine Nutzung von 3 Bytes der 2048 Programm-Bytes des PICAXE 08M2 (Bild 7). 

Bild 7 Syntax Überprüfung (ABC), www.picaxe.com

Klickt man nun auf den Knopf  „Simulate“,  so erhält man die Meldung   „Übersetzungs-Fehler…“  (Bild 8) mit der Meldung „Es gibt keinen Text zum übersetzen“.  Also schreiben wir als nächstes einen kleinen Programm-Code, um den Simulator näher betrachten zu können.

Bild 8 Fehlermeldung des PE-Simulators wenn kein Programm im Quelltext steht

Geben sie nun den folgenden Text in das Fenster „Untiled:1“ ein.

start0:
             high 0                    'Setze Ausgang 0 auf 1
             pause 1000           '1000ms Pause
             low 0                       'Setze Ausgang 0 auf 0
             pause 1000           '1000ms Pause
             goto start0            'springe zur Marke start0

Klicken sie nun auf  „Simulate“ und beobachten sie, was passiert.

Bild 9  Programmtest  im Simulator des Programm-Editors von PICAXE

Mit einem Klick auf „Stop  Simulation“ beenden sie die Simulation. Die Simulationsfenster bleiben noch sichtbar.  Sie verschwinden, sobald sie einen neuen Code schreiben oder auf die Syntax – Überprüfung klicken. Man kann die Simulationsfenster auch mit klicken auf „Stop“ automatisch verschwinden lassen, dazu muss man unter „Optionen“  die Registerkarte „Simulation“ anwählen und den Haken bei „Automatically hide panels…“ setzten!

Betrachten sie zunächst nur die Darstellung des PICAXE-Chips und dessen Ein-und Ausgänge.
Bei unserem Beispiel blinkt der PIN 0. Der echte Pin wäre hier der Pin 7 am PICAXE 08M2.
Diesen Pin (TXD) sollte man aber zunächst freihalten, da dies auch einer der zwei Programmier-Pins (RXD + TXD) ist.  Ändern sie den Code nun ab und ersetzen „high 0“ mit „high 1“. Somit können wir das Problem der mehrfachen Nutzung von Programm-Pin und Anwendung  umgehen.  Der PIN 0 kann aber,  falls nötig als Ausgang verwendet werden, aber nie als Eingang! Speichern sie den folgenden Code nach der Eingabe über „Datei“ unter einem Ordner nach ihrem Wunsch ab (Bild 10 ). Die Dateierweiterung ist automatisch „.bas“.  
Für das Setzen eines Ausganges wird der Befehl „high …“ verwendet (Näheres siehe unten). Damit zwischen „high…“ und „low….“ (Rücksetzen des Ausganges) eine Pause entsteht, wird hinter „high…“ der Befehl „pause 1000“ gesetzt. Dies erzeugt eine Pause von 1s. Marken werden mit „Name:“  im PICAXE-BASIC programmiert. Die Marke „start0:“  ist im PICAXE-BASIC reserviert. Für Multitasking-Anwendungen der „M“-Typen muss dies berücksichtigt werden! Mit „goto“ werden die Marken innerhalb eines Programmes direkt angesprungen.

 

  

Das Testprogramm:

start0:
       high 1                   'Setze Ausgang 1 auf 1
       pause 1000               '1000ms Pause
       low 1                    'Setze Ausgang 1 auf 0
       pause 1000               '1000ms Pause
       goto start0              'springe zur Marke start0

 

Speichern sie das Programm unter „testpicaxe.bas“ ab (Bild 10 unten).

Bild 10  Programm speichern

Klicken sie nun auf „Option“ und „Modus“.  Wählen sie nun den PICAXE-Chip 14M2 aus und lassen sie dann die Simulation erneut laufen.

Die Ausgänge (Eingänge) sind nun nicht mehr einfach als 0,1.. bezeichnet, sondern mit B.0, B.1…C.0, C.1... Die Ein/Ausgänge der PICAXE sind Multiports, deren verschiedene Möglichkeiten findet man im „PICAXE  Manual 1 – Getting Started“ näher beschrieben. Die Ports des PICAXE 08M2 haben die Bezeichnung C.0 bis C.5.

Stellen sie zum Test und Vergleich unter Optionen/Modus auch noch den Chip 20M2 ein.

In der Simulation sind nun weitere Ein/Ausgänge hinzugekommen. Die Programmier-Pins RXD und TXD sind nun extra bezeichnet. Beim PICAXE 18M2 sind auch die Pins für VCC und 0V gekennzeichnet, die sich an anderer Stelle am Chip befinden, wie z.B. bei 08,14 und 20.

Für die Simulation mit 28X2 und 40X2 muss zusätzlich im Programm-Code die Definition
#picaxe 28X2 oder #picaxce 40X2 eingetragen werden und unter  Optionen/Modus auf PICAXE-28X2/40X2 gestellt werden.

Die PICAXEs 08, 14 und 20 haben 0V, VCC, RXD und TXD von oben betrachtet an der gleichen Stelle.
Man kann dies bei der Planung einer Schaltung berücksichtigen, um optional den Einsatz dieser drei Typen zu ermöglichen (z.B. ein 20 Pin – Sockel). Bei den 18er, 28er und 40er ist das nicht möglich.

Mit der Simulation können sie alle PICAXE-Chips ansehen, ohne die Hardware dafür zu benötigen. Unter dem Menüpunkt  „Hilfe“  findet man die Syntax-Schnellhilfe, die sehr hilfreich bei der Auswahl der Befehle sein kann. Nicht alle BASIC-Befehle können mit jedem PICAXE verwendet werden!

Weiter finden sich hier auch die Links zu den Dokumentationen.  Die Pinbelegungen der Chip’s findet man im „Manual 1 – Getting Started“.  Im  „Manual 2 – BASIC Commands“  findet man die genaue Beschreibung der Basic-Befehle und im „Manual 3 – Interfacing Circuits“  finden sich Beispiele zur Beschaltung der Ein/Ausgänge mit externer Hardware, wie Widerstände, LED’s, Transistoren, Relais etc..

Als zweites Beispiel simulieren wir nun einen Eingang (Taster). Nach dem Drücken des Tasters wird ein Ausgang zum Blinken veranlasst. Danach wird der Eingang C.1 nicht mehr abgefragt! In unserer Simulation verwenden wir nun einen 14M2. Als Eingang verwenden wir den Port C.1 und als Ausgang den Port B.1.

Geben sie den folgenden Code im Programm-Editor ein bzw. ändern sie das bestehende Programm und speichern sie den Code unter „testpicaxe2.bas“ ab.  Statt  „high 1“  kann auch der Port angegeben werden. Für den 14M2 ist dies  „high B.1“.

Das um einen Eingang erweiterte Testprogramm:

start0:

       if pinC.1 = 0 then start0 'Springe zu start0 bis Taste C.1 gedrueckt wird!
main:  high 1                     'Setze Ausgang 1 auf 1 -----high B.1 ---
       pause 1000                 '1000ms Pause
       low 1                      'Setze Ausgang 1 auf 0
       pause 1000                '1000ms Pause
       goto main                 'springe zur Marke main

 

Starten Sie nun die Simulation.

 

Bild 11 Simulation eines Eingangs (C.1)

Damit der Ausgang B.1 blinkt, muss man in der Simulation mit der Maus auf C.1 klicken. Die Farbe an C.1 ändert sich nun und der zweite Programmteil wird durchlaufen. B.1 blinkt nun und ein weiteres Anklicken von C.1 ändert zwar die Farbe in der Simulation,  ist  aber für den Programmablauf nicht mehr relevant. Hier hilft nur ein Reset. Ein Klick auf RST simuliert dies. Beim Chip müsste dazu die Spannung aus- und wieder eingeschaltet werden! Externe Reset-Pins werden nicht bei allen PICAXE  verwendet.

Ich verwende hier natürlich sehr einfache Beispiele. Ich werde hier in diesem Artikel nicht alle Möglichkeiten besprechen können. Für einen ersten  Kontakt zum PICAXE sollte dies aber ausreichend sein.

Es wird Ihnen sicher aufgefallen sein, dass ich für die Abfrage des Einganges nicht „In 7“ verwendet habe, sondern  „if  PinC.1…“. Einen In-Befehl gibt es beim PICAXE nicht.  Hier ist die Abfrage des Einganges mit einer einfachen „if-Abfrage“ kombiniert. Solange der Eingang  „0“ ist, wird an die Marke „start0“ gesprungen. Bei „1“ werden die Programmzeilen dahinter durchlaufen.  Ein  „else-Pfad“  wird nicht benötigt.
Statt  „high 1“ zur Ausgabe kann man aber  auch „high B.1“ schreiben. Ersetzen sie  nun „high 1“ mit „high B.1“ und „low 1“ mit „low B.1“. Speichern sie das Programm unter „picaxe3.bas“ ab.

Mit  „high 0,1,2…“ braucht man sich nicht um den genauen Port kümmern, das ist durch den Befehl und den entsprechenden PICAXE gegeben.  Die Erweiterung ist aber besser für das Lesen des Schaltplanes.  Probieren sie einfach mal „high 0,1,2…“ aus und wählen sie dazu verschiedene PICAXE im Simulator aus und sehen sich dabei an, welche „Ports“ dabei verwendet werden.

Ich werde hier auch nicht das ganze PICAXE-BASIC beschreiben, hierzu findet man in Manual 2 der PICAXE-Dokumentation alles was man braucht.

Ein wenig zum BASIC


Es soll hier nicht der gesamte BASIC-Befehlssatz erklärt werden.  Ein paar Tipps für den Start bei keinen oder sehr geringen Programmierkenntnissen, mehr nicht. Es wird hier auch nicht auf bestens optimierte Programme Wert gelegt. Es soll nur die Funktionalität an einigen Beispielen gezeigt werden!
Jedes Programm sollte eine Marke haben. Der Name ist beliebig und muss mit einem Doppelpunkt abgeschlossen werden. Reservierte Namen sind „start0,1,2…7“, die für das Multitasking der M2-Typen zu verwenden sind (4-8 Marken für das Multitasking abhängig vom M2 Typ!).  Die Marken fürs Multitasking müssen immer ganz am Anfang stehen (ist so vom Hersteller festgelegt).

Das einfachste Programm wäre eine Marke mit einem Sprung zur Marke. Der Sprungbefehl ist der bei vielen Programmieren ungeliebte „goto“-Befehl (wer will kann dafür  do … loop verwenden!).

Start0: goto Start0    ‘dieses Programm tut nix

Oder mit do/loop

Start0:  do                  ‘dieses Programm macht auch  nix

loop

Für das Setzen und Rücksetzen der Ausgänge haben wird den „high“ – Befehl kennengelernt.

Für  das Einlesen der Eingänge verwendet man eine „IF“-Abfrage.

Mit  „if pinC.1 = 0 then start0“    haben wir den Port C.1 auf  „0“ abgefragt ( =0 ) und im „THEN“-Pfad dafür gesorgt wieder zur Start-Marke „start0“ zu springen. Erst  durch Drücken der Taste C.1 wird das Programm darunter durchlaufen (Bild 11).

Bild 12 zeigt die Eingangsbeschaltung eines Tasters für den oben besprochenen Programmcode.  Die Schaltungsvarianten finden sich in den PICAXE-Manuals 1 und 3 (www.picaxe.com).


 

Bild 12 Anschluss eines Schalters oder Taste an einen PICAXE – Eingang

Probleme und Fehlerquellen

Damit der PICAXE problemlos läuft, sollten die Programmierleitungen im Betrieb abgeklemmt sein (z.B. über Brücken) oder durch entsprechende Schaltungsmaßnahmen geschützt werden (Bild 4).

Die serielle Schnittstelle muss nach den Vorgaben von PICAXE eingerichtet sein. Mit den hier beschriebenen Varianten funktionierte dies einwandfrei (es kann natürlich keine Garantie übernommen werden!). Die sicherste Variante ist es, die von PICAXE produzierten Teile zu verwenden. Dies ist  mein Tipp für  unerfahrene  Anwender.  Wer das Lernpaket „Elektronik Start mit USB“ des Franzis-Verlages hat kann, wie oben gezeigt, auch ohne die Standard PICAXE-Kabel in die Welt der PICAXE Mikros einsteigen.

Ausblick

Mein Artikel sollte nur einen ersten Überblick geben. Wenn gewünscht, werde ich in einer Fortsetzung  weitere Ansteuermöglichkeiten beschreiben (Motoren, Analogeingabe, Verwendung von Variablen,  etc..).

Im letzten Kapitel verwende ich den 20M2 für einige weitere Beispiele! Für Tests mit 08M2 oder 14M2 muss das Programm auf die Ports der verwendeten Bausteine umgeschrieben werden!

 

Anlogeingabe und eine einfache Motoransteuerung

Mit vorhandenen Bauteilen oder aus dem MSR-Packet lassen sich auch noch einige Versuche durchführen. Dies wird in diesem letzten Kapitel beschrieben.

Ich werde hier aber weniger ins Detail gehen, dies würde ich gerne in einem anderen Artikel genauer ausführen.

Für die folgenden Versuche habe ich den PICAXE 20M2 verwendet. Alle Versuche können auch mit dem 08M2 (evtl. müssen beim 08M2 die Versuche aufgeteilt werden, da weniger Ports zur Verfügung stehen!) und 14M2 durchgeführt werden. Dabei muss allerdings auf die Belegung geachtet werden (siehe PICAXE-Manual 1). Der 14M2 geht nur bis Port C.5, der 08M2 hat nur Ports mit der Bezeichnung „B“.  Der 14M2 ist auch für den Einsteiger auf jeden Fall eine gute Wahl, da man ab den 14 Pin PICAXEs großzügiger mit den Anschlüssen umgehen kann. Bild 13 zeigt den Schaltungsaufbau der im Folgenden beschrieben Programmteile.  Die Widerstände R1 und R2 bilden einen beliebigen  Spannungsteiler! Wenn R1 und R2 gleich sind (z.B. 2x 10K **, Bild 13), dann liegt am Eingang  B.1 die halbe Betriebsspannung an. Die Funktion des 10K*  Widerstandes an Serial In wurde bereits oben beschrieben (Bild 4)!

pic20M2_ANEinLedBl.png

Bild 13 Schaltungsaufbau zur Benutzung des Analogeingangs (B.1) und der LED-Ansteuerung über Port B.2

 

    

Bild 14 PICAXE Modus Einstellung 20M2                                  

        

        Bild 15  Seriellen Port wählen (hier 9 für MSR-Packet)

Programmteil:  Lesen vom ADC   mit  Spannungsteiler an Port B.1

start0:      readadc B.1, b0     ‘Einlesen von Analogwerten ueber B.1

             debug               ‘Analogwert im Debugfenster anzeigen

             low B.2             ‘LED an B.2 aus

             pause 500           ‘Pause 500ms

             high B.2            ‘LED an B.2 an

             pause 500           ‘Pause 500ms

              goto start0         ‘Springe zum Start

 

Bild 15 Debug – Fenster zeigt die aktuellen Werte der PICAXE Register

Unter Picaxe (F6) bekommt man das Debug-Fenster. Das Debug-Fenster geht nur mit der Hardware-Verbindung zum PICAXE. An  b0  liegt der Spannungsteiler aus zwei 10K Widerständen an (siehe Bild 13  R1, R2**).  Der Wert schwankt um 128 Dezimal (80 Hex).  Durch Parallelschalten eines Widerstandes erhält man einen anderen Wert. Der kleiner oder größer sein kann, je nachdem wo man den Widerstand parallel schaltet (oben oder unten). Probieren sie es einfach mal selbst aus.

Das Programm kann wieder erst mal im Simulator getestet werden, bevor man an die Verdrahtung geht. Der erste Teil zeigt liest einen Analogeingang ein. Mit zwei Widerständen als Spannungsteiler wird dann praktisch experimentiert. Der Messwiderstand kann auch eine Diode,  Fotowiderstand oder ein Fototransistor sein.  Für den Analogeingang benötigen wir nur den Befehl „readadc B.1, b0“ und „debug“.

Die anderen Befehle werden später besprochen.  Das vollständige Programm ist auf der nächsten Seite angegeben!  Mit „b0“ verwenden wir nun auch eine Byte-Variable. Bei den M2-Typen sind 28 Byte als Variable definiert  (b0 bis b27) oder als Word-Variable „w0“ (b0,b1). Über andere Befehle ist aber noch mehr  RAM-Speicher verwendbar. Die Verwendung von EEPROM  für dauerhafte Speicherung ist auch möglich, wird hier jedoch nicht besprochen! 

Der Ausgang „C.4“ kann an einen Piezo-Lautsprecher herausgeführt werden. Ich habe dies im Programm vorgesehen, jedoch nicht angeschlossen. Ich wollte aber die einfachen Soundmöglichkeiten hier erwähnen. Zur Ansteuerung genügt es, eine Seite des Piezo an den Ausgang „C.4“ anzuschließen und die andere Seite an 0V zu legen (siehe Bild 16)! Für die  Sound-Ansteuerung wird der Befehl „Sound“ innerhalb einer „for – Schleife“ versorgt. Weitere Einzelheiten findet man in den PICAXE-Manuals 1-3.

Zur Ansteuerung eines Gleichstrommotors wird der Ausgang  „C.5“ des PICAXE 20M2 verwendet. Über einen 1k-Widerstand wird ein Transistor (z.B. BC548) angesteuert.

 Eine Schutzdiode  (D1, Bild 16 ***, am Motorsymbol) verhindert wie bei einem Relais eine Zerstörung des Transistors. Parallel zum Motor sollte noch ein Kondensator von 220nF geschaltet werden (Empfehlung im PICAXE Manual 3). Beim Franzis Elektronik Start mit USB kann man zwei 100nF Kondensatoren parallel schalten, wenn kein 220nF vorhanden ist.  Je nach Motorbelastung muss der Plusanschluss  des Motors getrennt mit einer eigenen Spannungsquelle  gespeist werden, sonst läuft der Motor nicht (Bitte die Empfehlungen des PICAXE Manual 3 beachten!).

Das Beispiel zeigt eine einfache Anwendung von PWM (Puls Wide Modulation) des PICAXE. Weitere Einzelheiten findet man in den PICAXE Manuals 1-3.….

Den kompletten Schaltplan findet man in Bild 16.

Das  komplette Testprogramm finden wir auf der nächsten Seite.

 

 

'Testprogramm: Beispiele fuer PICAXE-Anwendungen J. Linder /14. Oktober 2012

'Version 1.0

'Beispiel fuer PICAXE 20M2

'Verwendete Ports:  B.1 (Analogeingang); B.2 LED (Ausgang);

'                   C.4 Ausgang fuer Piezo/Sound

'                   C.5 Ausgang fuer Motor (+PWM); C.7 Eingang fuer Taster

'Variable:          b0 fuer Analogeingabe; b1 als Laufvariable für Soundbeispiel

'Start von Prozess 1 mit Taste an Port C.7

'Prozess 1

'lesen von ADC => Spannungsteiler an B.1

'Anzeige im Debugfenster

'LED Signal ueber Port B.2

'Motor Ein/AUS ueber Port C.5

'Prozess 2 durch druecken der Taste C.7 waehrend Motor läuft und LED B.2 an ist!

'Prozess 2

'Motor aus; LED aus

'Einfaches Soundbeispiel

'Nach 2s Pause wird fuer 8s der Motor mit PWM angesteuert

'Rücksetzen des PWM-Mode mit pwmout C.5,OFF

'LED aus

'Sprung zur Marke start0; Prozess 1 kann neu gestartet werden

 

start0:      if pinC.7 = 0 then start0 'Programm starten nach Tastendruck

los:                                           'Prozess 1

             readadc B.1, b0                   'Lese Analogwert

             debug                             'zeige Analogwert im Debugfenster

            

             low B.2                           'LED an Port B2 ausschalten

             pause 1000                        'Pause von 1000ms

             high B.2                          'LED an Port B2 einschalten

             low C.5                           'Port C5 auf 0 setzen für Motor aus

             pause 500                         'Pause von 500ms

             high C.5                          'Port C5 auf 1 setzen für Motor ein

             pause 2000                       'Pause 2s; Motor laeuft fuer 2s

                          

             if pinC.7 = 0 then los

             low C.5                           'Prozess 2;  Motor aus

             low B.2                           'LED aus

             for b1 = 50 to 100                'Piezo ertoent wenn Programmlauf
                                  'beendet gedrueckt wurde

                    sound C.4, (b1,25)         'Sounderzeugung an Port C.4  (Piezo)

             next b1

             pause 2000                        'Nach 2s Motor mit PWM ansteuern

             pwmout pwmdiv4, C.5, 124, 250     'Motor mit PWM ansteuern

             pause 8000                        '8s PWM, dann PWM ausschalten

             pwmout C.5, OFF                   'Ausgang C5 auf Normalzustand

             pause 2000

             low B.2                           'LED B.2 ausschalten

             goto start0                       'Wieder auf Anfang setzen

 

 

pic20M2_ANKomplett.png

Bild 16  Die komplette Schaltung des Versuchsaufbaus mit dem PICAXE 20M2

Somit kommen wir zum Ende meines PICAXE – Einstiegs/Übersicht.  Ich konnte sicher nicht Alles zeigen, was mit den PICAXE geht, hoffe aber Anregungen gegeben zu haben, sich mit dem Thema zu befassen. Ich habe die Schaltungen mit  5.0V oder 4.5V Batteriespannung getestet. Wer mit 3V arbeiten will, muss dies in den PICAXE-Beschreibungen oder im PICAXE–Forum  nachsehen. Die Motoransteuerung über das USB MSR vom Franzis Verlag  kann nicht beliebig starke Motoren treiben. Je nach Motor ist eine eigene Stromversorgung notwendig. Bitte beachten sie die Hinweise im Manual 3 der PICAXE Dokumentation! Die neuen PICAXE M2 Typen sind an den Portanschlüssen  meist als Ein- oder Ausgang verwendbar. Es gibt jedoch einige wenige Ausnahmen, die nur als Ein- oder Ausgang zu verwenden sind. Die Belegungen findet man in Manual 1 der PICAXE-Beschreibung oder auf der PICAXE-Webseite.
Die verwendeten Programme sind mit dem PICAXE Editor der Version 5.5.0 erstellt und getestet worden.

Zum Schluss noch einige Bilder zum PICAXE und den Versuchsaufbauten.

In Bild 17 findet man sowohl Aufbauten mit Breadboard, als auch die fertige PICAXE-Tutorial-Platine mit dem PICAXE 18M2 und die PICAXE Proto 08 Board Platine als Bausatz.
Die verschiedenen PICAXE–Typen und die Testaufbauten sind im Bild 17 zur Information genauer  beschriftet.
Bild 18 zeigt den Testaufbau mit PICAXE 20M2 und dem Franzis Lernpacket „Elektronik Start mit USB“.
Bild 19 zeigt den Bredbord USB-Adapter an PICAXE 40X2 und 28X2. Die beiden PICAXE können natürlich nur einzeln an den Adapter zur Programmierung angeschlossen werden!
Bild 20 zeigt den Testaufbau mit dem PICAXE 20M2 auf dem Breadboard im Detail.

PICAXE_IMG_5795aText.jpg

Bild 17 Verschiedene Testaufbauten mit Bredboard und fertigen PICAXE Modulen

 

PICAXEplusUSB_Franz_IMG_5805.JPG

Bild 18 Testaufbau mit Franzis Elektronik Start mit USB

IMG_5803.JPG

Bild 19 Breadboard mit Bredboard-USB-Adapter (links), PICAXE 40X2 (Mitte) und PICAXE 28X2

PICAXE_20M2_IMG_5797.JPG

Bild 20  Testaufbau PICAXE 20M2 auf dem Breadboard im Detail

So, ich hoffe, nun haben  auch Sie Interesse am PICAXE gefunden!




Elektronik-Labor   Projekte   AVR