TU Wien • Java Enterprise-Entwickler – Intervista AG Deutschland (bis September 2012) • IT-Trainer und Consultant – Begabtenakademie NÖ, Enterprise Training Center, FH Technikum Wien, javatraining.at, Talentehaus MINT, TU Wien, WIFI NÖ, … • Fachautor – iX, Entwickler Magazin, Java Magazin, JavaSPEKTRUM, … • Konferenzsprecher – IBM DeveloperWorks, JAX, W-JAX, … • Gründer und Obmann – Institut zur Förderung des IT-Nachwuchses (http://www.facebook.com/ifit.org)
stark motivierende Wirkung • direktes Feedback an Lernende Programmieren und Testen macht Spaß • Hardware und Software im direkten Zusammenspiel erlebbar • Bedeutung von Sensoren für Maschinen demonstrierbar • Robotik als interdisziplinare Herausforderung • skalierbares Medium o Stellgrößen - Umgebungen und Sprachen - Aufgaben o Heterogenität - Alter (ab 5 Jahre) - Begabung - Gender - Lerngeschwindigkeit
Lego • basiert auf Idee von Logo-Erfinder Seymour Papert • EV3 seit 2013 erhältlich, davor NXT 2.0 • Home Edition bei ca. € 320, Education Edition bei ca. € 430 • Hardware o programmierbarer EV3-Stein - ARM9-Prozessor, 64 MB RAM und 16 MB Flashspeicher - USB 2.0-Anschluss (z. B. für WiFi-Dongle) - Micro-SD-Kartenleser - 4 Motoren- und 4 Sensorenanschlüsse o Servomotoren o Farb-, Gyro-, Infrarot- inkl. Fernsteuerung, Tast- und Ultraschallsensoren o unzählige Lego-Technic-Elemente • Software o Linux als Betriebssystem o EV3 Software für ikonische Programmierung o leJOS EV3 für textuelle Programmierung mit Eclipse / Java
Lego Mindstorms EV3 • Open Source, kostenlos erhältlich und nutzbar • Plug-In ermöglicht nahtlose Integration in Eclipse o neues "LeJOS EV3 Project" erstellen fügt entsprechende Bibliotheken zu Projekt hinzu o Hauptklasse als "LeJOS EV3 Program" ausführen lädt Programm auf EV3-Stein und startet es (auch Debugging möglich) • Installation o Java SE 7 (wichtig: 32-Bit-Version!) o Eclipse Kepler (wichtig: 32-Bit-Version!) o leJOS EV3 o leJOS EV3 Eclipse Plugin o EV3 SD Card Creator erzeugt bootbare SD-Karte mit Java SE Embedded 7-Laufzeitumgebung o RNDIS/Ethernet Gadget (nur für USB-Kommunikation erforderlich) • Programmierung o entsprechende Klassen kapseln Hardwarebauteile o Kommunikation via USB, WiFi und Bluetooth möglich
motor.forward(); // ... do something! motor.stop(); RegulatedMotor motor = new EV3MediumRegulatedMotor(MotorPort.A); motor.forward(); // ... do something! motor.stop(); Motor.A.forward(); // ... do something! Motor.A.stop();
RegulatedMotor motorC = new EV3LargeRegulatedMotor(MotorPort.C); DifferentialPilot pilot = new DifferentialPilot(3.5, 18.0, motorB, motorC); pilot.forward(); // ... do something! pilot.stop();
SampleProvider distance = sensor.getMode("Distance"); float[] sample = new float[distance.sampleSize()]; distance.fetchSample(sample, 0); // sample[0] contains distance ... do something! EV3UltrasonicSensor sensor = new EV3UltrasonicSensor(SensorPort.S1); float[] sample = new float[1]; sensor.getDistanceMode().fetchSample(sample, 0); // sample[0] contains distance ... do something! • Weitere Sensorklassen o EV3ColorSensor o EV3IRSensor o EV3TouchSensor o …
SampleProvider average = new MeanFilter(sensor.getDistanceMode(), 5); float[] sample = new float[average.sampleSize()]; average.fetchSample(sample, 0); // sample[0] contains average of last 5 distances ... do something! • Weitere Filterklassen o LowPassFilter o MaximumFilter o MedianFilter o MinimumFilter o …