🤚 Gesture-Controlled Drone
Pilot a quadcopter with your hand using flex sensors and an MPU6050.
Overview
Ditch the joysticks. Build a wearable glove that reads your hand's tilt (roll/pitch) and finger curls (throttle/yaw) to wirelessly transmit control signals to a drone.
What you'll learn: NRF24L01 radio protocols, analog mapping for flex sensors, and building custom wearable electronics.
Estimated time: 6-8 hours. Difficulty: ⭐⭐⭐⭐⭐ Expert.
Components Needed
| Component | Specification | Qty | Notes |
|---|---|---|---|
| Arduino Nano | x2 | 2 | Transmitter & Receiver |
| NRF24L01+ | 2.4GHz Transceiver | 2 | With antenna |
| MPU6050 | IMU | 1 | For glove tilt |
| Flex Sensors | 2.2 inch | 2 | For index/middle finger |
| Drone Kit | Compatible receiver | 1 |
Step-by-Step Tutorial
1
Sew the Glove
Carefully sew the flex sensors to the fingers of a tight glove. Mount the IMU and Nano on the back of the hand.
2
Read the Glove
Map the IMU pitch/roll to drone pitch/roll (-45 to +45 deg). Map the flex sensor analog values to throttle (0-100%).
3
Radio Transmission
Pack the 4 control values (Throttle, Yaw, Pitch, Roll) into a struct and transmit it via the NRF24L01.
4
Drone Receiver
The second Arduino receives the struct and generates a PPM (Pulse Position Modulation) signal that the drone's flight controller understands.
The NRF24L01 is highly sensitive to power supply noise. Always solder a 10uF or 100uF capacitor directly across its VCC and GND pins.
Code / Configuration
gesture_glove.ino
INO
// Gesture Transmitter (Snippet)
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
RF24 radio(9, 10); // CE, CSN
const byte address[6] = "00001";
struct DataPacket {
byte throttle;
byte yaw;
byte pitch;
byte roll;
} data;
void setup() {
radio.begin();
radio.openWritingPipe(address);
radio.setPALevel(RF24_PA_MAX);
radio.stopListening();
}
void loop() {
// Read flex sensor for throttle
int flexVal = analogRead(A0);Reviews & Ratings
—0 reviews
Sign in to leave a review
Loading reviews...