• 沒有找到結果。

自走車設計與實作

N/A
N/A
Protected

Academic year: 2021

Share "自走車設計與實作"

Copied!
12
0
0

加載中.... (立即查看全文)

全文

(1)

2013 全國技專校院學生實務專題製作競賽 研究成果報告書

自 走 車 設 計 與 實 作

參賽類群:英文代碼 A 機械與動力機械群 編號:(由主辦單位編列)

中華民國 102 年 3 月 28 日

(2)

自 走 車 設 計 與 實 作

摘要 研究簡介

本研究主要於應用 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 放置位置

經過線路裝配、機構組裝和程式撰寫 等過程整合後,即達成本專題所訂定 之目標。

(3)

一、 研究動機與研究目的

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 柱子

(4)

(三) 柱子:

場地上會放置四個柱子,柱子是 使用樂高 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 所示。

(5)

Fig.2-1 競賽路徑 2-1 機構設計

2-1.1 夾爪機構

(一) 設計動機

由於此競賽之目的為將空心積木 塊夾起,並提升至某個高度後,去套 住實心積木塊;先以左右兩邊各一隻 手臂的夾爪為例,其中一隻手臂至少 需要裝配兩個伺服馬達來控制「夾持」

與「抬升」的兩個動作,因此左右兩 邊總共需要四個伺服馬達來進行控制

;更進一步說,要在一個伺服馬達上 再裝上另一個伺服馬達來進行操控不 是一件簡單的事情,除了機器人的空 間分配問題外,還伴隨著複雜的程式 控制等問題,因此藉由減少伺服馬達 的使用數量或限制其夾爪之自由度來 解決這些問題。

(二) 滾夾機構

在各式各樣的夾爪種類中,排除 任何需要將「夾持」與「抬升」兩個 動作分開作動的夾爪機構。因此利用 在機動學裡學到的自由度著手設想,

若能使用摩擦力去取代「抬升」的動 作,那麼就可以增加一個自由度;透 過上述條件,最後思考出將兩個正圓 連心線固定後,計算出欲配合的方塊 空間再依垂直於半徑方向截掉,因圓 心與截面之距離必小於半徑,當圓軸 旋轉時便造就兩夾爪間的距離縮短,

同時達到夾持力的效果。運用類似「滾 動對」的方式設計出了一個類似凸輪 的中空柱體,它能同時作動「夾起」

與「抬升」,不但確實的減少競賽時所 需的夾持時間,也節省了在車體上所 佔據之空間,最重要的是在程式的撰 寫與控制上給了很大的便利性,如圖 Fig.2-2 所示,簡稱「滾夾」,而其做動 示意圖如 Fig.2-3 所示

Fig.2-2 機構實體

Fig.2-3 滾夾做動示意圖

(6)

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 馬達正反轉控制程式架構

(7)

* 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 方才停止,最後再設置一道反

(8)

向急停控制,防止煞車的慣性造成定 位不準確,進而達成定位之目的。

最後在此函式中有使用到讀取光 值感測器的「類比訊號」,由於 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 滾夾抬升控制程式架構

(9)

* 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. 光濾波器:為一僅讓波長為紅外 線附近光譜通過的濾光透鏡,用 來 加 強 光 電 晶 體 的 抗 雜 訊 能 力 (降低外在不可見與可見光的干 擾) 。

(10)

(三) 伺服機

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 控制伺服機相關指令

(11)

(四) 整體線路示意圖

(五) 自走車爆炸圖

(六) 自走車實體圖

(七) 自走車組合圖

三、 研究成果

(12)

四、 結論與建議 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

參考文獻

相關文件

 一般我們如過是透過分享器或集線器來連接電腦 的話,只需要壓制平行線即可(平行線:兩端接 頭皆為EIA/TIA 568B),

 一般我們如過是透過分享器或集線器來連接電腦 的話,只需要壓制平行線即可(平行線:兩端接 頭皆為 EIA/TIA 568B ), 如果是接機器對機器 的話,需要製作跳線( Crossover :一端為

本計畫會使用到 Basic Stamp 2 當作智慧型資源分類統的核心控制單元,以 BOE-BOT 面板接收感測元件的訊號傳送給 Basic Stamp 2 判斷感測資料,再由

在與 WINS 有關的研究之中,除了研發感測器硬體這個領域之外,其它的領域均需要

圖 2-13 顯示本天線反射損耗 Return Loss 的實際測量與模擬圖,使用安捷倫公司 E5071B 網路分析儀來測量。因為模擬時並無加入 SMA

阿吉老師將簡介 micro:bit 開發程式環境,並分享 micro:bit 內建感測器程式編寫、數位/類比信號讀取及寫入,並了解 如何用 micro:bit 連接電子模組編寫程式進行機電整合。.

SPCE061A 的開發是通過線上調試器 PROBE 實現的。它既

當長者於午休時躺在床上,將三軸感測器設於長者腰 間,並在床的附近放置 IP Camera 以便在長者起床時 可拍攝到臉;當長者在午休時未告知護理人員情況下