Shop OBEX P1 Docs P2 Docs Learn Events
Beginner's choice of BOE propeller or ActivityBot Kit — Parallax Forums

Beginner's choice of BOE propeller or ActivityBot Kit

DomanikDomanik Posts: 233
edited 2014-09-20 18:01 in General Discussion
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...

Comments

  • GordonMcCombGordonMcComb Posts: 3,366
    edited 2014-09-18 20:28
    Domanik wrote: »
    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.

    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.
  • trookstrooks Posts: 228
    edited 2014-09-19 04:46
    Dom,

    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
  • PublisonPublison Posts: 12,366
    edited 2014-09-19 05:41
    @trooks,

    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.
  • Matt GillilandMatt Gilliland Posts: 1,406
    edited 2014-09-19 08:26
    Hi Dom - Welcome to the Forums :thumb:

    Wish I had a Grandpa like you when I was young!
    You will do well with either

    I agree with Gordon on this. Both are loaded with features that can be explored.
    I'd get the ActivityBot with the Activity Board

    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 :tongue:

    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
  • GordonMcCombGordonMcComb Posts: 3,366
    edited 2014-09-19 09:46
    Send me an email with your mailing address and I'll give you one of his books on Propeller applications :thumb:

    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.
  • GenetixGenetix Posts: 1,754
    edited 2014-09-19 17:27
    I agree with Tim about starting with the BS2. The Propeller is great but the Stamp's simplicity makes it great for learning. Additionally, a lot more kits and books are available for the BS2 than for the Propeller. Finally, PBASIC which the BS2 uses resembles Spin which is the Propeller's native language. Most Propeller objects are written in Spin or a combination of Spin and Assembly.
  • NWCCTVNWCCTV Posts: 3,629
    edited 2014-09-19 22:46
    My goal is not so much to build a robot as it is to teach him C in an IDE
    The OP wants to teach C, not PBasic or Spin from what I gather. Also, IMO, it is less costly in the long run to go with a Propeller.
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2014-09-19 23:01
    There's nothing wrong in starting out with Spin to learn robotics. It's simpler than C and, in many ways, simpler than BASIC, since there are multiple processors to keep the plates spinning and the balls in the air without multitasking.

    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
  • DomanikDomanik Posts: 233
    edited 2014-09-20 14:32
    Thanks All,
    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...
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2014-09-20 17:31
    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
  • David BetzDavid Betz Posts: 14,516
    edited 2014-09-20 18:01
    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
    Another advantage of Spin is that you can fit more code into hub memory than you can with any of the C hub-based memory models (LMM and CMM). It also has the slight advantage that its interpreter is in ROM so there is no need to waste 2K of hub memory for an image of the interpreter. If you can tolerate the slower execution speed and you don't mind writing in a language that isn't used anywhere except on the Propeller then Spin might be a good choice.
Sign In or Register to comment.