This project demonstrates the use of NRF24L01 modules to control a robotic hand β with flex sensors. The transmitter reads data from flex sensors attached to a glove π§€, and the data is wirelessly sent to the receiver. The receiver interprets the data and moves the servos on a robotic hand accordingly.
- Project Overview
- Features
- Materials
- Schematics
- 3D Model
- Setup
- Code
- Testing
- Future Improvements
- Acknowledgments
- License
The project aims to create a responsive robotic hand that mirrors the flexion of a human hand wearing a glove outfitted with flex sensors. Using NRF24L01 modules, the transmitter reads flex sensor data and sends it to the receiver, which in turn actuates servos on the robotic hand to match the movement.
- Wireless communication between the transmitter and receiver π‘
- Control servos based on flex sensor data π§
- Simple calibration for flex sensors π
- Expandable to add more sensors or functionalities β
- 2 x Arduino boards (Uno or Mega recommended) Amazon
- NRF24L01+ wireless modules (2) Amazon
- 5 x Flex sensors Amazon
- 5 x Servo motors MG996R Amazon
- Robotic hand structure (Viral Science YouTube Channel) Viral Science
- 10k Ohm resistors (for flex sensors) Amazon
- Batteries: LiPo (7.4V), NiMH (7.2V), or AA (rechargeable) batteries recommended. Amazon
- Fish wire (for assembling the fingers to the motors) Amazon
- Glue gun (for securing components) Amazon
- Wires and connectors Amazon
- The transmitter board reads data from five flex sensors connected to analog input pins.
- Pins Used:
- A1 - A5: Flex sensors
- 9 & 10: NRF24L01 module
- The receiver controls five servos using the data received from the NRF24L01 module.
- Pins Used:
- 2 - 6: Servos
- 9 & 10: NRF24L01 module
The 3D model used for the robotic hand was sourced from Viral Science YouTube Channel. You can download the model and print it on a 3D printer. Ensure it has sufficient flexibility for testing the servos and mounting the hardware.
-
Upload Code:
- Use the
transmitter.ino
code on the Arduino board connected to the flex sensors. - Use the
receiver.ino
code on the Arduino board controlling the servos.
- Use the
-
Connect NRF24L01 Modules:
- Wire up the NRF24L01+ modules according to the schematics mentioned above.
- Power the modules using the 3.3V pin (not 5V as the NRF24L01 module is sensitive to higher voltages).
-
Assemble the Robotic Hand:
- Attach the servos to the 3D printed parts as per the modelβs instructions.
- Mount the servos and run the flex sensor wires to the transmitter module.
- Use fish wire to connect the fingers to the motors for movement.
- Secure components with a glue gun as necessary.
-
Calibrate Flex Sensors:
- Use the
map()
function in thetransmitter.ino
code to adjust the range of flex sensor values. - Test the sensor readings in the Serial Monitor to ensure the values are correct.
- Use the
This repository contains the following files:
transmitter.ino
: Code for reading flex sensor data and transmitting it via NRF24L01.receiver.ino
: Code for receiving flex sensor data and controlling the servos.test_sensors.ino
: Code for testing sensor values and printing them to the Serial Monitor.
Below is a quick demonstration of the robotic hand in action.
- Add more advanced control algorithms for smoother servo movements.
- Use better-quality servos for a more lifelike hand movement.
- Implement haptic feedback on the glove to feel the robotic hand's grip.
- Improve range and reliability of the NRF24L01 modules by adding external antennas.
This project was made possible by:
- Viral Science for providing the 3D model of the robotic hand.
- The open-source community for developing libraries such as
RF24
andServo
.
This project is open-source under the MIT license. Feel free to contribute and share your improvements!