22
專題:mBot 競速自走車 指導教授:陳英傑教授 專題學生:吳振瑋 3A413108 專題學生:黃柏勳 3A413147 107 5

專題:mBot 競速自走車 指導教授:陳英傑教授 專題學生:吳振瑋 …eeproject.ncut.edu.tw/upload/Achievements/106... · A. mBot: mBot 是一台多功能的車子,

  • Upload
    others

  • View
    5

  • Download
    1

Embed Size (px)

Citation preview

  • 國 立 勤 益 科 技 大 學

    電 子 工 程 系 實 務 專 題 報 告

    專題:mBot 競速自走車

    指導教授:陳英傑教授

    專題學生:吳振瑋 3A413108

    專題學生:黃柏勳 3A413147

    中 華 民 國 107 年 5 月

  • 1

    一、中文摘要

    自走車的控制中心是使用單板電腦。感測器部分是以超音波感測

    器與紅外線感測器為主要感測元件。驅動部分是以直流馬達作為自走

    車的動力來源。在循線感測器方面,利用裝置在自走車上的紅外線感

    測器來偵測出地上以電工布貼出的黑線,並且避開前進。在避障規劃

    方面,利用裝置在自走車上的超音波感測器來偵測出自走車與障礙物

    的距離,讓自走車 能行走在未知的環境中,以達成避障的目的。其

    使用的程式開發環境為「mBlock」,此軟體是用於「Arduino」,系列的

    單晶片微控制器之程式開發。單晶片微控制器採用「mCore」開發板,

    使用此開發板在程式設計上更為簡易,省去許多複雜的宣告及定義。

    二、英文摘要

    Self-propelled car control center is the use of single-board computer. The sensor part

    is based on ultrasonic sensors and infrared sensors as the main sensing element. The

    driving part is based on the DC motor as a power source for self-propelled vehicles. In the

    line sensor, the use of infrared sensors installed in the self-propelled vehicle to detect the

    ground with electrician cloth posted black lines, and avoid the progress. In the obstacle

    avoidance planning, the use of ultrasonic sensors installed in the self-propelled vehicle to

    detect the distance between the car and the obstacle, so that self-propelled vehicles can

    walk in an unknown environment, in order to achieve the purpose of avoiding

    obstacles.The program we used in development environment is called "mBlock" program

    which dedicated to the soft issues "Arduino" series of single-chip microcontroller

    development. The single-chip microcontroller adopts "mCore" development board, using

    this board is more simpler to develop in program designing, and eliminate many complex

    declaring and defining.

  • 2

    目錄

    一、 中文 二、 英文摘要 .............................................. 1

    目錄 .................................................................................. 2

    三、緒言 ........................................................................... 3

    四、簡介……………………………………………………4~14

    I . 方法………………………………………………………4~7

    II. 結果……………………………………………………8~14

    五、理論…………………………………………………15~19

    六、結論 .................................................................................. 20

    七、參考文獻 .................................................................... 21

    圖目錄

    圖 1 研究流程圖 ...............................................................................................................4

    圖 2 mBot、圖 3 mCore .................................................................................................... 5

    圖 4 Me Ultrasonic Sensor、圖 5 Me LED Matrix 8X16 ................................................ 6

    圖 6 益眾 CNY70、圖 7 TT 減速馬達 ........................................................................ 7

    圖 8 mBlock、圖 9 Arduino IDE ....................................................................................... 8

    圖 10 CNY70 2 進制轉 10 進制程式、圖 11 瓶子閃避式 ...................................... 9

    圖 12 主程式 .............................................................................................................. .....10

    圖 13 比賽成果---榮獲佳作 ......................................................................................... 11

    圖 14 mCore 電路圖 ...................................................................................................... 13

    圖 15 控制流程圖 ............. ............................................................................................ 14

  • 3

    三、緒言

    (一) 研究動機:

    現在是講求高效率自動化的時代,許多重複性較高的事情可以不必再 仰賴

    人工去完成,故我們發想研發出一台可以自動循跡及避障的自走車。

    相信在不久的將來,一定會擁有很多高度智慧並多功能的機器人,將會走入

    我們的生活中,成為不可或缺的一環。

    (二) 研究目的:

    藉由撰寫單晶片的程式,來控制車體的移動,除了能夠自動偵測路徑 前進、

    偵測前方障礙物並閃避,來實現多功能的機器人。

    (三) 研究流程:

    1. 對單晶片的控制及程式進行學術探討及了解基本工作原理及硬體相關知識。

    2. 透過討論對題目進行分析,並且利用相關的學術論文及書籍找出最適合的解

    決方案及辦法。

    3. 規劃系統程式及硬體架構。

    4. 將硬體及軟體整合, 並測試功能的正確性。

    5. 驗證成品是否符合原設計功能。

    圖 1 研究流程圖

  • 4

    四、簡介

    I. 方法:

    (1). 硬體說明:

    A. mBot:

    mBot 是一台多功能的車子, 只需透過乘式撰寫就可以控制 mBot。使用 mBlock

    2.0 開發環境,它整合了藍牙無線模組、 超音波、 尋跡紅外線等等的各式硬體。

    圖 2 mBot

    B. mCore:

    mCore(基於 Arduino uno)是一個易於使用的主控 板專為 mBot 所設計的。

    mCore 集成了各種傳感器, 如蜂鳴器,光線感應器, RGB LED 等等。

    圖 3 mCore

  • 5

    C. Me Ultrasonic Sensor:

    Me Ultrasonic Sensor 是一個超音波傳感器,腳位分別 為 5V Gnd SIG,其中 SIG

    為觸發及回傳腳位。使用 RJ25 介面,使用者將更方便的去使用它。

    偵測距離 3 公分到 4 公尺,角度為 30 度以內。

    圖 4 Me Ultrasonic Sensor

    D. Me LED Matrix 8X16:

    Me LED Matrix 8X16 是一個 8X16 的點矩陣 LED,它可以顯示各式各樣的字及

    圖案。

    圖 5 Me LED Matrix 8X16

  • 6

    E. 益眾 CNY70:

    CNY70 是一個紅外線尋線感測器。益眾 CNY70 整 合了 5 顆 CNY70。

    圖 6 益眾 CNY70

    F. TT 減速馬達:

    TT 減速馬達額定為直流 6V,轉速為每分鐘 200 轉。

    圖 7 TT 減速馬達

  • 7

    (2). 軟體說明:

    A. mBlock 2.0:

    mblock 此開發軟體由麻省理工大學開發,是一種 Scratch 語言, 它的特點是使

    用圖形化的程式,使使 用者更加直觀的去撰寫程式。他跟 Arduino IDE 相同, 都

    為開方原始碼的開發環境, 也都為了 AVR 系列的 Arduino 晶片的編譯器。

    圖 8 mBlock

    B. Arduino IDE:

    Arduino 上執行的程式可以使用任何能夠被編譯成 Arduino 機器碼的程式語言

    撰寫。而 Atmel 也提供了 數個可以開 Atmel 微處理器程式的整合開發環境。

    Aduino IDE 使用 C 語言和 C++相仿的程式語言,並且提供了包含常見的數入/

    輸出函式 Wiring 軟體函式 庫。一個典型的 ArduinoC/C++ sketch 程式會包含兩

    個主函式,它們會再編譯後合成 main()函式,其中兩 個主函式為 Setup()函式及

    loop()函式,Setup()函式在 程式直行開頭會執行一次,用於初始化設定。 Loop()

    函式則是不停重複執行,直到硬體電源關閉。

    圖 9 Arduino IDE

  • 8

    II. 結果:

    A. 程式碼 mblock:

    圖 10 CNY70 2 進制轉 10 進制程式

    圖 11 避障程式

  • 9

    圖 12 主程式

  • 10

    B. 程式碼 arduino IDE:

    void Read_CNY70()

    {

    temp1 = digitalRead(15);

    temp1 += (2) * (digitalRead(14)); temp1 += (4) * (digitalRead(17)); temp1 += (8) *

    (digitalRead(16)); temp1 += (16) * (digitalRead(18)); CNY70 = temp1;

    }// CNY70 2 進制轉 10 進制程式

    void Find_Bottle()

    {

    ULTRASONIC = ultrasonic_1.distanceCm();

    if(((ULTRASONIC) > (5)) & ((ULTRASONIC) < (13)))

    {

    //避障路徑

    }

    }

    }//避障程式

    C. 練習過程:

    循跡

  • 11

    循線掃描傳送至顯示板

    避障

  • 12

    D. 比賽過程與結果:

  • 13

  • 14

    獎狀

  • 15

    五、理論

    (1) 公式推導:

    測量距離 高電平的時間 聲速

    (a). 為超音波測距公式

    (b). 為 2 進制轉 10 進制

    Y=A0+A1*2+A2*4+A3*8+A4*16

  • 16

    (2) mCore 電路圖:

    圖 14 mCore 電路圖

  • 17

    (3) 控制流程圖:

    圖 15 控制流程圖

  • 18

    (4) 比賽規則:

    一、 自走車的規定:

    1. 自走車必須由 Makeblocke 公司所出產的mBot-All-In-One Robot Kit、表情模組和

    益眾科技的 CNY70 模組組合而成,如[圖1]所示。mBot 益眾科技產品型號為:

    A03-M-mBot 表情模組益眾科技產品型號為:A03-M-LEDMatrix CNY70 模組益眾

    科技產品型號為:A03-M-CNY70

    2. 自走車必須能自立行走,不得由操控手使用手動遙控。

    二、 比賽場地:

  • 19

    場地如【圖2】所示,為一般的木板貼上大圖印刷的表面,有一條約 2 公分寬的黑 色軌跡線。

    軌跡線上會貼上數條 (可能 1 條,可能 10 條)與軌跡線相互垂直的 2 公分寬20 公分長的黑色

    線條,以下稱計數線。計數線的間隔至少 1 公分,第一條計數線的前端 的黑色軌跡線會有 10 公

    分以上與計數線垂直且沒有彎曲。黑色軌跡線上會放置 1 個寶特 瓶(圖上圓形綠色處)。寶特瓶

    的容量約 0.6 公 升,圓柱形,不裝瓶蓋,瓶口着地倒立, 外表可能有貼 產品標籤。軌跡線上

    的紅點距離寶特瓶約 30 公分,由紅 色電工膠帶 貼成。木板的接合處可能有某種程度的不平 坦,

    自走車必須可以克服這樣的障礙。

    三、 規則:

    1. 每隊限一名操控手下場操控自走車。

    2. 參加隊伍於比賽前由各隊操控手(或選手代表)抽籤決 定出賽次序。

    3. 比賽開始前,所有參賽的自走車均須置放於大會指定的 區域,輪到下場比賽

    的隊伍, 操控手須在裁判示意下拿 取自己的自走車下場比賽。

    4. 比賽時每次一個自走車下場比賽,先就位於起點處,當 裁判發出哨聲後,操

    控手即可 啟動自走車沿著黑色軌跡 線向終點方向行走。

    5. 自走車的表情模組必須顯示偵測到的計數線數量,在出 發時沒有偵測到任何

    計數線, 所以必須顯示 0,經過計 數線時,必須隨即顯示數字。表情模組所顯

    示的數字必須 保 持到該自走車比賽結束。

    6. 自走車行走到寶特瓶前方時,必須繞過寶特瓶,並在紅 點之前行走在黑色軌

    跡上,否則視為脫離黑色軌跡線。

    7. 自走車行走一次的時間不得超過 2 分鐘,除了避開寶 特瓶外,不能脫離黑

    色軌跡線行 走(即從這個圖形跳到 另一個圖形)自走車脫離黑色軌跡線或撞倒

    寶特瓶時,以 當時 的位置計算比賽成績。

    8. 比賽成績計算方式: 每算到 1 條計數線可得 1 分,每多計算 1 條計數線

    扣 1 分,計算遺漏不扣分。假設場地有 5 條計數線,如算到 5 條線,則得 5 分;

    如算成 6 條線,則因算對 5 條,得 5 分,但因多算 1 條,扣 1 分, 所以實

    得 4 分;如算到 4 條,則因算對 4 條,得 4 分。 依此類推,分數可為負數。

    走完全程,並計數正確者以 自走車走完全程的時間為計算標準,時間越短者成

    績越 高。以走完全程且計數正確的優先排列名次。 走完全程 但計數錯誤者,

    計數分數越高者排名越前,若計數成績相 同則以自走車走完 全程的時間為分出

    先後的標準,越快者 排名越前。 無法走完全程者,以該自走車的行走距離為 計

    算標準,距離越遠者成績越高。

    9. 參加此項競賽的國民小學組及國民中學組,每一隊可下 場行走二次,以成績較高的一 次為比賽成績;高中高職 組、大專院校組及社會組每一隊只下場行走

    一次。

    10.本規則未提及事宜,由裁判在現場根據實際情況裁定。

    四、獎勵: 獲得排列名次及佳作的隊伍依本大賽辦法發給指導老師及選手獎狀。

  • 20

    六、結論

    自走車也可應用於危險環境的探測,日後的研究可朝機械視覺與智慧型控制

    應用於無人自走車上,發展出人性化智慧型自走車。這就是我們爲什麽嘗試在自

    走車上加上其他功能的目的。自走車防撞設計對人類生活上都幫助,加上晶片控

    制,讓自走車的自主性控制得以更靈敏,可讓自走車自動避障,且自動校正繼續

    循跡行駛,讓自走車可以在行駛中自我避開危險。

    自走車雖已日趨穩定,但還有許多之功能未盡完善,為了使自走車能夠更多

    功能,能在既有成果的基礎上,改善缺失,並增加元件與功能,使整個系統更加

    完備,以期能應用在更實際的場合或環境。

    本專題藉由單晶片來完成多功能的自走車,了解感測器的量測及馬達 的控

    制, 用以應付各式各樣的情況。

    本次專題也遇到一些問題,如單一功能能夠正常運作,當與其他功能 並行

    使用後,便會出現誤動作的情況,此時就要去檢查程式在哪裡出現了 問題。也

    發現馬達無法行走直線,最後發現是舵輪導致車體無法直走,因 為舵輪會牽引

    車體方向。超音波會因為環境的溫度而有誤差,且當量測距 離愈大, 誤差便愈

    大,所以我們便把量測距離縮短至 100 公分左右,一來 節省量測刷新的時間,

    二來提升量測距離的精凖度。

  • 21

    七、 參考文獻

    [1] Mackblock: https://www.makeblock.com/

    [2] Mblok: http://www.mblock.cc/

    [3]益眾科技: http://www.icci.com.tw/

    [4]2018 亞洲智慧型機器人大賽:-虎尾科技

    大學

    http://140.130.12.231/robot/

    [5] Draw.IO: https://www.draw.io/

    [6] Arduino: https://www.arduino.cc/

    [7] Arduino wiki:

    https://zh.wikipedia.org/wiki/Arduino