Project Title: Tilt Control Car – A Gesture-Controlled Vehicle
Team Members: Alexander Lindquist, Steven Pang
Course: ECE 414 – Embedded Systems
Project Overview
This project involved the design and construction of a car fully controlled by hand motions. Building upon traditional remote-controlled vehicles, this system enhances the user experience by integrating intuitive gesture-based control for both speed and direction, real-time feedback on a handheld screen, and robust wireless communication.
Key Features & Objectives
The system was designed to meet the following functional requirements:
-
Gesture-Based Speed Control: The car’s speed is controlled by the forward/backward tilt angle of the hand, with a 45-degree tilt resulting in half speed.
-
Gesture-Based Directional Control: The car’s turning radius is controlled by the left/right tilt angle of the hand, with a 30-degree tilt for a slight turn and a 60-degree tilt for a sharp turn.
-
Real-Time LCD Feedback: A screen on the hand controller displays the current speed and direction.
-
Wireless Communication: Bluetooth Low Energy (BLE) provides the communication link between the hand controller and the car.
-
Safety and Error Handling: The system includes an emergency stop feature activated by flipping the hand palm-up (an 80-degree tilt) and logic to smoothly decelerate before changing direction.
-
Turning In Place: The car can spin on the spot by applying a high tilt-angle, which drives the left and right wheels in opposite directions.
Technical Implementation
System Architecture:
The project consists of two main subsystems:
-
Hand Controller: A handheld unit containing the sensors and display.
-
Car: The vehicle receiving commands and driving the motors.
Hardware Core:
-
Microcontrollers: Two Raspberry Pi Pico boards (one in the controller, one in the car).
-
Sensors: An accelerometer and gyroscope to detect hand tilt.
-
Communication: HC-05 Bluetooth modules for BLE communication.
-
Actuation: Two DC motors controlled via H-Bridge motor drivers for differential steering.
-
User Interface: An LCD touchscreen for displaying status information.
Software & Framework:
-
Framework: Arduino
-
Key Functionality:
-
The software on the hand controller reads tilt data from the accelerometer/gyroscope.
-
This data is processed and converted into speed and direction commands.
-
Commands are sent via BLE to the car’s microcontroller.
-
The car’s microcontroller generates corresponding PWM signals for the motor drivers to control speed and steering.
-
Challenges & Adaptations
The team successfully overcame several significant challenges during the project:
-
Hardware Failures: Three Raspberry Pi Pico boards were damaged due to incorrect high-voltage connections from the battery, underscoring the importance of proper power management.
-
Mechanical Design: The car chassis was 3D-printed three times to achieve a functional and durable design.
-
Software Libraries: Implementing the gyroscope and accelerometer in C proved difficult without library support, leading to the adoption of the Arduino framework to streamline development.
-
System Responsiveness: Initial turning was slow; this was resolved by increasing the software update rate to improve the system’s reaction time.
Results & Demonstration
The project successfully passed all validation tests, including:
-
Responsive forward/backward movement controlled by hand tilt.
-
Accurate and proportional left/right turning, including the ability to turn in place.
-
Real-time updating of the status on the LCD screen.
-
Reliable Bluetooth communication with a response time under 200ms.
-
Successful activation of the emergency stop feature.
The final system demonstrates a robust and intuitive gesture-controlled vehicle that reacts smoothly to user input.
Conclusion & Future Work
This project provided comprehensive hands-on experience in embedded systems, integrating sensor data acquisition, wireless communication, motor control, and user interface design. Despite challenges with hardware integration and software development, the team delivered a fully functional tilt-control car that met all specified requirements.
The project required approximately 40 hours of work per team member and was completed within the $500 budget constraint.
