Lauflicht mit fischertechnik ROBO Pro

Lauflicht mit fischertechnik ROBO Pro

Gerät ROBO Pro Software, optional: Fischertechnik Robo TX Controller, ROBO Interface
Thema Lauflicht
Ziel Spaß, Funktion einer Liste kennenlernen
Bauteile 8x ft Lampen
Kosten 0 €
Schwierigkeitsgrad mittel
Programm Download Programmcode

 

 

Lauflicht mit ROBO Pro
Lauflicht mit ROBO Pro

 

Die Umsetzung eines elektronischen Würfels mit fischertechnik.

Die Software funktioniert auch ohne eine angeschlossen Hardware wie dem ROBO TX Controller oder dem ROBO Interface. Bei vorhandener Hardware die Lampen an die Ausgänge O1 bis O7 schalten.

Zur Funktion:

Im Hauptprogramm erfolgt das Einlesen der Lampenzustände. Per Hardware sind maximal 8 Lampen möglich.
Nach dem Programmstart bitte die Taster für die gewünschten Lampen setzten. Anschließend den Taster “Einlesen” entsprechend setzen. Die Liste ist dann gefüllt. Per rechten Mausklick auf die Liste kann man auch deren Inhalt ansehen. Die Löschanweisung zu Beginn leert die Liste.

Per “Ausgabe” kann man sich die Werte anzeigen lassen. Das Lauflicht startet man mit “Schieben” (da Funktion ähnlich einem Schieberegister).

Um den Lauflichteffekt zu erreichen erschien mir die Veränderung der Liste zu umständlich. Ich habe daher für jeden Durchlauf den Index der Liste um eins verschoben. Die Ausgänge werden so bei jedem Durchlauf der nächsten Zeile in der Liste zugeordnet. Nach 8 Durchläufen ist der Ausgangszustand wieder erreicht.

Das Programm läuft auch ohne angeschlossen Hardware. ROBO Pro bitte dafür in den Simulationsmodus schalten.
Theoretisch reicht für die Simulation auch schon die kostenlose ROBO Pro Demo Version von der fischertechnik Homepage.

 

Elektronischer Würfel mit fischertechnik ROBO Pro

Elektronischer Würfel mit fischertechnik ROBO Pro

Gerät ROBO Pro Software, optional  Fischertechnik Robo TX Controller
Thema Elektronischer Würfel
Ziel Spaß
Bauteile 8x ft Lampen, 1 Schalter (können auch entfallen)
Kosten 0 €
Schwierigkeitsgrad mittel
Programm Download Programmcode

 

 

fischertechnik elektronischer würfel
fischertechnik elektronischer würfel

 

Die Umsetzung eines elektronischen Würfels mit fischertechnik.

Die Software funktioniert auch ohne eine angeschlossen Hardware wie dem ROBO TX Controller oder dem ROBO Interface. Bei vorhandener Hardware den Schalter auf Eingang 1 und die Lampen an die Ausgänge O1 bis O7 schalten.

Hier der verwendete fischertechnik ROBO TX Controller

 fischertechnik ROBO TX Controller
fischertechnik ROBO TX Controller

fischertechnik 500995 - ROBO TX Controller

Zur Funktion:

Die ODER-Funktion (1) gestattet den Würfel sowohl per Tastendruck, als auch per Schalter an Eingang I1 des Controller zu starten.
Die Zählschleife (2) inklusive Wartezeit wäre eigentlich entbehrlich. Sie sorgt quasi für ein langsames Ausrollen unseres Ergebnisses.
Die Zufallsfunktion wird unter (3) mit dem Programm RanUni realisiert.
Das Programm Null setzt alle Ausgänge auf Low.
Unter (4) erfolgt dann das Setzen der entsprechenden Ausgänge und Anzeigefelder.

Dies ist ein schönes Beispiel wie man auch ohne angeschlossen Hardware arbeiten kann. ROBO Pro bitte dafür in den Simulationsmodus schalten.
Theoretisch reicht für die Simulation auch schon die kostenlose ROBO Pro Demo Version von der fischertechnik Homepage.

 

Mehr Anschlüsse mit dem ROBO TX Controller

Dem ROBO TX Controller mehr Ein-/Ausgänge verpassen

Gerät Fischertechnik Robo TX Controller
Thema Port Erweiterung per I2C Bus
Ziel Mehr Eingänge /Ausgänge für LED´s, Schalter etc.
Bauteile Port Expander PCF8574, LED, Widerstände, Lochrasterplatine oder Laborsteckbrett, Verbindungsdrähte
Kosten 5€
Schwierigkeitsgrad mittel

Ein häufiges Problem in der Robotik ist die unzureichende Anzahl der Ein- und Ausgänge. Verfügt die Steuerung oder der Mikrocontroller über einen I2C Bus geht, dies mit entsprechenden Schaltkreisen recht einfach zu lösen.

Der ROBO TX Controller kann seit 2012 I2C ansteuern. Der Arduino, Lego NXT Baustein und diverse Mikrocontroller welche deren Basis sind,  können dies ebenfalls. Ein geeigneter günstiger Baustein dafür ist der Schaltkreis PCF8574.

Der I2C Port Expander PCF8574

Der PCF8574 ist ein sogenannter I/O Port-Expander. Man bekommt in ca. für 1 €. An weiteren Bauteilen braucht man eigentlich nur ein paar Widerstände. Der PCF8574 hat 8 Pins welche man als Ein- oder Ausgänge nutzen kann. Die Kommunikation mit den Controller erfolgt über den I2C Bus.

Der PCF8574 ist eine einfache und günstige Möglichkeit mal den I2C Bus auszuprobieren. Egal ob mit fischertechnik, Lego NXT oder Arduino.

Einsatz des PCF8574 beim ROBO TX Controller

Der PCF8574 wird über die beiden SDA und SDL Ports für die Kommunikation mit dem TX verbunden. Obwohl es eigentlich ein Zweidrahtbus ist, benötigen wir noch eine Masseverbindung. Sollten wir nur ein paar LEDs ansteuern, können wir auch die 5V Betriebsspannung vom TX bekommen.

Adressierung PCF8574

Der PCF8574 hat drei Adresspins (A0..A2). Damit lassen sich maximal 8 Schaltkreise an einem gemeinsamen Bus betreiben. Da jeder über 8  Eingänge /Ausgänge verfügt könnte man damit zum Beispiel 64 LED´s steuern. Im einfachsten Fall setzt man alle Adresspins auf Masse und der Schaltkreis hat die Adresse 20Hex.

 

A2 A1 A0 PCA8574 PCA8574A
0 0 0  20h 38h
0 0 1  21h 39h
0 1 0  22h 3Ah
0 1 1  23h 3Bh
1 0 0  24h 3Ch
1 0 1  25h 3Dh
1 1 0  26h 3Eh
1 1 1  27h 3Fh

Vom PCF8574 existieren verschiedene Ausführungen, erkennbar am Buchstaben nach “PCF8574”. Somit könnte man theoretisch auch mehr als 8 IC pro Bus ansteuern.

Der PCF8574 als Ausgangstreiber

Der PCF8574 hat sogenannte Open Collektor Ausgänge. Diese schaltet im aktiven Zustand den Ausgang nach Masse durch. Im einfachsten Fall kommt an den Ausgang eine LED mit Vorwiderstand gegen die Betriebspannung. Maximal verkraften die Ausgänge 25mA pro Port  bzw. 200 mA in Summe. Ein kleines Leiterplattenrelais könnte man damit schon ansteuern. Für größere Lasten braucht man eine Transistorstufe. Durch den Open Collektor Ausgang könnte man aber auch die Ausgängen an ein einen anderen Spannungspegel legen. Zum Beispiel an die 9Volt der fischertechnik. Die Widerstände müssen dann etwas höher ausfallen.

Bei höherem Strombedarf der I2C Komponenten ist es sowieso notwendig diese aus einer separaten Spannungsquelle mit den benötigten 5 Volt zu betreiben. In diesem Beispiel ist aber die Spannungsversorgung des EXT2 Anschlusses beim TX Controller ausreichend.

Hier noch mal die Anschlussbelegung des TX Controllers:

fischertechnik Robo TX connections

fischertechnik Robo TX connections

 

Portexpander PCF8574 LED Ausgänge

Portexpander PCF8574 LED Ausgänge auf Breadboard
Portexpander PCF8574 LED Ausgänge auf Breadboard

 

Die Ansteuerung des PCF8574 in ROBO Pro

Bei der aktuellen ROBO Pro Version gibt es diverse I2C Bibliotheken.
Ich verwende hier die” IOPort-PCF8574″. Speziell für die Ausgabe reicht die Funktion “I2C-Port Set”. Als erstes prüft man am besten ob die Funktion immer über den Error Zweig verlassen wird. Dann gibt es entweder ein Verkabelungsproblem mit dem Bus oder die Adresse des PCF8574 ist nicht richtig eingestellt. Bitte auch die Pins 1 bis 3 auf entsprechenden Spannungspegel setzen.

ROBO Pro und Portexpander PCF8574 als Ausgangserweiterung bei fischertechnik
ROBO Pro und Portexpander PCF8574 als Ausgangserweiterung bei fischertechnik

Das Programmbeispiel zählt einfach von 0 bis 255 hoch und setzt dem entsprechend die 8 LEDs im Binärcode.

 

Wie man den PCF8574 bei Lego Mindstorms NXT einsetzt, ist hier beschrieben  >>>

 

 

Morse Code Übersetzer Sender mit fischertechnik ROBO Pro

Nach dem ich schon einige Lösungen beim Arduino gesehen hatte, beschloss ich mal einen Morcecodeübersetzer für fischertechnik zu schreiben.
Leider beherrscht die Programmierumgebung ROBO Pro keine Tonerzeugung. Ansonsten brauchte man noch nicht einmal Hardware. Als Hardware kann man das ROBO Interface oder den ROBO TX Controller einsetzen. Wer auf Ton verzichten kann, dem reicht auch schon die ROBO Pro Demo von der fischertechnik Homepage.
Mit Hardware schließt man an den Ausgang1 eine Lampe oder/und einen Buzzer an.

Die Idee zu diesem Morsegenerator kam mir durch ein ähnliches Projekt für den Arduino in dem Buch “30 Arduino Selbstbau-Projekte”. Den Quellcode der Programm kann man hier herunterladen. Für das Verständnis der Programm ist aber schon das Buch notwendig.

 

Beschreibung fischertechnik Morsecode Generator:

In das Textelement (1) kommt der Text welcher als Morsecode ausgegeben werden soll.
Die nächste Befehlsbox (2) gibt den Text Zeichenweise als ASCII Code aus.
Der ASCII Code dient als Index für die Liste (3). Diese enthält den Morsecode. Da die Liste nur Zahlenwerte aufnehmen kann, habe ich den Punkt mit “1” und den Strich mit “2” übersetzt. Dies wäre schon der schwierigste Teil wenn ROBO Pro Textstrings verarbeiten könnte.
So zerlege ich erstmal den maximal 5 stelligen Morscecode in Einzelziffern um diese nacheinander abzuarbeiten (4).
Die Ausgabe besteht aus einem Unterprogramm welches die Ziffern aus der Liste nach 0, 1, 2 unterscheidet und der eigentliche Ausgabe, welche je nach Zeichenlänge Ausgang 1 aktiv schaltet.
Damit alle Programmteile synchron laufen und die Morsezeichen die korrekte Längen und Pausen haben, gibt es diverse Ja/Nein-Blöcke. Die Variablen zwischen Liste und Ausgabe sind eigentlich überflüssig, zeigen aber schön die Funktionsweise.

Die Zeichen- und Pausendauer kann mit dem Schieberegler angepaßt werden.

Morse Generator mit ROBO Pro

Das Morse ROBO Pro Programm herunterladen
Die CSV Datei mit dem Morse Code

 

„Morse Code Übersetzer Sender mit fischertechnik ROBO Pro“ weiterlesen

I2C und fischertechnik – LED mit dem SAA1064 ansteuern

Der fischertechnik ROBO TX Controller bietet seit der letzten Firmware die Möglichkeit über den I2C-Bus mit diversen Bausteinen zu kommunizieren.

Anbei die Anschlussbelegung für den I2C Bus. Bitte beachten, das die interne 5 Volt Quelle des TX nur gering belastet werden kann. Vermutlich muss bei mehr als einer 7-Segmentanzeige eine externe Spannungsquelle gewählt werden.

TX Controller Draufsicht I2C

Einer Erweiterung des TX mit zusätzlicher Peripherie steht dem somit nichts entgegen. Besonders interessant ist den TX mit zusätzlichen Anzeigen auszustatten. In Form des IC SAA1064 von Philips ist dies besonders einfach möglich und soll hier kurz beschrieben werden.

 

I2C Ansteuerung mit fischertechnik ROBO TX Controller

Der SAA1064 kommuniziert per I2C Bus mit dem TX und kann bis zu 4 LED 7-Segmentanzeigen ansteuern. Über den Extern2 Anschluss am TX können die beiden I2C-Anschlüsse und die Betriebsspannung für den SAA1064 abgegriffen werden. An externen Bauelementen werden nur wenige Widerstände und Kondensatoren benötigt. Werden per Multiplex 4 Anzeigen angesteuert, werden noch 2 Transistoren benötigt.

SAA1064 Multiplexbetrieb

Bei mehreren 7-Segment Anzeigen reicht die interne 5Volt Quelle des TX nicht mehr. Die Anoden müssen dann an eine andere Spannungsquelle (<=+15V) geschaltet werden. Hier bietet sich die übliche fischertechnik Betriebsspannung von 9 Volt an.

 

Für die Ansteuerung des I2C Busses dient der Befehl I2C Schreiben.

Mit der Geräteadresse wird der gewünschte Empfänger angesprochen.

Die Unteradresse entspricht einem Befehlsbyte. Um die Kontroll-Bits zu setzen, wird hier eine Null gesetzt. Im Feld Datenwert erfolgt das Setzen der einzelnen Kontroll-Bits.

SAA1064 Befehl senden

Für das Schreiben von Daten wird die Unteradresse auf 1 für  Digit 1gesetzt. Analog dazu 2 für Digit 2 usw.. An das Datenfeld wird für jedes Segment welches leuchten soll eine 1 übergeben. Für eine 8 wäre diese der Wert „1111111“ in binärer Schreibweise (Dezimal 127).

SAA1064 Datenwert senden

Anbei ein Beispiel um den SAA1064 zu steuern und das erste Digit zu setzen. Für die komplette Ansteuerung kann man natürlich die ROBO Pro Bibliothek zum SAA1064 nehmen (ab Version 3.1.3).

SAA1064 Befehl senden mit ROBO Pro

SAA1064 Datenwert senden mit ROBO Pro

Dieses ROBO Pro Programm herunterladen

Versuchsaufbau mit einer 7-Segmentanzeige

Neben dem SAA1064 und der Anzeige mit gemeinsamer Anode wurden noch ein Kondensator benötigt. Die Anzeige wird über den +5Volt Anschluss des TX versorgt.

SAA1064 und TX Controller

Mehr zum SAA1064

Der SAA1064 ist ein I2C Treiberbaustein für die Ansteuerung von LEDs.

Werden die zwei Multiplexports genutzt können maximal 32 LEDs bzw. vier 7-Segmentanzeigen angesteuert werden.
Im Statikbetrieb sind es 16 LEDs bzw. zwei Anzeigen. Es kommen Anzeigen mit gemeinsamer Anode zum Einsatz. Da die Ausgänge Konstantstromsenken sind werden keine Vorwiderstände benötigt.

Über die Spannung am Pin1 können 4 I2C Adresse eingestellt werden. Somit lassen sich maximal 4 SAA1064 an einem I2C Bus betreiben.

 

Der LED-Strom lässt sich über die 3 Kontrol-Bits (C4…C6) per Software zwischen 0 und 21 mA steuern.

C4 = 1 plus 3 mA

C5 = 1 plus 6 mA

C6 = 1 plus 12 mA

 

Beschaltung im Statik Modus – 2 Anzeigen

Die gemeinsamen Anoden der Anzeigen kommen direkt auf die Betriebsspannung (max. +15V)

Digit1 an Port P1 bis P8 und Digit 2 an P9 bis P16.

Es sind keine zusätzlichen Bauteile notwendig.

 

Beschaltung im Multiplex Modus – 4 Anzeigen

Hier ist die Verlustleistung höher, so dass die Multiplexausgänge für die Anoden einen npn-Treibertransistor bekommen.

Die Segmentzuordnung sieht wie folgt aus.

Digit       Multiplexausgang                           Segment Port

1             MM1                                                    Port 1 – 8

2             MM2                                                    Port 9 – 16

3             MM1                                                    Port 1 – 8

4             MM2                                                    Port 9 – 16

Ansteuerung des SAA1064

Zuerst wird das Befehls Byte übertragen, welches bei einem Wert von 0 das nachfolgende Kontroll Byte zur Steuerung verwendet. Bei einem Wert zwischen 01 und 04 wird das entsprechende Digit mit dem Wert des folgenden Bytes angesteuert.

SC       SB       SA       SUB-ADDRESS            FUNCTION

0          0          0          00                                control register

0          0          1          01                                digit 1

0          1          0          02                                digit 2

0          1          1          03                                digit 3

1          0          0          04                                digit 4

1          0          1          05                                reserved, not used

1          1          0          06                                reserved, not used

1          1          1          07                                reserved, not used

 

Kontroll-Bits

C0 = 0 Statik Mode

C0 = 1 Dynamik Mode

C1 = 0/1  Digits 1 + 3 aus bzw. an

C2 = 0/1 Digits 2 + 4 aus bzw. an

C3 = Test, alle LEDs an.

C4 = 1  plus3 mA Ausgangsstrom

C5 = 1 plus 6 mA Ausgangsstrom

C6 = 1 plus 12 mA Ausgangsstrom

 

Die Zuordnung der Kontroll-Bits zu den Anzeigen ist wie folgt:

Bit: 7 6 5 4 3 2 1 0
Segment: p g f e d c b a

-a-
|f     |b
-g-
|e    |c
-d- .p

Damit ergibt sich folgende Kodierung für die einzelnen Ziffern.

0 = 0x3F = 63
1 = 0x06 = 6
2 = 0x5B = 91
3 = 0x4F = 79
4 = 0x66 = 102
5 = 0x6D = 109
6 = 0x7D = 125
7 = 0x07 = 7
8 = 0x7F = 127
9 = 0x6F = 111

 

Kosten

Den SAA1064 gibt es bei Reichelt für 2€, passende Anzeigen mit gemeinsamer Anode ab 0,50€ je nach Größe. Bei sehr großen LEDs beachten, dass dort mehrere LEDs intern in Reihe geschaltet sind. Mit einer 5 Volt Versorgungsspannung kommt man dann nicht mehr aus.
Für die ersten Versuche reicht ein kleines Steckbrett.
Fertige Module des SAA1064 sind ab ca. 30€ erhältlich.

TX Controller

Den verwendeten TX Controller gibt es sowohl einzeln als auch in Verbindung mit einem Bausatz. Momentan ist er bei Amazon mit 150€ relativ günstig zu bekommen.

fischertechnik ROBO TX Controller

Für Einsteiger ist es aber wesentlich praktischer den TX als Bestandteil einen Baukastens zu erwerben. Im ROBO TX Trainings Lab bekommt man noch 2 praktische Encodermotoren und einen Spurensosor für den Bau eines fahrenden Roboters dazu.