lego mindstorms robotic invention system barb ericson [email protected] georgia institute of...
TRANSCRIPT
LEGO Mindstorms Robotic Invention System
Barb Ericson
Georgia Institute of Technology
What is in it?
• 717 LEGO elements– One RCX programmable brick– 2 motors– 2 push sensors– 1 light sensor– Infrared transmitter for transferring the programs
• A Constructopedia book with plans for 3 robots and many variations on them
• CD with video on getting started and visual programming environment (RCX code)– 9 robots total
What else do you need?
• 6 AA batteries
• Computer– Windows 98/Me/XP– Pentium II 233MHz – 32 MB RAM– 115 MB Disk Space– USB Port (for the infrared transmitter)
What else might you want?
• Plastic storage containers– For storing built robots– And for sorting parts better
• Ultimate Accessory Kit - $50– 45 LEGO pieces including
• 1 remote control• 1 touch sensor• 1 rotation sensor• 1 lamp• 1 Constructopedia
More Sensors
• http://www.legoeducationstore.com/catalog.cfm?dest=itempg&itemid=920&secid=9&linkon=subsection&linkid=45 Angle (Rotation)Light
Touch
TouchTemp
DCP Sensors
• http://www.legoeducationstore.com/catalog.cfm?dest=itempg&itemid=922&secid=9&linkon=subsection&linkid=45
What else might you want?
• Vision Command - $100– A video camera
• 30 frames per second• 352 by 288 color • 145 LEGO elements• USB connection• Built-in microphone• Vision recognition software
• Or get just the camera and USB cable for $39.00 at LEGO Education Store
What does it cost?
• About $200• Buy at
– Toys R Us– Shop.lego.com– Amazon.com– Wallmart.com– http://legomindstorms2.0.hobbytron.net/robotl
egosub.html?source=1359– Ebay.com
What can you do with it?
• Use it with RCX code or Robolab (visual programming)– To teach about commands, programs, iteration,
conditionals, and variables– Without worrying about syntax
• Use it with leJOS (Java)– To teach about commands, programs, iteration,
conditionals, and variables– Arrays, strings, recursion, listeners, static– Using Java syntax
Create a Program using RCX code
• Big Blocks are shown for a particular robot
• Click and drag them to make a program– They will snap into
place
• You can save the program using the File menu– This will name your
program
Download your Program
• Turn on the RCX (OnOff button) • Plug the IR Tower into your computer• Put the RCX near the IR Tower• Click the “Download” button
– The default is to download to slot 5– You can change this by clicking on “Settings”
• When the download is finished the RCX will play a short tune– It displays dots during the download
Running the Program• Two ways to run
– Click the Run button on the RCX
– Or click the Run button on the screen
• Stopping the program– Click the Run button
again on the RCX– Or click the Stop
button on the screen
Modify a Block
• Click on the edit tab at the right edge of the block
• You can change the duration of commands– Use the arrow key to
use preset values– Or type a value in the
textbox
Robot Challenge
• Make your robot go forward for 2 seconds
• Make your robot turn right for 1.5 seconds
• Make your robot go backwards for 3 seconds
• Make your robot spin left for 1.5 seconds
• Save your program using the File menu
Getting More Information
• Click on Help • Click on What’s this?• The cursor will show
What’s this? with an arrow
• Click on something you want more information about– Like a block– Or a menu item
Robot Challenge
• Use the help to find out the difference between turn left and spin left
• Use the help to figure out what a Dance block will do
• Use the edit tab to try out the Dance block– Make sure your robot is on and near the IR
tower
Using the Sensors
• Click a Touch Sensor on the left and position it on the right – Pick the input port attached
to your sensor– Click next
• Pick when to respond– On press, release, or click
(press and release)– Click next
• Click “Try It” to try it or “Done”
Handling a Sensor Event
• Add command blocks after the if sensor event block– These actions will
happen when that sensor event happens
– Like when the touch sensor is pressed
– Or when the light sensor’s value is > or < some amount
Robot Challenge
• Make your robot go forward for 10 seconds
• If your robot’s touch sensor is pressed backup for 1 second and spin right
• Set up items to block your robot and try it
Adding Iteration
• Use Repeat Blocks to add iteration (looping)
• You can change the number of iterations
• You can repeat a group of commands
Conditionals
• Add a test– Do one thing if
the test is true• Like turn left
– Do something else if the test is false
• Like turn right
Variables
• You can create new variables– freq
• And use them in other blocks– Add to them– Subtract from
them– Multiply them– Divide them
Create New Blocks
• You can create new blocks using My Blocks– Name the block– Add other blocks
to it– You can collapse
the interior commands
• Click on upper left square
Small Blocks
• Finer control of robot
• Big Blocks are made up of small block commands
• Click on the top left box to open a big block– And see the
internal small blocks
Where to get help?
• http://mindstorms.lego.com\– Main web site
• Books – at LEGO Education Store– Building Robots with LEGO Mindstorms– Creative Projects with LEGO Mindstorms– LEGO Mindstorms: RIS 2 Projects
Project Ideas
• Anders Project ideas (scanner, fan)– http://www.norgesgade14.dk/legoSider/mindstorm_en.html
• Andy’s Page (chess playing robot)– http://www.artilect.co.uk/lego/default.asp?page=Chess
• Buick Music Study (Play MIDI or WAV files)– http://www.aga.it/%7Eguy/lego/bms.html
• Joe’s Nagata’s Mindstorms Gallery (vehicles)– http://homepage3.nifty.com/mindstorms/– http://members.at.infoseek.co.jp/Milano/studio1.html (movies)
• Mario Ferrari’s Web Pages (piano player, skier, etc)– http://www.marioferrari.org/lego_mindstorm.html
Using Java with LEGO Robots
• Install leJOS (the Java Operating System)– Download from
http://lejos.sourceforge.net/faq.html
• Set the system variables
• Plug in the IR Tower to the top USB port
• Download the firmware using a command prompt– lejosfirmdl
Setting System Variables
• Create new System Variables– LEJOS_HOME variable to the directory where leJOS
is installed– RCXTTY=USB
• Add to the PATH variable– The Java SDK bin directory– ;%LEJOS_HOME%\bin
• Add to the CLASSPATH variable– ;%LEJOS_HOME%/lib/classes.jar;%LEJOS_HOME
%/lib/pcrcxcomm.jar
Using leJOS
• Import the classes in leJOS– import josx.platform.rcx.*;
• Compile for Java 1.1 using– lejosjc.bat Class.java
• Link together an executable– lejoslink.bat -o Class.bin Class
• Download the executable to the RCX– lejosdl.bat Class.bin
Motor Class
– 3 objects are available as public static (class) variables
• Motor.A, Motor.B, and Motor.C
– You make the motor go forward, backward, stop (brake), and float to a stop
– When you start a motor forward it will keep going until you tell it to stop or float to a stop.
– Use Thread.sleep(numMilliseconds) to control how long the motor is moving
– Control how fast the motor moves with • setPower(num) with num from 0 to 7 (fastest)
Motor Test
• Make both A and C motors go forward at power 7 for 1 second
• Stop for 1 second
• Have both motors go forward at power 2 for 3 seconds
• Float to a stop
leJOS Resources
• Download from– http://lejos.sourceforge.net/
• Tutorial at – http://lejos.sourceforge.net/tutorial/
• Discussion at – http://sourceforge.net/mailarchive/forum.php?
forum_id=552
• Books– http://lejos.sourceforge.net/books.html