Frank Zimmermann © 2002 Hauptseminar RA1
Verbindungen RCX-PC
Die unterschiedlichen Möglichkeiten der PC – RCX Steuerung
Lego Mindstorms – mehr als nur ein Spielzeug ?
Frank Zimmermann © 2002 Hauptseminar RA2
Inhalt• Vorstellung des Robotik Invention System
• Programmiermethoden im Überblick
• Programmieren via Active X Control
• Vision Command
Frank Zimmermann © 2002 Hauptseminar RA3
Vorstellung des Roboter Invention System
• 718 Lego Teile• 2
Berührungssensoren• 1 Lichtsensor• 2 Motoren• RCX• Software
Frank Zimmermann © 2002 Hauptseminar RA4
Der RCX im Detail• 3 Eingänge• 3 Ausgänge• Hitachi H8 Prozessor• 16Mhz, 16k ROM, 512 RAM
plus 32KSRAM• Timer (16 bzw. 8 Bit)• durch Tricks Eingänge
erweiterbar• IR 2400baud
(Fernsehfernbedienung)
Frank Zimmermann © 2002 Hauptseminar RA5
Programmiermethoden
RCX
Spez. Firmware
• LegOS
• PBForth
•Java*
Standard Firmware
• RCX Code
• NQC
• LASM
• ActiveX
Frank Zimmermann © 2002 Hauptseminar RA6
RIS & Brick Command Center
Frank Zimmermann © 2002 Hauptseminar RA7
Programmieren via ActiveX Control
• RIS 1.0 – 1.5 ActiveX (spirit.ocx)
• Dokumentation im SDK1 bzw. SDK2
• Visual Basic, C++, Delphi usw.
Frank Zimmermann © 2002 Hauptseminar RA8
Vorbereitungen
• Port muss bestimmt werden an dem IR Tower angeschlossen ist
• Initialisieren in Form_Load und schließen in Unload
• Rcx.ComPort = i
Rcx.InitCom
• Rcx.CloseComm
Frank Zimmermann © 2002 Hauptseminar RA9
Ansteuerung der Ausgänge• Richtung und
Geschwindigkeit der Motoren bestimmbar und einstellbar
• Danach aktvieren (Dauer, bestimmte Zeit,…)
rcx.SetFwd "0"rcx.SetRwd "2"rcx.On "02"
Frank Zimmermann © 2002 Hauptseminar RA10
Ansteuerung der Eingänge
• Unterschiedliche Sensortypen
• Unterschiedliche Wertebereiche
• Zuvor setzen• Eingänge auch Timer,
Variablen, Zeit, usw.
Frank Zimmermann © 2002 Hauptseminar RA11
Datalog
• Ständige Übermitteln von Werten kostet Zeit und Energie
• Werte sammeln und mit einmal übermitteln
• Datalog anlegen rcx.SetDatalog (2)
• Werte schreiben rcx.DatalogNext 9, 1
• Werte lesen Array als Ergebnis arr = rcx.UploadDatalog(0, 3)
Frank Zimmermann © 2002 Hauptseminar RA12
Weitere Möglichkeiten
• Programme komplett übertragen und bei Ereignis anstoßen schneller
• Kopplung mit Spracherkennung sprachgesteuerter Roboterarm
• Tonausgabe, Übertragungsstatistik …
Frank Zimmermann © 2002 Hauptseminar RA13
Vision Command
• Lego Cam + Software + Lego Teile
• 352x288 Pixel (30 Frames/s)
• Webcamsoftware / RIS
• Läuft nur unter Win9x• Sensitive Bereiche
Frank Zimmermann © 2002 Hauptseminar RA14
Vision Command (2)
• Bereiche können Licht, Dunkel, Farbe und Bewegung erkennen
• Toleranz angeben
• Befehle (RCX Code)
• Erkennung geschieht auf PC RCX nur Befehlsausführer (starten von Unterprogrammen)
Frank Zimmermann © 2002 Hauptseminar RA15
Probleme des Vision Command
• RCX muss Kabel hinterher ziehen
• Erkennungsprobleme bei Bewegung und anderen Lichtverhältnissen
• Kein einbinden in VB (nur Logitech SDK)
• Geschwindigkeitsprobleme
Guter Ansatz aber mit Problemen behaftet
Frank Zimmermann © 2002 Hauptseminar RA16
Vision Command Film
robots_that_see3.swf