
Teams prepare for autonomous mode in a qualifying round at the Seattle VEX Jump Start tournament.
Wow! What a great Saturday in Seattle. The competition started off, as could be expected, kind of slowly, but quickly some of the traditional top teams began to rise to the top of the qualifying ranks. But the playoffs proved that you can never, ever, take something for granted in robotics as two of the lower ranked alliances upset some genuine powerhouse teams to meet in the finals. A special thanks to Rick Tyler and the team of volunteers that he brought together to put on this fabulous event. 27 VEX teams from across the Pacific Northwest had a great time, learned a lot… and not just about robots… and came away eager to meet again on December 12th at Gladstone Secondary, in Vancouver.
One of the highlights for me was seeing team 1426a, from Lord Tweedsmuir Secondary, in Surrey, captain their alliance all the way to the finals. This was exciting because their teacher, Mr. Lo, was one of the teachers who attended our Robotics workshop (see below) last spring, and the robot his students built was made using the parts from the “Competition Kit” option presented at the workshop.
For a more detailed discussion of the event, and results listings, go to the VEX Forum. I’ve posted some photos to photobucket, too.
Assembly language is cool. Not just because it is the most fundamental level at which one can write a computer program… using the bare hardware instructions of the microcontroller itself… but because it forces the programmer to develop a fundamental understanding of what, exactly, a processor is doing when it is running any program. Teaching assembly teaches fundamental skills such as binary and hexadecimal representations of numbers, the difference between a bit, byte and word, the importance of interrupts and — most importantly — forces a logical, procedural thought process.

Unfortunately there isn’t a lot of material out there to introduce high school students to assembly language, and even less of it is free. So about ten years ago I started writing some handouts for my students, and in 2003 I consolidated them into a roughly 20-hour introduction to PIC assembly language. The key to this was a wonderful little software simulation of the PIC 16c74 microcontroller called “PICBOTS”. (See the post, below, for a download link.) Unfortunately the company that wrote PICBOTS, Innovatus, has long since disappeared… but their freely downloadable code has survived, and when combined with the equally free MPLAB compiler from Microchip (still very much in business) has kept my worksheets reasonably relevant. Some of the references to “the RISC chips from Motorola in Apple computers” are a bit dated, but the fundamentals will be sound for a long time to come.
I’ve posted my handouts… about 40 pages worth… here in .pdf format in the hopes that they will be of use to other teachers looking for a low-cost way to introduce low-level computer fundamentals to their students in an intereactive and engaging manner.
1 Binary Worksheet An introduction to Hexadecimal and Binary
2 DIGITAL LOGIC worksheet How transistors form logic gates, and how logic gates can create useful functions
3 The PIC Microcontroller A brief introduction to the PIC 16f84a Microcontroller
3a The PIC 16f627a Microcontroller Worksheet 3 updated a few years later for the more current 16f627a
4 First MPLAB program Getting started in MPLAB
4c Inside The PIC Microcontroller How compilers create machine code for you… there is no Worksheet 4b
5 Loops and Input Getting into PICBOTS and creating some useful routines — the decfsz command.
6 Shortcuts and Math Cleaning up the code a bit and the subwf command
7 Interrupts I really, really, really like interrupts. An intro to a very powerful tool and a PICBOTS assignment.
8 Pic Control Stepping away from PICBOTS, how do you get a real PIC to do a something real?
9 PIC Inputs How can you get a real PIC to read a real input?
11b The Sony IR Protocol and PIC BASIC I’m too lazy to program an IR reading code in Assembly, so I used PIC Basic from MELABs. If you’ve got the cash, though, PIC BASIC PRO, from the same company is much more complete and definitely worth getting.
Many years ago a company called Innovatus published a neat little program called PICBots. PICBots allowed people to program a virtual robot inside their computer. The virtual robot used a PIC 16c74 chip as its brain, and was able to move, stop, turn left, turn right, scan and shoot. It was a very simple machine in a very simple environment, performing very simple tasks. As such, it was a great way to teach beginners PIC Assembly Language. A link to a demo version of PICBots is here.
The competitions are set:
November 7, 2009: Washington Jump Start Tournament in Redmond Washington (bus trip being planned)
December 12, 2009: BC Season Opener at Gladstone Secondary in Vancouver
January 30, 2010: Vancouver Island VEX Robotics Competition in Courtenay, BC (bus and ferry trip being planned)
February 27, 2010: Washington State VEX Robotics Championship, Seattle Washington (bus being planned)
March 20, 2010: BC VEX Robotics Championship, BCIT, Burnaby
March 27, 2010: TSA VEX Competition, Seattle
also on the weekend of March 25-27 in Seattle is the Microsoft FIRST Robotics Competition at Key Arena. Come on out and see the big bots play!
And that’s just the Pacific Northwest. To register for these events (or others) click here.
Typical bus costs for Vancouver to Seattle, return, are about $50 CDN. The Vancouver Island trip is an overnighter, and a wee bit more…. unless you’re from Vancouver Island of course! Should you happen to do particularly well at these tournaments, you might want to keep April 22 to 24th open for the VEX World Championships in Dallas, Texas.
Want more international competition… check out the tournaments in Australia, Brazil, Hong Kong, Singapore, China… even Ontario! All online at RobotEvents.com
Motor power curves are very important when designing robots. They are more important in competitions such as FRC, where you can choose from different motors, than in VEX, where you only get to use one type of motor, but it is still nice to see some published data on what the little motors can do. The maximum torque specified in the manual is about .75Nm, but looking at the curves published on the VEX Forum by jgraber, the maximum in practice is closer to .5Nm. Of course you won’t see .5Nm on there anywhere as the figures are in English units, but the data is valid regardless. Note the relatively flat power curve… you get roughly the same amount of power from the motor over a range from about 40-80 rpm. Typically DC motors are happier running at high rpm as they have a lower current draw, which means they stay cooler and last longer… so I’d recommend planning to run your VEX motors at about 70rpm and 2.25 inch pounds of torque. (That’s about 0.25 Nm).
Should you ever need a quick unit conversion… say from inch pounds to newton metres, just go to google and ask “2.25 inch pounds in newton metres”. It’s spooky what Google can do!

VEX Motor Curve
Thanks to Akash Rastogi of FIRST Team 11 for linking to this great web site http://www.mentorsearch.us/node/4
Also, of course, thanks to those who’ve put it up and created the content.

- VEX Workshop Participants and Robots
I’ve been asked for information on what we covered during the VEX workshop. Most of what I have presented is summarized in the posts below. As we expected, however, the formal presentations… with the exception of our great guests from BCIT and UBC… were not the crucial aspect of the workshop. The crucial part was giving teachers time to get “hands on” with the VEX system, to do a bit of programming… and to let them play. I have attached the original itinerary with post-workshop observations marked in red. The observations can best be summarized as that we planned too much “formal presentation” time and not enough “hands-on build time”. Teachers aren’t so different from students… we want to experiment and build with this stuff, and then solve problems as we come across them. There needs to be a balance between providing enough “up front” material so that the VEX builder can have fun and design with purpose, but not so much that they never actually get to do that designing and building. We may have also tried to schedule too much in to two and a half days… a lot of autonomous programming got left out… but on the other hand, everyone was having such a great time with our mini-tournament on Friday morning that no one really worried about that. Autonomous in EasyC is easy enough to figure out when the time comes.
It was also very useful to have blog entries… even brief ones… on most topics, as it meant that teachers didn’t have to take notes and we didn’t hand out reams of paper. We were able to cover some topics VERY quickly, as people knew they could go online and, using the links here as a starting point, find pretty much everything they need to know on-line.
In short, our goal was to get teachers to get “hands on” with their very own robot. I think everyone went away satisfied that they had learned enough about VEX that they want to introduce it to their students in the fall, and we are expecting to see 7-9 schools entering new VEX teams in the fall as a direct result of this workshop, and probably several more teams as “word of mouth” spreads from the teachers and students at the “new” schools.
As for “where did all the robots come from”, teachers had the option of signing up for a “Basic Workshop” or a “Full Competition Package” workshop. The latter was much more expensive, but teachers went home with a VEX classroom lab kit, with EASYC… and, for those who signed up early… two bonus motors when they took the full competition package. Teachers will be able to continue their learning using this package over the summer, then use it to introduce VEX to their students in the fall. Teachers taking the basic workshop built a robot using one of the fifteen VEX kits (yes, 15… the wheel collection alone covers a table by itself) belonging to Gladstone Secondary. Unfortunately, they had to take their robot apart and put the parts away at the end of the workshop. Others, who had a VEX kit already, brought their school’s kit along with them, but experimented with some of Gladstone’s parts, like the copious stacks of omniwheels and metres and metres of tank treads that have built up over four or five years of VEX competition.
Finally, a tip of my hat to the workshop participants… it was your energy and enthusiasm that made this workshop such a success, even though we skipped almost half of our scheduled “formal” topics and presentations.

VEX Part Files make 3D Modelling a Breeze, as Corpralchee shows on the VEXForums
3D Parametric Solid modelling packages such as Autodesk Inventor, Solidworks, and Pro-Engineer have really made the computer a much more useful design tool. This is because in many cases you can download not just part specifications, but complete 3D models of parts from vendors before you purchase the part in order to work the part in to your design. We have used this to great benefit with our FRC robots, downloading wheel, gearbox and motor designs for use in designing our drive modules for the 2009 FRC season. Autodesk Inventor allowed us to see a finished image of our drive module before we built it… and then allowed us to take a .dxf file of crucial parts directly in to Mastercam for toolpathing and cutting on our CNC router.
You can get FREE software for your students to use (at home, not in the lab, usually) by going to the Autodesk Student Community
Once the student has Autodesk Inventor downloaded and installed, they can go to the VEX CAD page to download 3d models of VEX parts.
This is a nice little shareware program that allows students to play with different gearing systems, including planetary arrangements.
http://www.tucows.com/preview/346223
We didn’t get into using it at the workshop, but it is worth trying.