Physical Computing and Android in Robotics
Physical Computing and Android in Robotics
Physical Computing and Android in Robotics
MECO - 2013
Budva, Montenegro
Abstract This paper represents research in the area of Physical computing and Robotics with practical realization of remote controlled vehicle. The vehicle is controlled by programmable microcontroller, such as the Arduino or FEZ Mini, running on the Microsoft.NET Micro Framework as a spine and the Android acting as a brain. The connection between a spine and a brain is established via Bluetooth. Key words: Arduino, Android, Microsoft.NET Gadgeteer Micro framework, Physical computing, Robotics, Remote controlled vehicle, Bluetooth
The client-server architecture of the system is shown on Fig. 1. The client, named Smarty, is a smart mobile device and the server is a microntroller placed on a vehicle. Smarty establishes connection with the server via Bluetooth. Smarty sends messages called commands to the server and server responds to the Smarty with messages called feedbacks. Commands tell to a microcontroller how to manage with attached hardware (e.g. motors, sensors). Every command has zero, one, two or more parameters. Examples of the commands are Move, Head, Stop, etc.... Command Move par1 par2 tells server to start moving the vehicle and par1 and par2 are numeric values that indicate speed of moving and direction. Command Head angle is responsible for moving frame for Smarty ( Figure 6) and has one parameter angle which represents angle from 0 to 360 degrees. The Server side is microcontroller, Arduino or FEZ Mini. Server receives commands from the client and starts processing them and controlling attached hardware. Every server maintaines processing commands in the same way. What does it mean? The Server receives commands from the Smarty and every command must act in a same way. If Arduino receives command for moving the vehicle to the right, also FEZ Mini should do the same processing. Because of that, it is very important to have clear format for every command. Finally, server responds to the Smarty with messages called feedbacks. Examples for feedbacks are values
I.
INTRODUCTION
Physical computing [1], in the broadest sense, means building interactive physical systems by the usage of software and hardware that can sense and respond to the analog world. In the broad sense, Physical computing is described as a creative framework for understanding human beings to the digital world. Today, microcontrollers such as Arduino [2], Raspberry Pi [3] and Microsoft.NET Gadgeteer [4] are available for common users at a very favorable price. Very practical systems may be built with usage of those microcontrollers and other various sensors and motors. On the other side, software platforms like
MECO - 2013
Budva, Montenegro
The Arduino is used as programmable microcontroller m in the system. In general, hardware realiz zation with the Arduino consists of several components: Arduino Mega ADK Robot chassis ARX-CH09 Bluetooth module HC-06 Motor Driver L298 module Lots of wires
ries (1.2 V each). The Arduino supply comes from six batter is used to control the moveme ent of the ARX chasis with the L298 driver. The Arduino o Mega ADK pulse width modulation [9] (PWM) pins are a the ones from digital pin 2 to digital pin 14. The PWM pins p 7 and 8 are used to control one motor, and the PWM pin ns 9 and 11 are used to control other motor. Two groups of th he PWM pins are connected to the L298 driver and further rmore from the driver to the motors of the ARX chassis s. Also, for testing purposes, chassis may use power supply y from the Arduino, but that is not recommendable due to the e limited power supply that the Arduino can provide from the USB connection to the computer. Arduino digital pi ins 0 and 1, the RX and TX respectively are connected to o the Bluetooth module HC-06 [10]. Bluetooth module is also o connected to the Arduino 5V power supply pin and GND pin. p When the command from the Smarty comes, the Arduin no processes it and establishes prefered action. Whole softwa are on the Arduino server side is implemented in Arduino ID DE programming environment. On Fig. 3 and 4 is shown how w system looks like.
Figure 2 Arduino hardware solu ution As mentioned, the Arduino is used as cen ntral component in the prototype, but beside the Arduino, th here are several other components. Robot chassis ARX-CH H09 [7] is the component that moves when a vehicle is being b driven by the user via Smarty. It has two motors con nnected to and controlled with the L298 Motor Driver [8]. Also, A its power
Figure 4 Arduino remote r controlled vehicle The other approach to make m server side for remote controlled vehicle is by usin ng other platform. That other
MECO - 2013
Budva, Montenegro
Fez Mini Robot Kit comes as a collection of parts that can be easily connected (Figure 5). Software for receiving and processing commands is implemented in Microsoft.NET Micro Framework as part of the Microsoft Visual Studio. Commands are received with Bluetooth module HC-06. Fig. 6 and 7 show remote control vehicle system in which server is Fez Mini.
Figure 7 Fez Mini remote controlled vehicle IV. SOFTWARE IMPLEMENTATION ANDROID
Application running on the Smarty is the Android [12] application and this is the client side in architecture. All systems logic is placed in the application, the microcontrollers are just components that process commands and send feedbacks while the Smarty is directly connected to the user. The application is capable of: Connecting to both platforms via Bluetooth Selecting prefered action on both platforms Buttons controller Compas controller Orientation controller TestJob Manual command controller Images of the application with this properties are shown in Fig. 8 and Fig. 9.
Figure 6 Fez Mini remote controlled vehicle Figure 8 Arduino selection and Bluetooth
MECO - 2013
Budva, Montenegro
possible to develop a remote control system with the combination of the Android and the other microcontroller platforms and because of that it is very important to follow development of Physical computing and robotics in the future. Many practical projects, like personal remote assistants, or remote house cleaners, can be made by combining those platforms. General idea is to lower development costs of robotic vehicles dedicated to duties at sport fields, residential homes, courtyards or manufacturing plants by using readily available, commercial products, rather than specialized, custom designed parts.
VI.
LITERATURE
Figure 9 Button control screen and manual command Described prototypes show that same princips may be applied for realsized vehicles. Based on current development progress, authors maintained to develop the realsized prototype shown on Fig. 10. Although a lot of work needs to be done in the future, especially for Artificial intelligence algorithms, vehicle has been successfully controlled by the Smarty. All properties show good results when robot control is being done by the user over Smarty.
[3] Raspberri Pi - http://www.raspberrypi.org/ [4] Net Gadgeteer - http://www.netmf.com/gadgeteer/ [5] Robot localization https://www.udacity.com/file?file_key=agpzfnVkYWNpdHl1ckcLEgZDb 3Vyc2UiBWNzMzczDAsSCUNvdXJzZVJldiIHZmViMjAxMgwLEgRVb ml0GPGNCwwLEgxBdHRhY2hlZEZpbGUYmc4NDA [6] Robot localization - https://www.udacity.com/course/viewer#!/ccs373/l-48739381 [7] Robot chassis - http://custobots.lako.ca/products/simple-robot-chassisarx-ch09 [8] L298 Motor Driver - http://www.ghielectronics.com/docs/84/motordriver-l298-module [9] Pulse width modulation - http://arduino.cc/en/Tutorial/PWM [10] Bluetooth module - http://www.emartee.com/product/41915/ [11] Fez Mini http://www.ghielectronics.com/catalog/product/297 [12] Android - http://www.android.com/
Downsized prototypes controlled with programmable microcontrollers and smart mobile devices can be very easily expanded to large real-size systems. Area of embedded robotics has been developing very fast and with appearance of a cheap microcontrollers has become very popular for both programming and business. The Android is open-source platform and probably most popular mobile platform beside the iOS. The Arduino is also open-source, with very low price for common user and very popular for programming because of similarity with C programming language. Solutions presented in this paper show that is