• Persentase penyandang disabilitas telah meningkat di bagian pedesaan dan perkotaan di India. Cacat bisa karena lahir atau karena beberapa alasan medis atau kecelakaan.
•Tujuan dari proyek ini adalah untuk membuat kursi roda yang dikendalikan dengan gerakan tangan dan menggunakan Accelerometer sebagai sensor untuk membantu para penyandang disabilitas dalam berpindah dari satu tempat ke tempat lain hanya dengan memberikan arahan dari tangan
•Saat ini di India banyak orang yang menderita disabilitas, ada orang yang bagian bawah tubuhnya lumpuh. Kursi Roda ini akan menambah kenyamanan dan membuat hidup orang sedikit lebih mudah
Kode
- Kode pemancar
- Kode Penerima
Kode pemancarArduino
#include //library SPI untuk berkomunikasi dengan nRF24L01+#include "RF24.h" //Library utama nRF24L01+#include "Wire.h" //Untuk berkomunikasi#include "I2Cdev. h" //Untuk berkomunikasi dengan MPU6050#include "MPU6050.h" //Library utama MPU6050MPU6050 mpu;int16_t ax, ay, az;int16_t gx, gy, gz;int data[2];RF24 radio(9, 10); const uint64_t pipa =0xE8E8F0F0E1LL;pengaturan batal(batal){ Serial.begin(9600); Kawat.mulai(); mpu.initialize(); //Inisialisasi objek MPU radio.begin(); //Mulai radio komunikasi nRF24.openWritingPipe(pipa); //Menyetel alamat penerima yang akan dikirimi data oleh program.}void loop(void){ mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); data[0] =peta(kapak, -17000, 17000, 300, 400 ); //Kirim data data sumbu X[1] =peta(ay, -17000, 17000, 100, 200); //Kirim data sumbu Y radio.write(data, sizeof(data));}
Kode PenerimaArduino
#include #include #include #include #include //SPI library untuk berkomunikasi dengan nRF24L01+#include " RF24.h" //Perpustakaan utama nRF24L01+const int enbA =3;const int enbB =5;const int IN1 =2; //Motor Kanan (-)const int IN2 =4; //Motor Kanan (+)const int IN3 =7; //Motor Kiri (+)const int IN4 =6; //Motor Kanan (-)int RightSpd =130;int LeftSpd =130;int data[2];RF24 radio(9,10);const uint64_t pipe =0xE8E8F0F0E1LL;void setup(){ //Menentukan pin motor sebagai OUTPUT pinMode(enbA, OUTPUT); pinMode(enbB, OUTPUT); pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT); pinMode(IN3, OUTPUT); pinMode(IN4, OUTPUT); Serial.begin(9600); radio.mulai(); radio.openReadingPipe(1, pipa); radio.startListening(); }void loop(){ if (radio.available()){ radio.read(data, sizeof(data)); if(data[0]> 380){ //teruskan analogWrite(enbA, RightSpd); analogWrite(enbB, LeftSpd); digitalWrite(IN1, TINGGI); digitalWrite(IN2, RENDAH); digitalWrite(IN3, TINGGI); digitalWrite(IN4, RENDAH); } if(data[0] <310){ //backward analogWrite(enbA, RightSpd); analogWrite(enbB, LeftSpd); digitalWrite(IN1, RENDAH); digitalWrite(IN2, TINGGI); digitalWrite(IN3, RENDAH); digitalWrite(IN4, TINGGI); } if(data[1]> 180){ //left analogWrite(enbA, RightSpd); analogWrite(enbB, LeftSpd); digitalWrite(IN1, TINGGI); digitalWrite(IN2, RENDAH); digitalWrite(IN3, RENDAH); digitalWrite(IN4, TINGGI); } if(data[1] <110){ //kanan analogWrite(enbA, RightSpd); analogWrite(enbB, LeftSpd); digitalWrite(IN1, RENDAH); digitalWrite(IN2, TINGGI); digitalWrite(IN3, TINGGI); digitalWrite(IN4, RENDAH); } if(data[0]> 330 &&data[0] <360 &&data[1]> 130 &&data[1] <160){ //stop car analogWrite(enbA, 0); analogWrite(enbB, 0); } }}