Introduction: Motion Controlled Car

By: Franklin Payne, Colin Des Roches & Collin Hawes

Link to Full Video of Project in Action

(Would not allow publishing with this video source on cover, so click link to see video)

Problem Statement: Many people with physical disabilities including a lack of limbs or fingers are unable to enjoy everyday products such as RC cars.

How it Works: This remotely controlled car uses a combination of programmable NodeMCUs and motion/displacement sensors in order to be controlled by an action as simple as moving your arm. Simply put on the wrist band (which holds one Node as well as an accelerometer to sense movement), turn both the controller and the car on and move your arm in certain specified directions to control the motion of the car. This product works through a simple interface between the Node on the controller and the Node on the car. The two Nodes connect to one another through a network, which allows the car's Node to read data coming from the accelerometer on you arm and translate that data into real physical motion.

Project Documentation:

Link to Overall Project Documentation/Process


Accelerometer- $5.00

Purchase Accelerometer

Wristband- $5.00

Purchase Wristband

Adhesive Strips- $5.00

Purchase Adhesive Strips

2 Full Battery Packs- $10.00

Purchase Battery Packs

2 Node MCUs- $2.99 each

Purchase NodeMCUs

Laser-Cut Acrylic Rectangle- $10.00 (Cost for full set of acrylic material)

Purchase Acrylic Material

4 Motors- $1.95 Each

Purchase Motors

4 Wheels- $2.57 Each

Purchase Wheels

Final Code Documentation/Explanation:

Link to Code/Explanation of Code

Step 1: Laser Cut and Construct Arm Band Controller Base

The first step of this project involves creating the controller that will interface with the car. Simply laser cut a 5x2 inch rectangular body to hold each component (accelerometer, battery pack and NodeMCU), and hot glue this to a wristband.

Step 2: Assemble and Wire Controller Components Together

Once the Base of the controller is set up, you must hot glue each component onto the laser cut board (components include accelerometer, battery pack and NodeMCU). Then, wire these three components together on the wrist band.

Step 3: Assemble Controller Outer Body

For this step, you can simply use cardboard to cover the components of the arm band controller in a way that looks presentable and useable. Simply cut out a 3x6 inch piece of cardboard and cut out 1/2 a square inch out of each corner of cardboard. Then fold the cardboard over on each side and glue all four sides to the outer edge of the laser cut base of the controller (we covered the cardboard in duct tape simply for aesthetic purposes).

Step 4: Construct and Wire Vehicle Components

Once you have your vehicle components acquired (wires, wheels, motors, pre-made vehicle body, NodeMCU, battery pack and breadboard), you can assemble your vehicle. Attach the DC motors to the body and then attach the four wheels to the car. After that, hot glue the other components to the body and wire together the motors with the Node and the battery pack.

Step 5: Create Program to Allow Two Nodes to Communicate Through a Network

The first major part of the programming for this project involves creating a network from which the two Nodes can communicate with each other and read data coming from the other Node (a more in-depth description of this code can be found in the link on the home page).

Step 6: To Your Program, Add Function Which Reads Data From Controller and Moves the Vehicle

The second major part of this code requires you to program a way for the node on the vehicle to read data coming from the accelerometer hooked up to the Node on the controller and translate this data into motions that the car can actually make (again, a more in-depth description available from the link on the home page).

Step 7: Test Product

Link to Final Product Test

Once the code is interfacing properly, and the controller and vehicle are set up and ready to go, simply turn both NodeMCUs on, and begin using the controller through certain, specified movements (forward arm thrust = forward; left arm swing = left; right arm swing = right; pull arm back = stop). The accelerometer data must be noted and tweaked to find out which movements makes the data read in a way that will make the car do what you want (essentially if you need to tweak the accelerometer code, it should now be rather simple to do so).