Roboard 對於A/D週邊的控制
這裡來作一篇關於用roboard直接控制紅外線測距的應用
起因於鯨魚因為吃飽太閒, 進了一批sharp 公司出的這個紅外線測距來玩,
10~80cm的規格$520 /20~150cm的$699 , 有興趣請MAIL給我
另有人體接近感應和簡易物體距離感應等等, 整箱的喔XDD
roboard對於控制這種純AD規格的東西真的是超級容易的
步驟如下:
1. 須要先到官網抓這個 "RoBoIO 1.61 .NET Warper binary"
2. 解開他的壓縮後有DLL要COPY到VB的專案目錄裡面 : "RoBoIO.dll" "RoBoIO_DotNet.dll" ,"WinIo.dll" 這幾個檔案
3. VB專案中要先加入這個RoBoIO_DotNet.dll 的參考
4. 程式碼視窗裡面最開頭要先引用該命名空間 Imports RoBoIO_DotNet
5. 程式碼部分
'RB100的話輸入參數RB_100,用RB110的話則是RB_110
RoBoIO.roboio_SetRBVer(RoBoIO.RB_100)
' 初始化
if spi_Initialize(SPICLK_21400KHZ) then
dim val as integer = RoBoIO.ad7918_ReadChannel(0, 'channel = 0 ~ 7
AD7918MODE_RANGE_2VREF, AD7918MODE_CODING_1023)
spi_Close()
End if
其中那個AD7918MODE_RANGE_2VREF指的是傳回 0V ~ 5V 之間的數值
AD7918MODE_CODING_1023 是傳回 0 ~ 1023
這樣, 就可以接收紅外線回來的數值
直接拿來用了
另外, 因這系列的紅外線都是有點非線性數值 , 需要做點運算才會變成想要的答案
須把得到的val 用這個公式作套用
val =5 * val /1024
val=(6787.0 /(val - 3.0)) - 4.0
這樣就可以收到數值了
這樣機器人就可使用紅外線作測距的動作
但還是需要注意環境的光線會對紅外線造成一些干擾, 導致有不是很準的情況
物體的材質也會有些影響, 但一般來說, 這已經很好用了
若還想要更準些 搭配超音波就可改善
若還要更準 搭雷射測距就能搞定
當然...這些鯨魚都有賣, 都可開發票, 都有售後服務和保固喔^__^