Beginner's choice of BOE propeller or ActivityBot Kit
Domanik
Posts: 233
I have a 12 year old grandson that is highly motivated to build a robot. My background is in SW and HW design and I'm good with tools and I really enjoy teaching. My goal is not so much to build a robot as it is to teach him C in an IDE, hand tools, some electronics (scope, DMM, soldering, TTL logic, ) and how to use SW to control sensors and motors. This project will take about a year or longer. I plan to start with an old WinXP P4 with no bells or whistles or internet, install the IDE and hook up a Propeller BOE via USB and start driving LEDs or audio or relays or MOSFETs. Eventually the relay/MOSFET will be used to control a DC motor or maybe go to a stepper motor or some other actuator.
Eventually he'll have experienced all the building blocks extensively enough to bolt together the final result.
At this point my question is which computer board is best to start with such that it has the most features and is easily compatible with all or most of the Parallax peripherals. I don't want to get part way through and realize I made the wrong choice. Definitely want to tinker with the XBee, most sensors, directional controls, and maybe transplant the board or some of the parts to a larger custom robot.
The ActivityBot seems to be based on a propeller activity board and might be a bit restrictive on features.
Any insights or critique of my approach will be greatly appreciated.
Thanks, Dom...
Eventually he'll have experienced all the building blocks extensively enough to bolt together the final result.
At this point my question is which computer board is best to start with such that it has the most features and is easily compatible with all or most of the Parallax peripherals. I don't want to get part way through and realize I made the wrong choice. Definitely want to tinker with the XBee, most sensors, directional controls, and maybe transplant the board or some of the parts to a larger custom robot.
The ActivityBot seems to be based on a propeller activity board and might be a bit restrictive on features.
Any insights or critique of my approach will be greatly appreciated.
Thanks, Dom...
Comments
Either board handles these directly. The Prop BOE has a few extra features, such as a video connector, but otherwise they have similar features. You will do well with either.
Personally, I'd get the ActivityBot with the Activity Board. As you note you plan on doing this over a year or more, and I can guarantee you by that time you'll want another board for experimenting with. You can pick up a Prop BOE then if you want. Both boards will see use.
You should be aware that there is a kneejerk reaction by some here to propose a Propeller for everything that comes along. Do not let them spin you off into something the kid will get bored with not being able to get a handle on. I would think that starting with _basics_ of hardware and programming would leave the Prop out of the picture.
Your 12 year old might enjoy the results of not having to program the thing but having such complicated programming done for you removes the student from the learning experience.
I would recommend using a BS2 Board of Education part number 28850. The Boe-Bot kit is an excellent way to get started with the basics. I would recommend also going through the book Robotics with the Boe-Bot (part #28125. I would suggest holding off on the communications until the operation of the Bot is mastered and then consider using RF transceivers (pn-27982).
You will need to load the PBasic compiler onto your computer to be able to program the BS2 module.
I would advise explaining what you want to do to someone in sales. If they recommend a Propeller then go check out Arduino as another source of learning tools and kits.
Tim
He has a specific question. The difference between a PropBOE and an Activity board. He seems to know what he wants. He wants to teach C, and you can't do that on a Basic Stamp.
Wish I had a Grandpa like you when I was young!
I agree with Gordon on this. Both are loaded with features that can be explored.
That's what I did for my 13 year old son. He took to it much better and faster than I ever did. Kids take to it faster than old fogies like me
BTW, Gordon (and many others in these Forums) have written tons of code and created a bunch of tutorials on the Propeller and how to apply it.
Send me an email with your mailing address and I'll give you one of his books on Propeller applications :thumb:
-MattG
Matt, If you're referring to the Kickstarts book, do keep in mind that's Spin only. No Prop C at that point.
For Dom and anyone else: all you have to do is go here:
http://learn.parallax.com/activitybot
to see what Parallax has cooked up in regards to supporting the Activity Bot under Prop C. As these tutorials were written by the same person who authored the BS2 BOE Bot text, you can well imagine that it's just as good and insightful as any previous learning guide published by Parallax. In fact, I think it's better in many ways; for one thing, it's a "living document" that's constantly being improved upon.
Far from being a "black box" that doesn't teach core principles, the examples and library tools provided -- many also written by Andy -- are open and heavily commented. In fact there are far more comments than code! You do not need to understand this code to begin learning, so your grandson can enjoy the success of a working project right out of the box, then move to a deeper understanding as he continues his study. This is how it works, and should be.
I taught a high school course in robotics last year using C on the ActivityBot. My students made extensive use of the mostly excellent Simple library but, as a consequence, did not learn much C, nor did they get intimate enough with the hardware to really understand what the C library functions were doing for them. But that was okay for a one-hour-per-week seminar. The objective was to keep them interested while providing fun projects for them to complete.
This year thiings have gotten more serious. I'm teaching another robotics class 2.5 hours/week, and I'm teaching Spin instead of C. Spin is much "closer to the metal" than C, because the hardware interaction is built into the language primitives. This time my students are going to learn to control a servo, for example, by generating timed pulses, rather than by calling a library function; and they're going to debug their programs using an oscilloscope. I believe that they will learn a lot more in the process, and all without having to stuggle with C's syntactic gingerbread. I can't begin to count the precious classtime wasted last year helping my students chase down missing semicolons or missing or extraneous braces. It really got in the way of pedagogical progress.
So, Dom, don't be afraid to teach your grandson Spin. As with my students, the skills he acquires will transfer to other languages that he will encounter as he grows older. Algorithmic thinking is universal, after all. And as he encounters those other languages, I'm sure that he will reflect fondly on his experience with you learning Spin at age 12!
-Phil
There is much food for thought here. I think that Spin would be a better choice than C for a youngling simply because it demonstrates the cause and affect more readily. I'm also leaning towards getting the ActivityBot and learning it thoroughly beforehand. And then adding sensors modules, etc. Once the "Hello World" happens and LED flashes the rest should fall into place. I'll have a better idea of what board to settle on after that (thanks Gordon).
Years ago I used Tiny Basic in the Z8 and it was dog slow, it was an interpreter. Wrote an assembler, rewrote subroutine modules into assembly and the speed up was X1,000 faster. The main loop remained Basic though.
Do these boards have something similar going on???? When code is written in Spin, or PBasic is it much slower than the C equivalent (I would hope C is close to ASM speeds)? I'm thinking that even with 8 processors the responses will slow down as more sensors are added (monitored). If you're doing real time monitoring of a 3-axis accelerometer the part has to be queried using a serial protocol and probably some kind of update timer.
BTW Phil I read your response and found many nuggets. I'm entertaining the thought of adding some of his buddies to this project.
Has anyone ever made a model - clone of the Mars rover Curiosity? I'm thinking that would be an awesome end game.
I thank each and everyone of you for your help.
All for now,
Dom...
Spin is compiled to bytecodes (i.e. instructions for a virtual machine). The bytecodes, which reside in hub RAM, are interpreted by a cog-resident PASM program. As such, Spin is slower than most (if not all) of the C execution models available for the Propeller. That said, however, for learning robotics, it's plenty fast. If my students' projects become compute-bound, I can always aid them by writing PASM helper routines.
BTW, back in the 1980s I, too, used the Z8671 Z8 BASIC chip. There are two things that made it dog-slow (in addition to running on a 7 MHz processor): 1) BASIC code was interpreted directly from the ASCII source text: no pre-compiled bytecodes; and 2) the interpreter itself was interpreted! The Z8671's limited ROM space made the latter necessary. I could not believe it at first when I saw the source code for the chip's ROM.
-Phil