2010/Making Robots Accessible to Everyone

From Open Source Bridge Wiki
Jump to: navigation, search

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).