Page 16 - Hacking Roomba
P. 16

Introduction        xv



                             The ROI protocol is covered in detail, with examples given as each part of the protocol is
                             examined. Practical and fun examples of each ROI command are given. As a way of abstracting
                             the rather low-level commands of the ROI, a code library of software routines is slowly built up
                             to become the RoombaComm API with applications built using it.
                             Throughout this book, the ideas and practices of Network Objects are developed. As comput-
                             ing and networking become so cheap as to be effectively free, all objects will become network
                             objects. The Roomba robot is already a computing object, a normal everyday device (a vacuum
                             cleaner) that has been imbued with intelligence in the form of a small computer. This book
                             describes several methods of extending the Roomba to become a networked object. These
                             methods are similar to those used for current and future network objects that will exist through-
                             out the home.


                     How This Book Is Structured

                             This book is designed mostly for the novice electronics hacker, but it contains several advanced
                             projects toward the end.The book is divided into three parts. Each part is mostly self-contained,
                             depending upon which shortcuts are taken, but knowing the concepts presented in earlier chapters
                             helps in the later ones.

                             Part I: Interfacing
                             This part describes the Roomba, its history, and its model variations, to dispel the confusion
                             regarding which Roombas are hackable via the ROI protocol. The ROI protocol is discussed in
                             depth, showing exactly what bytes are sent and received to command the Roomba. To allow a
                             PC to speak to the ROI, two simple hardware interface projects are shown — one wired, one
                             wireless. With those created, a software library is given that provides an easy-to-use abstraction
                             layer on the PC.

                             Part II: Fun Things to Do

                             Using the hardware and software infrastructure from the previous part, this part focuses on
                             interesting, or just plain silly, things to do with a computer-controlled Roomba. Make it dance
                             and sing, draw huge artwork on the ground, and create a complete dashboard/remote control
                             PC application called RoombaView.

                             Part III: More Complex Interfacing

                             With experience from using a PC to control a Roomba, the focus now becomes making the
                             Roomba a true Internet device and fully autonomous. The first few hacks are Internet versions
                             of the initial interfaces. From there a fully reprogrammable replacement brain is added to the
                             Roomba using microcontrollers like the PIC Basic Stamp or Arduino AVR. This part ends
                             with adding a larger microcontroller board that can run Linux and use a webcam, microphone,
                             or any other sensor imaginable.
   11   12   13   14   15   16   17   18   19   20   21