This is a Tiva microcontroller based project. As there is a fewer data regarding projects based on Tiva, I as an individual am taking this initiative. I hope the readers will encourage it.
The project named as bluetooth based voice controlled and remote controlled car is a project executed by young electrical engineering students at the University of Engineering and Technology(UET), Lahore, Pakistan. The project is focussed on wireless control of a robot car using voice commands.
In this project, we are going to control the movement of a car with human vocal commands. The idea behind the project was to make it easier for people with disabilities to effectively perform tasks in their daily lives as simple as driving a car. The project is just a basic demonstration of the technology, and will need to be much further developed before it can be put into practice. The main idea is to make a car go forwards and backwards and turn left or right through voice control mechanisms. Moreover, the car has the ability to detect the presence of obstacles and change its path accordingly.
The application used for this is an Android based application. The app is easily available on the internet and there are many other applications like this available on the internet. Voice controlled and bluetooth based android apps can also be made using the Android Studio and other related softwares. You are encouraged to make your own app :)
The app uses the Google Voice service to convert your voice command as into corresponding string which is read using UART(Universal Asynchronous Receiver Transmitter) circuit in the Tiva micro-controller. To study more you can read the datasheet for tiva C series.
The uart receives the string and the code is executed on the micro-controller accordingly.
In our project, we used the pins of the Tiva board as GPIO pins, controlling the operation of the motors through the variation of logic levels on the pins. For the Bluetooth module, the pins were configured for alternate functionality as UART pins. In order to vary the speed of the motors, the pins were configured in the alternate functionality as Timer pins and the PWM mode was used. The speed was controlled by varying the duty cycle of the input clock cycle. For the obstacle avoidance part, the Timer was configured to adjust the frequency and hence, operate the sensor.
Step 1: Hardware and Components
The first step is to gather all the components for this Project. So here are the components you will need:
Car chassis (Four wheel)
Tiva Launchpad (TM4C123H6PM)
Bluetooth Module (HC-06)
Motor Driver (LM298N)
BT Voice Control Application
A) Tiva Launchpad:
The Tiva Launchpad (TM4C123GH6PM) was used as the microcontroller in the project. The microcontroller has a 64 pin package. Out of these 64 pins, 43 pins are available for the purpose of GPIO pins. These GPIO pins are grouped into six ports labelled Port A to Port F. Port A to D are 8 pin ports, while port E is 6 pin and Port F is 5 pin. Each of the pins on these ports can be configured as GPIO. Some of the port pins also have special peripheral functionalities multiplexed along with GPIO functionality and can be configured for that purpose as well.
B) Bluetooth Module (HC-06):
The Bluetooth module is a data transmitting module which transmits data through Bluetooth. It has 4 pins VCC, GND, Rx and Tx. The Rx is connected to the Tx of the Tiva Launchpad and the Tx is connected to the Rx of the Launchpad to enable full duplex communication between the module and the Tiva board.
C) Motor Driver (LM298N):
The Motor Driver is used to drive the motors of the chassis. The Tiva Launchpad has an output capability of 3.3V. The Motor Driver converts this 3.3V to 5V in order to drive the motors. It has a 12V enable pin, a Ground pin, a 5V output and two Output ports for the connection of the motors. There are a total of 4 control pins for the two motor Outputs.
D) BT Voice Control Application:
The BT Voice Control Application is a play store application which converts voice commands into strings which are sent via the Bluetooth Module to the Tiva Launchpad which is programmed to behave accordingly. The use of the application rather than sensors helps minimize distortion and simplifies the process.
E) Ultrasonic Sensor:
The ultrasonic sensor is used for obstacle avoidance in the project. The Tiva Launchpad is programmed such that when the sensors sense an obstacle in the moving path of the car, the car is made to stop.
Step 2: Explanation
The major task in the project was to interface each module with each other so as to build a voice controlled car as a whole. A voice command is sent by the BT Voice Control Application to the Tiva Launchpad via the Bluetooth Module. The Tiva board is connected in turn to the Motor Driver which drives the motors. An ultrasonic sensor is also connected to the Tiva Launchpad and is used for obstacle avoidance. The Port B of the Tiva is configured for the basic timer module, T0 to T3, which is operated in the PWM mode and is responsible for controlling the speed of the motors by varying the duty cycle. The Port C is configured for UART Rx and Tx in order to receive the voice strings via the Bluetooth Terminal. Port D is configured for wide timers in order to set the frequency and operate the ultrasonic sensor used in obstacle avoidance. As a whole, the car is made to go forwards, backwards, left and right through voice commands. It can also be made to stop through a voice command or by placing an obstacle in its forward path. While going right or left, the two sets of wheels are operated in the opposite direction to achieve the desired functionality.
Step 3: Coding
Here are Project codes and the datasheets of the components used.
The project have been coded in Keil Microvision 4. You can download it from the website of Keil 4.
For the details of various lines of codes, you are encouraged to go through the datasheet of tiva micro-controller at http://www.ti.com/lit/gpn/tm4c123gh6pm
Step 4: Conclusion
In this project, a voice controlled car was built whereby the movement of a car was controlled through voice commands. An additional feature of obstacle avoidance was also added to make the car stop as soon as it detects an obstacle in its path. Voice controlled devices have a wide scope of applications in the modern era, specifically to help handicapped people in their day to day lives. The project if further developed has a lot of potential. The voice controlled car is just a basic demonstration of how voice control can be used to drive any motor. Speech Recognition Projects such as this hold due significance in the lives of people with disabilities and hence, can prove to be a milestone in the way of improving their lifestyle.
Step 5: Special Thanks
Special thanks to the members of the group who made this project and provided me the details.
This is Tahir Ul Haq(UET Lahore) Signing Off.
Hope to bring some more for you soon. Till then take care :)