Умное кресло‑колясочка с управлением жестами рук для людей с инвалидностью
Компоненты и материалы
| Arduino Nano R3 | × | 2 |
| Модуль nRF24L01+ (generic) | × | 2 |
| Два канала H‑bridge драйвер двигателей L298 (SparkFun) | × | 1 |
| Перемычки | × | 1 |
| DC‑двигатели 12 В | × | 2 |
Инструменты
- Паяльник
- Клейкий пистолет
Программное обеспечение
- Arduino IDE
О проекте
Дополнительные материалы (Google Drive)

- Процент инвалидов растёт в городах и селах Индии. Причины: врожденные, медицинские, бытовые травмы.
- Цель — создать коляску с управлением жестами руки через акселерометр, чтобы люди с параличом нижней части тела могли перемещаться самостоятельно.
- Многие в Индии страдают параличом нижних конечностей. Эта коляска добавит комфорта и облегчит жизнь.
Код
Передатчик (Transmitter)
#include <SPI.h>
#include "RF24.h"
#include "Wire.h"
#include "I2Cdev.h"
#include "MPU6050.h"
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();
radio.begin();
radio.openWritingPipe(pipe);
}
void loop(void){
mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
data[0] = map(ax, -17000, 17000, 300, 400); // X axis
data[1] = map(ay, -17000, 17000, 100, 200); // Y axis
radio.write(data, sizeof(data));
}
Приёмник (Receiver)
#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; // Right Motor (-)
const int IN2 = 4; // Right Motor (+)
const int IN3 = 7; // Left Motor (+)
const int IN4 = 6; // Left 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));
if(data[0] > 380){ // forward
analogWrite(enbA, RightSpd);
analogWrite(enbB, LeftSpd);
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
}
if(data[0] < 310){ // backward
analogWrite(enbA, RightSpd);
analogWrite(enbB, LeftSpd);
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
}
if(data[1] > 180){ // left
analogWrite(enbA, RightSpd);
analogWrite(enbB, LeftSpd);
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
}
if(data[1] < 110){ // right
analogWrite(enbA, RightSpd);
analogWrite(enbB, LeftSpd);
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
}
if(data[0] > 330 && data[0] < 360 && data[1] > 130 && data[1] < 160){ // stop
analogWrite(enbA, 0);
analogWrite(enbB, 0);
}
}
}
Схемы



Производственный процесс
- Продвинутые схемы управления двигателями: защёлкивание, стоп и задержка времени
- Renesas представляет семейство 32-битных МК RX66T, повышающее производительность управления двигателями в 2,5 раза
- Renesas запускает RX72T микроконтроллеры для передовых серво-приводов в промышленных роботах
- Новый мозг-компьютерный интерфейс позволяет парализованным пользователям управлять планшетами мыслью
- DIY-контроллер увлажнителя на Arduino с реле: безопасная работа с высоким напряжением
- Управление светодиодом Arduino через Cortana по Bluetooth в Windows 10
- DIY робот-следопыт на Arduino UNO и Motor Shield
- Омни-робот для безопасного слежения за человеком: распознавание лиц на Ci20 + OpenCV
- Автоматический ключ для радиолокации — точность, простота и надежность
- Набор для создания робота с умной внутренней навигацией на базе Arduino