02 PocketCard內建功能介紹
(2021/04/28)
這教材是暑假國小【妖怪手錶程式創客營】中,首先先認識我們所使用的PocketCard開發板,本單元為PocketCard所有內建元件及感測器的介紹,本單元結束後,就可以進入手錶的設計了!
一、按鍵的功能
PocketCard有兩個按鍵
A鍵:腳位為GPIO14
B鍵:腳位為GPIO25
取得按鍵按下時的數位值
利用OLED顯示其值
測試結果:
A鍵未按下時,其值為1
A鍵按下後,其值為0
按A鍵顯示【開心】、按B鍵顯示【生氣】、按A+B鍵顯示【淡定】圖案
利用上一篇介紹過的登月小車內建圖案
其實,吉哥積木已建置好按A鍵、按B鍵、按A+B鍵等按鍵積木了,下面直接利用其吉哥積木來完成
這些按鍵已設定在背景執行,不用放在【重複執行】積木內(如上),如果放在【重複執行】積木內(如下)也沒關係
二、RGB LED的功能
PocketCard的背後(A鍵後方)有一顆RGB LED燈
連接的腳位為GPIO12
此RGB LED燈的格式為WS2812B(燈條格式)
剛好在法蘭斯的登月小車中找到可用的積木,但利用這積木,目前可以亮燈,但亮燈的顏色與設定的顏色不同
讓RGB LED燈亮隨機顏色
按A鍵亮燈、按B鍵滅燈
三、光敏電阻的功能
PocketCard有兩個光敏電阻
光敏電阻A:位於A鍵下方,其連接的腳位為GPIO39 (類比腳位),這個位置比較特別,不知有何用意?
光敏電阻B:位於B鍵上方(右上方),其連接的腳位為GPIO36 (類比腳位)
取得光敏電阻的類比值
註:若用全型的冒號則不會顯示
測試結果發現:
類比值介於0~4095間
越亮時,其值越大
越暗時,其值越小
同樣,也可用吉哥積木
天黑請開燈
天黑時,在屏幕顯示【晚上】,並點亮背後的RGB LED燈
天亮時,在屏幕顯示【白天】,並關閉背後的RGB LED燈
四、量測溫度的功能
PocketCard有一個溫度感測器
溫度感測器:位於A鍵上方(左上角),其連接的腳位為GPIO34 (類比腳位)
取得目前溫度
由於取得的類比值還要經過換算,所以直接取吉哥積木來使用
天熱請開扇
按A鍵增加【設定溫度】1度
按B鍵減少【設定溫度】1度
當【環境溫度】大於【設定溫度】時,啟動電扇 (點亮LED燈),屏幕顯示ON
當【環境溫度】小於【設定溫度】時,關閉電扇 (關閉LED燈),屏幕顯示OFF
五、蜂鳴器的功能
PocketCard有一個蜂鳴器
蜂鳴器:位於背後(剛好在A鍵後方),其連接的腳位為GPIO26
頻率表如下
播放全家便利商店入店時的音樂
簡譜:3 1 5(低音) 1 / 2 5~ 2 / 3 2 5(低音) 1
一樣使用吉哥積木
方法一:
方法二:
上述積木不會停止聲音,所以自己加上停止聲音的積木,包括最後也要!
上述積木沒有加上播放長度的設定,所以自己加上等待時間,一般1拍是0.5秒。
將音樂結合內建圖案,還滿好玩的
六、九軸感測器(MPU9250)的功能
Web:Bit在MPU9250的介紹,很清楚 https://webbit.webduino.io/tutorials/doc/zh-tw/education/board/mpu9250.html
加速度計主要偵測 x、y 和 z 三軸直線移動時「瞬間」加速度變化
陀螺儀則是偵測旋轉時「瞬間」的角度變化
姿態角度 ( roll、pitch、yaw )主要透過加速度計和陀螺儀的數值
磁力計可以偵測所在磁場的變化 ( 主要是針對地球磁場 )
PocketCard有一個九軸感測器(MPU9250)
九軸感測器(MPU9250):位於背後,其連接的腳位為I2C腳位(SCL:GPIO22、SDA:GPIO21)
剛好吉哥有做此感測器的相關積木
XYZ方向表示
顯示九軸的資料
顯示加速度三軸的值
顯示加速度三軸的值
顯示陀螺儀三軸的值
如果把這三者放在一起寫程式,原本會有如下的錯誤,但劉正吉老師看到我的貼文,馬上解決此問題!
程式 (mpu9250)
如何表示【向前翻轉】、【向後翻轉】、【向左翻轉】、【向右翻轉】
觀察加速度的三軸的值
當板子平放時:x、y、z的值約為0、0、1
向前翻轉到垂直時:x、y、z的值約為0、-1、0,所以當y的值小於-0.5時,代表向前翻轉
向後翻轉到垂直時:x、y、z的值約為0、1、0,所以當y的值大於0.5時,代表向後翻轉
向左翻轉到垂直時:x、y、z的值約為-1、0、0,所以當x的值小於-0.5時,代表向左翻轉
向右翻轉到垂直時:x、y、z的值約為1、0、0,所以當x的值於-0.5時,代表向右翻轉
程式