Presentation on theme: "LeJOS Java for Lego RCX 2-12-2005 CJ Chung Associate Professor of Computer Science Director of Robofest Assistants Maurice Tedder Steven Kryskalla Rick."— Presentation transcript:
LeJOS Java for Lego RCX CJ Chung Associate Professor of Computer Science Director of Robofest Assistants Maurice Tedder Steven Kryskalla Rick Dudley
Agenda 9:00 am - Introduction to LeJos Java Programming using Eclipse 9:15 am – Installation of Java, Eclipse, and LeJos 9:45 am – LeJOS Java Programming Workshop 11:00 am – Mini Challenge 11:45 am - Wrap-up
Why Autonomous Robots?
2 Million Dollar Prize, Miles, within 10 hours
Weaponized robot, also known as SWORDS in Iraq, Jan. 14, 2005 The Pentagon's research arm, the Defense Advanced Research Projects Agency, also recently awarded contracts to aid research of robots that one day could be dropped into combat from airplanes Many of the vehicles being developed will have some autonomy, meaning they'll navigate rough terrain, avoid obstacles and make decisions about certain tasks on their own
Your RJ (Roverbot Jr.) Two motors Left A Right C One light sensor on input port no. 1 One touch sensor on input port no. 2 One brain: H8 microprocessor, 16MHz
Why Java to program the Brain?
Why Java? Write Once, Run Anywhere AP CS A and AB using Java since year Pure OO (Object Oriented) language Standardized Free
Characteristics of Java Simple: automatic memory allocation and garbage collection. # of language Construct is small. Portable Robust (Reliable): exception handling Multithreaded Interpreted Distributed Secure Architecture Neutral Dynamic: You can freely add methods in a class at runtime)
LeJOS for Lego LeJOS [Ley-J-oss] Replacement Firmware for Lego RCX brick – JVM for RCX Size: 16KB around 12 KB for user-programs Download for Free Can be thought of as J2ME (Java 2 Micro Edition) for smaller devices such as pagers, cell phones, and handheld PCs.
LeJos Memory Map User Programs (12 KB) leJos JVM (16 KB) ROM (16 KB) Routines for ROM (4 KB)
Advantages of using Java for Lego instead of NQC (or C++) Pure Object Oriented. Enormous APIs Floating point numbers: vital for navigation Recursion Threads Simple Event Model You can use custom made sensors, easily Powerful networking APIs Web control of your robot Everything is for free However, no Garbage collection yet (?)
Comparing RCX programming languages RCX codeleJosNQC (VB)LegOSpbForth LanguageGraphicalJavaNQCC/C++Forth FW replacement N/AYesNoYes Floating-pointNoYesNo Programmabl e Display NoYesNoYes Trig and adv math NoYesNo InterpretedYes NoYes
How to Install LeJos programming environment Using DOS Start | Control Panel | System | Advanced | Environment Variables Add c:\lejos\bin to the system PATH, if leJos was installed at c:\lejos IDE Eclipse: the best free Java tool resources button
Uploading JVM to RCX using DOS Fast mode: lejosfirmdl –f Slow mode: lejosfirmdl It takes about one minutes After the download, you should see a number on the LCD representing the battery voltage
Compile, Upload, and Run using DOS Compile: lejosc.java Upload: lejos Press the green button Uploading more than one program lejos, Program 0Program 1
Workshop Topics Eclipse programming environment Learning Java Basics with Lego RCX Repetition – while and for Decision – if, if else Methods Variables Sensors IR Packet Communications Mini Challenge: a part of Robofest Challenge, RoboRelay
Robofest 2005 Junior Division (5-9 th ) Senior Division (9 th -12 th ) Exhibition Division 13 regional competitions Top winning teams to World Robofest at LTU on April 23. MPC laptops to the best team for each division
Class Mission 1 Do forever Beep when the light sensor sees the bright light
Class Mission 2 Go forward until the robot detects the edge of the white board. Stop at the edge of the board
Class Mission 3 Go forward while counting N black lines. Stop right after the Nth black line
Mini Challenge (a part of Robofest Game) Start when the lamp under the board is on Follow the black line until it detects the end of the line (edge detection) Turn around Coming back to the home base Stop when the bumper (touch senor) is hit