Skip to main content

Control Robotic Car With Voice

Control Robotic Car With Voice

By DEVANANDA REDDY

3041Advertisement
Arduino controls the movements of the robot according to received commands. The robot moves forwards, backwards, left and right, and stops according to the voice commands forward, backward, left, right and stop, respectively. The authors’ prototype of the voice-controlled robotic car is shown in Fig. 1.
Authors’ prototype of the voice-controlled robotic car
Fig. 1: Authors’ prototype of the voice-controlled robotic car
The system consists of a transmitter (Android smartphone) and a receiver (robot). Block diagrams of the transmitter and receiver sides are shown in Figs 2 and 3, respectively.
Screenshot of the home screen of Voicecontrol app is shown in Fig. 4.
Block diagram of transmitter side
Fig. 2: Block diagram of transmitter side
Block diagram of receiver side
Fig. 3: Block diagram of the receiver side
Screenshot of the home screen of Voicecontrol app
Fig. 4: Screenshot of the home screen of Voicecontrol app

Circuit and working

The circuit diagram of the receiver side of the robot is shown in Fig. 5.
Circuit diagram of receiver circuit
Fig. 5: Circuit diagram of receiver circuit
Advertisement
Major components used in this project are described below.
Android smartphone with app. Android speech-recognition app (voicecontrol.apk) used here was developed using MIT App Inventor. When the app is running in the smartphone, user’s voice commands are detected by the microphone present in the phone.
Commands are processed, and speech-to-text conversion is done within the app using Google’s speech-recognition technology. Text is then sent to the receiver side (that is, robotic car) via Bluetooth.
Arduino Uno R3. Arduino Uno is an AVR ATmega328P microcontroller (MCU)-based development board with six analogue input pins and 14 digital I/O pins. The MCU has 32kB ISP flash memory, 2kB RAM and 1kB EEPROM. The board provides the capability of serial communication via UART, SPI and I2C. The MCU can operate at a clock frequency of 16MHz. In this project, digital I/O pins 2, 3, 4 and 5 of Arduino are configured as output pins. Pins 0 and 1 of Arduino are used for serial communication with HC-05 Bluetooth module.
Text received via Bluetooth is forwarded to Arduino Uno board using UART serial communication protocol. Arduino program voice_ctrl.ino checks the text received and, if it is a matching string, Arduino controls the movements of the robot accordingly. Voice commands used for controlling the robot and their functions are shown in Table I.

HC-05 Bluetooth module. HC-05 module is an easy-to-use Bluetooth Serial Port Protocol (SPP) module, designed for transparent wireless serial connection setup. Serial port Bluetooth module has a fully-qualified Bluetooth V2.0+EDR (enhanced data rate) 3Mbps modulation with complete 2.4GHz radio transceiver and baseband.
Hardware features. These are:
  • Typical -80dBm sensitivity
  • Up to +4dBm RF transmit power
  • 3.3V to 5V I/O
  • Programmable input/output (PIO) control
  • UART interface with programmable baud rate
  • Integrated antenna
  • Edge connector
Software features. These are:
  • Slave default baud rate: 9600; data bits: 8; stop bit: 1; parity: no parity
  • Auto-connect to the last device on power as default
  • Permits pairing device to connect as default
  • Auto-pairing pin: 1234 as default
Pin description. HC-05 Bluetooth module has six pins, as detailed below.
Enable. When enable is pulled low, the module is disabled. This means the module will not turn on and will fail to communicate. When enable is left open or connected to 3.3V, the module is enabled, that is, it will remain on and communication will also take place.
Vcc. Supply voltage 3.3V to 5V.
Gnd. Ground pin.
Txd and Rxd. These pins act as UART interface for communication.
State. This pin acts as the status indicator. When the module is not connected to or paired with any other Bluetooth device, the signal goes low. At this low state, the onboard LED flashes continuously, which denotes that the module is not paired with another device. When this module is connected to or paired with another Bluetooth device, the signal goes high. At this high state, the onboard LED blinks with a constant delay of, say, two seconds. This indicates that the module is paired.
L293D motor driver. This is a dual H-bridge high-current motor driver IC. It is used here because digital pins of Arduino cannot source enough current to drive the motors of the robotic car. H-bridges are also useful in controlling the direction of rotation of a motor. Enable pins 1 and 9 of the IC, being active high, are connected to 5V. Four output pins of L293D IC are connected to motors M1 and M2 on the receiver side.
Signal logic levels at the different stages of the circuits for proper controlling of the robotic car are given in Table II.
Arduino IDE 1.6.5 is used for programming Arduino in this project. Steps to program Arduino are as follows:
  1. Select the proper COM port and board from Tools menu in the IDE.
  2. Upload source code voice_ctrl.ino to the board.

Construction and testing

An actual-size PCB layout of the receiver circuit is shown in Fig. 6 and its components layout in Fig. 7. A Micromax Q372 Android smartphone with Android Lollipop 5.0 was used to run Voicecontrol app. After successful installation of the app, turn on the Internet connection and Bluetooth of the smartphone.
PCB layout of receiver circuit
Fig. 6: PCB layout of receiver circuit
Fig. 7: Components layout for the PCB

Download PCB and component layout PDFs: click here

Download Source Folder

Power on the receiver circuit and pair Bluetooth module with the smartphone. Default passkey is 1234. After successful pairing, open the installed app in the smartphone and press the pushbutton with Bluetooth text and logo on it. Now, the list of paired devices will appear. Select HC-05 from the list to connect the smartphone with HC-05 Bluetooth module on the receiver side. After successful connection, ‘connected’ will be displayed on the main screen of Voicecontrol app. Press the pushbutton with microphone symbol and a prompt will appear asking for voice commands.
When the prompt appears, voice commands are detected by the app, which converts them into text and sends it to the receiver side wirelessly via Bluetooth. On the receiving side, Arduino checks the text. If it is a matching string, it controls the movements of the robot according to the description given in Table II.

Comments

Popular posts from this blog

Smartphone to Digital Microscope Conversion

Smartphone to Digital Microscope Conversion! By DEVANANDA REDDY The world is an interesting place, but it's fascinating up close.  Through the lens of a microscope you can find details that you would otherwise never notice.  But now you can. This instructable will show you how to build a stand for about $10 that will transform your smartphone into a powerful digital microscope. This DIY conversion stand is more than capable of functioning in an actual laboratory setting. With magnification levels as high as  175x  375x  Edit:  with the addition of a second lens  magnification can be as high as 375x , plant cells and their nuclei are easily observed!  In addition to allowing the observation of cells, this setup also produces stunning macro photography. The photos in this instructable were taken with an iPhone 4S. Watch the video below for a quick overview of the project! Step 1: Materials an...

MINI TELSA COIL (WIRELESS ENERGY TRANSMISSION)

How to Make a Mini Tesla Coil 9v POWER By  DEVANANDA REDDY How to Make a Mini Tesla Coil 9v Be it an ordinary high school project or a mind blowing arcing project, a  Tesla Coil  is always fun to build and will definitely make your project look cool and attractive.  A Tesla Coil is a simple coil that creates a high voltage electric field in the air when a small input power (9V) is provided, this electric filed is strong enough to glow small light bulbs. This principle was invented by the  Nicola Tesla , who also holds the credit for inventing Induction Motors, AC current, neon bulbs, Remote controls etc.. This  Mini Tesla Coil Circuit  is very simple and just works with a help of 9V battery and very few commonly available electronic components, which makes it is very easy to build (fingers crossed). There are a handful number of people who have tried this project already and have failed to obtain the result;...

SELF DRIVING CAR USING AURDINO

SELF DRIVING CAR USING AURDINO By DEVANANDA REDDY Here i'm going to instruct you about making an Obstacle Avoiding Robot based on Arduino. I hope to do step by step guide on making this robot in very easy way. An obstacle avoiding robot is a fully autonomous robot which can be able to avoid any obstacle which it face when it move. Simply, when it met an obstacle while it moving forward, automatically stop moving forward and makes a step back. Then it looks it's two sides left & right and starts to move the best possible way; which means either in left direction if there is another obstacle in right or in right direction if there is another obstacle in left side. The obstacle avoiding robot is very helpful and it is the base of many large projects such as Automatic cars, robots used in Manufacturing factories, even in robots used in spacecrafts. Tip Question Comment Teacher Notes Teachers! Did you use this instructable in your classroom? Add...