/Submission-Robotics-IOT

Submission in "Class: Robotics IOT"

Primary LanguagePythonMIT LicenseMIT

Submission-Robotics-IOT

Submission in "Class: Robotics IOT"

FINGER CALC

mediapipeの指認識機能及びMaker Nanoを組み合わせて一桁と一桁の和・積を行うアプリケーション image

例:出力12(1100)

IMG_8241

デモ

コード

Pyhton

C++

  • Arduino Nano IDE>exsample>Firmata>StandardFirmata を利用

回路図

Untitled

システム環境

  • Python (3.8)
    • pyfirmata
    • tensorflow
    • opencv-python
    • mediapipe
  • Maker Nano (Arduino 1.8.19)

システム構成図

image

指認識機能

mediapipeのhand認識機能を用いて各指の座標を取得し、それらから各指の開閉を取得する。
指の状態は5本*2パターンの計32通り存在する。

image

数字変換機能

取得した手の状態のうち9つを数字と紐付けて数を取得する。
それぞれの状態における数は下記の通りである。
image

確定機能

誤入力防止のため、該当の数字および選択を50フレームキープしていると入力として判断する機能。

選択機能

設置した四角形においてその座標内に右手の人差し指がある場合、ハイライトを施し該当の四角形を選択する機能。
和積の計算及び、計算を再度行う際のResetボタンに利用している。
image

計算機能

入力した数式を計算する機能

2進数変換機能

計算した結果を二進数に変換する機能

Maker Nano表示機能

変換した2進数を用いて、StandardFirmataを適用させたMaker NanoのLEDを光らせることで解の数字を2進数として表示させている

工夫した点

  • 確定機能を用いて誤入力防止に務めた
  • 選択機能において選択している事を明示している
  • リセットすることをアプリ内で可能にした点