Lejos LEGO-Mindstorms-Roboter in Java programmieren



Ähnliche Dokumente
Sensoren und Antriebe

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

Gforth EC auf dem NXT Brick

Lego Roboter mit NXT-G programmieren. Hochschule Mannheim

Programmierung der Lego Mindstorms Roboter

Programmierung mit NQC: Kommunikation zwischen zwei RCX

[ Experiment- und Datenprotokollierung. mit der EV3 Software]

Installation OMNIKEY 3121 USB

Java für Embedded Systems

Was unterscheidet Microcontroller von einem PC ( Laptop ) oder einem Handy

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

XY-Plotter. Hardware. Software µp. Software PC. von Thomas Wagner

Benutzung der LS-Miniscanner

Steuerung DLS ECKLITE SC und SC xx-enc

Mikrocontroller Grundlagen. Markus Koch April 2011

Befehlssatz zum High Speed Interface-88-USB (HSI-88-USB) (ab Firmware 0.71) (Version 1.2)

ready by drexel und weiss Technische Information

Stepperfocuser 2.0 mit Bootloader

Computergruppe Heimerdingen Basiskurs. Karlheinz Wanja & Richard Zeitler

TISIS - Industrie 4.0. Ereignis, Ort, Datum

Roberta - Tutorial Unterschiede EV3/NXT. Fraunhofer IAIS. v0.1_ TL, BJ

Erreichen eines Ziels (ohne Kamera) Teil II: Realisation

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

Linux Embedded. Heimo Schön/August Hörandl 11/2004 Seite 1/17

DVB-T DA2 Hybrid Seite 1 von 10

Hoteltresor Panther. Bedienungsanleitung für Hoteltresor Panther. Inhalt

Erfahrungen mit Hartz IV- Empfängern

Programmieren I. Kapitel 15. Ein und Ausgabe

Deutsches Rotes Kreuz. Kopfschmerztagebuch von:

Pelletofen mit WLAN Modul für einfaches Heizen von zuhause aus oder von unterwegs!

DUO LADEGERÄT JDC0010 HANDLEIDING

Datentypen: Enum, Array, Struct, Union

Xesar. Die vielfältige Sicherheitslösung

Atmel AVR für Dummies

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

OpenSunTracker Softwareinstallation

Datenaustausch mit dem ClassPad II. CASIO Educational Projects

Bedienungshinweise für das Smartboard. Basisfunktionen

Testen mit JUnit. Motivation

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

Programmieren für Ingenieure Sommer Ein Rechner. Rechner sind überall. Gerät, das mittels programmierbarer Rechenvorschriften Daten verarbeitet.

Gezielt über Folien hinweg springen

II. Daten sichern und wiederherstellen 1. Daten sichern

Beispiel(unten ist der Spielfeldrand):

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup Conrad Kobsch

.Universelles Demonstrationssystem für Grundlagen der Digitaltechnik /

1. Übung zu "Numerik partieller Differentialgleichungen"

Tutorium Rechnerorganisation

Praktikum. Thomas Röfer. Lego Mindstorms Bauen mit Lego RCX Motoren und Sensoren Programmiersprachen Einschränkungen der Lego-Firmware Not Quite C

Zählen von Objekten einer bestimmten Klasse

Programmierung von Smart Cards mit Hilfe von Java

Webalizer HOWTO. Stand:

FAQ Verwendung. 1. Wie kann ich eine Verbindung zu meinem virtuellen SeeZam-Tresor herstellen?

AGENDA BUNDESWEHR IN FÜHRUNG AKTIV. ATTRAKTIV. ANDERS.

Modalitäten der LSF-Belegung für die Lehrveranstaltungen

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala

ealarm, Kabelloses mobiles Alarmsystem Starterset

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Citrix Receiver Server-Umstieg

Installation DigiCard Samsung TV-Geräte

SMS/ MMS Multimedia Center

Die Java Stream API. Funktionale Programmierung mit der Stream API des JDK 1.8. Prof. Dr. Nikolaus Wulff

Pocket KVM Switches USB + Audio

Speichernetze (Storage Area Networks, SANs)

Inhaltsverzeichnis. Getting Started with TRM416/816 System Beispiel: TRM816 Open Frame mit RFID an COM2

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Automatisierung ( Fernsteuerung ) von Excel unter Microsoft Windows Tilman Küpper (tilman.kuepper@hm.edu)

Woraus besteht ein Bild? (c) Winfried Heinkele

Der Fachkräftemangel ist kein Mythos. Konjunkturell und strukturell ist (und bleibt) er ein Problem.

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Programmierparadigmen. Programmierparadigmen. Imperatives vs. objektorientiertes Programmieren. Programmierparadigmen. Agenda für heute, 4.

Messtechnik zum I2C-Bus

Kriminologische Fragen und Antworten

AGENDA BUNDESWEHR IN FÜHRUNG AKTIV. ATTRAKTIV. ANDERS.

Systembeschreibung CU-EMBEDDED-PC (Version 1.02)

Temperaturmessung und Bereitstellung der Werte über einen Webserver

Empfehlung für den Neubau/die Sanierung eines Einfamilienhauses

Neuheiten Handhaben

Persona-SVS e-sync GUI/Client Installation

Basisanforderungen: EVA-Prinzips. Erweiterte Anforderungen: wirtschaftlichen und privaten Alltag.

Berührungslose Datenerfassung. easyident-usb Stickreader. Art. Nr. FS-0012

Objektorientierte Programmierung

Mikrocomputertechnik

Die richtigen Partner finden, Ressourcen finden und zusammenführen

Elektroniktresor Serie Tiger. Bedienungsanleitung für Elektronikschloss WDS. Inhalt

Einführung in die Java- Programmierung

Praktikum: Einstieg: Arbeitsplatz, JCreator

Installationsanleitung für Update SC-Line

High Performance Datenerfassung Tests am Beispiel WEGA

Vorkurs Informatik WiSe 15/16

M a i l C r e d i t. \\Burt\user\Soutschek\FP\Technik\Frankiermaschinen\00_PC Software\MailCredit\Anleitung MailCredit Installation.

AbaWeb Treuhand. Hüsser Gmür + Partner AG 30. Oktober 2008

Konfiguration der tiptel Yeastar MyPBX IP-Telefonanlagen mit Peoplefone Business SIP Trunk

Melde- und Veröffentlichungsplattform Portal (MVP Portal) Hochladen einer XML-Datei

Inhaltsverzeichnis. Vorbemerkung. Verwendung der QGround Control-Software. Allgemeine Informationen. Kompatibilität

Programmieren I. Prinzipieller Ablauf. Eigenschaften von JAVA. Source-Code Javac Bytecode. Java Virtual Machine (Java, Browser, Appletviewer)

Das in diesem Werk enthaltene Programm-Material ist mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden.

Transkript:

Lejos LEGO-Mindstorms-Roboter in Java programmieren Jürgen Stuber juergen@jstuber.net ELUG Themenabend Lejos 2004-08-03 p. 1

Die Mindstorms-Großfamilie NQC Lejos BrickOS pbforth. Scout NQC NQC NQC Tasten RCX Spybot Cybermaster Micro- Scout VLL Code- Pilot VLL Barcodes ELUG Themenabend Lejos 2004-08-03 p. 2

Der RCX 3 Sensoreingänge (10 Bit A/D-Wandler) 3 Motorausgänge A/B/C (9V, PWM) Infrarotschnittstelle (2400 Bit/s, kein IrDA) 4-stelliges LCD 4 Tasten Stromversorgung über 6 AA-Batterien (Schulversion mit Trafoanschluß) 8 Bit Hitachi H8/300 Mikrokontroller 16MHz 64KB Adressraum: 16KB ROM, 32KB RAM ELUG Themenabend Lejos 2004-08-03 p. 3

Infrarot-Kommunikation mit dem PC Serieller Tower USB Tower Beide laufen unter Linux ELUG Themenabend Lejos 2004-08-03 p. 4

Freie Programmierumgebungen NQC (Not Quite C) setzt auf die original LEGO-Firmware auf auch für Bausteine mit fester Firmware Ähnlichkeit mit C bzgl. Syntax Lejos Java-Umgebung gleich mehr pbforth Forth (Postfix, Stacksprache), interaktiv BrickOS Betriebssystem für echte C-Programme und viele weniger bekannte... ELUG Themenabend Lejos 2004-08-03 p. 5

Fast unbegrenzte Möglichkeiten Rover, Greifarm, Tisch abräumen, Seilbahn Tresor, Plotter Balancieren Datenerfassung (Temperatur) LEGO-Eisenbahn analog oder digital steuern Wettkämpfe: Sammeln, Dragster-Rennen, Linie folgen, Sumo,... ELUG Themenabend Lejos 2004-08-03 p. 6

Ein RCX-Wimmelfilm The Cooperative Cybernetic Crate Contraption by Seattle Mindstorms and Robotic Techies (S.M.A.R.T.) ELUG Themenabend Lejos 2004-08-03 p. 7

Lejos Java-Umgebung für den RCX: Compiler (dünner Wrapper um javac ) Linker Virtuelle Maschine für den RCX (ca 16kB) Spezielle Bibliothek für die RCX-Hardware Schneller und mächtiger als NQC Einfacher als BrickOS ELUG Themenabend Lejos 2004-08-03 p. 8

Programmieren 1. Programm schreiben Emacs, vi, Eclipse,... 2. Programm übersetzen lejosc Programm.java 3. Programm linken lejoslink Programm.java -o Programm.bin 4. Programm auf den RCX laden lejosdl Programm.bin 5. Program starten Am RCX oder per Fernbedienung ELUG Themenabend Lejos 2004-08-03 p. 9

MotorDemo ELUG Themenabend Lejos 2004-08-03 p. 10

SensorDemo ELUG Themenabend Lejos 2004-08-03 p. 11

Sensortypen SENSOR_TYPE_RAW SENSOR_TYPE_TOUCH SENSOR_TYPE_TEMP SENSOR_TYPE_LIGHT SENSOR_TYPE_ROT Rohwerte, kein bestimmter Typ Berührungssensor Temperatursensor Lichtsensor Rotationssensor ELUG Themenabend Lejos 2004-08-03 p. 12

Sensorbetriebsarten SENSOR_MODE_RAW Rohwerte, 0 1023 SENSOR_MODE_BOOL 0 oder 1 SENSOR_MODE_EDGE Zählt Flanken SENSOR_MODE_PULSE Zählt steigende Flanken SENSOR_MODE_PCT Prozentwerte, 0 100 SENSOR_MODE_DEGC Temperatur in C SENSOR_MODE_DEGF Temperatur in F SENSOR_MODE_ANGLE Winkel in 1/16 Umdrehungen ELUG Themenabend Lejos 2004-08-03 p. 13

LejWay ELUG Themenabend Lejos 2004-08-03 p. 14

View ELUG Themenabend Lejos 2004-08-03 p. 15

Sprachumfang Java als Sprache: fast komplett Die wichtigsten Einschränkungen keine Garbage Collection keine Arithmetik für double, long kein switch Arrays nur bis 511 Elemente keine Klassenobjekte ELUG Themenabend Lejos 2004-08-03 p. 16

Bibliotheken Java String, StringBuffer, Math, Thread, System, Random,... IO-Streams für die Kommunikation (alles notwendigerweise mehr oder weniger eingeschränkt) RCX Motoren, Sensoren, Kommunikation, LCD, Tasten, Timer, Töne, Batteriespannung Callbacks bei Ereignissen (Sensoren, Timer, Knöpfe, IR) Robotik Behavior (Verhalten), Navigation ELUG Themenabend Lejos 2004-08-03 p. 17

Kommunikation Standardprotokoll (F7): einzelnes Bytes an alle Interaktion mit NQC LNP: Adressierung an einzelne RCX Sicherung gegen Übertragungsfehler Empfänger für Fernbedienung... und weitere Protokolle... Darauf aufbauend Datenströme gemäß JAVA API Mini-Webserver auf RCX mit Proxy auf PC ELUG Themenabend Lejos 2004-08-03 p. 18

Verhalten Behavior API komplexes Verhalten aus einfachen Einzelaktionen Prioritäten: wichtige Teilverhalten unterdrücken unwichtige jedes Teilverhalten ist ein Objekt b.takecontrol() : Will das Verhalten aktiv werden? b.action() : das Verhalten ausführen b.suppress() : das Verhalten unterdrücken ELUG Themenabend Lejos 2004-08-03 p. 19

BehaviorDemo ELUG Themenabend Lejos 2004-08-03 p. 20

Sumo ELUG Themenabend Lejos 2004-08-03 p. 21

Ende http://www.lejos.org http://www.jstuber.net ELUG Themenabend Lejos 2004-08-03 p. 22