Cadeira de Rodas Inteligente Controlada por Gestos de Mão para Pessoas com Deficiência
Componentes e Materiais
| Componente | Quantidade |
|---|---|
| Arduino Nano R3 | 2 |
| Módulo nRF24 (Genérico) | 2 |
| Driver de Motor Dual H-Bridge L298 (SparkFun) | 1 |
| Fios Jumpers (genéricos) | 1 conjunto |
| Motor DC 12V | 2 |
Ferramentas Necessárias
- Ferro de Solda
- Pistola de Cola Quente
Aplicativos e Serviços Online
- Arduino IDE
Sobre o Projeto

- A porcentagem de pessoas com deficiência aumentou tanto em áreas rurais quanto urbanas na Índia. A deficiência pode ser congênita ou devido a razões médicas/acidentais.
- O objetivo deste projeto é criar uma cadeira de rodas controlada por gestos de mão usando um acelerômetro como sensor, para ajudar pessoas fisicamente deficientes a se moverem de um lugar para outro apenas dando direção com a mão.
- Hoje na Índia muitas pessoas sofrem de deficiência, há pessoas cuja metade inferior do corpo está paralisada. Esta cadeira de rodas trará conforto e tornará a vida um pouco mais fácil.
Código
Código do Transmissor (Arduino)
#include <SPI.h> // Biblioteca SPI para comunicar com nRF24L01+
#include "RF24.h" // Biblioteca principal do nRF24L01+
#include "Wire.h" // Para comunicação I2C
#include "I2Cdev.h" // Para comunicar com MPU6050
#include "MPU6050.h" // Biblioteca principal do 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(); // Inicializa objeto MPU
radio.begin(); // Inicia comunicação nRF24
radio.openWritingPipe(pipe); // Define endereço do receptor
}
void loop(void){
mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
data[0] = map(ax, -17000, 17000, 300, 400); // Envia dados eixo X
data[1] = map(ay, -17000, 17000, 100, 200); // Envia dados eixo Y
radio.write(data, sizeof(data));
}
Código do Receptor (Arduino)
#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; // Motor Direito (-)
const int IN2 = 4; // Motor Direito (+)
const int IN3 = 7; // Motor Esquerdo (+)
const int IN4 = 6; // Motor Esquerdo (-)
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){ // frente
analogWrite(enbA, RightSpd);
analogWrite(enbB, LeftSpd);
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
}
if(data[0] < 310){ // ré
analogWrite(enbA, RightSpd);
analogWrite(enbB, LeftSpd);
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
}
if(data[1] > 180){ // esquerda
analogWrite(enbA, RightSpd);
analogWrite(enbB, LeftSpd);
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
}
if(data[1] < 110){ // direita
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){ // parar
analogWrite(enbA, 0);
analogWrite(enbB, 0);
}
}
}
Esquemáticos
Processo de manufatura
- Circuitos Avançados de Controle de Motor: Travamento, Parada e Técnicas de Atraso de Tempo
- Renesas Lança Família RX66T MCU 32-bit, Aumentando Performance de Controle de Motor em 2,5x
- Renesas Lança Microcontroladores RX72T para Controle Avançado de Servo em Robôs Industriais
- Nova Interface Cérebro-Computador Permite Usuários Paralizados Controlarem Tablets com o Pensamento
- Controlador de Umidificador DIY com Arduino e Relé – Configuração Segura de Alta Tensão
- Controle de LED Arduino com Cortana via Bluetooth no Windows 10
- Robô Seguidor de Pessoas DIY com Arduino UNO e Motor Shield
- Robô Omnidirecional Projetado para Rastreamento Seguro de Pessoas
- Chaveador Automático para Radiodireção – Precisão, Facilidade e Confiabilidade
- Kit de Robô de Navegação Interna Inteligente para Projetos Arduino