• El porcentaje de personas discapacitadas ha aumentado tanto en las zonas rurales como urbanas de la India. La discapacidad puede ser por nacimiento o por alguna razón médica o accidental.
• El objetivo de este proyecto es realizar una silla de ruedas controlada por gestos con la mano y utilizando un acelerómetro como sensor para ayudar a las personas con discapacidad física a moverse de un lugar a otro con solo dar la dirección de la mano
• Hoy en la India muchas personas sufren de discapacidad, hay personas cuya mitad inferior del cuerpo está paralizada. Esta silla de ruedas aumentará la comodidad y facilitará un poco la vida de las personas
Código
- Código del transmisor
- Código del receptor
Código del transmisor Arduino
#include // Biblioteca SPI para comunicarse con el nRF24L01 + # incluye "RF24.h" // La biblioteca principal del nRF24L01 + # incluye "Wire.h" // Para comunicarse # incluye "I2Cdev. h "// Para comunicarse con MPU6050 # incluya" MPU6050.h "// La biblioteca principal de MPU6050MPU6050 mpu; int16_t ax, ay, az; int16_t gx, gy, gz; int data [2]; RF24 radio (9, 10); const uint64_t pipe =0xE8E8F0F0E1LL; configuración vacía (void) {Serial.begin (9600); Wire.begin (); mpu.initialize (); // Inicializa el objeto MPU radio.begin (); // Inicie la comunicación nRF24 radio.openWritingPipe (pipe); // Establece la dirección del receptor al que el programa enviará datos.} Void loop (void) {mpu.getMotion6 (&ax, &ay, &az, &gx, &gy, &gz); datos [0] =mapa (ax, -17000, 17000, 300, 400); // Enviar datos de datos del eje X [1] =mapa (ay, -17000, 17000, 100, 200); // Enviar datos del eje Y radio.write (data, sizeof (data));}
Código del receptor Arduino
#include #include #include #include #include // Biblioteca SPI para comunicarse con nRF24L01 + # include " RF24.h "// La biblioteca principal de nRF24L01 + const int enbA =3; const int enbB =5; const int IN1 =2; // Motor derecho (-) const int IN2 =4; // Motor derecho (+) const int IN3 =7; // Motor izquierdo (+) const int IN4 =6; // Motor derecho (-) int RightSpd =130; int LeftSpd =130; int data [2]; RF24 radio (9,10); const uint64_t pipe =0xE8E8F0F0E1LL; void setup () {// Defina los pines del motor como SALIDA pinMode (enbA, SALIDA); pinMode (enbB, SALIDA); pinMode (IN1, SALIDA); pinMode (IN2, SALIDA); pinMode (IN3, SALIDA); pinMode (IN4, SALIDA); Serial.begin (9600); radio.begin (); radio.openReadingPipe (1, tubería); radio.startListening (); } bucle vacío () {if (radio.available ()) {radio.read (datos, tamaño de (datos)); if (data [0]> 380) {// forward analogWrite (enbA, RightSpd); analogWrite (enbB, LeftSpd); escritura digital (IN1, ALTA); escritura digital (IN2, BAJA); escritura digital (IN3, ALTA); escritura digital (IN4, BAJA); } if (data [0] <310) {// analogWrite hacia atrás (enbA, RightSpd); analogWrite (enbB, LeftSpd); escritura digital (IN1, BAJA); escritura digital (IN2, ALTA); escritura digital (IN3, BAJA); escritura digital (IN4, ALTA); } if (data [1]> 180) {// left analogWrite (enbA, RightSpd); analogWrite (enbB, LeftSpd); escritura digital (IN1, ALTA); escritura digital (IN2, BAJA); escritura digital (IN3, BAJA); escritura digital (IN4, ALTA); } if (data [1] <110) {// right analogWrite (enbA, RightSpd); analogWrite (enbB, LeftSpd); escritura digital (IN1, BAJA); escritura digital (IN2, ALTA); escritura digital (IN3, ALTA); escritura digital (IN4, BAJA); } if (data [0]> 330 &&data [0] <360 &&data [1]> 130 &&data [1] <160) {// stop car analogWrite (enbA, 0); analogWrite (enbB, 0); }}}