Introduction: Wireless Robot Arm Which Is Moveable and Controlled by Bluetooth Voice Commands and Mobile App

About: I'm a experienced software engineer loved to electronics and robotics.

Hello everyone,
Nowadays voice control smart gadgets are getting significantly popular around the world.

In this Instructable, I'm going to show you how to make a voice control and Bluetooth control walking robot arm. To do this I'm going to use already completed wired control robot arm. Other than the robot arm we need four wheel robot vehicle chassis to make the robot arm walk.

You will need following items to make this project,

Supplies

  • Arduino board (I'm using Arduino Nano)
  • H06 Bluetooth module
  • L298N Motor drivers * 3 (According to your arm this will change)
  • Servo motor (This is for car stearing)
  • Jumper wires
  • DC gear motor with tyre * 2 (If use separate front wheels. Or 4 gear motors with tyres)
  • Vehicle chassis
  • Batteries and battery case (3.7v * 2)
  • Smart phone with mobile app

Step 1: Prepare Robot Car Chassis

To walk the robot arm we need a vehicle chassis like walking base. We can use Robot car DIY kit as a walking base or make a chassis by your self. I made this chassis using hard board. Used 2 gear motors with tyres to move vehicle forward and revers. Also servo motor with attached tyres to steering the vehicle left and right. Using 4 gear motor also this can be done. That base design is up to you but that base should have enough space to put robot arm, Arduino board, Motor drivers and Batteries.

Step 2: Prepare Robot Arm

Robot arm is a main part in this project. You can make a robot arm using servo motors or buy a wired control robot arm and finish it. According to the nature of the robot arm, the supporting items for this project will vary.I'm using a wired control robot arm for this project and due to that three L298N motor drivers are required.

If you using wired control robot arm you can use that battery case for this project or use that space to put Motor drivers and Arduino board. But or all 3 motor drivers this space not enough. So you may need to attach additional items to fit motor drivers. For that you can use perspex board and nut and bold to connect those.

You can watch attached video to see how to assemble wired control robot arm if you not familiar with that.

Step 3: Build Mobile Application

To implement this instructable you will need mobile application with speech recognition feature. Also if you think to control this using blue tooth then you will need this application with related buttons to control. I made a mobile application for this project and attached here. You also can get it for your projects as well. Or you can simply create a mobile application using http://ai2.appinventor.mit.edu/ platform. This is a platform to create mobile application without coding. Just drag and drop the component to program the app.

http://ai2.appinventor.mit.edu/

This is a brief description about the mobile application. With this application you can control 5 arms and vehicle forward, backward, left, right and light on off and vehicle speed using Bluetooth. There is a on-off switch in the top called "Voice". Approach I used in this project is when voice button switch off then the project work with app contains control buttons. If voice switch on then buttons can't control the robot. You have to click on "Press and Speak" button and then speak the command. According to voice commands robot will work. Voice commands will discuss in coding step. This application send any text recognized. So any voice commands you can use in Arduino code.

Some important code blocks used in this application attached here for your reference.

Note: Normally "Press and Speak" button should enable when "voice" switch is on and otherwise its disable. But for speech recognition testing purpose its enable every time.

Step 4: Program the Arduino Board

This project programming is not very complex. Important thing is to identify voice control and button control separately. My approach for this project is button controllers sending single character from app to Arduino. Then Arduino code handle the operations according to received character. For voice control commands, app sending command as string. Also "voice" on-off switch used for this separation. If voice switch is off then robot control using buttons. If its on then click on "Press and speak" button and you can give voice command.

Initially voice control on-off switch set to off. With below code we can get mobile app sent character or string.

char received = ' ';<br>String receivedVoice = "";
if(!voiceControlOn){<br>      received = Serial.read();
}else{
      receivedVoice = Serial.readString(); 
}
if(received == 'u' || receivedVoice == "u"){<br>       voiceControlOn = true;
       received = ' ';
       receivedVoice = "";
}else if(received == 'v' || receivedVoice == "v"){
       voiceControlOn = false;
       received = ' ';
       receivedVoice = "";
}

char type received variable is data read from button controls and string type receivedVoice variable is voice commands. so operations we can do as below.

if(received == 'a' || receivedVoice == "left"){
    steeringServo.write(--servoDegree);
    delay(50);
  }
if(received == 's' || receivedVoice == "reverse"){
    digitalWrite(motorPinE1, HIGH);
    digitalWrite(motorPinE2, LOW);
  }

Other important thing to remember is for this project we need more OUTPUT pins. Control one motor for both direction we need 2 output pins. So for 6 motors 12 pins. Light control 1 pin. Servo control 1 pin. All 14 pins. So for this Arduino we can use analog input pin also as output pins.

int arm3UpPin = A0;
int armLightPin = A1;
pinMode(arm3UpPin, OUTPUT);
pinMode(armLightPin, OUTPUT);

Voice commands used in this project is as below.

1. left
2. right
3. stop steering
4. forward
5. reverse
6. stop moving
7. 1 up or shoulder up
8. 1 down or shoulder down
9. 2 up or elbow up
10. 2 down or elbow down
11. 3 up
12. 3 down
13. 4 up or drop
14. 4 down or pick
15. 5 left or base left
16. 5 right or base right
17. 1 stop or 3 stop
18. 2 stop or 4 stop
19. 5 stop
20. stop all

These are the commands I have used for this project. But in Arduino code you can add any command you can clearly get from speech to text mobile application. Attached the full Arduino code for your reference.

Tinkercad circuit diagram also attached here. Also you can follow below link for Tinkercad design.
https://www.tinkercad.com/things/g2Myaa9IfUX-voice-control-robot-arm

For my project I have used L298N motor drivers. You can also get L293D driver IC to this project. It will minimized the space for the circuit. In Tinkercad I have used L293D IC to demonstrate the circuit.


Step 5: Improvements

With this project I just showed you how to control robot arm using Bluetooth and voice command. For any improvement you can try adding multiple functionalities and add some sensors to get more intelligent. For example this robot is a walking one, so you can add sensors to identify Obstacle and avoid them without user input. Also you can record the action and replay those action again.

Thank you for watching and have a fun.