身体障害者用ハンドジェスチャーコントロール車椅子
コンポーネントと消耗品
> | | × | 2 | |
| | × | 2 | |
| SparkFunデュアルHブリッジモータードライバーL298 | | × | 1 | |
| | × | 1 | |
| | × | 2 | |
アプリとオンラインサービス
> | | |
このプロジェクトについて
https://drive.google.com/open?id=1RNI2ehaknWPN0lPpKm8wv95DUVcTr8H6
<図>
•障害者の割合は、インドの農村部と都市部の両方で増加しています。障害は、出生によるものか、何らかの医学的または偶発的な理由によるものである可能性があります。
•このプロジェクトの目的は、手振りで制御される車椅子を作成し、加速度計をセンサーとして使用して、身体障害者が手から指示を与えるだけで、ある場所から別の場所に移動できるようにすることです。
•今日、インドでは多くの人が障害に苦しんでおり、下半身が麻痺している人もいます。この車椅子は快適さを増し、人々の生活を少し楽にします
コード
送信機コード Arduino
#include // nRF24L01 +#include "RF24.h"と通信するためのSPIライブラリ// nRF24L01 +#include "Wire.h"のメインライブラリ// communication#include "I2Cdev用。 h "// MPU6050との通信用#include" MPU6050.h "// MPU6050MPU6050のメインライブラリ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(); // MPUオブジェクトを初期化しますradio.begin(); // nRF24通信を開始しますradio.openWritingPipe(pipe); //プログラムがデータを送信する受信者のアドレスを設定します。} voidloop(void){mpu.getMotion6(&ax、&ay、&az、&gx、&gy、&gz); data [0] =map(ax、-17000、17000、300、400); // X軸データを送信data [1] =map(ay、-17000、17000、100、200); // Y軸データを送信radio.write(data、sizeof(data));}
受信機コード Arduino
#include #include #include #include #include // nRF24L01 +#includeと通信するためのSPIライブラリRF24.h "// nRF24L01 + const int enbA =3; const int enbB =5; const int IN1 =2;のメインライブラリ//右モーター(-)const int IN2 =4; //右モーター(+)const int IN3 =7; //左モーター(+)const int IN4 =6; //右モーター(-)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、パイプ); radio.startListening(); } void loop(){if(radio.available()){radio.read(data、sizeof(data)); if(data [0]> 380){//転送analogWrite(enbA、RightSpd); analogWrite(enbB、LeftSpd); digitalWrite(IN1、HIGH); digitalWrite(IN2、LOW); digitalWrite(IN3、HIGH); digitalWrite(IN4、LOW); } if(data [0] <310){//後方analogWrite(enbA、RightSpd); analogWrite(enbB、LeftSpd); digitalWrite(IN1、LOW); digitalWrite(IN2、HIGH); digitalWrite(IN3、LOW); digitalWrite(IN4、HIGH); } if(data [1]> 180){//左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){//車の停止analogWrite(enbA、0); analogWrite(enbB、0); }}}