Making Robots Accessible to Everyone
From Open Source Bridge attendee wiki 2010
I’ve been looking for an affordable, flexible, easy to learn robotics platform for years that I could use to teach kids the basics of programming/electronics/robotics. Last Fall, I finally found it.
Speakers: Brett Nelson, Jim Larson
Return to this session's details
Contributed notes
Ideal robot platform
- easy to build
- easy to program
- play more, work less
- graphic environment
- mutli-platform
- novice and expert friendly
- inexpensive
- free as in speech (ideally)
Babuinobot
- plastic signboard chassis
- foam wheels
- arduino board
various inputs, controls, speaker, etc
Building the babuinobot
- clear instructions online
- lots of material/component substitutions
- circuit board not limited to robot applications
Classroom sequence
- 1-2 classes basic motor and signal control
- 1 class loop and repeat
- 2 classes if/if-else flow control + switch
- 3 classes using sensors for input
- 1 class using and/or for testing
- 1 class using procedures
- play and experiment
Teaching children programming ideas from MIT research stuff (similar to Scratch and Alice)
Possible solutions
- lego mindstorms
- expensive
- complex
- programmer/engineer focus
- audino
- open source hardware/software
- C/C++ programming environment
- good libraries
- no good if you don't want to program (apparently)
- instructables
Programmable brick
- fun, easy robotics for children
- logo, turtle
- logo blocks and programmable bricks
- MIT joined with Lego and the rest is history (==> scratch)
- microcontroller and interface to motors etc
- very simple programming (code on computer, create byte code)
Graphic blocks, direct link to logo blocks expandable open source links to brick over serial connection
Blocos
- low cost electronics
- developed by Brazilian govt
- terrific concept, slow adoption
http://groups.google.com/group/br-gogo http://sourceforge.net/projects/br-gogo/
Options
- Babino
- Blocos
- Babinobot
Robotics should be fun, inexpensive, usable in education. So, open source software is a natural fit.
What parts of a robotics system can be open source?
- "Brick" (controller)
- Hardware
- Controls / sensors
- Educational materials
Goal for the "Babuino" robotics platform
- Easy for middle-school kids to build and use
- Graphical programming
- Multiplatform
- Interesting at a range of skill levels
- Open source, of course
Prototype: Babuinobot
- Artuino ATmega 328
- H-bridge chip
- Modded servo motors (to act like DC motors)
- Homebrewed car chassis / wheels
- Other peripherals: speakers, etc.
- Easy to make substitutions / improvisations
Teaching
- Train 'em in basic motors, sensors, flow control
- Turn 'em loose with the toys!
Why not...?
- Mindstorms? Not for beginners any more; expensive
- Arduino? Not much in the kit; uses C
Programming
- Firmware for "brick" contains bytecode interpreter (wow!)
- Grapical environment called Blocos
- Written in Python
- Originally created for an older, similar project called the GoGo Board
- Generates bytecodes
- Alternative: generate bytecodes using LOGO
yet more notes
Goal: cheap robot platform that is easy to use kids to use.
Graphical programming language where shapes represent types. Blocks with certain shapes representing Boolean expressions, numbers, or actions only fit into certain slots. Arity is represented by the number of slots in a block. Based on Logo.
Programming environment produces byte code which is then transferred to a programmable brick. You can use the graphical environment or textual Logo code to program.
Programming environment is called Blocos. Babuino is a byte code interpreter and standard for pin-mapping that allows Blocos code to run on an Arduino.
Supports Arduinos with AVR168 or larger (like 328P).