Arduino Controlled Prosthetic Terminal Device With Adaptive Grip Force Sensor Feedback
Overview This repository contains the code and documentation for my undergraduate dissertation project: a simplified EMG-based control system for robotic arms. The goal was to explore how prosthetic control systems can be made more affordable by reducing complexity while maintaining usability.
Project Aim To design and implement a low-cost control method for robotic/prosthetic arms by processing EMG signals and translating them into servo motor movements, with lockout and cooldown logic for more reliable control.
Contents – Sensor signal reading, lockout logic, and servo control scripts. – Circuit diagrams, block diagrams, and design notes. – Data from servo and sensor tests.
Dissertation Context This project was developed as part of my BEng Electronic Engineering degree at the University of Exeter. The research explores how accessible sensors and simplified control logic can lower the cost of prosthetic devices while still allowing intuitive, real-time control.
Simplified EMG-based control system for robotic arms aimed at reducing the cost of prosthetic devices.
This repository contains Arduino code examples for controlling a prosthetic hand developed as part of the OpenSource Bionics project.
Uses a standard analog potentiometer to control the hand's position smoothly. Turning the potentiometer adjusts the servo angle, simulating finger movement.
Simplified digital control using a button. One press closes the hand, and the next press opens it again. Useful for basic functionality tests or demonstrations.
This version utilizes the AD8232 muscle activity sensor (EMG sensor). The sensor detects muscle contractions from the user’s forearm and translates them into servo movements, mimicking natural hand motion.
This project is licensed under the MIT License. You are free to use, modify, and share the code.
Arduino code for controlling the OpenSource Bionics prosthetic hand. Includes 3 control methods: via potentiometer, button, and AD8232 muscle sensor. All files are open-source and free to use, modify, and improve.
Students act as engineers as they design, build, and test a smart prosthetic grip system using Arduino, a force-sensitive resistor (FSR), and a servo motor. Students construct a prosthetic finger or hand from materials of their choice and program it to move through different angles of motion, modeling how real-world assistive technologies function. As they test their designs, students collect data to investigate how the angle of the prosthetic joint affects the force applied at the fingertip. They use this data to create and analyze a quadratic model, identify the angle that produces maximum grip force, and interpret key features of the function such as the vertex and intercepts. Using their mathematical analysis, students refine and optimize their prosthetic designs to improve performance.
Biomedical engineers and mechanical engineers work together to design and improve prosthetic hands. Biomedical engineers focus on how the prosthetic interacts with the human body by studying anatomy, movement, and user needs to ensure the device is safe, comfortable, and functional. Mechanical engineers design and refine the physical components of the prosthetic, including joints, linkages, and gripping mechanisms, so the hand can move smoothly, apply the right amount of force, and withstand repeated use. By combining knowledge of the human body with principles of mechanics and materials, these engineers continuously test, analyze data, and improve prosthetic designs to better restore hand function and quality of life for users.
This resource focuses on the following Three Dimensional Learning aspects of NGSS:
(Put students into small groups. Give each group an oven mitt, chopsticks, ping pong ball and cracker. Give each student a Notice and Wonder Sheet (PDF) .)
Here’s a quick challenge to start today’s class: I want each group member to try picking up a ping pong ball or a delicate cracker while wearing an oven mitt. (Give groups time for each member to try this.) What did you notice?
Next, I want each group member to try gripping an object using only chopsticks. What made it so difficult to control your grip?
I had you try these simple tasks to highlight the immense challenges faced by individuals who rely on prosthetic limbs every day.
On your Notice and Wonder Sheet (PDF) , I want you to fill out the Notice section. In particular, what did you notice about holding the objects with the oven mitt/chopsticks compared to your bare hand? What observations did you make about how your natural hand works? (Give students a few minutes to fill out the Notice section; potential responses include: "I noticed my natural hand adjusts pressure automatically," "I noticed I couldn't feel the object with the oven mitt," "I noticed the chopsticks were clumsy.")
Now I want you to fill out the Wonder section. Specifically, I want you to think about what questions you wonder about how prosthetic hands work. What do you wonder about how engineers design them to overcome these challenges? (e.g., "I wonder how they make a prosthetic hand feel how hard it's gripping?", "I wonder if prosthetics can pick up something fragile?", "I wonder what sensors they use?")
Now I want you all to share your "Notices" and "Wonders" within your groups, building on each other's ideas. (Give groups time to share their ideas. While they share, create a master "Notices" chart and a "Wonders" chart on the whiteboard or chart paper.)
Okay, let’s summarize what we notice and wonder. (Let students share their ideas. As students share, capture their ideas without judgment. Group similar ideas if possible.)
Looking at our 'Wonders' list, what are some of the key problems engineers try to solve when designing prosthetic hands? Many of your 'Wonders' lead directly to the core of our activity!
Now, it's your turn to make a difference. You are going to become biomedical and mechanical engineers, and your mission is to design and build a smart prosthetic hand that can sense and adapt its grip pressure automatically, just like a natural human hand. You'll use Arduino, a servo motor, and a force sensor to collect real-time data, modeling how grip strength changes with movement. Then, you'll program your prototype to respond intelligently, creating an assistive technology system that mimics real-world feedback and precision. Get ready to apply math, science, and engineering principles to develop a more human-like prosthetic grip capable of handling even the most fragile objects.
This activity demonstrates how engineers use science and mathematics to solve human-centered problems, particularly in prosthetics and robotics. Students explore how adjusting the angle of a joint (input) affects the resulting pressure or force (output), modeling the behavior of smart prosthetic systems. Understanding how force sensors respond to motion integrates physics concepts like force, pressure, and resistance with mathematical tools such as nonlinear functions and data modeling. The servo motor’s role highlights feedback and control systems (key principles in automation) where precision and adaptability are essential. By analyzing real sensor data and applying mathematical reasoning, students learn how engineers iteratively design responsive, data-driven systems in fields such as healthcare, automation, wearable technology, and advanced manufacturing.
Teachers should understand how science, engineering, mathematics, and computer programming intersect in this hands-on STEM activity. At its core, the project simulates the function of smart prosthetic hands—using sensors and motors to mimic human grip control based on real-time data.
Scientifically, students explore how the angle of a prosthetic joint (input) affects the applied pressure or force (output). Pressure is defined as the distribution of force over an area, and in this activity, it’s detected using a force-sensitive resistor (FSR), a sensor whose resistance changes depending on how much pressure is applied. The Arduino microcontroller reads these changes as analog signals, which students use to track how grip pressure varies as the prosthetic finger moves.
A servo motor, acting as a simplified muscle, rotates the prosthetic finger to specific angles. Students either manually adjust these angles or program the servo to sweep through a range. As the finger bends, the FSR at the fingertip detects the pressure being applied, creating a real-time input-output system. This mimics the biological feedback loops in the human body, where sensors such as touch receptors inform motor responses.
Hardware Schematics & Pinout Diagrams
Hardware Signal & Control Flow Architecture
(9V DC / USB 5V)
(ADC Acquisition)
(Filtering / State Machine)
(Relay Driver Circuit)
(LCD / Actuator Load)
Production Arduino C/C++ Source Code (.ino)
[*] Initializing Hardware Core for Arduino Controlled Prosthetic Terminal Device With Adaptive Grip Force Sensor Feedback... [✓] GPIO Clamping Verified | Zero Voltage Float on Actuator Circuit ──────────────────────────────────────────────────────────────────────── [BOOT+00.02s] ADC_INIT Calibrated zero-offset = 12 mV (Clean noise floor) [RUN +01.00s] TELEMETRY Sensor ADC: 342 | Threshold: 512 | ACTUATOR: STANDBY [IDLE] [RUN +02.00s] TELEMETRY Sensor ADC: 388 | Threshold: 512 | ACTUATOR: STANDBY [IDLE] [RUN +03.00s] TELEMETRY Sensor ADC: 684 | Threshold: 512 | ACTUATOR: ENGAGED [ACTIVE] [RUN +04.00s] INTERRUPT Optocoupler PC817 saturated | Actuator Active in 4.2 ms [RUN +05.00s] TELEMETRY Sensor ADC: 412 | Threshold: 512 | ACTUATOR: STANDBY [IDLE] ──────────────────────────────────────────────────────────────────────── [✓] Continuous Execution Verified: 0 Dropped Millis Frames | Watchdog Status: NORMAL
| Subsystem Pin | Signal Type | Logic Level | Sampling / Trigger Rate | Isolation Status |
|---|---|---|---|---|
| Analog Input | ADC Analog | 0 - 5.0V / 3.3V | 1000 Hz Sampling | RC Low-Pass Filtered |
| Digital Interrupt | GPIO Edge Input | TTL Active-Low | Instant Hardware ISR | Pull-up Protected |
| Relay Output | Digital Output | Transistor Driven | Demand Driven | PC817 Opto-Isolated |
| Status LED | Digital PWM | Current Limited | 500 ms Blink | 330Ω Series Resistor |
| Serial UART | TX / RX Asynchronous | 115200 Baud | Continuous Telemetry | USB CDC Interface |