Robotics/Electronics Class - How Would You Do It?
MainerDood asks: "I have been teaching programming and networking at the high school and collegiate levels for several years, and now I am branching out into electronics and robotics for my high school students. I am keen on Linux and Open Source solutions where feasible, and would like to avoid using pre-packaged robotics/electronic 'kits' (ie: Lego Mindstorm). I have a minimal budget, like to tinker and have access to tons of old PCs... I would like to use them in these projects and buy the 'parts' where needed. I am envisioning an order of breadboards, diodes, resistors, etc. but not sure from where I should order, what a good basic startup setup should contain and resources I should refer too. I have found a bunch of links online and various resources, but I am curious to know how you would go about this... seasoned veterans and electronics/robotics enthusiasts - I am all ears!"
As much fun as this might be, this is up there with 400 level college courses, students really need a good electronics backround to comprehend most of the stuff you should be teaching them. There is something to be said for giving students a well rounded education in high school (literature, math, composition, history) and leaving this sort of thing for college.
The submitter says he has a bunch of links, but this is for the rest of you :)
American Science & Surplus has a ton of cheap electronic components for sale. No breadboards, but they do sell LEDs, some resistors, motors, etc. They even have a whole "Robot Parts" selection, with items such as Windshield Wiper motors, etc. They also have a great (and entertaining) paper catalog, and their inventory changes very often. Lasers, high quality optics, weather balloons-- all sorts of fun, geeky stuff.
I haven't built any robots myself, but I have been ordering random bits and pieces for various projects for more then 5 years.
"Can of worms? The can is open... the worms are everywhere."
I strongly disagree with the parent post. Learning about electronics and robotics early allows students to become interested before having to decide what they want to take in University/College and it inspires them to finish the necessary high school courses needed to enter Engineering. I would say though that unless the poster is a EE himself and an expert in the parts that he's using it may be more effective to go with the $100 packaged boards first otherwise you run into problems when students decide to branch out on their own.
Lego Mindstorm kits are a good way to go, since they require very little to set up, and the graphical programming language is easy to use; there are plenty more advances programming interfaces(nqc, pbforth, legos, and lejos) for the next level student.
o mpetitions.shtml/).
Another good option is to enter some of the various robotic competitions (http://www.rec.ri.cmu.edu/education/Robotics%20C
Take a look at Physical Computing. It's sub-titled "Sensing and Controlling the Physical World with Computers" and features instructions and projects for basic work wiht sensors and simple chips like the PIC and BX-24. (Full disclosure: The authors are colleagues of mine at the Interactive Telecommunications Program at NYU.)
You may want to look into theFIRST robotics competition. It is a tele-robotics competion for high school students held annually. This would give you something to teach towards. There may be FIRST-specific curriculums out there already, also.
Other than that, I wouldn't try to be too ambitous. Teach basic DC/AC circuits, maybe the basics of transistors, and program some PICs or similar in BASIC.
Is it weird in here, or is it just me?
2) To get the materials you need for your class, go to the nearest homeless guy and ask him for his electronics parts.
3) Try to find the last guy in town who is still in the "electronics repair" "business" and ask him for parts. His sunken eyes in his emaciated cheekbones will light up with the prospect of some food, maybe some money.
A hint that might help, as I don't know everything...
Google for "floppy drive robots" or similar ideas.
Base idea: build a robot using mostly or only the parts from a 3 1/2" floppy drive... If you have computers to spare, then be liberal and allow other parts and see what they come up with...
On Arrakis: early worm gets the bird. Magister mundi sum!
Several of my professors have been teaching robotics classes to students for years. Before I explain their opinions, I should inform you that they are Computer Science professors, and their slant is toward programming robots.
Basically, their theory is that building robots is difficult work, and most of the students wound up spending more time cutting, welding and soldiering than programming. The Lego mindstorms kit (with a firmware hack so we can use Not Quite C) proved very useful for programming the lego robots to do various things. There's still plenty of room to learn about various mechanical and electrical systems with mindstorms, but you don't have to worry about dorking around with soldiering, which is a pretty risky business with the hot iron, nasty fumes and toxic chemicals. I've seen more than a few mindstorms hacks onto their electrical systems to add stuff. The one problem is that they're probably pretty expensive, even with a qualified academic discount.
I Browse at +4 Flamebait
Open Source Sysadmin
Sounds like a good course... I wish I had something like that when i was in highschool
1) Embedded programming models
2) Funky I/O devices
So which one do you want to focus on - from your post, I am guessing it is the later. So what you want is a brain dead easy programming model - then build the I/O devices (ie. Sensors, motor controls, all the fun things to manipulate the physical world) to fit into the programming model.
The alternative is to get a canned hardware model (ie. Mindstorm) and then present interesting project in having the hardware manipulate the real world.
Leave it to VERY seasoned profesionals to manipulate both of these environments at the same time, and even then - there are hardware people and there are software people... and they tend not to mix
I have mod points and I am not afraid to use them
Coming from many years in programming I've recently been learning about hardware. Being of a lazy disposition I needed to quickly and cheaply build up a large stock of components. Nothing I hate more than not having a part on hand.
I picked up a breadboard locally and that was the last item I bought retail. Everything else came off ebay at ridiculous prices. The problem for me was usually I ended up with too many items.
The best thing about the cost is that I'm not afraid to break things. That burning smell doesn't mean I've blown $10 more like 10c.
For robotics you can go with the latest pic/stamp + prgrammer. But think simple, Z80 + EEPROM + SRAM gives you the same sort of thing at a much reduced price. For instance I picked up 100+ Z80 chips for less than $10.
Decide which controller you're going to use, I'd suggest Z80/6502 etc for cost reasons, but the low end pics are very reasonable as well. Once you have that decided, there are numerous emulators etc available for Linux for each controller. Cheap serial burner can be built for pennies, make that the first class. Kids hate theory.
Build the course around the controller and only delve into theory briefly. Show how to build a drive controller, light/ir/sound detector etc etc. Make one class cover a topic. Give weblinks so the interested kids can follow up in there own time.
Yes, everyone should reinvent the wheel. I hope that you wrote your own kernel, OS, compilers and browser to post that comment.
Check out Zach's Cool Stuff. You might even be able to contact him for ideas. He is doing very similar stuff. Rather than building from a kit he chooses raw materials so people get hands on experience with fabrication.
~~~~~~~
"You are not remembered for doing what is expected of you." - Atul Chitnis
Begin by showing what has happened to the size of MCU's, eg,
by showing your students the subject presentation
(it's like a PowerPoint show with its own audio)
Systems of interest include:
PICaxe-based educational robot (from UK?)
If programming in Assembler, try CoreChart:
http://www.eLabtronics.com/CoreChartFR.htm
(from Australia)
http://www.servomagazine.com/ - mainly robotics
and their sister (parent?) magazine:
http://www.nutsvolts.com/ - mainly electronics but covers robotic stuff quite often.
These magazines also have Lego Mindstorms articles in them quite often.
Server has advertising for several companies carrying various kits. In my opinion the kits would be the way to go...even if you can only purchase a few and run you class in groups. As one poster mentioned, the problem with building from the ground up is that you spend most of your time building the hardware and very little of your time programming and running.
Once you have the class going with kits then add some simple "build from scratch" projects like BEAM robotics. Even with these various PIC or ATOM kits will come in handy.
Disclaimer: I am not associated with the Servo or Nuts&Volts but I am a long time satified customer (Servo: since its first issue two years ago or so; Nuts&Volts: several years since when another electronics magazine died and switched the remainder of my subscription to N&V).
Merlin.
Take a look at the Handyboard line of projects. My college actually uses one of them as the basis for a class called car in a box. The one we use is a little price - about $100 for the whole kit, but that includes the PC board, components, servos for wheels, and the M68HC11 processor. Its a decent kit, and is a good intro to embedded systems as well: http://www.handyboard.com/
MicroChip's MPLAB (IDE w/ ass'r, simulator, etc.)
(there's a link to it on their site's front page)
Programmer's Editor for PICace (it's got a tech ref built-in):
http://www.rev-ed.co.uk/picaxe/progedit.htm
RealTerm (a SourceForge project)
I actually brought my VIC-20 to college in the early 90s for electronics courses. While the rest of the class was using PCs for hardware projects, I did them all on the VIC. Top reason : the BASIC is so funky and primitive that you can poke memory and run ML from it. Reason #2, the video output works on CGA monitors...
One of the projects back then was with an 8 bit DAC for generating waveforms. While the rest of the class was using a seperate calculator to generate 256 hex values for a sine wave, I wrote a few lines in BASIC to poke memory with sine values and a 10 byte or so ML routine to write to the DAC. I finished so fast that I went on to make a DAC to LM317 power supply with a BASIC program asking for a voltage, calculating the 8 bit word and writing it, while everyone else was still halfway through their dumb sine table.
Of course, the C64s and VICs out there might not be too reliable anymore, getting them to work would demand the skills you are trying to teach in the first place.
Mostly random stuff.
I've already gotten my Vex Robotics starter kit from Radio Shack, and it's pretty impressive. This is a commercialized version of Kaman's FIRST competition kits. In fact, FIRST is now using the Vex kits.
What makes the Vex kits nice is the real microcontrollers and impressive transmitter. Very nice packaging of all of the robotic stuff. Unlike Lego Mindstorms, these use real screws and nuts and can be used as a foundation for real robotic projects.
While the starter kit is $300 (it gives you everything to make robots except batteries), I believe there's an educational discount of some sort. You can also buy the individual components at Radio Shack, so you can piece together whatever you need. I stopped buying components at Radio Shack years ago, but I have a feeling I'll be spending a lot of money on sensors and motors there.
Design, implement and then taken down Dr. Charles Forbin's Colossus.
For about $70.00, a student can assemble a YAAARC JanBot, which is a small mobile robot with touch sensors and simple vision sensors (for line following), from raw components (breadboard, wires, PIC, motors, and sensors) without any power tools (soldering irons). (OK, you may end up using a glue gun for one or two parts).
We did this as a group, and high school students actively participated.
Also, one of our members is developing a mobile robotics kit using the AVR Butterfly, which has a similar components cost, but has an LCD and LED screen. (See our web site).
The world will not get better through technology. We must seek to be better people.
Soldering irons, solder, breadboards, servo motors, different lengths and gauges of wire, cable, transistors, operational amplifiers, timer chips, ARM processors, wheels, access to a machine shop, car/boat batteries, capacitors, inductors, resistors, steel or solid plastics, and so on.
Robots are uninteresting until you reach a few levels of complexity higher than what could be done in a high school.
After all, I am strangely colored.
Rather than try to have them make robots that move around and/or have any sort of autonomy, challenge their concepts of what a "robot" is and what it does.
In the strictest sense, a material handling system in a warehouse is a robot. Ditto for many assembly lines (or at least portions thereof), automatic sprinkler systems, traffic lights with vehicle sensors, and so on.
Urge them to come up with creative but practical "robots," not R2D2 or C3P0 clones.
My dos centavos.
Ignorance is curable, stupid is forever.
They run on sunlight. If you expect to do anything for your students besides instill unrealistic economic expectations in them, don't build multi-purpose robots. Unless the energy situation improves, their generation will never see such things in actual use.
Build a tracking system for solar panels. It's close enough to a robot, but it might actually come in handy. Use the opportunity to compare the amount of power used to the amount generated. I'm assuming these are students with a basic understanding of electricity?
"I assumed blithely that there were no elves out there in the darkness"
I had a robotics class in high school last year and it was rather fun. We used http://handyboard.com/ Handyboards for the brains of most of the robots we made. They aren't like mindstorms in that a bit of work is still required to use different servers and motors with it. The handyboards are programmed with IC which is Interactive C. IC is somewhat open source and has a linux version so we used it. The only downside is that they are rather pricy at $200 a unit. Some other robots we made were simple touch sensor robots using breadboards and servos(Servo motors are nice you should get lots of them as they can be used for just about everything!). This project came from a book called 'Mobile Robotics'. For another project we got an old floppy and cdrom drive and had to make a robot to win a race with them. Everything had to come from the floppy and cdrom drive all the wire/motors/switchs we only got tools to work with. This project was the most fun and likely the easiest for the teacher to manage as he didn't need to provide parts. You could do variations or even make the project more complex. One thing that helped a lot is that we started out working on simple projects and at a slow pace so that everyone in the class could participate regardless of having had an electronics course before. We often built robots in stages where we would make a robot with a touch sensor first and then go back and add light sensors and so on.
For someone who can't spell, you're pretty cocky.
Microcontrollers are an excellent bridge between code and hardware - you can code in C but your I/O is actually CMOS digital I/O which can then be plugged up to whatever digital devices or auxiliary chips you want.
The best subject of my undergraduate degree involved writing a pre-emptive task scheduler simultaneously running LCD interfacing code, kermit file transfer protocol, an LED chaser program selecting patterns based on input pins, and a USB client chip.
After that subject, a friend and I fuel injected a moke using an ATMEL microcontroller as the ECU - loads of fun.
I recommend the Maxim range of microcontrollers for simplicity - they have an inbuilt eeprom for code, run most instructions in 1 clock cycle, and can be directly programmed by sending HEX files over a PC serial port through their own in-built boot ROM (complete with menus and debugging support).
It all depends on where you want to focus. There's a lot of detail around assembling electronics that has nothing to do with robotic path planning, sensor fusion, motion control, etc. You might want to consider robot simulators if you want to teach more of the software and algorithms. However, sometimes you need a hefty math/CS background before you can really understand the algorithm.
I think there are several great kits on the market for various levels of experience. Try starting with a cheap kit with a limited controller and upgrading it. Sumobot comes to mind at $75. Add a more capable controller to it, like Acroname's brainstem. Lego Mindstorm + Handyboard is used for many graduate level projects at leading universities. You run into a lot of problems starting from scratch, not the least of which is bending aluminum or molding plastic for a base.
Leave the gun, take the cannoli -- Clemenza, The Godfather
"In addition, if you limit this sort of education to the 400-level college courses, you exclude the majority of students who will never go to college, enroll in a EE program, or make it the 400-level college courses."
WoW! Who knew a robot could be so powerful?
Motorola HC12 (sub $30)
Any generic RC car (sub $30)
A few bucks on diodes/breadboards/etc, and you can build a decent line follower, maze racer, GPS guided bot
Be forewarned - if you're doing this, I don't think there's any kind of high level compiler for the HC12, so you'll be writing in assembly (but for simple robots, I don't think it'll matter)
check out the new Vex robotics line from RadioShack
http://www.vexrobotics.com/
And if you haven't seen the OAP project, it's worth a look too.
http://oap.sourceforge.net/
I teach at a local JC and I would like to recommend that you consider PLC's (Programmable Logic Controllers) as an easy to use / easy to understand technology as an introduction to control systems. This has proven to be a good stepping stone approach to higher level robotic / embedded controls.
Who said you could touch my PCs?
sorry, couldn't resist
Video Production Support
Two words... Robot Wars!!!
The friendliest digital photography forums on the net!
You need to weigh in the resources and the knowledge the students will gain from the class.
High school students should get more fundamental and basic knowledge in class like math and physics, and access to technology tinkering in their spare time such as off-school activities. It wouldn't be too bad to introduce robotics as 1/3 of a lecture to show students what's out there, if it doesn't compete with time for teaching other fundamentals.
But having a class in robotics, without firm ground in basics, could become a waste. You could use existing pre-packaged robots to introduce fundamentals in control, logic and programming among other things, but tinkering in robotics without fundamentals is like having a class to play Lego blocks without knowledge of physics and architecture. All they learn is to play child-scale Lego blocks.