電氣動顏色分辨器 BBC micro:bit 編程
Micro:bit IO board
Coding 概覽 :
由於micro:bit的LED display是以P9和P10運行,
如果不把LED disable , IO board會默認將P9和P10寫成1
(當插上馬達/燈到P9和P10時,即使沒有任何編程都會默認開啟)
而且對其他PIN位也會造成影響 , 例如 : 降低功效,增加反應時間等等...
由於氣動和光欄的燈連接在一起共用P15和P16
P15 = 1 , P16 = 0
即開啟氣動和光欄的燈
Function Move arm to pos 1 即是回到開始動作位置
P6 = 1 是 Pos 1 的 Button 被按下
P13 = 0 , P14 = 0 即是關閉馬達
Set iRunning to 0 即是重置位置的計算
P13 = 0 , P14 = 1 即是開啟馬達
Function Move arm 即是開動氣動臂和吸嘴
P 12 = 1 即是開啟氣動臂的電磁閥 (氣動臂會下降)
pause 1000 即是停止1秒
P8 =1 即是開啟氣動臂上吸嘴的電磁閥
P 12 = 0 即是關閉氣動臂的電磁閥 (氣動臂會上升)
Function Arm Down 即是開動氣動臂
P 12 = 1 即是開啟氣動臂的電磁閥 (氣動臂會下降)
pause 500 即是停止0.5秒
Function Put Down 即是關閉氣動臂和吸嘴
P 12 = 1 即是開啟氣動臂的電磁閥 (氣動臂會下降)
pause 1000 即是停止1秒
P8 =1 即是關閉氣動臂上吸嘴的電磁閥 (吸嘴會放鬆)
pause 700 即是停止0.7秒
P 12 = 0 即是關閉氣動臂的電磁閥 (氣動臂會上升)
Function move arm to pos red 即是移動到Pos red位置
Set iRunning to 0 即是重置位置的計算
Set iTarget to 4 即是距離Pos red位置,counting Button 要被按下4 次
P13 = 1 , P14 = 0 即是開啟馬達
While iRunning < iTarget 即是未去到目標位置時
P4 是counting Button
if digital read pin P4 =1 即是計算counting Button被按下的次數
set iRunning to iRunning +1 即是counting Button被按下的時候 iRunning 就+1
pause 10 即是停止0.01秒
P13 = 0 , P14 = 0 即是關閉馬達
Function move arm to pos blue 即是移動到Pos blue位置
Set iRunning to 0 即是重置位置的計算
Set iTarget to 6 即是距離Pos blue位置,counting Button 要被按下6 次
P13 = 1 , P14 = 0 即是開啟馬達
While iRunning < iTarget 即是未去到目標位置時
P4 是counting Button
if digital read pin P4 =1 即是計算counting Button被按下的次數
set iRunning to iRunning +1 即是counting Button被按下的時候 iRunning 就+1
pause 10 即是停止0.01秒
P13 = 0 , P14 = 0 即是關閉馬達
Function move arm to pos white 即是移動到Pos white位置
Set iRunning to 0 即是重置位置的計算
Set iTarget to 3 即是距離Pos blue位置,counting Button 要被按下3 次
P13 = 1 , P14 = 0 即是開啟馬達
While iRunning < iTarget 即是未去到目標位置時
P4 是counting Button
if digital read pin P4 =1 即是計算counting Button被按下的次數
set iRunning to iRunning +1 即是counting Button被按下的時候 iRunning 就+1
pause 10 即是停止0.01秒
P13 = 0 , P14 = 0 即是關閉馬達
選取forever是為了讓程式保持運行,
P0 是光欄感應器 light sensor
P0 = 0 即是光柵感應器感應不到光線
P6 是初始位置的Button
P6 = 1 即是初始位置的Button被按下
當 P0 = 0 和 P6 = 1 的時候便進行以下的程式
執行 function move arm
Set iRunning to 0 即是重置位置的計算
Set iTarget to 3 即是,counting Button 要被按下3 次
if digital read pin P4 =1 即是計算counting Button被按下的次數
set iRunning to iRunning +1 即是counting Button被按下的時候 iRunning 就+1
pause 100 即是停止0.1秒
P13 = 0 , P14 = 0 即是關閉馬達
Set iRunning to 0 即是重置位置的計算
Set iTarget to 0 即是重置counting Butoon的計算
pause 500 即是停止0.5秒
執行 function Arm Down
再pause 500 即是停止0.5秒
set checking to true 即是完成checking
P1 是colour sensor
而colour sensor 有 0-1024 的數值, 所以需要用 analog read pin 去讀取數值
colour sensor 會因現場環境而影響各個顏色的數值
所以用家需要就現場環境去調整數值
白色是最淺色的 其數值會是最細
藍色是最深色的 其數值會是最大
紅色是白色和藍色中間 其數值會大於白色的數值並細於藍色的數值
所以在測試程式時應該測試其下限和上限
白色的數值大概是在535-529之間
藍色的數值大概是在542-545之間
紅色的數值大概是在533-541之間
而供電, 所插的pin位亦有所影響
是次是用直流電和P1
以上數值只供參考
如果以上三個情況都不成立
即colour sensor 所讀取到的數值並不在以上的範圍
P12 = 0 即是關閉氣動臂的電磁閥 (氣動臂會上升)