Slimme Handgebaar‑Rollstoel voor Mensen met een Beperking
Onderdelen en benodigdheden
| Onderdeel | Aantal |
|---|---|
| Arduino Nano R3 | 2 |
| nRF24 Module (generiek) | 2 |
| SparkFun Dual H‑Bridge Motor Driver L298 | 1 |
| Jumper wires (generiek) | 1 set |
| DC Motor 12V | 2 |
Benodigde gereedschappen
- Soldeerbout
- Lijmpistool
Apps en online services
- Arduino IDE
Over dit project
Project documentatie (Google Drive)
- Het percentage mensen met een beperking neemt toe in zowel landelijke als stedelijke gebieden in India. Beperking kan aangeboren zijn of het gevolg van medische/ongevallen.
- Doel: een handgebaar‑gestuurde rolstoel met een accelerometer als sensor, zodat mensen met een lichamelijke beperking kunnen navigeren door alleen handbewegingen te maken.
- Vele mensen in India lijden aan paralyse van de onderhelft. Deze rolstoel vergemakkelijkt hun mobiliteit en comfort.
Code
Zender Code (Transmitter – op handband/handgebaar module)
#include <SPI.h> // SPI library voor nRF24L01+
#include "RF24.h" // Hoofdlibrary nRF24L01+
#include "Wire.h" // I2C communicatie
#include "I2Cdev.h" // Communicatie met MPU6050
#include "MPU6050.h" // Hoofdlibrary MPU6050
MPU6050 mpu;
int16_t ax, ay, az;
int16_t gx, gy, gz;
int data[2];
RF24 radio(9, 10);
const uint64_t pipe = 0xE8E8F0F0E1LL;
void setup(void) {
Serial.begin(9600);
Wire.begin();
mpu.initialize(); // Initialiseer MPU6050
radio.begin(); // Start nRF24 communicatie
radio.openWritingPipe(pipe); // Stel ontvanger adres in
}
void loop(void) {
mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
data[0] = map(ax, -17000, 17000, 300, 400); // X‑as data
data[1] = map(ay, -17000, 17000, 100, 200); // Y‑as data
radio.write(data, sizeof(data));
}
Ontvanger Code (Receiver – op rolstoel)
#include <nRF24L01.h>
#include <printf.h>
#include <RF24.h>
#include <RF24_config.h>
#include <SPI.h>
#include "RF24.h"
const int enbA = 3;
const int enbB = 5;
const int IN1 = 2; // Rechter motor (-)
const int IN2 = 4; // Rechter motor (+)
const int IN3 = 7; // Linker motor (+)
const int IN4 = 6; // Linker motor (-)
int RightSpd = 130;
int LeftSpd = 130;
int data[2];
RF24 radio(9, 10);
const uint64_t pipe = 0xE8E8F0F0E1LL;
void setup() {
pinMode(enbA, OUTPUT);
pinMode(enbB, OUTPUT);
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
Serial.begin(9600);
radio.begin();
radio.openReadingPipe(1, pipe);
radio.startListening();
}
void loop() {
if (radio.available()) {
radio.read(data, sizeof(data));
// Vooruit
if (data[0] > 380) {
analogWrite(enbA, RightSpd);
analogWrite(enbB, LeftSpd);
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
}
// Achteruit
if (data[0] < 310) {
analogWrite(enbA, RightSpd);
analogWrite(enbB, LeftSpd);
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
}
// Links
if (data[1] > 180) {
analogWrite(enbA, RightSpd);
analogWrite(enbB, LeftSpd);
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
}
// Rechts
if (data[1] < 110) {
analogWrite(enbA, RightSpd);
analogWrite(enbB, LeftSpd);
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
}
// Stop (neutrale zone)
if (data[0] > 330 && data[0] < 360 && data[1] > 130 && data[1] < 160) {
analogWrite(enbA, 0);
analogWrite(enbB, 0);
}
}
}
Schema's
Productieproces
- DIY Arduino Luchtbevochtiger Controller met Relais – Veilige Hoogspanningsopstelling
- Een Arduino LED besturen met Cortana via Bluetooth op Windows 10
- DIY Mensen-Volgende Robot met Arduino UNO en Motor Shield
- Omnidirectionele Robot voor Veilige Mensenvolging
- Automatische Keyer voor Radiopeiling – Precisie, Gemak en Betrouwbaarheid
- Precieze Stappenmotorcontrole: 28BYJ-48 met Arduino UNO & Joystick
- Slim Indoor Navigatie Robot Kit voor Arduino Projecten
- Geavanceerde Motor Besturingsschakelingen: Latching, Stop, en Tijdvertraging Technieken
- Nieuwe Brain-Computer Interface Laat Gelamde Gebruikers Tabletapparaten Besturen Met Gedachten
- Renesas lanceert RX66T 32‑bit MCU-familie: motorprestaties verhoogd met factor 2,5
- Renezas lanceert RX72T microcontrollers voor geavanceerde servo-controle in industriële robots