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

IntelCurieによるモーションセンシティブな回路制御

コンポーネントと消耗品

>
Arduino 101
× 1

このプロジェクトについて

目標

  • 足音が検出されると、ライトが自動的にオン(およびオフ)になります
  • ライトの点滅を、検出された近くのダンス/タッピングのテンポと同期させます
  • 地震イベントを検出するために、USB / Bluetoothを介して加速度計/ジャイロスコープの読み取り値を出力します

GitHubリポジトリ

https://github.com/ckuzma/arduino-101-sketches

スケッチ

TapFlashTest

  #include "CurieIMU.h" void setup(){pinMode(LED_BUILTIN、OUTPUT); CurieIMU.begin(); CurieIMU.attachInterrupt(eventCallback); CurieIMU.setDetectionThreshold(CURIE_IMU_SHOCK、1050); // 1.050g =1050mg CurieIMU.setDetectionDuration(CURIE_IMU_SHOCK、75); // 75ms CurieIMU.interrupts(CURIE_IMU_SHOCK); } void loop(){//メインループに何も入れる必要はありません...} static void eventCallback(void){if(CurieIMU.getInterruptStatus(CURIE_IMU_SHOCK)){digitalWrite(LED_BUILTIN、HIGH); delay(50); digitalWrite(LED_BUILTIN、LOW); }}  
  • タップが検出されるとオンボードLEDが点滅します
  • インパルス検出の変更を把握するために使用されます

TapBeatMatch

<図>
  • オンボードLEDの点滅を、Arduino101の近くの卓上表面をタップするテンポに同期させます
  • ノイズを軽減するために加重平均を実装
  • 調整可能な衝撃検出しきい値

SeismicReader + Python視覚化スクリプト

<図> <図>
  • Arduino 101ボードは、JSON形式の加速度計とジャイロスコープの値をシリアル経由で出力します。シリアルは接続されたコンピューターによって読み取られます
  • ボードからデータを読み取り、ターミナル/コマンドプロンプトの非常に単純な線にグラフ化する小さなPythonスクリプトを作成しました
  • Excelで開いてグラフ化できるCSVに結果を保存します
  • マルチプラットフォームPython2.x / 3.xの使用法:

VibrationLighting

<図> <図>
  • 元々、誰かが近くにいるときに足音の接近を検出して照明をアクティブにするように設計されていましたが、信号対雑音比が私のインストールでは十分にクリーンでなかったため、ダブルタップ検出に縮小されました。
  • 玄関ミラーの下にテープで留められたLEDストリップは、ミラーが2回続けてノックオンされるとオンとオフになります

ボーナス

Bogdanとの会話により、Arduinoスケッチを変更して、ほぼすべてのArduinoデバイスに接続されたスタンドアロンの加速度計とジャイロスコープセンサーを操作し、 CurieGraph.py を使用するのは非常に簡単であることがわかりました。 データを視覚化します。地震の測定値を収集する目的は、複雑な機器や特殊な機器を使用せずに大量のデータをクラウドソーシングできることを証明することであると考え、机の中で「ITG-MTU」/「GY-521」/「MPU-6050」を探しました。センサーボード、そしてそれのために次のスケッチを書きました。 CurieGraph.pyは数回起動に失敗する可能性がありますが、通常は3回目の試行で適切にキャッチされます。

外部ジャイロスコープ

<図>
  #include  const int MPU_addr =0x68; // ITGのI2Cアドレス-MTUint ax、ay、az、temp、gx、gy、gz; void setup(){Serial.begin(9600); Wire.begin(); Wire.beginTransmission(MPU_addr); Wire.write(0x6B); Wire.write(0); Wire.endTransmission(true); } String jsonEncodeValue(String key、float keyVal){return "\" "+ key +" \ ":" + String(keyVal)+ ""; } String assembleJson(String keysAndVals){return "{" + keysAndVals + "}"; } void loop(){Wire.beginTransmission(MPU_addr); Wire.write(0x3B); Wire.endTransmission(false); Wire.requestFrom(MPU_addr、14、true); ax =Wire.read()<<8 | Wire.read(); ay =Wire.read()<<8 | Wire.read(); az =Wire.read()<<8 | Wire.read(); temp =Wire.read()<<8 | Wire.read(); gx =Wire.read()<<8 | Wire.read(); gy =Wire.read()<<8 | Wire.read(); gz =Wire.read()<<8 | Wire.read(); // temp =temp / 340.00 + 36.53; //一時データを摂氏に変換します-使用されていませんStringkeyVals =jsonEncodeValue( "ax"、ax)+ "、"; keyVals + =jsonEncodeValue( "ay"、ay)+ "、"; keyVals + =jsonEncodeValue( "az"、az)+ "、"; keyVals + =jsonEncodeValue( "gx"、gx)+ "、"; keyVals + =jsonEncodeValue( "gy"、gy)+ "、"; keyVals + =jsonEncodeValue( "gz"、gz); Serial.println(assembleJson(keyVals)); delay(100); }  

コード

arduino-101-スケッチ
IntelCurieの加速度計とジャイロスコープを利用してArduino101用に特別に作成されたスケッチのコレクション。https://github.com/ckuzma/arduino-101-sketches

製造プロセス

  1. モーター制御回路
  2. シーリングファンに対してAlexaコントロールを有効にする
  3. Arduinoを介したAtmelAT89シリーズのプログラミング
  4. Arduino、1Sheeld、Androidを使用したユニバーサルリモコン
  5. Arduinoでコインアクセプターを制御する
  6. Arduinoコントロールセンター
  7. IoTを使用してロボットアームをリモート制御する
  8. LEDを制御するBluetoothを搭載したArduino!
  9. Arduino加湿器制御
  10. Arduino Nano:ジョイスティックで2つのステッピングモーターを制御
  11. Arduino-シリアル経由でWebに温度を送信