Subject:
|
November 2004 SMART Meeting Notes
|
Newsgroups:
|
lugnet.org.us.smart
|
Date:
|
Mon, 22 Nov 2004 08:40:11 GMT
|
Viewed:
|
2318 times
|
| |
| |
We had a small but wonderful meeting last weekend! Gus showed a wind-up clock
that he's been working on. He gave an interesting presentation on how several
escapement mechanisms work, and also some useful pointers on how to reduce
friction in gear trains.
Mark, Gus and I described our latest Crate Contraption that was set up at
NWBrickCon last month, and how some of the robots worked. I showed some video I
took.
For our mini-challenge, a couple of people brought not quite complete block
stacking robots, and Mark brought one that worked great! That was a tough
challenge. It would be fun to try again sometime.
For out next mini-challenge we voted for Light Target -- launch a LEGO
projectile at a 60-watt light bulb (behind a plexiglass sheet), which is five
feet away, and at an arbitrary height (zero to three feet from the floor). You
have three tries, and between tries you may provide a single button press to
tell your robot how it did. The idea is to have the robot learn how to do a
better job each time.
Finally I gave a talk on sharing variables between programs on an RCX. The
slides can be found here:
http://www.brickshelf.com/gallery/David/SMART/Presentations/03-nov-2004-nqc_intro.ppt
I've include the source code for most of the programs, including the
battery-level display and light-sensor calibration program, below.
Meeting pictures are here:
http://www.brickshelf.com/cgi-bin/gallery.cgi?f=106008
--
David Schilling
===================
== Battery Level ==
===================
// Display Battery Level (Program #4)
task main()
{
SetUserDisplay( BatteryLevel(), 3 );
StopAllTasks(); // leaves the display turned on
}
===================
== common code.h ==
===================
// A SAMPLE include file for sharing variables
// Sensor definitions
#define BUMPER SENSOR_1
#define EDGE_DETECTOR SENSOR_2
#define PROGRESS_METER SENSOR_3
// Motor definitions
#define LEFT_WHEEL OUT_A
#define RIGHT_WHEEL OUT_B
#define RAM OUT_C
#define BOTH_WHEELS (LEFT_WHEEL+RIGHT_WHEEL)
// SHARED Global variables
int LightLow;
int LightHigh;
int LightMid;
// ... etc.
// call Init() from each program's main task
// to set up sensors and motors
void Init( void )
{
SetSensor( BUMPER, SENSOR_TOUCH );
SetSensorType( EDGE_DETECTOR, SENSOR_TYPE_LIGHT );
SetSensorMode( EDGE_DETECTOR, SENSOR_MODE_RAW );
SetSensor( PROGRESS_METER, SENSOR_ROTATION );
ClearSensor( PROGRESS_METER );
SetGlobalDirection( RIGHT_WHEEL, OUT_REV );
SetPower( BOTH_WHEELS, OUT_FULL );
Float( BOTH_WHEELS );
Off( RAM );
}
==============================
== light sensor calibration ==
==============================
// Sumo Robot Light Sensor Calibration program #5
#include "common code.h"
task main()
{
int tmp;
Init();
LightLow = EDGE_DETECTOR;
LightHigh = LightLow;
Float( BOTH_WHEELS );
ClearTimer(0);
while( FastTimer(0) < 1000 ) // for 10 seconds
{
tmp = EDGE_DETECTOR;
if( tmp < LightLow )
LightLow = tmp;
else if( tmp > LightHigh )
LightHigh = tmp;
}
LightMid = (LightLow + LightHigh) / 2;
}
|
|
Message has 1 Reply: | | Re: November 2004 SMART Meeting Notes
|
| Thanks David for organizing this meeting. It looks like I missed a lot of cool robots. Good job Mark on a excellent mini-challenge robot. From the photos I can see that there were several other cool robots that I wish I had more time to look at. (...) (20 years ago, 22-Nov-04, to lugnet.org.us.smart)
|
2 Messages in This Thread:
- Entire Thread on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
|
|
|
|