Assignment 2: Bristlebot

Whereas the previous assignment focused on programming logic into virtual robo-ducks, this one focuses on the mechanical side of robotics by building mindless bodies. Enter the bristlebot, a simple little machine consisting of a toothbrush head whose bristles comprise the bot’s “feet,” and a small vibrating motor as found in a cell phone. It is powered by a coin battery, and held together with tape. Additional weights are added to balance and give directionality to the somewhat random movement of the bot.

Students first attempted to design for stability. These bots were then let loose inside a small arena to dance and spin.

Students then reconfigured their bots for speed, and raced them on the bristlebot speedway.


Assignment 1: Blockly Games

Blockly is a graphical programming language based on Scratch, similar to the mBlocks programming language we will be using to program our mBot robots.

Assignment 1: Complete the Blockly Games series of programming challenges at

When you have completed the “Pond” module, post a video of your victorious battle along with the code (blockly and/or javascript). Describe your strategy – what techniques did you use, and how were they effective in countering the techniques of the enemy ducks?


Get the Syllabus here.

Introduction to Robotics

A two-week intensive course on programming, design thinking, and robotics


In Introduction to Robotics, you will construct artificial bodies and instill them with rudimentary senses and decision making capabilities. In doing so, you will develop a familiarity with procedural and object-oriented programming, programmable microprocessors, and mechanical/electrical engineering, as well as the mental rigour required to better understand and internalize the way in which computers “think.” You will be exposed to media exploring the ethics, philosophy, and theory of artificial intelligence and cognition, and compile a portfolio and active media stream reflecting your insights and accomplishments.


Media: Where am I?, The Songs of Eden, I, Robot, Pygmalian, Mechanical Turk, Do Androids Dream of Electric Sheep?

Programming Languages: Blockly/Scratch/mBlock, Javascript, Arduino

Textbook: A Gentle Introduction to Robotics, Getting Started with mBot 

Materials: mBot, assorted electronics


Week 1: Mindless Bodies, Disembodied Minds

In which we isolate the processors and actuators that form a robotic system, and explore them in turn, and create a vaguely lifelike artificial form.


Day 1: Intro, Discussion, Set up online community, BristleBot

Day 2: Blockly II. Spinner Design I

Day 3: What is Intelligence? Blockly III. mBot I. Intro to AI.

Day 4: What is the Self? Sensors. mBot II: hearing, singing

Day 5: What is Life? Conway’s Life, State Machines. mBot III: expression


Week 2: Mediocre Bots

In which we combine sensors, processors, and actuators to create robots that are pretty OK at doing something.


Day 6: Why Robots? Robots and Design.  mBot IV: line following

Day 7: mBot V: obstacle avoidance

Day 8: mBot VI: mazeBot

Day 9: mBot VII: spinnerBot, sumoBot

Day 10: ‘Aluminum Man’ competition, commencement.



1 Day Project: BristleBot

This is a simple robot made out of a battery and motor glued to a toothbrush head. It’s an introduction to electrical and mechanical engineering that provides perspective on what constitutes a body, trains a critical eye on the repurposing of materials, and instills a sense of how little is required to create a feeling of empathy with artificial life forms.

TAs can facilitate by overseeing the deconstruction of toothbrushes, soldering/taping of electrical components, and helping students avoid gluing themselves to others.

Ambitious students can experiment with aesthetic additions to increase the BristleBot’s charisma, pruning of bristles to change its mobility, or create additional BristleBots to add to the menagerie.

The activity will conclude with a BristleBot race, an exercise in futile mayhem.


Multi-day Project: mBot

This robot will serve as students’ introduction to mobile bots with sensors and onboard processors. They will use off the shelf electronics to create a robot body, equip it with light sensors, and program a microprocessor to drive the motors based on sensor input. The result is a bot that can roll around, seeking or avoiding light sources, following lines, and solving mazes.



Blog at

Up ↑