Leap Controlled RC Car
Contents
Proposal
Project Overview
The goal of this project is to create an RC car that is controlled by a Leap Motion pad through hand gestures. The Leap Motion will be connected to a computer and will communicate with an Arduino on the RC car. This communication will most likely occur via a bluetooth dongle. The RC car will be purchased from a kit online and customized as needed.
Team Members
- David D’Agrosa
- Andrew O’Sullivan
- Alden Welsch (TA)
Objectives
The primary objectives of this project involve the construction of an RC car, exploring the capabilities of programming with Arduino, and controlling the RC car via a Leap Motion pad. The RC car is the foundation of our project so finding a suitable kit which can be modified to incorporate an Arduino is the first objective. Building a circuit to connect the Arduino to the RC car will allow us to begin writing code to control the RC car. The final and most difficult objective involves understanding how the Leap Motion pad outputs information, transforming a hand motion into a bluetooth signal, and sending that information to control the RC car. If bluetooth proves to be too difficult of an option, we may pursue simpler ideas with time permitting. If we finish our project early, we will work on a mobile app to control the RC car.
Challenges
Challenges we might encounter include learning how to program in Arduino, taking data in from the Leap Motion pad, communicating wirelessly between a computer and the Arduino, and programming the Leap Motion pad. With minimal experience coding, extra time will need to be devoted to understanding the most accessible language and its functionality.
Budget
- RC car $13.99 (Link)
- We need this component to act as the body of our car. It is a simple kit that includes wheels and motors that can be configured with the Arduino
- We need this component to act as the body of our car. It is a simple kit that includes wheels and motors that can be configured with the Arduino
- Arduino (supplied by class)
- We need this component to be our motor controller and run our code on the car.
- We need this component to be our motor controller and run our code on the car.
- Batteries $9.99 (Link)
- We need batteries to drive the motors and run the Arduino on our RC car
- We need batteries to drive the motors and run the Arduino on our RC car
- Leap Motion $58.99 (Link)
- Leap motion is a fun, new tool that can easily read hand motions and will act as the input to drive our RC car.
- Leap motion is a fun, new tool that can easily read hand motions and will act as the input to drive our RC car.
- Bluetooth dongle $13.99 (Link)
- We need a this component because the computers in our lab do not have Bluetooth built in. We will be communicating with the Bluetooth shield on the RC car via Bluetooth.
- We need a this component because the computers in our lab do not have Bluetooth built in. We will be communicating with the Bluetooth shield on the RC car via Bluetooth.
- Bluetooth Transceiver Module Slave $9.99 (Link)
- This component allows the Arduino to easily receive information from the computer and act based on whatever inputs it receives.
- This component allows the Arduino to easily receive information from the computer and act based on whatever inputs it receives.
- Ardumoto Shield Kit $35.45 (Link)
- The Ardumoto Shield included in this kit is an easy-to-use dual motor controller. This will allow us to control the motors in 2 directions and integrates easily with our Arduino. Additionally, this kit comes with 2 spare wheels, 2 spare motors, 3 screw terminals which are necessary for our Arduino, stackable headers, extra black wire, and a 9V to barrell jack adapter so that our battery can easily configure with the Arduino.
- The Ardumoto Shield included in this kit is an easy-to-use dual motor controller. This will allow us to control the motors in 2 directions and integrates easily with our Arduino. Additionally, this kit comes with 2 spare wheels, 2 spare motors, 3 screw terminals which are necessary for our Arduino, stackable headers, extra black wire, and a 9V to barrell jack adapter so that our battery can easily configure with the Arduino.
- Note: All prices include shipping
Total: $142.40
Gantt Charts
Design and Solutions
Arduino, Ardumoto Shield, and Motors Circuit
Java and Leap Motion
Arduino Code
- Arduino Code was written to take in the data from the bluetooth slave, analyze the data, and send information to the motor controller to move the rover forward.*
- The Arduino 'saw' the bluetooth slave as if it were a Serial Monitor. The Arduino would look at it and take in the available information.*
- The raw data that was displayed by the bluetooth were numbers between:*
- 49 and 52 to signal moving forward with variable speed**
Results
Leap Control
Due to difficulties getting our Bluetooth Module talking with our Java code, we had to be hardwired into the computer in order for our Leap Motion pad to control the car. Initial setup simply involves making sure the COM port specified Once the code is running, it will send a signal to the car every 50ms. If no hand is detected above the Leap Motion module, our Java code outputs "No hand detected". Once a hand is detected it will display the speed that the car is going. A hand flat above the Leap Motion module equals a speed of zero. Tilting the hand downwards increases the speed with three levels of intensity (speed=1, speed=2, speed=3) which are also displayed in our Java code. When the hand is displaced laterally from the Leap Motion module, the direction can be changed. Turning works in unison with the hand tilting so three are three speeds which the car can turn.