工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

障害者向けスマート・ハンドジェスチャー電動車椅子

部品と材料

部品数量備考
Arduino Nano R32送信側・受信側各1
nRF24L01+ モジュール2無線通信用
SparkFun デュアルHブリッジ・モーター・ドライバー L2981
ジャンパー・ワイヤー1セット
DCモーター 12V2左右駆動用

必要な工具

使用ソフトウェア

プロジェクト概要

詳細資料(Google Drive)

障害者向けスマート・ハンドジェスチャー電動車椅子
完成したハンドジェスチャー制御電動車椅子

コード

送信側スケッチ(手元コントローラー)

#include            // nRF24L01+とのSPI通信用
#include "RF24.h"           // nRF24L01+メイン・ライブラリ
#include "Wire.h"           // I2C通信用
#include "I2Cdev.h"         // MPU6050通信用
#include "MPU6050.h"        // 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();           // MPU6050初期化
  radio.begin();              // nRF24通信開始
  radio.openWritingPipe(pipe); // 受信側アドレス設定
}

void loop(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));
}

受信側スケッチ(車椅子本体)

#include 
#include 
#include 
#include 
#include 
#include "RF24.h"

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, pipe);
  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) {  // 右旋回
      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);
    }
  }
}

回路図

障害者向けスマート・ハンドジェスチャー電動車椅子
送信側(手元コントローラー)配線
障害者向けスマート・ハンドジェスチャー電動車椅子
受信側(車椅子本体)Fritzing回路図
障害者向けスマート・ハンドジェスチャー電動車椅子
受信側実装写真

製造プロセス

  1. DIY Arduino加湿器コントローラー:リレーを用いた安全な高電圧制御
  2. Windows 10 CortanaでBluetooth経由でArduinoのLEDを制御
  3. Arduino UNOとモーターシールドで作る人追従ロボット
  4. 全方向移動ロボットで人物を安全追跡:オムニホイール搭載「ハンターフラッタラーボット」
  5. 無線方向探知用オートマチック・キーヤー – 精度、簡単操作、信頼性
  6. ジョイスティックで精密制御:Arduino UNOと28BYJ-48ステッピングモーター
  7. Arduino向けスマート屋内ナビゲーションロボットキット
  8. 高度なモータ制御回路:ラッチング、停止、タイムディレイ技術
  9. 新脳-コンピュータインターフェースで麻痺患者が思考だけでタブレット操作
  10. ルネサス、RX66T 32ビットMCUファミリを発表 – モータ制御性能を2.5倍向上
  11. Renesas、産業用ロボットの高度サーボ制御向けRX72Tマイクロコントローラーを発表