Wednesday 9 July 2014

Arduino and Android to integrate software and hardware. A hobby robot

http://youtu.be/fGJLq2nkxj8

1.   Overview

           A machine which can move on its wheels to all direction and can pick an object, lift and place it back based on the instruction from an Android smart phone.  The application developed and installed in the Android smart phone will be able to communicate with the Motorobo hardware through blue tooth.

          This thought was evolved when we were discussing the possibilities of mobile-software and hardware integration which is having various possibilities in daily life, and we decided to proceed to a working model.


          There are few challenges especially in the mechanical and electronic-circuits part, but after many trials and we were able to succeed.




2.   Architecture of the solution.



Control gestures are provided on a mobile, which sends commands to the MotoRobo.


2. Hi-level architecture of “MotoRobo”

This is an own designed and developed machine which is controlled by gestures from a mobile. This is powered by a 12 V DC Battery of 1.2 Ah.

3.   Components Used

Electronics Component used


               Arduino Uno:  The Arduino Uno is a micro controller board based on the ATmega328.
 1.   L293D, Motor drivi/ng IC.
 2.   Blue tooth receiver.
 3.   12DC, 1.2 Ah rechargeable Batteries.
 4.   6-0-6, 1Amp, 220V transformer and two diodes.
 5.   Two 12V- DC motors with pulley setup.
 6.   Two servo motors and its holders.

Mechanical Component used.

1.    Apart from a “metal frame” and “wheels”, all the other required parts are handmade.
2.    We used tin-sheet, aluminum sheet, screws, and plastic as raw materials.

4.   Development Environments.

4.1  Android-development

We developed an android application (.apk) which can pair with a blue tooth modem, and can send “serial” messages as strings. This mobile app will capture the mobile gestures and convert them to the commands and will send it to the blue- tooth modem which is in the “MotoRobo”.
  

4.2  Arduino-program-development

Developed an “Arduino” program and flashed to the “Arduino” board to read the serial text from a serial “pin” of “Arduino”. This program will read it and will split the strings to the characters to process. For the easier communication we maintained a string format which is having fixed length. Once received this program will process the string characters and will send programmed signals to the “out-put” pins. Arduino board does not have the capability to drive a heavy electronics device like DC which need high current flow. So we used a motor driving IC, L293D. 



The speeds of DC motors are controlled with the help of L293D-IC and it is based on pulse width modulation (PWM).


Direction controlled using rear-wheels.
     ->To turn to Left, slow down Left wheel, reduce duty cycle for left wheel
     ->To turn to Right, slow down Right wheel, reduce duty cycle for right wheel

               4.3  Electronics development

The circuits are done with the help of a common-PCB, and soldering. The electric system system which is controlled by arduino will energize the motors.

4.4  Mechanical development

1.       Designed a “three wheeler” with two driving DC motors at the back side and a single “ball” wheel at the front end. We bought a general tin frame, wheels and required electronics components. Arranged wheels and battery in the frame.


2.       Designed a mechanical “arm” with tin and “aluminum”, which can pick up to 70gms to100gms of weight and lift. An elliptical shaped plastic arrangement connected to a servo motor will rotate to get the “arm” grip open.
    Closed grip.

   Opened grip,



1.   MotoRobo Control Modes

a.    Mobile Gesture based Control

User can control the MotoRobo using paired Android phone. For direction control, user can use phone like a steering. To bring the arm down, move the phone down. For Grip open/close is done by pinch zoom gesture.

b.    Pre-programed movements.

Apart from “live” control, this machine can work based on the pre-recorded movements. The movements can be programmed using a simple “template” and can execute, so that the machine will start from the first step to the last as a series of movements.

c.    Voice control.

As an additional feature, we have included the feature of “voice-command” to control the machine. This is achieved with the help of google services.

Video URL http://youtu.be/fGJLq2nkxj8

Contact : manupradeep@gmail.com, tinojantony@gmail.com