Page 9 - Hacking Roomba
P. 9
viii Contents
Using the Adapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Making RoombaComm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Chapter 5: Driving Roomba. . . . . . . . . . . . . . . . . . . . . . . . 89
The Roomba Motors and Drive Train. . . . . . . . . . . . . . . . . . . . . . . . . 89
The ROI DRIVE Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Simple Tank-Like Motion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Moving in Curves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Real-Time Driving . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Writing Logo-Like Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Chapter 6: Reading the Roomba Sensors . . . . . . . . . . . . . . . . 109
Roomba Sensors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
ROI SENSORS Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Parsing Sensor Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Using Sensor Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
BumpTurn: Making an Autonomous Roomba. . . . . . . . . . . . . . . . . . . . 122
Measuring Distance and Angle . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Spying on Roomba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Part II: Fun Things to Do
Chapter 7: Making RoombaView . . . . . . . . . . . . . . . . . . . . 131
About Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Using RoombaComm in Processing . . . . . . . . . . . . . . . . . . . . . . . . . 136
Designing RoombaView . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Chapter 8: Making Roomba Sing . . . . . . . . . . . . . . . . . . . . 151
Sonic Capabilities of Roomba . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
ROI SONG and PLAY Commands . . . . . . . . . . . . . . . . . . . . . . . . . 154
Playing Roomba as a Live Instrument . . . . . . . . . . . . . . . . . . . . . . . . 157
Roomba Ringtones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
RoombaMidi: Roomba as MIDI Instrument . . . . . . . . . . . . . . . . . . . . 161
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
Chapter 9: Creating Art with Roomba . . . . . . . . . . . . . . . . . . 167
Can Robots Create Art? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
Parts and Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
Adding a Paintbrush to Roomba . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
What Are Spiral Equations? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178