魔法棒遙控器
能在現實生活中使用魔法控制電子產品的魔法棒,目前尚未被魔法部列為管制品可安心使用。

前言
一升高二暑假時剛好被科主任問到要不要想一個題目參加專題比賽,這時因為暑假在重看哈利波特電影所以對魔法世界有股憧憬,所以就隨口跟主任提魔法棒遙控器的想法,沒想到主任竟然同意製作這個無釐頭的題目,也剛好我同學想要做光立方看看然後我想說光立方或許能當作施展魔法的顯示器,於是我就跟他一拍即合一起報名了專題製作創意組!
原理
- 使用esp32讀取mpu6050角速度原始值
- 將數值使用卡爾曼濾波加上積分換算相對角度
- 用角度數據加上勾股定理計算出移動軌跡並記錄
- 將軌跡常規化(縮放至上下左右軌跡貼在32*32邊框)
- 辨識特徵
- 如果常規化時X軸放大倍率大於一定值視為揮出垂直線
- 如果常規化時Y軸放大倍率大於一定值視為揮出水平線
- 如果上下兩邊單行水平軌跡點超過定值視為揮出正方形
- 如果上下兩邊單行水平軌跡點超過定值但小於正方形定值視為揮出圓形
- 其他視為揮出三角形
- 根據揮出形狀做出對應動作(demo 版本為藍牙控制手機音樂暫停播放等功能)

心得
這個項目本來是要報名專題競賽創意組的,但在初選資料繳交前夕我們印錯年份簡章,導致要繳交資料時發現已經過期了,所以只能選擇棄賽。
不過在製作過程中也經歷了許多腥風血雨,例如本來辨識手勢是要訓練一個tensorflowlite模型在esp32上跑影像辨識來辨識手勢軌跡的,但是要訓練模型時發現訓練效果遠不如預期,初步估計應該跟辨識模型及一些參數上調整問題有關。對於完全沒接觸過機器學習的我,選擇先跟專題老師提出目前遇到的問題,老師表示已經接近截止日了,還是先用傳統ifelse暴力破解看看,然後我就發揮以前的ifelse暴力破解影像辨識的經驗搞出一個還堪用的算法了。
這時本來預計紅外線遙控電器什麼的等繳交完初選資料再繼續做,剛好複選上可以趕上展覽就好,但就發生了報名沒上的問題,後續因為寒假開始就不了了之了。直到高職博覽會時指導老師突然說要展出我們的專題,於是我連夜趕工,終於加上藍牙控制手機播放音樂功能展覽出去了!
在這過程中我深刻認知檢查文件日期是多麼重要的一件事,以及一大堆陣列的邏輯使用,還有認識了tensorflow,對於往後使用幫助極大!