正文 基於arduino平台的足球機器人在RCJ中的應用(2 / 3)

(4)價格低廉

和其它平台相比, Arduino板是相當便宜的。最便宜的Arduino版本可以自己動手製作,即使是組裝好的成品,其價格一般也不會十分昂貴。

(5)跨平台

Arduino IDE可以運行在Window、Macintosh OS X和Linux操作係統。大部分其它的單片機編譯軟件都隻能運行在Window係統上。

基於以上原因,基於Arduino平台的機器人製作在RCJ中得到了普遍應用。

2 Arduino機器人開發流程及環境

2.1 Arduino機器人開發流程

Arduino機器人實例的開發是Arduino平台下機器人教學實踐與研究的基礎和載體。其開發流程一般至少包括7個步驟,具體為設計目標→確定器件→硬件組裝→軟件設置→測試→程序編寫→代碼調試。

通常,機器人在地麵上移動的方式通常有三種:車輪式、履帶式和步行式。在RCJ足球比賽中,場地為室內光滑平整地麵,非常適合車輪運動,因此本方案選用車輪式運動方式。

2.2 Arduino硬件開發環境

(1)Arduino硬件類型

為了適應不同用戶的需求,Arduino有多種型號,其中Arduino Duemilanove是一款最基本的Arduino產品,後續的很多產品都是在這款產品的基礎上發展起來的。如Arduino Nano去掉了直流電源接口,采用Mini-B標準的USB接口連接電腦,是一款縮小版的Arduino Duemilanove;Arduino BT則包含了一個Bluegiga WT11藍牙模塊,支持藍牙無線串行通信。目前Arduino主推的產品是Arduino Uno,它與之前的Arduino最大的不同在於采用ATmega8U2芯片進行USB到串行數據的轉換。使用者可以根據對設計功能的不同需求選擇相應的Arduino產品。

(2)Arduino主要硬件資源

不同型號的Arduino其硬件資源也有所差異,但基礎配置包括以下部分:

(1)控製器。控製器是Arduino產品的核心部分,以Arduino Duemilanove為基礎的多數產品均采用ATmegal68或ATmega328單片機;資源更為豐富的Arduino Mega2560則采用ATmega2560作為控製器,它具有更大的程序存儲容量,可接入的I/O數也更多。

(2)輸入輸出接口。根據控製器的性能差異,不同Arduino產品的輸入輸出接口數量也有所不同。

(3)電腦連接或程序燒寫接口。根據使用者對Arduino產品尺寸要求的差異,Arduino或通過獨立USB接口支持程序燒寫,或通過由USB/RS 232轉換成TTL的適配器解決該問題,而對Arduino BT而言,其內置的藍牙模塊即可支持通過藍牙適配器進行程序燒寫。

2.3 Arduino機器人軟件開發環境

(1)Arduino開發環境設置

Aruduino的開發環境是以AVR-GCC和其他一些開源軟件為基礎,采用Java編寫的。軟件無需安裝,下載完成解壓縮後就可以直接打開使用了。

在應用程序編寫之前,需要按照順序進行安裝驅動程序、選擇Arduino板的型號以及設置串口號三項內容的設置。

(2)ArduBlock圖形編程環境介紹

目前圖形化編程插件ArduBlock已得到Arduino官方支持,其界麵友好,操作簡單,不用學習C語言通過拚圖形式就可以完成Arduino的編程,為Arduino進入中小學課堂奠定了基礎。

從網上下載ArduBlock插件後隻需將該文件拷貝至Arduino官方編程環境軟件包的tools子文件夾裏麵即可。拷貝成功後再次打開官方編程環境,菜單欄tools選項中便新增了ArduBlock選項,單擊即可打開ArduBlock編程界麵。除了ArduBlock之外,還有Miniblog、S4A等圖形化編程插件也可利用。

3 Arduino機器人開發實例

本方案選用Arduino Duemilanove為核心主板,以ArduBloek作為圖形化開發環境進行實例開發。因為Arduino足球機器人所涉開發項目較多,囿於文章篇幅所限,以下僅給出“Arduino足球機器人——數字舵機”的開發實例。本實例重點介紹Arduino足球機器人在RCJ中使用的舵機原理及相關的代碼調試環節。

3.1 舵機介紹

機器人有許多個關節, 每一個關節為一個自由度。在機器人機體上,通常使用舵機作為每一個關節的連接部分,它可以完成每個關節的定位和運動。舵機的控製信號相對簡單,控製精度高,反應速度快,而且比伺服電機省電。

舵機是由直流電機、減速齒輪組、傳感器和控製電路組成的一套自動控製係統。通過發送信號,指定輸出軸旋轉角度。舵機一般而言都有最大旋轉角度。與普通直流電機的區別主要在,直流電機是一圈圈轉動的,舵機隻能在一定角度內轉動, 不能一圈圈轉(數字舵機可以在舵機模式和電機模式中切換)。普通直流電機無法反饋轉動的角度信息,而舵機可以。用途也不同,普通直流電機一般是整圈轉動做動力用, 舵機是控製某物體轉動一定角度用。