How it started
Last winter, I promised my eight-year-old son to build a little balancing robot that he could program. One thing led to another, and this robot turned out to be a much more elaborate project than originally envisioned. “It’s not urgent,” he says. If all the bosses of the world were so patient!
Lil’Bot is programmed just like an Arduino Uno, and takes standard Arduino shields. About half of the Arduino memory and three quarters of the processing power are available after the balancing code and all the rest have taken their share.
Here are some of the main robot features:
- Arduino Uno compatible, programmable through the USB
- Can be programmed using Linux, OS X, and Windows computers.
- Front, right and left obstacle detection using IR LEDs
- Edge detection using an IR LED
- A buzzer plays musical tones and astromech droid sounds.
- Wheel encoders for precise odometry-based control
- Open-source hardware and software
Powering the robot
The robot takes 7 AA alkaline batteries. Its power-usage profile is also a very good fit for NiMH rechargeable batteries. For exploring alternative energy sources, it can also be powered by Open Fuel Cell's new Arduino shield.
This is an optional shield that allows Lil’Bot to express its emotions through an emoticon-like LED display. “Allowed” expressions are afraid, amused, angry, blissful, cool, crying, disappointed, embarrassed, happy, impatient, naughty, neutral, nonplussed, outraged, proud, resigned, sad, sarcastic, shocked, smiling, and very sad. Give your robot that freedom!
Lil’Blocks is a block-based programming language based on Fred Lin's BlocklyDuino, a dialect of Neil Fraser's Blockly for Arduino. Blockly is the Hour of Code's choice language to introduce children to programming. For the younger child, block programming is little more than assembling Lego bricks, yet allows a firm grasp of basic programming concepts.
Lil’Blocks translates all the block code to Arduino C, ready to compile and load into Lil’Bot from the Arduino environment. Please note that while younger children can easily learn block programming, some aspects of Lil’Bot require patient adult assistance to bring out all it has to offer.
If this project goes well, I envision a few more shields for Lil’Bot. Below is a list I am considering for the near future, although I am not promising that these things will ever be made:
- An IR remote-control shield
- A larger repertoire of astromech droid sounds
- A speech-recognition shield based on Arjo Chakravarty's work
- Speech output to recapture Radio Shack's SPO256-AL2's heyday
Hardware manufacturing timetable
Lil’Bot has been designed with ease of manufacturing in mind. There is no novel or unproven fabrication method. Accordingly, the manufacturing plan is as follows. I allowed one month of slack to buffer mishaps, such as assembly errors, part shortages, etc.
- Late June, order parts and printed-circuit boards.
- Second week of July, parts and PCBs arrive. Begin reflow solder.
- Late July, reflow solder complete. Begin through-hole solder and mechanical assembly.
- Early August, assembly and electrical test complete
- If all goes well, all assembled electronics could be shipped as early as mid- to late August.
Risks and challenges
Most of the risk is how well the balancing can be controlled. This project is predicated on using inexpensive toy motors. Stepper motors would drive the cost through the roof. How well the motors can be controlled for balancing is being discovered continuously. As you can see in the video, the robot can move around, spin, stand upright, and balance while wiggling back and forth somewhat. While this is an extremely encouraging sign, it is not yet time to declare victory. This is one difficult problem, which has kept many an engineer up late at night. I get help from John Sokol (http://videotechnology.blogspot.com), a fellow engineer experienced with balancing robots. Updates will be posted as progress is made.Learn about accountability on Kickstarter
- (32 days)