參賽類群:英文代碼 a 機械與動力機械群 編號:...
TRANSCRIPT
-
2013 全國技專校院學生實務專題製作競賽
研究成果報告書
自 走 車 設 計 與 實 作
參賽類群:英文代碼 A 機械與動力機械群
編號:(由主辦單位編列)
中華民國 102 年 3 月 28 日
-
自 走 車 設 計 與 實 作
摘要
研究簡介
本研究主要於應用 Arduino 控制
板和設計相關機構,並撰寫相關程式
於Arduino控制板中控制自走車本體。
其中 Arduino 控制板中之程式主要包
括自走車行進、定位、夾持和放置方
塊等程式,而撰寫之相關程式可成功
讓 Arduino 控制板與機構結合,並能成
功達成指定之任務。
技術說明:
任務目的為夾持競賽場上四個空
心積木塊至指定位置套住實心積木柱,
本研究針對此任務設計出以下機構:
1. 滾夾機構
透過機動學中的機構自由度設計
著手,使用摩擦力取代「抬升」之自
由度;從而設計出擬似「滾動對」的
方式作動之中空擬凸輪柱體,其能同
時作動「夾持」與「抬升」兩自由度,
不但確實的減少競賽時所需的夾持時
間,也節省了在車體上所佔據之空間,
最重要的是在程式的撰寫與控制上給
了很大的便利性,如圖 Fig.1 所示,簡
稱「滾夾」,而其做動示意圖如 Fig.2
所示。
Fig.1 機構實體
Fig.2 做動示意圖
2. 創意車輪控制
自走車在全自主控制中,行進在
無法循線的區域時,或使用秒數延遲
來行進會因為電池之電壓消耗而造成
馬力不同,使每次行進之距離會有所
誤差。故嘗試了編碼器的原理,在輪
側黏貼黑白相間的輪狀圖,如圖 Fig.3
所示,並將 CNY70 紅外線感測器固定
於車體與馬達間,如圖 Fig.4 所示;由
於 CNY70 本身讀取數值頻率之關係,
編碼器的精度將輪子分成 16 等分為最
佳,再藉由運轉帶動輪狀圖黑白交替,
如此透過黑白兩色間不斷變化去計算
走了幾格,即能達成精確的定位(16 格
即為輪子轉一圈),確保馬達不受低電
壓影響而造成行走的距離不一等問
題。
Fig.3 輪狀圖 Fig.4 放置位置
經過線路裝配、機構組裝和程式撰寫
等過程整合後,即達成本專題所訂定
之目標。
-
1
一、 研究動機與研究目的
1-1 研究動機
近年來控制系統廣泛應用於各種
產業中,舉凡電梯大樓中之電梯系統、
戰車砲台之射控系統和工廠中的自動
倉儲系統等,從中可以發現控制系統
對企業帶來的種種影響;如工廠之自
動倉儲系統不僅可以增加工廠生產線
之生產效率,並且減少相關人力成本
之消耗,進而使公司所獲得之利益提
高,故各企業皆致力於研發自動化之
技術及設備,以成為全球知名企業為
目標,也因為此原因,使得自動化之
水準日益趨升。
1-2 研究目的
鑒於現代控制系統的應用範疇極
為廣泛,特別是無人搬運系統之相關
技術及設備更是發展得相當豐富多元,
故本研究之目的為設計出一台無人搬
運車,並使用 Arduino 控制板進行相關
程式撰寫與操控,且針對【2012 開放
式硬體機器人競賽】之競賽規則做出
相關調整;競賽規則如下頁所示:
競賽設備條件:
1. 參賽之機器人系統需為自主式機器
人,允許使用個人電腦或筆記型電腦
為機器人的控制核心,但在回合開始
之後使用者皆不得以任何方式直接或
間接控制機器人,違者取消該隊伍於
該回合之參賽資格。
2. 機器人的控制器不得為 LEGO®
MINDSTORMS™NXT 智慧型積木,
其餘不限任何硬體設備與程式環境。
3. 參賽機器人在競賽前需進行檢核。
機器人本體在所有元件之最大延展狀
態下的尺寸不得超過 250mm ×
250mm × 250mm。
競賽道具說明:
(一) 競賽底圖:
1. 底圖尺寸:
2400mm x 1200mm (無邊框)。
2. 出發區尺寸: 250mm x 250mm。
3. 場地上的 8 個柱圈直徑是 190m
(包括黑線)。
4. 黑線寬約 20mm。
(二) 空心積木塊:
場地上會放置四個空心積木塊,
積木塊是使用樂高 1x6 的凸點橫桿共
20 片組裝而成,有紅、黑、藍三種顏
色,黑色與藍色各一個,紅色空心積
木塊會有兩個。造型如 Fig.1-1 所示。
其將放置於外柱圈內,但不以任何方
式固定於場地上,意即機器人可將積
木塊推動。
1-1 空心積木塊 Fig.1-2 柱子
-
2
(三) 柱子:
場地上會放置四個柱子,柱子是
使用樂高 1x3 積木塊搭配 2x3 積木塊
交錯堆疊三層而成,有紅、黑、藍三
種顏色,黑色與藍色各一個,紅色柱
子會有兩個。造型如 Fig.1-2 所示。其
將放置於內柱圈內,但不以任何方式
固定於場地上,意即機器人可將積木
塊推動。
競賽規則:
1. 機器人的任務:
參賽機器人需於回合時間內,將
競賽底圖上的『空心積木塊』與『柱
子』,將它們以對參賽隊伍分數最有利
的方式,結合在一起。
2. 賽程:
參賽機器人將有二回合的競賽機
會,每回合時間是 2 分鐘。
第一回合參賽機器人審查→抽籤決定
出賽順序→宣布空心積木塊與柱子的
位置→第一回合競賽→中場休息與整
備時間→第二回合參賽機器人審查→
第二回合競賽。
3. 出發後觸碰機器人:
參賽者如果在機器人該回合第一
次離開出發區後,觸碰參賽機器人,
裁判將從場地中取走一個柱子 (取走
以較不影響參賽機器人當時動作的柱
子),取完為止。時間不會因此暫停或
重新計時。
計分標準: ( 滿分為 200 分。)
1. 將空心積木塊套入顏色相同的柱子,
並位於圓圈內,可得 50 分。
2. 空心積木塊與柱子接觸,顏色相同,
並位於圓圈內,可得 30 分。
3. 空心積木塊與柱子若位於圓圈外,
則不予計分。
4. 兩回合取任務分數較高的成績為排
名依據。
5. 若兩隊分數一樣,則該回合任務完
成時間較短的排名在前。
二、 研究方法及步驟
(一) 如何執行
研究首先針對競賽內容做出相關
機構設計,以特殊的夾爪設計限制機
構所需之自由度,縮短了繁瑣的程式
架構及機構運作時間;再透過裝配
CNY70 紅外線感測器的模組精確的偵
測黑線,達到自走車的循線及定位;
為了解決因為電壓不穩造成自走車無
法精確定位,使用了單顆 CNY70 紅外
線感測器裝置在輪子上,透過數位與
類比的比對,可以使用輪子的圈數來
決定位移量;最後在透過 C 語言的程
式架構書寫程式輸進Arduino控制板,
並逐一的除錯修改,使 Arduino 控制板
與各元件可以達到互相契合,從而完
成競賽之目標。
(二) 競賽路徑規劃
自走車在夾取方塊後,不選擇循
著圓圈找尋與柱子連接之斜線的方法,
而選擇直接走到底線中央,利用車輪
機構精確判讀之圈數直接跨越白色地
區,並使用紅外線感應器重新定位放
置方塊;而從競賽底圖中可以發現場
地為互相對稱,故程式設計方面只需
要撰寫一半之路徑,即能達成競賽之
目標。詳細競賽路徑如 Fig.2-1 所示。
-
3
Fig.2-1 競賽路徑
2-1 機構設計
2-1.1 夾爪機構
(一) 設計動機
由於此競賽之目的為將空心積木
塊夾起,並提升至某個高度後,去套
住實心積木塊;先以左右兩邊各一隻
手臂的夾爪為例,其中一隻手臂至少
需要裝配兩個伺服馬達來控制「夾持」
與「抬升」的兩個動作,因此左右兩
邊總共需要四個伺服馬達來進行控制
;更進一步說,要在一個伺服馬達上
再裝上另一個伺服馬達來進行操控不
是一件簡單的事情,除了機器人的空
間分配問題外,還伴隨著複雜的程式
控制等問題,因此藉由減少伺服馬達
的使用數量或限制其夾爪之自由度來
解決這些問題。
(二) 滾夾機構
在各式各樣的夾爪種類中,排除
任何需要將「夾持」與「抬升」兩個
動作分開作動的夾爪機構。因此利用
在機動學裡學到的自由度著手設想,
若能使用摩擦力去取代「抬升」的動
作,那麼就可以增加一個自由度;透
過上述條件,最後思考出將兩個正圓
連心線固定後,計算出欲配合的方塊
空間再依垂直於半徑方向截掉,因圓
心與截面之距離必小於半徑,當圓軸
旋轉時便造就兩夾爪間的距離縮短,
同時達到夾持力的效果。運用類似「滾
動對」的方式設計出了一個類似凸輪
的中空柱體,它能同時作動「夾起」
與「抬升」,不但確實的減少競賽時所
需的夾持時間,也節省了在車體上所
佔據之空間,最重要的是在程式的撰
寫與控制上給了很大的便利性,如圖
Fig.2-2 所示,簡稱「滾夾」,而其做動
示意圖如 Fig.2-3 所示
Fig.2-2 機構實體
Fig.2-3 滾夾做動示意圖
-
4
2-1.2 創意車輪控制
(一) 設計動機
當初之所以想到利用編碼器的原
理控制輪子是出於競賽場地之循線路
徑,需要讓自走車在一段沒有線可以
循的路上行進一個未知的距離,或是
讓車身在一處轉角的大圓圈內進行左
轉或右轉,通常在這些無法循線的地
方行進,其解決的方法為在程式內添
加「delay」,藉由多次的測試得到適合
的延遲秒數,或是利用影像處理及超
音波等方式自動感測未知之距離,但
每種方法都會伴隨著各種風險,如使
用秒數延遲來行進會因為電池之電壓
不同而造成馬力不同,使得自走車每
次行進之距離會有所不同,所以必須
找出一個最穩定的方法。
(二) 創意車輪
為了讓輪子能克服車身的重量或
是因電壓不足而造成行進的距離不同,
因此嘗試了編碼器的原理,在輪子的
側邊黏貼了一張黑白相間的輪狀圖,
如圖 Fig.2-7 所示,然後將 CNY70 紅
外線感測器放置在馬達與 U 型環之空
隙並固定,如圖 Fig.2-8 所示,由於
CNY70 本身讀取數值之頻率,編碼器
的精度最佳化是將整個輪子分成 16 等
分,再利用輪子運轉時,帶動輪狀圖
上一黑一白的交替,讓 CNY70 讀取之
值從小(白色)到大(黑色)再從大到小,
如此透過黑白兩色間之差異不斷變化
的過程去計算走了幾格,例如走了 16
格就是輪子行進了一圈的距離,如此
可以達到輪子精確的定位,以確保馬
達不受低電壓影響而造成行走的距離
不一等問題。
Fig.2-7 輪狀圖
Fig.2-8 感測器放置位置 放大圖
2-2 程式函式
* MotorControl (馬達正反轉控制)
本函式程式架構如 Fig.2-9 所示,
使用 TA7279P 馬達控制板,藉由 H 橋
IC 的四個電晶體開關控制電流之方向,
以達到馬達正反轉的目的;再透過連
接 Arduino 控制板的 PWM 腳位,傳遞
PWM 訊號控制馬達轉速。
Fig.2-9 馬達正反轉控制程式架構
-
5
* SearchLine (自走車循線控制)
本函式程式架構如 Fig.2-10 所示,
使用CNY70紅外線感測器的模組偵測
黑線,S1 至 S5 為單顆 CNY70 紅外線
感測器,分別接上 Arduino 控制板的數
位接腳,當某一感測器偵測到黑線,
程式會立即命令馬達作出修正,使得
自走車可以循著黑線穩定的行走。
Fig.2-10 自走車循線控制程式架構
* STOP (反向急停控制)
本函式程式架構如Fig.2-11所示,
主要在於解決煞車時,車體會產生慣
性往前多移動一小段距離,所以在程
式中給馬達反向阻力,使得造成自走
車可以急停,達到精確定位。
Fig.2-11 反向急停控制程式架構
* CNY70S6 (車輪定位系統)
本函式程式架構如 Fig.2-12 所示,
設計本函式之目的為配合前述的創意
車輪機構,以解決電壓不足時,time
delay 後的位移量因馬達低電壓的關係
而造成轉速變慢,以至於延遲時間已
到卻還沒到達目標位置。進入此函式
需要三個變數,分別是 shift(行進方向
決定)、set(輪子行走格數)及 mode(循線
模式是否開啟),由於每一換一次格數,
數位訊號就會從 0 到 1 或從 1 到 0,故
設定 response(判斷因子,0 表示白色地
區;1 表示黑色地區)與 fix(修正)兩個
變數來設定數位訊號的目標值,並在
加設一個變數 bar(計數器),使輪子再
轉動一格時,能根據偵測出的值的變
化進行累加的動作,直到超過設定之
格數 set 方才停止,最後再設置一道反
-
6
向急停控制,防止煞車的慣性造成定
位不準確,進而達成定位之目的。
最後在此函式中有使用到讀取光
值感測器的「類比訊號」,由於 CNY70
本身有個至今還未解的爆值現象,然
而在每個黑色及白色區塊中感測器會
讀取多次,每隔一小段時間,CNY70
所讀出來的類比訊號全部都是 1023,
而其轉換成數位訊號時就全部都是1,
因此這段爆值的時間內便造成誤判並
無法解讀是否已進入下一格。之後正
常的類比訊號值在電阻的控制下,一
般最大是在 800~900 間,因此將在程
式中大於 1000 以上的類比值過濾掉,
但伴隨之缺點是精度的限制,因此輪
狀圖最多分到 16 格。
Fig.2-12 車輪定位系統程式架構
* LineFind (盲走定位控制)
本函式程式架構如 Fig.2-13 所示,
使用於競賽場地中之直角彎及盲走時
重新定位,並將其寫成函式方便使用,
更減少在程式中所佔據之記憶體。
Fig.2-13 盲走定位控制程式架構
* ServoUp (滾夾抬升控制)
本函式程式架構如 Fig.2-14 所示,
主要負責控制伺服馬達,使滾夾轉動
抬升之控制,並將其寫成函式,以減
少在程式中所佔據之記憶體。
Fig.2-14 滾夾抬升控制程式架構
-
7
* ServoDown (滾夾下放控制)
本函式程式架構如 Fig.2-15 所示,
主要負責控制伺服馬達,使滾夾轉動
下放之控制,並將其寫成函式,以減
少在程式中所佔據之記憶體。
Fig.2-15 滾夾下放控制程式架構
2-3 機構介紹
(一) 主控制板 - Arduino( MEGA )
細部說明:
1. Arduino 是一塊基於開放原始碼的
Simple I/O 介面版,並且具有使用
類似 Java 及 C 語言的開發環境,
因此可以與許多軟體快速互動,詳
細規格如 Table.2-1 所示。
2. 可以使用開發完成的電子元件,例
如 Switch或 sensors或其他控制器、
LED、步進馬達或其他輸出裝置。
3. 可以獨立運作成為一個可以跟軟
體溝通的介面,例如說:flash、
processing、Max/MSPVVVV 或其
他互動軟體…。
Table. 2-1 Arduino 控制板規格表
(二) 光感應器 – CNY70
結構組成:
CNY70 主要由紅外線發光二極體、
光電晶體、光濾波器所組成,以下為
各零件之功能介紹:
1. 紅外線發光二極體:類似發光二
極體(LED)的功能,當 PN 二端加
上順向偏壓時可發出波長為
80Onm的紅外線不可見光。
2. 光電晶體:為一個對紅外線波長
具敏感反應的光偵測元件,當光
電晶體受紅外線光照射時為低阻
抗,而未受光時呈現高阻抗。
3. 光濾波器:為一僅讓波長為紅外
線附近光譜通過的濾光透鏡,用
來加強光電晶體的抗雜訊能力
(降低外在不可見與可見光的干
擾) 。
-
8
(三) 伺服機
1. 一般伺服機的最小角度為 0 度,
最大則為 180 度,而通電後之原
點為 90 度,且其能承受電壓為
5~6V。
2. 其內部結構及接腳示意圖如
Fig.2-19 和 Fig.2-20 所示,而其內
部之運作流程如下敘述,首先使
用電腦發送信號給伺服機之控制
晶片判斷其轉動方向,接著驅動
直流馬達,並帶動減速齒輪將動
力傳至傳動軸,再經由位置檢測
器送回之信號來判斷是否已經到
達定位。
Fig.2-19 伺服機內部架構
Fig.2-20 接腳示意圖
3. 脈 衝 寬 度 調 變 ( Pulse Width
Modulation, 縮寫 PWM):將輸出
之電壓斬波成脈衝,透過改變脈
衝的寬度、數量或分佈規則,以
調整輸出電壓的數值和頻率的控
制方法;而訊號的工作頻率越高,
則解調後的訊號就會愈平滑,訊
號失真也愈低;因此可以達到數
位輸入類比輸出的效果。
4. 一般驅動伺服機所需的 PWM 訊
號是 0.8~2.2ms,而 Arduino 控制
板中有內建伺服機的函式庫,如
Fig.2-21 所示;因此如果對 PWM
訊號沒有深刻的了解,也可以簡
易的控制伺服機達到需要之功
效。
Fig.2-21 Arduino 控制伺服機相關指令
-
9
(四) 整體線路示意圖
(五) 自走車爆炸圖
(六) 自走車實體圖
(七) 自走車組合圖
三、 研究成果
-
10
四、 結論與建議
4-1 結論
1. 設計出能有效夾持方塊之機構,並
將其裝配在伺服馬達上,再使用
Arduino 控制板書寫出驅動程式,
使之能驅動伺服馬達轉動滾夾,達
到夾持之功效。
2. 將CNY70紅外線感測器在Arduino
控制板上裝置和配線,並編寫程式
碼控制感應器之判斷,使自走車能
自行循著黑線行走,達到自主控制
之目的。
3. 將程式碼函式化,使其方便呼叫使
用及管理,並減少程式所佔據之記
憶體。
4. 由於 TA7279P 馬達控制板中的 H
橋 IC 在停止供給電壓後並不會給
予一個反向電壓,因此自走車停止
後會依慣性位移一小段距離,故在
程式中撰寫了「反向急停控制」,
使其產生反向電壓,進而讓定位更
加精準,但如果持續執行此函式時,
Arduino 控制板之變壓器很容易造
成過熱的現象。
5. 由於帆布材質之場地會使光線產
生漫射之效果,使得紅外線感測器
讀出之值皆為零,無法分辨黑色與
白色,造成自走車循線和定位等功
能無法使用,所以必須改用可見光
的光感應器克服此問題。
6. 本研究透過設計與實作做出自走車
之相關機構設備,並撰寫程式碼與其
他硬體設備進行連結,使控制板可以
操控硬體設備做出對應動作,使其能
達成循線、定位、夾持和放置方塊等
功能之自走車,進而達成【2012 開放
式硬體機器人競賽】之競賽目標,自
走車詳圖如 Fig.4-1 所示。
Fig.4-1 自走車
4-2 建議
本研究在之後的走向為:
1. 在 Arduino 控制板上增設超音波距
離感測器及顏色感應器,加裝超音
波距離感應器能使自走車之自主
判斷及定位精度之功效提高,顏色
感應器則是增加複雜度,使自走車
能精準之記憶及判斷顏色,並做出
相對應動作。
2. 改善自走車整體架構,將車身縮小
並更換較大馬力之馬達,使車體之
重量減輕,讓自走車行走得更加迅
速及精確。
3.
【 參考文獻 】
1. http://www2.decade.tw/whatsarduin
o.html Arduino.TW 樂園
2. 孫駿榮,吳明展,盧聰勇作,最簡單
的互動設計 Arduino 一試就上手,
碁峰資訊
3. Michael Margolis ,徐德發譯,
Arduino 錦囊妙計(第二版),歐萊禮
4. 小林茂,許郁文譯,Prototyping Lab
「邊做邊學」,Arduino 的運用實例,
馥林文化
5. bmeweb.niu.edu.tw/lhlin/機電整合
工程/cny70_introduction.pdf
http://www2.decade.tw/whatsarduino.htmlhttp://www2.decade.tw/whatsarduino.htmlhttp://millennium.lib.ntust.edu.tw/search~S1*cht?/e+%3A+%7bu7881%7d%7bu5CF0%7d%7bu8CC7%7d%7bu8A0A%7d/e12%7b214472%7d16%7b222626%7d13%7b215a22%7d10%7b215840%7d/-3,-1,0,B/browsehttp://search.books.com.tw/exep/prod_search.php?key=Michael%20Margolis&f=authorhttp://search.books.com.tw/exep/prod_search.php?key=%AE%7D%BCw%B5o&f=authorhttp://www.books.com.tw/exep/pub_book.php?pubid=oreillyhttp://search.books.com.tw/exep/prod_search.php?key=%A4p%AAL%ADZ&f=authorhttp://search.books.com.tw/exep/prod_search.php?key=%B3%5C%AD%A7%A4%E5&f=authorhttp://www.books.com.tw/exep/pub_book.php?pubid=fulin