BASIC ACTIVITIES WITH THE BOE-BOT MOBILE ROBOT Richard Balogh Institute of Control and Industrial Informatics FEI, Slovak University of Technology in Bratislava, e-mail: richard.balogh@stuba.sk Abstract Mobilný robot Boe-Bot je komerčne dostupná stavebnica firmy Parallax. Predstavı́me jeho základné vlastnosti, ktoré umožňujú vel’mi jednoduché a rýchle uvedenie do robotiky. Predvedieme niekol’ko prı́kladov programovania a použı́vania i jeho jednoduché rozširovanie. Zmienime sa o možnosti náhrady v hobby, či amatérskom prevedenı́. Po prednáške bude nasledovat’ cca dvojhodinový workshop, na ktorom si účastnı́ci vyskúšajú jeho programovanie, vyriešia jednoduché úlohy a malý projekt. Keywords: mobile robot, sensors, servo, education. 1 BoeBot mobile robot The BoeBot mobile robot [1] is a commercially available robotics kit (see Fig. 1) by the Parallax, Inc. company. It consists of two geared motors mounted on an aluminium chassis, batteries and control electronics. On the motors are mounted two plastic wheels. The rear wheel is made of a drilled polyethylene ball. Mounting holes and slots may be used to add custom robotic equipment. Figure 2: Board of Education. This platform is quite intuitive for beginners, but has enough potential to keep more advanced students and hobbyists interested. The kit includes everything you need to make a functional, educational and entertaining mobile robot. No previous robotics, electronics or programming experience is necessary. Figure 1: The Boe-Bot mobile robot. The robot is controlled by the Parallax’s popular microcontroller Basic Stamp II and the Board of Education (see Fig. 2). It is a simple board containing a processor, power supply circuits, interfaces, connectors and a small experimental solderless breadboard. The Basic Stamp II processor can be programmed with the PBASIC language [2] – simple, but powerfull clone of the Basic language with the support of many specific peripheral devices. The code is developed within the free integrated development environment Basic Stamp Windows Editor, which contains also the code downloader and the communication terminal (Fig. 3). Figure 3: Basic stamp Editor and development tools. The kit is supplied with a comprehensive textbook Robotics with the Boe-Bot [1]. The textbook includes more than 40 different activities for the Boe-Bot robot with the PBasic source code. Each chapter contains the exercises and challenges with solutions. The activities start with the basic movements and proceeds to sensorbased projects. Students quickly learn how the Boe-Bot is expandable for many different robotic projects. The Student Guide contains eight chapters concentrated on different topics of robotics: 1. 2. 3. 4. 5. 6. 7. 8. Your Boe-Bot’s Brain, Your Boe-Bot’s Servo Motors, Assemble and Test Your Boe-Bot, Boe-Bot Navigation, Tactile Navigation with Whiskers, Light Sensitive Navigation, Navigating with Infrared Headlights and Robot Control with Distance Detection. They cover all necessary tasks which are required for each autonomous mobile robot to perform even the simplest actions: 1. 2. 3. 4. the ability to control the I/O lines, reading the values from the sensors, the data processing, movement control (based on previously processed data) and 5. the communication and debugging. Let’s show some simple examples of the previously mentioned tasks. 2 Control of inputs and outputs. The processor contains 16 general purpose pins, which can be freely configured as inputs or outputs. Below is a short program for the LED diode connected to the pin 14 controlled by the switch connected to the pin 3. The circuit is built on the solderless breadboard according to the schematics in the Fig. 4. Led PIN 14 Switch PIN 3 ’ Connected to pin 14 ’ Connected to pin 3 OUTPUT Led INPUT Switch ’ Direction of the I / O ’ Direction of the I / O Main : IF Switch = 1 THEN HIGH Led ’ LED On ELSE LOW Led ’ LED Off ENDIF GOTO Main ’ Endless loop Figure 4: Schematic diagram [1]. 3 Servo motor control Servos (shown in the left in the Figure 5) are DC motors with built-in gears and feedback control loop circuitry. The motors are small, compact and rugged. Most of them can rotate and hold a position between 90 and 180 degrees. Their precise positioning makes them ideal for radio controlled planes, cars, puppets, and, of course, robots. Modified, or continuous rotation servos receive the same electronic signals, but instead of holding certain positions, they turn with certain speeds and directions. The servos are connected using two power supply (4,8 – 6 V) and one signal wires, no further motor drivers are required. The servo electronics is controlled by a pulse-width modulated (PWM) signal. Pulses repeats each 20 ms, whilst its width controls the speed of the servo. The continuous rotation servo turns with full speed clockwise when you send it 1,3 ms pulses, 1,7 ms pulses will make the servo turn with full speed counterclockwise. The servo will be stopped with 1,5 ms pulses. Figure 5: The DC servo and its connection diagram. Below is the PBasic code that shows the basic use of the servo motor control. Pulsing of the servo’s signal line with the Basic Stamp processor is done with the PULSOUT command. The command ’PULSOUT 13, 750’ sends to the pin 13 a pulse that lasts 750 × 2µs, that’s 1500 µs or 1,5 ms. This value stops the movement of the shaft. We can control the speed of the motor by adding or substracting values up to 250 from the center (750) position. Note that the left motor should rotate in oposite direction with respect to the right motor if required direction of the movement is forward, because the motors are mounted in a mirrored position. ’ ---- [ Subroutine Forward ] -----Forward : FOR pulseCount = 1 PULSOUT 13 , 650 PULSOUT 12 , 850 PAUSE 17 NEXT RETURN TO 50 ’ 1.3 ms pulse ’ 1.7 ms pulse ’ Pause 17 ms ’ Return to Main ’ One cycle : 1.3 + 1.7 + 17 = 20 ms . ’ The whole routine will move robot ’ 50 x 20 = 1000 ms = 1 second . 4 Sensors reading Digital sensors are simply connected to some of the I/O pins and their outputs are directly readable using the IN command. Analog sensors can be read using an external A/D converter (see an example). Resistive or capacitive sensors can be connected directly to the digital I/O pins and their value is calculated from the measured RC time constant. Also the sensors with PWM or time varying outputs can be read directly. The following program shows an example how to read the state of the digital sensor (bumper) and the analog distance sensor using the ADC. IF ( Bumper = 1) THEN STOP ELSE GOSUB Forward ENDIF GOSUB GetDist Figure 6: The Boe-Bot robot with the bumper and distance sensor. 5 Simple communication - user interface Another important issue, especially during the debugging phase, is a communication with the user. One possibility is to use the serial communication interface RS-232 and the PC with the terminal program running. Another approach uses an added LCD display placed directly on the robot. Bidirectional serial communication is also supported in PBasic. The following program uses the DEBUG command to write some texts and values of the variables on the communication console. ’ text string DEBUG "I ’ m running ... " , CR ’ decimal value DEBUG " Value : x = " , DEC x , CR ’ binary value DEBUG " State P7 : " , BIN1 IN7 , CR ’ delay 3 s PAUSE 3000 ’ the text again DEBUG " Press button to finish ... " ’ Read ADC value IF ( Res < 100) THEN STOP ELSE GOSUB Forward ENDIF GetDist : LOW CS ’ activate the ADC0831 SHIFTIN Data , Clk , MSBPOST , [ Res \9] HIGH CS ’ deactivate ADC0831 RETURN Figure 7: Output of the program. 6 Alternatives In this section we briefly mention alternatives for those who want to change the programming language of the robot, or simply to use another hardware platform. The hardware The BoeBot robot in fact consists of two continuous rotation servos (available from any hobby shop), battery holder and mechanical chassis. That makes possible to replace each mechanical part of the robot with own piece of hardware. One example of it is an omnidrive robot with three omnidirectional wheels based on the triangular chassis [7]. Electronics Also in this area some alternatives exist. It is possible to easily replace the BasicStamp processor with the previously mentioned Javelin processor. For those, who don’t like the price of the Basic Stamp II chip, there are an alternative PicAXE processors [4], available from many local distributors. Yet another alternative is to use a completely different electronic control unit, based on the personal preferences. Very popular microcontrollers are those of the Microchip PIC family, Freescale HC family or Atmel AVR family. The latest is also the base for an open source Arduino board [5], which comes with a built-in serial downloader and an integrated development environment which tries to mimic the BasicStamp’s easy of use in the C programming language. The Atmel AVR processor is also the base of the educational platform MiniMEXLE [6] created at the University of Heilbronn, Germany. An example of using this platform for the robot control is the robot MexleBoy which participated on the Robotchallenge championship in Wienna. The same robot with the BasicStamp controller participated a year ago. 7 Figure 8: Omnidirectional Robot Hugo [7]. Still it is possible to use all of the previous mentioned features, using the standard Board of Education by the Parallax, or simply the BasicStamp chip itself. Software Conclusions Even with such a simple robot it is possible to do really impressive amount of work in a robotics introductory course. Students are always impressed with amount of influencing factors determining precise movement of the robot. An advanced example of possibilities of the robot is the implementation of the simple genetic algorithm for the path learning [9]. As previously mentioned, for those who like a Java programming, there is a special Javelin processor [3] available. This is a BasicStamp pin compatible processor which can be programmed in a simple subset of Java language. Another approach, presented e.g in [8], is a robot remotely connected using the Bluetooth or another radio connection to a standard PC. The robot only responds to the commands sent from the master computer. The control program can be written in the high-level language of your preferred choice. The robot in [8] is equipped with a wireless camera and a radio connection with the computer. A control program in Java perform all the necessary image processing. After the object localization it sent some move commands to follow the object - small white ball. All the necessary computations were performed on the standard PC, the robot just received basic movement commands. Figure 9: Teaching with robots is fun. The robot is also very useful platform for different kinds of robot competitions [10] which is very motivational type of education. The real robot available for immediate evaluation of students results is very motivational and such method of teaching can be only recommended based on our experiences. 8 Acknowledgements This work was supported by the project of the Slovak Research and Development Agency LPP0301-06 Istrobot – Education and Propagation of the Robotics. Publication and presentation of this paper has been also supported by the VEGA Project 1/3089/06 Development and Integration of Methods of the Nonlinear System Theory. References [1] Lindsay, Andy: Robotics with the Boe-Bot. Student guide. Version 2.2, Parallax, Inc., Rocklin, California, 2004. ISBN 1-928982-034. Available on-line: http://www.parallax. com/ [2] Martin, Jeff et al.: BASIC Stamp Syntax and Reference Manual, Version 2.2, Parallax, Inc., Rocklin, California, 2005. ISBN 1-928982-328. Available on-line: http://www.parallax. com/ [3] Williams, Al: Javelin Stamp Manual. Version 1.0, Parallax, Inc., Rocklin, California, 2002. Available on-line: http://www. parallax.com/ [4] PICAXE Dedicated website by Revolution Education Ltd. Available on-line: http:// www.picaxe.co.uk/ [5] Arduino. Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. Available on-line: http://www.arduino.cc/ [6] Pospiech, Thomas, Knot, Juraj and Gruhler, Gerhard: MiniMEXLE - The microprocessor development board for eyeryone, Radioelektronika - 16th International Czech-Slovak Scientific Conference, 2006. Website containing the description, documentation and software is available on-line: http://www.mexle.net [7] Nemec, Martin: Design of the wheeled service robot based on the omnidirectional wheel principle. [In Slovak] Košice, technical report KVTaR SjF TU Košice 2003. Available on-line: http://www.robotika. sk/contest/2003/RobotHugo.html [8] Lúčny, Andrej: Building Control System of Mobile Robots with Agent-Space Architecture. CLAWAR/EURON Workshop, Vienna, 2004. Available on-line: http://www.microstep-mis.com/~andy/ LucnyClawar.pdf [9] Petrovič, Pavel: Incremental Evolutionary Methods for Automatic Programming of Robot Controllers. Doctoral theses at NTNU Throndheim, Norway, 2007. ISBN 978-82-471-5031-3. Available online: http://urn.ub.uu.se/resolve?urn= urn:nbn:no:ntnu:diva-1748 [10] Balogh, Richard: I am a robot - competitor: A survey of robotic competitions. International Journal of Advanced Robotic Systems, Vol. 2, No. 2 (2005), pp. 144-160. Available on-line: http://www.robotika. sk/~balogh/ARSJournal2005.pdf