57
修平科技大學 資訊網路技術系 實務專題 手機藍芽遙控車製作 指導教授:張瑞淇 老師 組長:黃文平 BN101122 組員:李政軒 BN101124 董家豪 BN101167

修平科技大學 - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/6053/1/手機藍芽遙控車製作.pdf · 車可以依操作者的意志來前進。在此專題中我們學會了Arduino

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

  • 修平科技大學 資訊網路技術系

    實務專題

    手機藍芽遙控車製作

    指導教授:張瑞淇 老師

    組長:黃文平 BN101122

    組員:李政軒 BN101124

    董家豪 BN101167

    中 華 民 國 一 零 五 年 六 月

  • 修 平 科 技 大 學 資訊網路技術系

    手機藍芽遙控車製作

    組長:黃文平 BN101122

    組員:李政軒 BN101124

    董家豪 BN101167

    指導老師: 老師

    評審老師: 老師

    老師

    老師

    中華民國 105 年 6 月 30 日

  • I

    摘要

    近年來網際網路快速發展,使得網路服務越來越普及。有線寬頻通

    訊技術也從傳統的銅纜傳輸進步到光纖傳輸的世代,也就是由 ADSL

    進步到光世代。資料傳輸速路也由 Mbps 進步到 Gbps。在無線通訊技

    術由 1G、2G 、3G 等世代進步到第四代 4G 行動寬頻。傳統的行動通

    訊服務只是有線電話的延伸,但是第四代行動通訊服務已進入萬物聯網

    的時代。因此,行動通訊裝置與其他裝置互聯將使人類生活更加便利,

    物聯網將是未來的發展方向。

    本專題主要研究 Arduino 遙控車透過藍芽介面與 Android 手機行動

    裝置互連,手機上的 App 可以透過藍芽介面傳送指令給遙控車,使遙

    控車可以依操作者的意志來前進。在此專題中我們學會了 Arduino 系統

    的開發技術、遙控車的原理與安裝、手機 App 的開發。經由此專題的

    研究,我們已累積了建置物網路服務所需的基本技術能力,希望將來能

    相關技術應用實際的商用物網路服務。

    關鍵字:藍芽、機器車、Arduino、App

  • II

    目錄

    摘要 .................................................................................................... I

    目錄 .................................................................................................. II

    圖目錄 ............................................................................................. IV

    第一章 緒論 ...................................................................................... 1

    1.1 研究動機.................................................................................. 1

    1.2 研究目的.................................................................................. 1

    1.3 研究方法.................................................................................. 2

    第二章 Arduino 簡介與開發環境安裝 ............................................... 3

    2.1 Arduino 簡介 ........................................................................... 3

    2.2 Arduino Uno 硬體架構 ............................................................ 4

    2.3 Arduino 的擴充板 .................................................................... 6

    2.3 Arduino 整合開發環境(IDE)安裝 ............................................ 7

    第三章 遙控車零組件介紹與安裝 .................................................... 12

    3.1 零組件介紹 ............................................................................ 12

    3.2 藍芽遙控車安裝 ..................................................................... 15

    第四章 超音波避障車與測試 ........................................................... 33

    4-1 超音波避障車原理 ................................................................. 33

  • III

    4-2 超音波避障車程式碼 ............................................................. 35

    第五章 藍芽遙控車與測試 ............................................................... 36

    5-1 藍芽模組安裝與設定 ............................................................. 36

    5-2 藍芽遙控車程式碼 .................................................................. 39

    5-3 手機 App 程式 ....................................................................... 40

    5-4 手機 AbbCar App 的測試 ...................................................... 46

    第六章 討論與結論 .......................................................................... 49

    參考文獻 .......................................................................................... 50

  • IV

    圖目錄

    圖 2.1 Arduino 開發板,Arduino UNO 與 Arduino MEGA ............. 3

    圖 2-2 Arduino UNO 的重要接腳 .................................................. 5

    圖 2-3 Arduino UNO 的 WIFI 擴展板與 Ethernet 擴展板 ............... 7

    圖 2-4 到 Arduino 官方網站 arduino.cc 下載 IDE 軟體 ................ 8

    圖 2-5 Arduino IDE 的開發環境 ................................................... 9

    圖 2-6 用 USB 線連接開發環境的電腦與 Arduino 開發板 .......... 10

    圖 2-7 確認 Arduino USB 的驅動程式與 COM Port 編號............. 10

    圖 2-8 由 Arduino IDE 上傳程式至 Arduino ................................. 11

    圖 3-1 藍芽遙控車零組件總覽 .................................................. 12

    圖 4-1 超音波感測器測距原理 ................................................... 33

    圖 4-2 超音波感測器時序圖 ....................................................... 34

    圖 5-1 藍芽模組設定原理 .......................................................... 36

    圖 5-2 藍芽模組設定 AT 指令 .................................................... 39

    圖 5-3 AbbCar 手機 App 畫面..................................................... 41

    圖 5-4 Android 手機三軸加速度感測器 ...................................... 41

    圖 5-5 AbbCar App 螢幕初始化與藍芽設定 ................................ 42

    圖 5-6 AbbCar App 定義常用副程式 ........................................... 43

  • V

    圖 5-7 AbbCar App 手機按鈕搖 .................................................. 44

    圖 5-8 AbbCar App 手機姿態搖控 .............................................. 45

    圖 5-9 AbbCar App 啟動後的畫面 .............................................. 46

    圖 5-10 AbbCar App 點選藍芽連線 ............................................. 47

    圖 5-11 AbbCar App 選擇按鍵或姿態控制 .................................. 48

  • 1

    第一章 緒論

    1.1 研究動機

    近年來網際網路快速發展,使得網路服務越來越普及。有線寬頻通

    訊技術也從傳統的銅纜傳輸進步到光纖傳輸的世代,也就是由 ADSL

    進步到光世代。資料傳輸速路也由 Mbps 進步到 Gbps。在無線通訊技

    術由 1G、2G 、3G 等世代進步到第四代 4G 行動寬頻。傳統的行動通

    訊服務只是有線電話的延伸,但是第四代行動通訊服務已進入萬物聯網

    的時代。因此,行動通訊裝置與其他裝置互聯將使人類生活更加便利,

    物聯網將是未來的發展方向。

    剛開始我們的專題題目都還沒有想出來時,組員突如其來的想法對

    藍芽遙控機器車有興趣,也獲得其他組員的認同,就決定去買材料。因

    為最近幾年智慧型手機的流行及普遍,所以我們就聯想到手機可以用來

    進行操控的藍芽連線遙控機器車,而且材料的取得對我們來說很方便。

    因為剛好我們老師也是學這塊領域的,可以好好的教導我們,經過大家

    討論後,認為藍芽連線遙控機器車,一定比迴力車還好玩,所以就決定

    要用藍芽連線機器車來當我們的專題。

    1.2 研究目的

    本專題主要研究 Arduino 遙控車透過藍芽介面與 Android 手機行動裝

  • 2

    置互連,手機上的 App 可以透過藍芽介面傳送指令給遙控車,使遙控

    車可以依操作者的意志來前進。在此專題中我們學會了 Arduino 系統的

    開發技術、遙控車的原理與安裝、手機 App 的開發。經由此專題的研

    究,我們已累積了建置物網路服務所需的基本技術能力,希望將來能相

    關技術應用實際的商用物網路服務。

    1.3 研究方法

    本專題採用的是 Arduino 藍芽遙控車套件,雖然套件上已有安裝步

    驟,但是如果沒有足夠的經驗,容易出現安裝不良,容易故障的現象。

    因此我們採用階段性的方法,先收集個別零組件的資料並聊解其動作原

    理。再將藍芽遙控車套件先安裝好局部零件後,馬上測試此局部零件的

    功能。如此可以確保安裝好的零件可以正常運作後,再安裝新的零件。

    這樣可以確保所有零件到整輛遙控車可以正常運作。如果一次就把遙控

    車所有零件安裝完成,萬一有問題發生時,可能會像瞎子摸象一樣,不

    知從何處下手去找出問題。

    本報告的本文順序就是我們整個專題製作的順序。第二章是

    Arduino 的硬體架構與開發環境安裝;第三章是零件的功能與安裝;第

    四章是超音波避障車與測試;第五章是藍芽遙控車與測試;第六章是討

    論與與未來發展方向。

  • 3

    第二章 Arduino 簡介與開發環境安裝

    2.1 Arduino 簡介

    Arduino 開放式軟硬體平台,如圖 2.1 所示,是由義大利人 Massimo

    Banzi 和 David Cuartielles 所設計開發。其色是採用低價位微處理器與

    開放式的軟硬體平台。由於本專題只用到 Arduino UNO,以下的章節將

    只對 Arduino UNO 進行說明。

    圖 2.1 Arduino 開發板,Arduino UNO 與 Arduino MEGA

    Arduino 開放式軟硬體平台的重要特色如下:

    開放源碼:不僅軟體是開放源碼,連硬體也是開放的。開發軟體用

    的 IDE 可免費下載,Arduino 的電路設計圖也可以從網路上下

    載。

    簡單好用資源多:傳統上,要開發微控制器的程式,開發者需要具

    備電子電機相關科系的背景,一般人不容易進入這個世界。Arduino

    進入門檻低,即便沒有電子電機相關科系的背景,也可以很容易學

    會使用 Arduino。再者,由於 Arduino 開放的精神,很多人都樂於

  • 4

    分享他們的作品,所以網路上有非常多的資源。很多時候,我們只

    要參考網友的作品,配合自己的需求調整一下設計,就可以在短時

    間內完成自己的作品。

    物美價廉:一張微控制器板子動輒 3000 元台幣,相較於這類微控

    制板子,Arduino 控制板只要 30 美元左右,可以說是俗擱大碗。

    Arduino 有許多可能的應用,例如:使用者可以在 Arduino 板子

    上接上各種電子裝置,例如 LED 燈、喇叭、馬達、開關、溫濕度感測

    器、紅外線發射與接收器、LCD 顯示裝置,以及 Ethernet, WiFi, XBee,

    Bluetooth, RFID, GPS 等各種通訊模組。若再配合撰寫一些自動控制的

    程式,就能利用 Arduino 做出各式各樣的自動控制應用,例如利用溫

    度感測器控制風扇的運轉、使用可變電阻控制燈光的明暗、控制馬達的

    轉速、利用紅外線遙控家電/ 利用伺服機(Servo)控制機械手臂或機器

    人,以及製作自走車、飛行器等等。

    2.2 Arduino Uno 硬體架構

    Arduino Uno 的硬體的重要接腳如如圖 2.2 所示。

    電源接腳:Arduino 透過左上方的 USB 插座與電腦連接,電腦可以

    透過 USB 供應 5V 電源、上載程式至 Arduino,Arduino 也可以透過

    USB 介面,將訊息送給電腦。程式開發者可以透過這種方式偵錯程

  • 5

    式。如果 Arduino 要獨立運作時,可以透過左下方的 55mm/21mm

    電源插座與直流電源連接,直流電源的建議輸入電壓為 7-12V,限

    制輸入電壓為 6-20V。

    數位接腳:圖 2-2 上方右側是 14 個數位接腳,電壓標準是 TTL 準

    位電壓。其中接腳邊號旁有「~」符號者為具有 PWM 輸出功能,

    可以變頻方式控制周邊裝置。

    圖 2-2 Arduino UNO 的重要接腳

    類比接腳:圖 2-2 下方右側是 6 個類比輸入接腳,輸入電壓範圍是

    0~5 伏特。類比訊號輸入後將透過類比對數位轉換器 (ADC)轉為 10

    位元的數位輸出。

    LED 燈:Arduino UNO 內建兩個 LED 燈,其中右側的是電源指示

    燈,可確認電源供應是否正常。上方的是測試 LED 燈,可以寫一

    個測試程式控制 LED 燈的暗亮案,以確認 Arduino UNO 的基本運

    作是否正常。

  • 6

    重置(Reset)鈕:所有 Arduino 板與其擴充板上都有重置(Reset)鈕,

    當系統出現異常時,可以用來重新啟動 Arduino。

    Arduino UNO 的技術規格整理如下;

    [1] 控制器 ATmega328

    [2] 工作電壓 5V

    [3] 輸入電壓(建議)7-12V

    [4] 輸入電壓(限制)6-20V

    [5] 數位 I/O Pins 14 支(其中有 6 支腳位可提供 PWM 輸出)

    [6] 類比輸入 Input Pins 6 支

    [7] I/O pin 直流電流 40mA

    [8] 3.3V pin 直流電流 50mA

    [9] Flash 記憶體 32KB, 其中 0.5KB 拿去給 bootloader 使用

    [10] SRAM2KB

    [11] EEPROM1KB

    [12] 時脈 16MHz

    2.3 Arduino 的擴充板

    市面上有許多 Arduino 的擴充板可供玩家來購買使用,甚至也有專

    業的愛好者會自己設計擴充板並大量生產販售。擴充板只要分成二類:

  • 7

    網路卡、感測器。由於在物聯網時代幾乎所有裝置都要連上網路,

    Arduino 也要加裝網路卡擴充板才能與網路互換連。常見網路擴充板主

    要有 WIFI 擴展板與 Ethernet 擴展板,如圖 2-3。感測器擴充板主藥包

    括溫濕度、加速度、紅外線、...等感測器。

    圖 2-3 Arduino UNO 的 WIFI 擴展板與 Ethernet 擴展板

    使用擴展板時通常要到 Arduino.cc 的網站下載其程式庫才能正常

    使用,也有許多玩家把程式庫放在 GitHub 網站分享。由於不同版本的

    開發環境可能也要搭配的不同版本的程式庫,下載程式庫時一定熟讀說

    明檔案。

    2.3 Arduino 整合開發環境(IDE)安裝

    Arduino 整合開發環境(IDE)支援 Windows 與 MAC 作業系統,可

    以到 Arduino 官方網站 arduino.cc 下載 IDE 軟體,如圖 2-4。雖然目前

    最新的版本已經到了 IDE 1.6.8,但是某些程式庫不支援新版的 IDE,

    常常會遇到奇怪無解的問題,上網查了許久才發現是新版 IDE 與程式

  • 8

    庫不相容。因此,建議仍然使用舊版的 IDE 來開發會比較順暢。

    圖 2-4 到 Arduino 官方網站 arduino.cc 下載 IDE 軟體

    下載後執行 IDE 安裝程式,完成安裝後,啟動 Arduino IDE 軟體會

    出現如圖 2-5 的 IDE 畫面。中間空白區就是程式撰寫區。

  • 9

    圖 2-5 Arduino IDE 的開發環境

    接下來用 USB 線連接開發環境的電腦與 Arduino,如圖 2-6,此時

    電腦會自動搜尋與安裝 Arduino USB 介面的驅動程式。如圖 2-7 所示,

    此時可由裝置管理員檢查驅動程式安裝是否成功,也記得要在 IDE 中

    的選單 Tool>Serial Port 設定正確 COM Port,才能正常與 Arduio 通訊。

  • 10

    圖 2-6 用 USB 線連接開發環境的電腦與 Arduino 開發板

    圖 2-7 確認 Arduino USB 的驅動程式與 COM Port 編號

    此時我們可以由 IDE 選單 File>Examples>01Basic 中載入範例程式

    Blink.ino。點選 Upload,如圖 2-8,如果範例程式可以成功上傳與執行,

    則代表已經成功安裝 Arduino IDE 且 Arduino 開發板的基本功能是正

    常。

  • 11

    圖 2-8 由 Arduino IDE 上傳程式至 Arduino

  • 12

    第三章 遙控車零組件介紹與安裝

    3.1 零組件介紹

    圖 3-1 藍芽遙控車零組件總覽

    圖 3-1 是本專題的所有零件,我們已經在這些零件上寫下編號,

    分別敘述如下:

  • 13

    [1] Arduino UNO 開發板:他是整個遙控車的核心,程式在此執行。

    [2] 傳感器擴展板(Arduino Sensor Shield):Arduino Sensor Shield V5.0

    感測器擴展板,是採用疊層設計,主板將 Arduino Uno 的全部數位

    與類比腳位,以公頭杜邦接頭的形式擴展出來。

    [3] 遙控車平台(Robot Platform):所有的零組件全部安裝於此平台上。

    [4] 輪子與鋼珠:遙控車的左右輪子與前後的支撐鋼珠。

    [5] 直流馬達(DC Motor):驅動遙控車的左右輪子的馬達。

    [6] 伺服馬達(Servo Motor):控制超音波感測器轉向的馬達。

    [7] 超音波感測器(UltraSonic Sensor):利用超音波偵測前方障礙物距

    離。

    [8] 直流馬達驅動模組(L298N):直流馬達驅動模組可以提供較大的地

    流推動馬達。

    [9] 18650 鋰電池座:鋰電池座可以安裝鋰電池並且供電給 Arduino

    UNO 開發板與流馬達驅動模組(L298N)。

    [10] 18650 鋰電池與充電器:由於 Arduino 的直流輸入需要 7 伏特電壓,

    所以需要兩顆鋰電池。

    [11] 紅外線亮暗感測器:循跡自走車偵測地面黑線的感測器,本專題並

    未製作此功能。

  • 14

    [12] 紅外線遙控接收機:接收紅外線遙控器的訊號,本專題並未製作此

    功能。

    [13] 接收紅外線遙控器:發射紅外線遙控訊號,本專題並未製作此功

    能。

    [14] 杜邦線、銅柱與螺絲:組裝遙控車所需雜項零件。

    [15] 伺服馬達方向舵:固定伺服馬達的雜項零件。

    [16] 藍芽模組:遙控車與手機通訊的介面。

  • 15

    3.2 藍芽遙控車安裝

    第一步:將 N20 減速電機的出軸插進小車輪胎的電機孔中

    第二步:將N20白色電機固定架安裝到電機上,注意固定架內部有槽,

    可以和電機相吻合

  • 16

    第三步:將電機固定件的固定孔對準小車底盤的安裝孔

    第四步:電機固定孔中放好 M2 的螺母

  • 17

    第五步:打螺絲,固定電機支架

    第六步:用樣方法裝好另一邊

  • 18

    第七步:在萬向牛眼輪上好 1 個 M3*12 的螺絲和 2 個 M3 的螺母

    第八步:上好緊固螺絲,固定在小車底盤上

  • 19

    第九步:用樣方法裝好另一邊

    第 10 步:裝上尋線感測器的固定銅柱

  • 20

    第 11 步:裝上三組的尋線模組,上好 M3 緊固螺絲

    第 12 步:安裝 L298N 電機驅動模組

  • 21

    第 13 步:接好電機線和電池供電的線,電池盒的+接 L298N 的 VMS,

    電池盒的-接 L298N 的 GND

    第 14 步:裝上 18650 電池盒,鎖上螺絲

  • 22

    第 15 步:裝上雙層之間的 4 個銅柱

    第 16 步:對好上層車體的孔

  • 23

    第 17 步:加上緊固螺絲

    第 18 步:確認伺服馬達與超音波感測器安裝相關零件

  • 24

    第 19 步:一、將舵機配件包裡的十十字架本體取出

    二、將十字架剪成四邊等長度,打磨成寬度一樣

    第 20 步:將 2*8MM 的和 1.2*5MM 的螺絲安裝到十字的第二個孔,裝

    到雲台底座上

  • 25

    第 21 步:一、雲台底部 2*8MM 的螺絲位套上螺母

    二、點上熱熔膠固定螺絲位置

    第 22 步:將舵機裝上雲台的兩個邊

  • 26

    第 23 步:邊翼裝好後,裝好螺絲固定

    第 24 步:邊翼裝好後緊固

  • 27

    第 25 步:將裝好的舵機放進固定好的十字膠體條整好方向

    第 26 步:從舵機元件包裡取出 2*6mm 的螺絲安裝到舵機固定孔中

  • 28

    第 27 步:用膠帶將超聲波模塊固定在雲台前端

    第 28 步:將 6MM 銅柱裝在雲台底座安裝孔

  • 29

    第 29 步:把裝好的雲台舵機裝到車底盤上的安裝孔上

    第 30 步:裝上主控制板的固定螺絲

  • 30

    第 31 步:固定好 ARDUINO 主控制板

    第 32 步:主機板位置圖

  • 31

    第 33 步:將感測器擴展板堆疊在 ARDUINO 主控制上

    第 34 步:安裝紅外接收頭

  • 32

    第 35 步:安裝完畢!謝謝!

  • 33

    第四章 超音波避障車與測試

    在第三章中已經完成遙控車的安裝,但是我尚未完成程式的撰寫與

    測試。為了避免系統太過於複雜,我分兩個步驟來完成。首先是單機的

    測試,也就是使用遙控車上的超音波感測器 HC-SR04,來偵測障礙物

    的方向與距離,設計超音波避障車,已先確認自走車本身的運作是正常。

    最後才插上藍芽模組,Android 手機透過藍芽介面傳送命令控制遙控車

    的行進路線。

    4-1 超音波避障車原理

    超音波感測器 HC-SR04 是一個超音波感測器,價格大約 100 元

    左右,它可以探測的距離為 2cm-400cm,精度為 0.3 cm,感應角度為

    15 度。超音波感測器主要應用在機器人或自走車避障、物體測距等。

    圖 4-2 超音波感測器測距原理

    國中理化有教過,聲音在空氣中的傳播速度大約是每秒 340 公尺,

    傳播速度會受溫度影響,溫度愈高,傳播速度愈快。因為聲音傳播速

  • 34

    度 v (cm/ μs ):v= 340m/sec=340 ×100cm/1,000,000 μs。所以傳播 1cm

    (r=1)所需傳播時間 τ (μs)為:

    r = τ × v τ= 1/v = 1000000/(340*100)=29.4μs 

    上式中通常用 29 μs,誤差並不會太大。

    由於超音波從發射到返迴是兩段距離,因此在計算時必須將結果除

    以 2 才是正確的物體距離。所以我們可以利用底下的公式算出物體距

    離 r:

    r = t/ 29 / 2=t/(58)

    上式中,距離 r 單位為公分,其中 t 是測量得到的音波傳播時間。

    圖 4-2 超音波感測器時序圖

  • 35

    4-2 超音波避障車程式碼

    此超音波避障車程式碼程式會使利用自走車上的超音波感測器,判

    斷前方是否有障礙物,執行下列動作:

    [1] 前方 10cm 有障礙物: 後退

    [2] 前方 20cm 有障礙物:

    [3] 若左方與右方障礙距離小 30cm:後退

    [4] 若左方障礙距離小於右方障礙距離: 右轉

    [5] 若左方障礙距離大於或等於右方障礙距離: 左轉

    [6] 前方 20cm 無障礙物: 前進

    由於檔案太大,完整程式碼收錄於專題報告光碟片中,檔名為

    UltraSonic_car.ino。

  • 36

    第五章 藍芽遙控車與測試

    5-1 藍芽模組安裝與設定

    本專題使用的藍芽模組是 HC-05,由於不同的應用採用的傳輸速度

    與協定不同,需要設定成我們所需要的硬體傳輸速度與協定,常見的速

    度有: 9600, 14400, 19200, 38400,…等。常用的協定有:start bit, parity,

    stop bit。此外,出廠時每個藍牙都取一樣的名字,例如 HC-05, HC-06,

    Linvor,實際應用時如果現場有多個藍牙會造成混淆。我燜將藍芽模組

    裝在數位接腳 12 與 13。

    圖 5-1 藍芽模組設定原理

  • 37

    要設定 HC-05 藍芽模組,其原理如圖 5-1,步驟如下:

    [1] 在電腦上用串列埠監控視窗下指令。

    [2] 經 USB 送至 Arduino,再傳至 HC-05。

    [3] HC-05 收到指令執行後,把結果回傳 Arduino

    [4] Arduino 收到結果後,經 USB 送至串列埠監控視窗

    為了透過 Arduino 執行上述步驟,必須在 Arduino 上執行下列程式:

    BT_setting.ino,其中為了避免藍芽模組與 USB 相衝,將藍芽模組接在

    數位接腳 12 與 13。BT_setting.ino 程式碼如下:

    #include SoftwareSerial BTserial(12, 13); // RX | TX // Connect the HC-05 TX to Arduino pin 12 RX. // Connect the HC-05 RX to Arduino pin 13 TX. char c=' '; void setup() { Serial.begin(9600); Serial.println("Arduino is ready"); // HC-05 default serial speed for communication mode is 9600 BTserial.begin(38400); Serial.println("BTserial started at 38400"); } void loop() { // Keep reading from HC-05 and send to Arduino Serial Monitor if (BTserial.available()) { c = BTserial.read();

  • 38

    Serial.write(c); } // Keep reading from Arduino Serial Monitor and send to HC-05 if (Serial.available()) { c = Serial.read(); // Copy the serial data back to to the serial monitor. Serial.write(c); BTserial.write(c); } }

    要設定 HC-05 藍芽模組,必須進入 HC-05 設定模式,其步驟如下:

    [1] 已經透過 USB 供電給 Arduino 與 HC-05。

    [2] 拔掉 HC-05 的 VCC 杜邦線。

    [3] 用按下 HC-05 的正面的小按鈕。

    [4] 重新插入 HC-05 的 VCC 杜邦線,放開按鈕。

    [5] 此時 HC-05 會每隔兩秒閃一次,表示已經進入設定模式: Data

    Rate=38400bps

    已進入 HC-05 的設定模式後,可以由在 Serial Monitor 上執行下

    列 AT 指令,如圖:

    [1] AT [2] AT+VERSION? [3] AT+NAME?

    [4] AT+NAME:HUST-ab:其中 ab 為組別編號,例如第 13 組的 ab=13。

    [5] AT+NAME?

  • 39

    圖 5-2 藍芽模組設定 AT 指令

    5-2 藍芽遙控車程式碼

    Arduino 遙控車藍芽模組接在數位接腳 12 與 13。此程式 BT_Car.ino 會

    接收藍芽介面的指令,執行下列動作:

    [1] 指令=1,前進

    [2] 指令=2,後退

    [3] 指令=3,左轉

    [4] 指令=4,右轉

    由於檔案太大,完整程式碼收錄於專題報告光碟片中,檔名為

    BT_car.ino。

  • 40

    5-3 手機 App 程式

    我們使用 AppInventor 2 開發 App,此 App 的名稱為 AbbCar,操作

    畫面如圖 5-3。功能有選定藍芽介面裝置、設定遙控車控制方式(包括按

    鈕與姿態)。完整程式碼收錄於專題報告光碟片中,檔名為 AbbCar.ino。

    當使用螢幕上預設的觸控按鈕遙控藍芽車時,自走車會執行下列動作:

    [1] Go 前進

    [2] Back  後退

    [3] Left 左轉

    [4] Right 右轉

    [5] Hold 停止

    由於 Android 手機都內建三軸加速度感測器,如圖 5-4,我們可以當使

    用手機姿態遙控車,自走車會執行下列動作:

    [1] 前傾 前進

    [2] 後仰 後退

    [3] 左傾 左轉

    [4] 右傾 右轉

    [5] 平放 停止

  • 41

    圖 5-3 AbbCar 手機 App 畫面

    圖 5-4 Android 手機三軸加速度感測器

  • 42

    AbbCar App 的程式如下,包括下列項目:

    [1] 螢幕初始化與藍芽設定

    圖 5-5 AbbCar App 螢幕初始化與藍芽設定

  • 43

    [2] 定義常用副程式定

    圖 5-6 AbbCar App 定義常用副程式

  • 44

    [3] 手機按鈕搖控

    圖 5-7 AbbCar App 手機按鈕搖

  • 45

    [4] 手機姿態搖控

    圖 5-8 AbbCar App 手機姿態搖控

  • 46

    5-4 手機 AbbCar App 的測試

    安裝與啟動 App: AbbCar 後的畫面,如圖 5-9。接著要點選藍芽連線,

    如圖 5-10。接著可以選擇按鍵或姿態控制,如圖 5-11。

    圖 5-9 AbbCar App 啟動後的畫面

  • 47

    圖 5-10 AbbCar App 點選藍芽連線

  • 48

    圖 5-11 AbbCar App 選擇按鍵或姿態控制

  • 49

    第六章 討論與結論

    本專題主要研究 Arduino 遙控車透過藍芽介面與 Android 手機行動

    裝置互連,手機上的 App 可以透過藍芽介面傳送指令給遙控車,使遙

    控車可以依操作者的意志來前進。在此專題中我們學會了 Arduino 系統

    的開發技術、遙控車的原理與安裝、手機 App 的開發。

    在開發的過程中,我們按部就班將所有的零件一個接著一個的安裝

    與測試。其中最複雜的階段是直流馬達的安裝與測試。由於直流馬達有

    正負極,只要接錯線路,車子就會亂轉;而且左右兩邊的正反轉方向不

    一致,測試程式時也要不斷去驗證馬達的轉向。其次是藍芽的安裝與設

    定,因為藍芽接腳有 TX 與 RX,不小心接錯,就完全無法與 Arduino

    溝通。最後,在零件在接線時也要注意電源的正負極,不小心接錯了,

    輕則要花費很多時間去除錯,重責零件可能會燒毀。

    在此專題的研究中,也學習了新的 Android 手機的 App 開發的技

    術。以前上課是使用 Java 語言開發 Android App,需要耗費許多時間。

    這次使用 AppInventor 開發,使用圖形介面設計 App 畫面與程式,節省

    了不少時間。經由這個專題的研究,我們已累積了建置物網路服務所需

    的基本技術能力,希望將來能相關技術應用實際的商用物網路服務。

  • 50

    參考文獻

    [1] 趙英傑,超圖解 Arduino 互動設計入門(第二版),台北,旗標出

    版股份有限公司,2011 年 5 月。

    [2] 林健仁,Arduino 機器人與專題製作,台北,全華圖書股份有限

    公,2011 年 5 月。

    [3] 楊明豐,Arduino 自走車最佳入門與應用:打造輪型機器人輕鬆

    學,台北,碁峰資訊股份有限公司,2016 年 3 月。

    [4] 楊明豐,Arduino 最佳入門與應用:打造互動設計輕鬆學(暢銷經

    典第二版),台北,碁峰資訊股份有限公司,2015 年 4 月。

    [5] 高登.麥康,譯者:江良志,Arduino 機器人製作聖經,台北,

    馥林文化股份有限公司,2014 年 4 月。

    [6] Don Wilcher,Make:簡易的 Arduino 專題製作,台北,歐萊禮股

    份有限公司,2014 年 11 月。