12
2013 全國技專校院學生實務專題製作競賽 研究成果報告書 參賽類群:英文代碼 A 機械與動力機械群 編號:(由主辦單位編列) 中華民國 102 3 28

參賽類群:英文代碼 A 機械與動力機械群 編號: 由主辦單位編列ir.lib.ntust.edu.tw/bitstream/987654321/36041/2/101機械_自走車設計與實作.pdf · 3 Fig.2-1

  • Upload
    others

  • View
    15

  • Download
    0

Embed Size (px)

Citation preview

  • 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