YouTubeリンク

プログラムダウンロード(Motion_detection_Arduino_Nano_Every.zip)

動作検出

  • 動作、方向、高さを検出
  • テープLEDで検出状態を表現

NeoPixel

  • 3端子で制御できるテープLED NeoPixelを使って検出状態を表現しています。
  • NeoPixelであれば全て使えますが私はこちらを使っています。

注意:

1.ハードウェア接続方法

  • マイコン(Arduino Nano Every)のUSBを抜いた状態で作業をする。
  • Arduino Nano Every Exampleを参考に双方向ハンドセンサーをマイコンに配線する。
  • 追加で下図の通りNeoPixelを配線する。

2.ライブラリ、スケッチ保存

  • ダウンロードファイルを解凍する。
  • IHS11_Nano_Every_MotionフォルダをArduinoフォルダ内sketchフォルダにコピー。
  • 残り(Adafruit_NeoPixel、MotionNeoPixel、NeoPixel)のフォルダを、Arduinoフォルダ内librariesフォルダにコピーする。※Adafruit_NeoPixelがある場合はコピー不要です。

3.コンパイル、書き込み

  • Arduino IDEを起動し、コピーしたスケッチIHS11_Nano_Every_Motion.inoを開く。
  • スケッチ→検証・コンパイル
  • ※エラーの時
    • 他のスケッチ(Blinkなど)がコンパイルできるか確認
    • ライブラリ保存場所が正しいかを確認
  • マイコンにPCのUSBケーブルを接続する。
  • マイコンにプログラムを書き込む。
  • ※エラーの時:ツール→ボード名、シリアルポートを確認

4.動作検出システム

  • 手の動きを検出するとNeoPixelが動作する。NeoPixel動作中はセンサーは検出しない。
  • NeoPixelの方向は手の動く方向
  • NeoPixelのスピードは手の速さの水平成分
  • NeoPixelの長さは検出したセンサーの数
  • NeoPixelの色は検出した高さの平均値、小さい方から赤、黄色、緑、水色、青、紫
  •  ※手を動かす時はセンサーや付近の物、人に当たらないように気をつけて下さい。

5.ソフトウェア解説

  • MotionNeoPixel:

動作検出するオブジェクト。センサーの値が基準値を超えた時最大値の値とセンサーの番号を配列に保存していく。基準値以下になった時、配列の情報から方向、速さ、長さ、色を算出しNeoPixelオブジェクトをCallする。

  • NeoPixel:

NeoPixelを線の状態で動かすオブジェクト。方向、スピード(遅延時間)、長さ、色を指定して1周回る。

NeoPixelの動作を設定する基本的なオブジェクト。

6.リンク