Voice Controlled Robot using Arduino and voice recognition app

Voice Controlled Robot using Arduino: Hi Everyone, I hope you are fine and doing well. Today we are going to start projects related to robotics using Arduino. We have already posted robotics projects like line follower robot, obstacle avoidance robot, and the robotic arm and pick and place robotic arm using Arduino. Today, we are going to talk about voice controlled the robot using Arduino and android application. Voice controlled robot is a mobile robot which is control by some specified voice commands. The mobile application is capable of identifying five commands which are “Stop”,”Forward”,”Back”,”Left”,”Right”. In this embedded systems project, we make a 4-WD robotic car which we can control using voice through a mobile application. Application listens and sends the instruction to the Arduino using Bluetooth and then Arduino performs the specified operation. Voice recognition application is not 100% accurate. The application is sensitive to the surrounding noises. It sometimes misinterprets the voice commands given to the robot. But you can design your own application which can ignore the surroundings and can receive your own voice only. voice controlled robot using arduino

Block Diagram of voice controlled robot using Arduinovoice controlled robot using arduino block diagram

Components Required for voice controlled robot

Arduino Uno: Arduino Uno is used because we can mount the motor driver shield in it. It is also cheap, easy to use and acquire less space as we have to place everything on the chassis.  If you are new to Arduino programming, I recommend you to check a getting started with Arduino article.

Motor Driver Shield: The Motor Driver Shield is based on the L293 IC, which is a dual full-bridge driver. This is used to drive inductive loads such as relays, solenoids, DC and stepping motors. It lets you drive four DC motors and 2 servos with your Arduino. We can control the speed and direction of each motor independently.

HC-05 Bluetooth Module: This is a class-2 Bluetooth module with Serial Port Profile, which can configure as either Master or Slave. We can use it simply for a serial port replacement to establish a connection between MCU, PC to your embedded project and etc.

HC-05 Specification:

  • Bluetooth protocol: Bluetooth Specification v2.0+EDR
  • Frequency: 2.4GHz ISM band
  • Modulation: GFSK(Gaussian Frequency Shift Keying)
  • Emission power: ≤4dBm, Class 2
  • Sensitivity: ≤-84dBm at 0.1% BER
  • Speed: Asynchronous: 2.1Mbps(Max) / 160 kbps, Synchronous: 1Mbps/1Mbps
  • Security: Authentication and encryption
  • Profiles: Bluetooth serial port
  • Power supply: +3.3VDC 50mA
  • Working temperature: -20 ~ +75Centigrade
  • Dimension: 26.9mm x 13mm x 2.2 mm

4-WD Car Chassis: It contains 2 platforms made up of acrylic. It contains 4 dc motor with speed encoders. It is easy to assemble and provide much space to place Arduino, Bluetooth module, and batteries pack.

Battery: Each motor used up to 200mA current. I have used three 3.7v, 2200mA

Li-ion cells in parallel. The battery pack supply 12.1 volts.  Li-ion cell is a type of rechargeable battery. So we can use these cells again and again.

Circuit diagram of voice controlled robot using ArduinoCircuit diagram of voice controlled robot using arduino


First of all mount Motor Driver shield on Arduino Uno.

HC-05 or HC-06 Connections:

  • Connect Vcc to 5 volts.
  • Connect GND to Ground.
  • Module Rx to Arduino Tx.
  • Module Tx to Arduino Rx.

If the Bluetooth module does not work make voltage divider using a 1K and 2K resistors and connect to Rx pin of the module to convert 5v to 3.3v.

Motor to Motor Driver Shield:

  • Left side motors to M3 and M4 terminals.
  • Right side motors to M1 and M2 terminals.

If the motor is rotating in opposite direction then swap the wire connection to rotate all motors in the same direction.

Code of voice controlled robot using Arduino

Working of voice controlled robot using Arduino

If you make all connections correctly then download AMR_Voice application from Play Store. Open the application, power up the robot and connect the application to the Bluetooth module. When we speak the specified commands the application sends the instruction to the Arduino through Bluetooth and then Arduino performs the defined operation.

Note: Always disconnect the Rx and Tx pins of Bluetooth module when uploading code to Arduino otherwise it shows some errors and code does not upload. Try “1234” or “0000” password when you connect Bluetooth module with your mobile for the first time. If the wheels are rotating in opposite direction just swaps the connection of the motor from the Motor Driver Shield terminal. Controlling robot through voice is not an efficient way. It is fun to control but I recommend the Gesture control application.


  1. shivanand October 25, 2017
  2. Shivanand October 25, 2017

Add Comment

Subscribe to our blog to get updates in your email

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Join 1,436 other subscribers