[Newbies] I need an idea. I know you have some. Give.

Clinton Blackmore clinton.blackmore at gmail.com
Sat Mar 9 04:31:29 UTC 2013


Hello Casey.

What a fabulous question.

I believe that the Raspberry Pi opens up the door to help everyone,
especially kids, learn to create things in this (digital) world of ours,
and not to just be a passive consumer, and that they will if they have an
accessible way to do it.  I also believe we are on the cusp of a personal
robotics revolution, much like where the personal computer revolution was
thirty years ago.  Lastly, I believe that the best way to teach children to
code today involved the use of a project written in Squeak, namely Scratch,
and that tomorrow's tools can be even better!

I therefore propose the creation of a web-based graphical programming
environment to allow kids to program robots built with a Raspberry Pi brain.

I think I've touched on the why, but let me get to the piece that I think
is really inspiring.  Learnable
Programming.<http://worrydream.com/LearnableProgramming/>
This is an essay by a fellow about how we can make programming more readily
understood and more powerful; he has a great sense of vision, and he sites
Squeak as being one of the really good environments that we have today.
 [Implementing any sort of Learnable Programming system, whether for
robotics or not, is a laudable goal, and his site is chock-full of
inspiration for other things you might do].

Now, I don't believe that all of the things he suggests -- such as allowing
a person to scrub forward and backward through a simulation -- can be
accomplished directly with robotics.  But there are parts of it that sure
could be, and with a full-on computer as the brain, there is memory to
store the system state [such as sensor readings] at various times and
explore it.

Why, then, do I still believe in programming robots over just programming
computers?  Because it is engaging, and it gives kids a platform upon which
to solve problems that are real instead of trivial.  I must say, being one
who lives a sedentary lifestyle, and having moved to an acreage where the
house is heated by wood-burning stoves, that after I went out (after
referring to youtube for instructions) and split wood for a half hour, that
I was struck by the fact that exercise is so much more enjoyable when you
are accomplishing something, and I believe the same holds true for (school)
exercises; for instance, when math is disembodied and becomes the mere
shuffling of symbols, is it any wonder that kids don't like it, don't
understand why it is important, and don't do it more than they have to, but
when it has a context -- ex. meshing a 40 tooth gear with a 12 tooth gear
lets you increase the torque by a factor of five and decrease the speed by
the same factor (or vice versa), or, ex. here is what a PID controller is
and did you know you are using something called 'calculus' -- then,
suddenly, it is my belief they'll enjoy learning it, understand why they'd
use it, and have their lives enriched because they have developed the
strength to solve classes of problems that occur in real life.  (Take a
look at some of the videos I've
cited<http://robotclub.ab.ca/articles/51/robotics-resources>as
supplementary materials to a presentation I gave, especially this one:
Learning
Science by Doing
Science<http://fnoschese.wordpress.com/2012/05/30/my-tedxnyed-session-learning-science-by-doing-science/>
).

I mentioned that the best tool for teachings kids to program today is, in
my opinion, Scratch.  Scratch 1.4 is written in a forked version of Squeak
2.8.  (There have been efforts to port it to something more modern, like
Scat <https://code.google.com/p/scat/>, but methinks that doing that would
exceed the time constraints of your project).  [Scratch 2, in beta, is
written in Flash].  BYOB/Snap (v3) is an advanced version of Scratch.  (v4
is written in HTML5, but I don't know the specifics).

I learned Squeak so I could hack on Scratch and have developed something
similar to what I'm advocating here --
Enchanting<http://enchanting.robotclub.ab.ca/>.
 It lets kids program LEGO Mindstorms NXT robots.  I've been working on it
in my spare time for 2.5 years or so now.  Even a 10-year old version of
Squeak is such an awesome language to use.

There are several deficiencies, the most notable of which is that changes
do not happen in real time -- kids have to go through a compile and upload
step.  Another thing I've come to realize is it is very hard to
collaborate simultaneously on a project.

Since I've read "Learnable Programming" and LEGO has announced a successor
to the NXT robot set, I've been wondering how I'd make it better.

If I was starting from a clean slate and targetting the Raspberry Pi -- and
this is the project I'm recommending -- I'd strongly consider:

   - create a web application (but don't start from zero!) that allows kids
   to program the Raspberry Pi robot in a Scratch-like manner.
   - make it so multiple users can edit the same code simultaneously (and,
   as a stretch goal, allow one kid to code on a project in French while
   another codes in Japanese, simultaneously)
   - having some method to share or remix other projects would also be
   valuable
   - either run the web server for the web app on the Pi, or in the cloud
   with Pi being one of the clients
   - and make sure the Pi can be programmed wirelessly
   - (it'd also be awesome if there was a way to code in text and have it
   turned into blocks, but that sounds like scope creep).


The environment needs to be live; it needs to let you see what values
sensors are reporting, and change the program while it is running -- it
needs to be a lot like Squeak! -- and, for added awesomeness, implement as
many of the tenets of "Learnable Programming" as possible in the time
allotted.

You may be able to use Seaside or Amber to do this.  I know I'd be itching
to try meteor-js <http://meteor.com/>, but, it is, unfortunately, not
Smalltalk.

It is worth mentioning that Lady Ada has developed a custom OS for the Pi
that allows you to program it from another computer; the Pi runs an
embedded web server (and I think it is running python, but I haven't looked
into it).  [Raspberry Pi
WebIDE<http://www.adafruit.com/blog/category/adafruit-learning-system/webide/>
]

There are several projects to use the Pi for robotics platforms, I believe.
 I haven't looked into them in depth and don't have links handy.  There is
a robotics subforum
<http://www.raspberrypi.org/phpBB3/viewforum.php?f=37>at the Raspberry
Pi site.  I'm mildly interested in having something that
lets you build a chasis out of lego -- take a look at MAKE: Lego and
Arduino Projects <http://shop.oreilly.com/product/0636920024316.do>.  If
you are to pursue a project like this, I'd recommend finding one design or
project and supporting it well, allowing users to specify what sort of
sensors and attachments they have on their robot, and where (and don't try
to be all things to all people!)

There are many projects similar to a Scratch, some in a broswer, others
not.

I believe these ones are open source:

   - eToys <http://www.squeakland.org/> and Physical
eToys<http://tecnodacta.com.ar/gira/projects/physical-etoys/>
   - App Inventor <http://appinventor.mit.edu/>
   - Google Blockly <https://code.google.com/p/blockly/?redir=1>
   - Alice <http://www.alice.org/index.php>
   - Snap <http://snap.berkeley.edu/>
   - Open Blocks <http://education.mit.edu/openblocks>
   - MiniBloq <http://minibloq/>

and that these ones are not:

   - 12Blocks <http://onerobot.org/products/12blocks/>
   - ModKit <http://www.modk.it/>
   - Scratch for Arduino <http://seaside.citilab.eu/scratch/arduino>
   - PicoBlocks <http://www.picocricket.com/download.html> (for use with
   PicoCricket robots)
   - stencyl <http://www.stencyl.com/>

Good heavens.  There is a whole Wikipedia page on Visual Programming
Languages <http://en.wikipedia.org/wiki/Visual_programming_language>.

That's my idea.  Allow kids to learn by doing something "real", making use
of a powerful and affordable brain for robots, and make programming
enjoyable and learnable for all!

Cheers,
Clinton Blackmore



On Thu, Mar 7, 2013 at 11:48 PM, Casey Ransberger
<casey.obrien.r at gmail.com>wrote:

> Hello Squeakers!
>
> My job search is turning up dead ends, hurry up and wait, and unfathomably
> boring prospects.
>
> Screw all that! I want to do something cool.
>
> I'm thinking about doing a KickStarter, but almost all of my ideas are
> either a) stuff no one else wants which only I could possibly think would
> be cool, or b) overly ambitious. The words Andreas used to describe my last
> idea: "a bit grandiose." Gift for understatement at times.
>
> So I'm looking for something which could be completed by one or two geeks
> in six months to a year, which people actually want, to be implemented (at
> least in part) using Squeak, and to be released at the end under the MIT
> license.
>
> I've floored my expenses, so I can make my own labor (relatively, for a
> guy living in Seattle) very cheap. By floored, I mean the room I sleep in
> isn't even tall enough to stand up in -- I do not presently meet the
> definition of a free-range chicken -- and I've disconnected my cellular
> service. I want to be an efficient engine for getting things that matter to
> me and other people done, rather than go on being some tool used to ship
> lucrative enterprise crapware.
>
> So here's the $x question: what do you want me to do? I have a Raspberry
> Pi on order, so bonus points if you can work that in somehow.
>
> The person with the best (realistic) idea will be credited for it.
>
> Inspire me! And thanks for reading all the way down to the bottom of this
> message.
>
> Casey
> _______________________________________________
> Beginners mailing list
> Beginners at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/mailman/listinfo/beginners
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/beginners/attachments/20130308/fce30926/attachment.htm


More information about the Beginners mailing list