Download Interfacing the LEGO RCX to the outside world

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Human-Computer Interaction Institute wikipedia , lookup

Transcript
Interfacing the LEGO
RCX to the outside
world
John M. Larkin
Whitworth College
Spokane, WA
Outline
Electronics at Whitworth
 Motivation for the Robotics Project
 Description of the Robotics Project
 Conclusions

Who takes electronics at
Whitworth?


Electronics is a required course for physics
majors (both B.A. and B.S.) and computer
science majors (only B.S.)
It is offered each spring
 typically
taken by physics majors as sophomores
 typically taken by CS majors as juniors or seniors

Average enrollment is 16-20 students
Structure of the electronics course

Content
 emphasis
on analog electronics for scientific
instrumentation applications
 brief introduction to digital electronics

Format
 two
55-minute lectures per week
 two 3-hour labs per week
Structure of the electronics labs

16 sessions working on guided labs
 DC
and AC circuits
 RC and RLC circuits
 diodes and DC power supplies
 transistors (simple amplifier and follower)
 op-amps
 light detection (photodiodes & phototransistors)
 sound filtering with CD player source


10 sessions working on robotics project
Presentation of project to campus-wide
audience
Motivation for the robotics project

We want students to
 collaborate
with a student from a different
department
 leave the course enthusiastic about
electronics
 integrate and apply knowledge from
throughout the course
 leave the course confident that they can
design analog circuits
Project Description

General project requirements
 construct
2 custom transducers that can
interface with the LEGO RCX
 use those transducers, the RCX, plus other
materials to do something interesting

Students are required to submit a project
proposal before project work days begin
 feedback
on appropriate level of difficulty
 lead time to order specialized components
What is the RCX?
Developed in a collaboration between
MIT’s Media Lab and LEGO
 RCX details

 16
MHz CPU
 32 kB RAM
 3 motor outputs
 3 sensor inputs
 IR port
Overview of sensor inputs
LEGO packages RCX with basic light and
touch sensors as part of kit for schools
 Sensor inputs have a 10 bit A/D converter
 Sensor modes (software selected)

 passive
 active
Passive sensor mode


Measures resistance with internal 10 kW resistor
as part of voltage divider
A/D conversion passes a value to software given
by
1024 R
value 
R  10 kΩ
Active sensor mode

RCX alternates “input” between two states
when put into active mode
 For
3 ms, sensor “input” is actually an output
providing approximately 8 V to power the
sensor circuit
 For 0.1 ms, an A/D converter captures the
voltage generated by the sensor
0V→0
 5 V → 1023

Useful active sensor interface
circuit
Overview of outputs



RCX outputs designed to power DC motors
Output provides 8 V
Pulse width modulation varies motor speed
 Eight



“power levels” can be software selected
power level 7 = continuous output
power level 6 = on for 7 ms, off for 1 ms
power level 0 = on for 1 ms, off for 7 ms
Programming the RCX with leJOS


leJOS is a version of Java for the RCX
Why leJOS?
 many
of our CS majors have previously used the
RCX and leJOS in an artificial intelligence class
 freeware so students can install on their own
computers for development outside of the lab
 more traditional programming language than the
LEGO graphical programming system
Sample motor control code
import josx.platform.rcx.*;
public class GoAndTurn
{
public static void main (String[] aArg)
throws Exception
{
Motor.A.setPower(2);
Motor.C.setPower(2);
Motor.A.forward();
Motor.C.forward();
Thread.sleep(3000);
Motor.C.backward();
Thread.sleep(1000);
Motor.C.stop();
Motor.A.stop();
}
}
Sample sensor interface code
import josx.platform.rcx.*;
public class ReadAndRespond
{
public static void main (String[] aArg)
throws Exception
{
Sensor.S1.setTypeAndMode(SENSOR_TYPE_RAW, SENSOR_MODE_RAW);
Sensor.S1.activate();
int x = Sensor.S1.readRawValue();
if (x > 512) Sound.twoBeeps();
}
}
Example: a loudest-sound-seeking
robot
What are the challenges?
First portion of course must be fast paced
so students have background for project
 Must help 8-10 teams working on different
projects
 Transition from highly structured labs to
open-ended project is too abrupt for some
students

What are the rewards?




Students enjoy the project and are proud of their
work
Students discover that they really learned
something
Faculty discover that the students really learned
something
Presentation day is good PR for physics on
campus
Resources

Web sites
 leJOS

homepage
http://lejos.sourceforge.net
 Enthusiastic
hobbyists
http://www.plazaearth.com/usr/gasperi/lego.htm
 http://www.philohome.com/

Resources

Books
 Programming
LEGO Mindstorms with Java by
Giulio Ferrari, et al
 Core LEGO Mindstorms Programming by
Brian Bagnall
 LEGO Mindstorms Interfacing by Don Wilcher