Robotic Invention System - Higher ?· Der RCX-Block des Lego Robotics Invention System wird für den…

  • View
    212

  • Download
    0

Embed Size (px)

Transcript

  • HOBBY&SPIEL

    475/2000 Elektor

    RoboticInvention SystemAlternative ProgrammierungVon Hans Steeman

    Der RCX-Block des Lego Robotics Invention System wird fr den avancier-ten Anwender so richtig erst mit alternativen Programmiersprachen wie VisualBasic oder NQC interessant.

    Zweifellos ist die originale grafische Softwarezur Programmierung des RCX-Blocks des LegoInvention System uerst anwenderfreund-lich, so dass er auch von Kindern ab etwazehn Jahren problemlos programmiert werdenkann. Die einfache Bedienbarkeit wird abermit einer gewissen Unflexibilitt erkauft,wenn es um Implementierung modifizierteroder selbstentworfener Hard- oder Software-Aufgaben fr den RCX geht. Glcklicherweisegehrt zum Lieferumfang des Robotics Inven-tion System ein AktiveX-Softwaremodul mitder Bezeichnung Spirit.OCX, das automatischmit der RIS-Software installiert wird. DiesesModul stellt die eigentliche Software-Schnitt-stelle des PCs zum RCX-Block dar. Zur Pro-grammierung der OCX-Schnittstelle wirdgewhnlich die im letzten Teil beschriebeneMindstorms-Programmiersprache eingesetzt.Prinzipiell bietet das OCX-Modul aber dieMglichkeit, andere Sprachen zum Betrieb desRCX-Roboters einzusetzen, die eine ActiveX-Schnittstelle auch untersttzen. Dies ist beinahezu allen modernen, universell einsetzba-ren Umgebungen wie VisualBasic (ab 4.0),VisualC++ oder Delphi der Fall. Es gibt aberauch spezifische Umgebungen wie das Lab-View-Derivat Robolab, eine grafische Pro-grammiersprache fr das RCX-Modul, die frden Schulunterricht entworfen wurde.

    OCX im Detail

    Auf der Mindstorms-Homepage ist ein Ver-weis zum Software Development Kit (SDK) zufinden, eigentlich kein echtes Programmier-kit, sondern lediglich eine ausfhrliche

  • HOBBY&SPIEL

    48 Elektor 5/2000

    Beschreibung der OCX-Befehle. Die kompri-mierte PDF-Datei PBrick behandelt auf ber100 Seiten alle Befehle, die die OCX verstehtund ausfhren kann. Dabei handelt es sichum Steuerbefehle fr den RCX-Block sowieum interne OCX-Befehle, die nicht die zumRCX-Block herunter geladen werden. Einebersicht der Befehle finden Sie in derTabelle am Artikelende.Neben der Beschreibung der OCX enthlt dasSDK das Beispielprogramm GetStarted inVisualBASIC 5.0. Im folgenden wird gezeigt,wie man mit dem RCX-Roboters in einerobjektorientierten Sprache umgeht. Dies sollauch hier beispielhaft anhand von VisualBa-sic 6.0 geschehen. Die Vorgehensweise unteranderen objektorientierten Sprachen wieVisualC oder Delphi ist hnlich bis identisch.

    OCX-Einbindung in VB

    Es ist kaum verwunderlich, dass eine objekt-orientierte Sprache den RCX-Block als Objektansieht. Zunchst wird das OCX-Modulinstalliert und unter VB angemeldet. Dazu

    Robolab -Mindstorms in der SchuleDer RCX-Mikroconmputer ist das Kernele-ment des Robolab-Sets fr den Unterrichtvon Schlern im Alter 8...16 Jahren zumEinstieg in die Steuer- und Regeltechnik.Das Herzstck, die Robolab-Software,unterscheidet sich vllig von der RIS-Vari-ante. Robolab wurde von Lego Dacta inZusammenarbeit mit der Tufts University(Massachusetts) entwickelt und basiert aufder leistungsfhigen Me/Analyse-SoftwareLabView von National Instruments. InDeutschland und sterreich wird Robolabexklusiv von Technik-LPE (Eberbach) vertrie-ben.Wie RIS ist auch Robolab eine symbolischbasierte Programmiersoftware. Die Soft-ware hilft nicht nur den Lehrern im Unter-richt, sondern erlaubt den Schlern eigeneExperimente.Die PROGRAMMER-Software bietet fnfverschiedene Lernstufen fr Einsteigerund fr Fortgeschrittene. Die Software-Programme werden in Gruppen geteilt,die bestimmten Hardware-Anleitungen(sprich: vorgeschlagene Roboter-Baupro-jekte) oder edukativen Kategorien (Mathe-matik, Physik, ...) entsprechen. Ein einzi-ger Klick auf ein Level oder ein Thema inBild A fhrt in den PILOT, der eine Ein-fhrung in die Programmierung von Robo-lab (in vier aufeinander aufbauendenSchwierigkeitsstufen) gibt (Bild B). Sowird man mit der Programmierweise ver-

    traut, bevor man zum nchsten Schritt,dem INVENTOR gelangt. Hier folgtnun endlich die Programmierung. Dazuwerden bestimmte Symbole aus derPalette (Bild C) in das Hauptfenstergezogen und miteinander verbunden.Die vier Levels des Inventors erlaubeneine nahezu unendliche Zahl von Kom-binationen der Symbole und damit dieProgrammierung individueller Verhal-tensmuster des Roboters. Die Einarbeitungszeit in Robolab istsehr kurz, ein dicker Pluspunkt fr eineSoftware, die in der Schule genutztwerden soll. Die Arbeit mit Robolabwird durch ausfhrliche Hilfefenster, einAnleitungsvideo auf CD sowie auf derLego-Dacta-Homepage online unter-sttzt. Die Software luft auf PC undMac mit und ohne Netzwerk. Zum Robolab-Klassenset zhlen mehrals 1600 Bauelemente mit unter ande-rem Motoren, Sensoren, Schalter, Kabelund Bauanleitungen fr vier Grundmo-delle (in jeweils fnf Modifikationen).Die Anzahl und Beschaffenheit der Bau-teile ermglicht eine Unteilung derKlasse in vier kleine Gruppen.

    Informationen ber das Robolab-Setsind im Internet unterwww.Technik-LPE.comundwww.LEGO.com/dacta/robolaberhltlich.

    A

    B

    C

    Bild 1. Einbindung des OCX-Moduls in Visual Basic 6.0.

  • HOBBY&SPIEL

    495/2000 Elektor

    Mindstorms im InternetZu LEGO Mindstorms gibt es natrlich nicht nur die offiziellen Internet-Pages, sondern auch eine Vielzahl von privaten Homepages, vondenen wir einige kurz kommentieren wollen.

    http://www.lugnet.comLUGNET LEGO User Group NETwork, eine inoffizelle, von LEGO unabhngige Newsgroup im Internet (sehr umfangreich und informa-tiv!!)

    http://graphics.stanford.edu/~kekoa/rcx/index.htmlAlle Interna des RCX sind auf dieser Seite zu finden. Kekoa Proudfoot hat den RCX vollstndig zerlegt, Fotos aller Innereien angefertigtund beschrieben. Er hat die Firmware aus dem RCX ausgelesen und mit Hilfe zahlreicher Mitstreiter analysiert. Das Dokument bietet eineBeschreibung der Hardware, des seriellen Protokolls und aller Opcodes sowie einer Reihe von ntzlichen Tools. Damit ist es gelungen,alle verfgbaren internen Befehle zu erfahren, um sie in eigener Software verwenden zu knnen. LEGO hatte beim Erscheinen des RCXkeinerlei Informationen herausgegeben (sehr lohnend!!).

    http://www.enteract.com/~dbaum/lego/Daves LEGO Site. Dave Baum ist Buchautor von Definitive Guide to LEGO Mindstorms (inzwischen auch auf deutsch erschienen).Dave hat die Programmiersprache NQC (Not Quite C) entwickelt, mit der man in einer C hnlichen Sprachsyntax Programme fr LEGOMindstorms schreiben kann.

    http://www.cs.uu.nl/people/markov/lego/rcxcc/(RCX Command Center) RcxCC, das RCX Command Center, ist eine Zusatzsoftware fr Windows 95/98/NT, die von Mark Overmarsam Department of Computer Science der Utrecht University in den Niederlanden entwickelt worden ist. Die Beschreibung zu RcxCC istenglisch, aber inzwischen auch auf deutsch vorhanden. Zustzlich gibt es umfangreiche Anleitungen zu LEGO-Robotern.

    ftp://ftp.eecs.umich.edu/people/johannb/pos96rep.pdfSensoren, nicht nur fr LEGO Roboter.

    http://www.plazaearth.com/usr/gasperi/lego.htmSelbstgebaute LEGO-Sensoren: Michael Gasperi liefert auf seiner Internetseite zahlreiche Bauanleitungen und Hilfestellungen dazu.

    http://www.oreilly.com/catalog/lmstorms/(Unofficial Guide to LEGO Mindstorms Robots) Jonathan Knudsen hat ebenfalls ein Buch geschrieben, The Unofficial Guide to LEGOMindstorms Robots. Auf dieser Seite gibt es Zusatzinformationen zum Buch, Fehlerkorrekturen und eine Linkliste.

    http://www.cce.fht-esslingen.de/cce-german/deutsch/Sponsoren/Diplomarbeiten/JoergKE/index.htm(CCE Computer Clubhouse Esslingen) Das CCE - Computer Clubhouse Esslingen - hat vom MIT die Mglichkeit erhalten, eigene Versu-che mit den ansonsten nicht ffentlichen Crickets zu machen. In einer Diplomarbeit beschreibt der Autor, wie man Erweiterungen bauenkann.

    http://www.bvandam.netBert van Dam beschreibt dieEntwicklung und Programmierung intelligenter LEGO Robotern mit Visual Basic.

    Mikrocontroller

    http://home.t-online.de/home/b.kainka/Kainka: Elektronik- und Mikrocontroller-Buchautor (unter anderem bei Elektor) und Entwickler von Computer-Interfaces zum Messen-Steuern-Regeln.

    http://www.modul-bus.de/Modul-Bus: Interfaces und Sensoren fr Computer.

    http://www.ulrich-mueller.de/index.htmFischertechnik Computing. Keine LEGO Roboter, aber fr den deutschen Markt sicherlich interessant ist die Seite von Ulrich Mller zurProgrammierung von Fischertechnik-Robotern. Hierum ist es in den letzten Jahren ziemlich still geworden, aber es gibt sie noch. In man-chen Gebieten haben sie sogar mehr zu bieten, als das LEGO kann, z.B. mit dem Pneumatik-Programm und den Industriemodellen.

    http://www.microchip.com/10/lit/picmicroMicrochip PIC16CXX programmierbare Bausteine fr Roboter und andere Messaufgaben.

    Bitte beachten Sie, dass vor allem private Links oftmals spontan brechen. Wir knnen deshalb nicht fr die Richtigkeit aller hier angegebener Internet-Adressen garantieren.

  • whlt man im Fenster Neues Projekt das Pro-jekt Standard.EXE, klickt auf ffnen undselektiert im Men Projekt die Option Kom-ponenten. Im nun geffneten Fenster markiertman LEGO PBRICKControl, OLE ControlModule und gibt sein OK (Bild 1). Ist dieAnmeldung korrekt verlaufen, erscheint inder Toolbox neben den Standard-Komponen-ten von VB auch ein rotes Lego-Logo.Das OCX-Modul ist jetzt an Form1 gekoppelt.Nun mssen nur noch einige Eigenschafteneingestellt werden (Objektnamen, COM-Schnittstelle und so weiter), bis man dieersten Programmzeilen erstellen kann. Legoempfiehlt, das Objekt im kleinen FensterEigenschaften auf der rechten BildschirmseitePbrickCtrl zu taufen, da alle Beispielpro-gramme von Lego diesen Namen verwenden.Im zweiten Schritt, um VB auf die Program-mierung des RCX-Roboters vorzubereiten, ff-net man wiederum das Projekt-Men, whltunter Modul hinzufgen das Blatt Vorhandenund selektiert die Datei RCXdata.bas, die sichim