#Drivers for the RooStick can be found here: http://www.silabs.com/tgwWebApp/public/web_content/products/Microcontrollers/USB/en/mcu_vcp.htm

+

<!--#A bulletin board system has been set up by one of your peers for your benefit. It can be found at: http://pages.pgsit.org/2005/petert/phpBB2-->

+

#The bulletin board system is temporarily out of service...

+

#The code on the [http://gicl.cs.drexel.edu/people/regli/tmp/roomba-module-v5.ppt Roomba Module powerpoint] is more or less outdated.

==Goal==

==Goal==

−

This category is to support students in Freshman Design Lab, Winter 2007.

+

This page and those in his category are to support students in Freshman Design Lab, Winter 2007.

The goal of the "Roomba Module" is to identify and encode a set of behaviors to control a Roomba Robot, enabling it to perform a series of challenges (beyond the typical vacuuming of the floor). In this lab, you will encounter the interdisciplinary realities of the real world. A Roomba robot is a electro-mechanical system, control by software, that senses and acts in the world.

The goal of the "Roomba Module" is to identify and encode a set of behaviors to control a Roomba Robot, enabling it to perform a series of challenges (beyond the typical vacuuming of the floor). In this lab, you will encounter the interdisciplinary realities of the real world. A Roomba robot is a electro-mechanical system, control by software, that senses and acts in the world.

In this set of assignments, you are the creator of its behavior. You must deal with the limitations and inaccuracies of the Roomba platform and its sensors by designing software that can effectively use these flawed senses to successfully carry out a set of tasks.

In this set of assignments, you are the creator of its behavior. You must deal with the limitations and inaccuracies of the Roomba platform and its sensors by designing software that can effectively use these flawed senses to successfully carry out a set of tasks.

−

==Where to begin==

==Where to begin==

−

+

In order to start programming Roomba, you need to set up your environment for Roomba Development; that is, you must make the connection between your Roomba and your computer, then make sure your programming software, which is called Processing, is working properly. In order to do this, you should read these pages:

−

==Tasks==

+

#[[Connecting Roomba to Your Computer]] - This will get Roomba configured to your computer

+

#[[Processing]] - This will get the programming environment Processing running on your computer

+

#[[RoombaComm]] - This will provide the basic commands to communicate with Roomba

+

#[[Roomba Program 1]] - This provides a tutorial of what your first Roomba program might look like

+

#[[Roomba Template]] - Download the template from this page and start writing your own program

+

==TheChallenge==

+

There are three tasks that you must be able to preform with your Roomba. The tasks and their descriptions are listed below as a quick reference. More detailed descriptions can be found at their respective pages.

+

===Challenge #1: The Chutes===

+

For more information, go to [[Challenge 1]]

+

===Challenge #2: The Maze===

+

For more information, go to [[Challenge 2]]

+

===Challenge #3: The Great Escape===

+

For more information, go to [[Challenge 3]]

+

===Challenge #4: Name that Tune===

+

For more information, go to [[Challenge 4]]

+

==Materials Provided==

+

There are two easy ways to connect Roomba to your Computer:

+

#7-pin Serial Cable with RooStick (CP2103 USB to UART converter)

+

#Rootooth (Bluetooth connector)

+

Both methods will be available in the labs for you to experiment with, but if I were, I would go Rootooth any chance I get. While RooStick still provides a solid interface, RooTooth provides untethered flexibility that allows you to not follow your Roomba around, program Roomba from the comfort of your seat (and not in awkward places where Roomba has wondered to), and eliminate the chance that Roomba pulls your laptop off your desk or snap the RooStick in half.

+

<!--#[[Loops]] - This will provide the basic programming loops structures that will help control your program-->

Goal

This page and those in his category are to support students in Freshman Design Lab, Winter 2007.

The goal of the "Roomba Module" is to identify and encode a set of behaviors to control a Roomba Robot, enabling it to perform a series of challenges (beyond the typical vacuuming of the floor). In this lab, you will encounter the interdisciplinary realities of the real world. A Roomba robot is a electro-mechanical system, control by software, that senses and acts in the world.

In this set of assignments, you are the creator of its behavior. You must deal with the limitations and inaccuracies of the Roomba platform and its sensors by designing software that can effectively use these flawed senses to successfully carry out a set of tasks.

Where to begin

In order to start programming Roomba, you need to set up your environment for Roomba Development; that is, you must make the connection between your Roomba and your computer, then make sure your programming software, which is called Processing, is working properly. In order to do this, you should read these pages:

Processing - This will get the programming environment Processing running on your computer

RoombaComm - This will provide the basic commands to communicate with Roomba

Roomba Program 1 - This provides a tutorial of what your first Roomba program might look like

Roomba Template - Download the template from this page and start writing your own program

TheChallenge

There are three tasks that you must be able to preform with your Roomba. The tasks and their descriptions are listed below as a quick reference. More detailed descriptions can be found at their respective pages.

Challenge #2: The Maze

Challenge #3: The Great Escape

Challenge #4: Name that Tune

Materials Provided

There are two easy ways to connect Roomba to your Computer:

7-pin Serial Cable with RooStick (CP2103 USB to UART converter)

Rootooth (Bluetooth connector)

Both methods will be available in the labs for you to experiment with, but if I were, I would go Rootooth any chance I get. While RooStick still provides a solid interface, RooTooth provides untethered flexibility that allows you to not follow your Roomba around, program Roomba from the comfort of your seat (and not in awkward places where Roomba has wondered to), and eliminate the chance that Roomba pulls your laptop off your desk or snap the RooStick in half.