修平科技大學 -...

59
修平科技大學 資訊網路技術系實務專題 樂高夾娃娃機 指導老師:蔡篤校老師 專題學生:高暐捷 BN101002 王孟凡 BN101060 林孝勳 BN101031 105 8 8

Upload: others

Post on 29-Jul-2020

10 views

Category:

Documents


0 download

TRANSCRIPT

  • 修平科技大學 資訊網路技術系實務專題

    樂高夾娃娃機

    指導老師:蔡篤校老師

    專題學生:高暐捷 BN101002

    王孟凡 BN101060

    林孝勳 BN101031

    中 華 民 國 105 年 8 月 8 日

  • 摘要

    夾娃娃機屬於龐大體型的機台,儘管他帶給人們很多的樂趣,但是

    在這個時代中,還是需要人們去找有夾娃娃機的地方,如果說夾娃娃

    機變成跟我們一般小朋友玩的玩具一樣,可以隨身攜帶,這樣就可以

    隨時享受到夾娃娃機的樂趣,並且可以節省玩夾娃娃機所花費的錢,

    所以我們這次的專題研究要製做出一款迷你版的夾娃娃機,並且結合

    現在人手一機的智慧型手機,透過智慧型手機下載我們所製作的遙控

    夾娃娃機 APP,來控制夾娃娃機,也讓我們夾娃娃機可以大大縮減體

    積,達到帶給大家娛樂的目標,又不會過於不方便攜帶,讓大家之後

    買玩具給小孩,可以有多一種的選擇。

  • 目錄

    第一章 簡介 .............................................................................................................. 1

    1-1 研究動機與目的 .......................................................................................... 1

    1-2 工作進度表 .................................................................................................. 2

    第二章 文獻探索 ...................................................................................................... 3

    2-1認識樂高 ............................................................................................................... 3

    2-2 NXT主機介紹 ............................................................................................... 5

    2-3 NXT元件說明 ............................................................................................... 9

    2-3-1觸碰感應器 ....................................................................................... 9

    2-3-2光源感應器 ..................................................................................... 10

    2-3-3聲音感應器 ..................................................................................... 10

    2-3-4直流馬達 ......................................................................................... 11

    2-3-5連接線 ............................................................................................. 11

    2-3-6超音波感應器 ................................................................................. 12

    2-4 NXT指令 ..................................................................................................... 13

    2-5藍芽傳輸 ..................................................................................................... 14

    2-5-1 藍芽 ................................................................................................ 14

    2-5-2藍芽歷史 ......................................................................................... 15

    2-5-3藍芽應用 ......................................................................................... 17

    2-5-4藍芽規格 ......................................................................................... 18

    2-5-5藍芽傳輸原理 ................................................................................. 19

    2-6-1藍芽網路架構: .............................................................................. 20

    2-6-2藍芽相關設定 ................................................................................. 21

    2-6-3建立 NXT與 NXT之間的藍芽連接 ................................................. 22

    第三章作業系統介紹 ................................................................................................ 23

    3-1行動裝置作業系統:Android ...................................................................... 23

    3-2 App Inventor 2的誕生 ........................................................................... 25

    3-3 App Inventor拼圖程式 ........................................................................... 26

    3-4 App Inventor2的開發優勢 ..................................................................... 27

    3-5 App Inventor2在進行 App應用程式開發的優點如下: ........................ 28

    3-6文字與按鈕元件 ......................................................................................... 30

    3-7 Button元件 ............................................................................................... 33

    第四章實作程式碼 .................................................................................................... 35

    第五章建置 App Inventor2專題 ............................................................................ 41

    5-1進入 App Inventor2的開發網頁 ............................................................. 41 I

  • 5-2新增 App Inventor2專題 ......................................................................... 42

    5-3版面配置頁面的佈置/拼塊編輯頁面 ....................................................... 44

    5-4在模擬器中執行應用程式 ......................................................................... 46

    第六章製作過程 ........................................................................................................ 48

    第七章結論 ................................................................................................................ 51

    第八章參考文獻 ........................................................................................................ 52

    II

  • 圖表目錄

    附圖 1 NXT主機外觀 .................................................................................. 5

    附圖 2 LeJOS NXJ主選單 ......................................................................... 6

    附圖 3 檔案選單 ........................................................................................ 6

    附圖 4 藍芽通信開啟 ................................................................................ 6

    附圖 5藍芽通信關閉 ................................................................................. 7

    附圖 6 配對找尋 ......................................................................................... 7

    附圖 7 選擇配對者 ..................................................................................... 7

    附圖 8 已配對完成 ..................................................................................... 7

    附圖 9 觸碰感應器 .................................................................................... 9

    附圖 10 光源感應器 ................................................................................ 10

    附圖 11 聲音感應器 ................................................................................ 10

    附圖 12 直流馬達 .................................................................................... 11

    附圖 13 連接線 ........................................................................................ 11

    附圖 14超音波感應器 ............................................................................. 12

    附圖 15藍芽傳輸原理 ............................................................................. 19

    附圖 16 App Inventor2的開發示意圖 ................................................. 27

    附圖 17 夾娃娃機的手機搖控器軟體介面圖 ........................................ 35

    附圖 18 程式二的介面 ............................................................................ 36

    附圖 19 APP介面所使用到的元件 ......................................................... 37

    附圖 20 點選按鈕控制藍芽裝置 ............................................................ 38

    附圖 21 藍芽裝置接收到命令後,開始控制 NXT主機 ........................ 38

    附圖 22 藍芽連接後可使用的按鍵 ........................................................ 38

    附圖 23 遙控器控制程式(相互關聯) ..................................................... 39

    附圖 24 夾娃娃機的功能健 .................................................................... 39

    附圖 25 馬達動作時的控制 .................................................................... 40

    附圖 26 程式二的執行指令 .................................................................... 40

    附圖 27 AI2登入介面 .............................................................................. 41

    附圖 28 程式選單 ..................................................................................... 42

    附圖 29 新增專案 ..................................................................................... 42

    附圖 30 AI2介面編輯 .............................................................................. 43

    附圖 31 AI2專案清單 .............................................................................. 44

    附圖 32 AI2主頁面 .................................................................................. 44

    附圖 33 拼塊編輯頁面 ............................................................................. 45

    附圖 34 選擇 Emulator ............................................................................. 46

    附圖 35 手機模擬器 ................................................................................. 47

    附圖 36初型架構 ...................................................................................... 48

    III

  • 附圖 37滑軌 ............................................................................................. 48

    附圖 38輸送帶 ......................................................................................... 49

    附圖 39爪子 ............................................................................................. 49

    附圖 40 移動馬達 .................................................................................... 50

    附圖 41架構成品 ..................................................................................... 50

    IV

  • 表目錄

    表格 1甘特圖 ............................................................................................. 2

    表格 2樂高面版及 LeJOS選單說明: ........................................................ 5

    表格 3主機規格 ......................................................................................... 8

    表格 4藍芽規格表 ................................................................................... 18

    表格 5 藍芽顯示圖像 ............................................................................... 20

    表格 6藍芽相關設定表 ........................................................................... 21

    表格 7建立 NXT與 NXT之間的藍芽連接表 ........................................... 22

    表格 8 Label元件屬性設定表 ............................................................... 30

    表格 9 TextBox元件屬性設定表 ........................................................... 32

    表格 10 Button元件設定表 ................................................................... 34

    V

  • 第一章 簡介

    1-1 研究動機與目的

    夾娃娃機,這個名字相信每個人都不陌生,現今在很多地方遊樂場

    所或者是夜市都看的到夾娃娃機的蹤影,而夾娃娃機非常吸引人的地

    方就在於它能透過較少的金額,夾取到市價較高昂的東西,這讓很多

    人想去嘗試,在商機的另一面,它帶給了人們歡樂,我們這組在當初

    構想題目時,我們的思考方向,是想要做一個能帶給大家歡樂的東西,

    於是經過多次的開會討論後,我們這組決定做夾娃娃機,然而現在智

    慧型手機已經普及了,大家往往都靠著智慧型手機來享受歡樂,那我

    們這組就有個想法,如果手機來結合夾娃娃機或許是一個不錯的想法,

    透過手機的遙控,讓夾娃娃機的玩法變得不一樣,然後透過自己手工

    製造夾娃娃機機台,降低成本、也增添在製作時所產生的樂趣,然後

    內部結構,我們運用在學時所學過的樂高機器人來進行組裝,製作出

    一台獨一無二的夾娃娃機。

    1

  • 1-2 工作進度表

    年份 104年 105年

    月份

    工作項目

    9

    1 0

    1 1

    1 2

    1

    2

    3

    4

    5

    6

    7

    8

    9

    1 0

    1 1

    1 2

    訂定專題題目

    搜集相關資料

    撰寫書面報告

    成品概念圖設計

    成品製作

    搜尋 APP相關文獻

    APP程式撰寫

    功能測試

    表格 1甘特圖

    預計完成時間

    實際完成時間

    2

  • 第二章 文獻探索

    2-1 認識樂高

    樂高積木是由丹麥的奧勒•基奧克發明的一種塑料積木,一頭有凸

    粒,另一頭有可嵌入凸粒的孔,形狀有 1300多種,每一種形狀都有

    12種不同的顏色,以紅、黃、藍、白、黑為主。它靠小朋友自己動腦

    動手,可以拼插出變化無窮的造型,令人愛不釋於,被稱為「魔術塑

    料積木」,但是樂高積木不管組裝的如何逼真、有趣,終究只是一堆靜

    態的成本,樂高公司並不以此為滿足。它仍在思考如何能使樂高產品

    更加活潑生動、更富有教育意義、甚至要能與時代脈動結合為目標。

    樂高集團在 20世紀 60年代和 70年代開始對基本積木添加其他組件。

    1974年開始使用樂高人仔,起初為黃色皮膚並且不分男女。被稱為樂

    高技術的機械組件於 1977年進入市場,智力風暴機器人產品於 1998

    年首次亮相。智力風暴系列(LEGO MINDSTORMS (NXT))是樂高集團和麻

    省理工學院技術媒體實驗室聯合開發的產品。

    LEGO MINDSTORMS (NXT),功能更為強大,操作介面也更容易上手,更

    適合國小學童使用。只要一組樂高機器人套件,就能做出好玩、有趣

    的作品,讓孩子擁有最有效率的學習。剛開始的學習以模仿為主,經

    由模仿動物特性、生活中常見機械動作的原理加以學習。再來則是發3

  • 現生活中的問題而加以改善。最後則是發揮自己的想像,將在現實生

    活中上未能實現的,也許可以在樂高機器人表現出來。這套產品包含

    圖形化控制軟體(The LEGO®MINDSTORMS®EducationNXTSoftware),可

    程式控制積木(NXT)及零件組。零件組包含各式各樣的積木組件,例如:

    齒輪、槓桿、輪胎、關節等,還有一些輸入、輸出裝置。輸入裝置有

    碰觸感應器、光源感應器、音源感應器及超音波感應器;輸出裝置則

    有馬達及燈泡等。這些輸出、輸入裝置與可程式控制積木搭配後,可

    以依據程式的指定及輸入裝置所回傳的數值,做一些控制的動作。例

    如:使用者可以在軟體上設計程式,當聲音的分貝大到某一程度時,

    馬達就開始運作,操作組裝之機器人進行動作。

    操作樂高機器人的程式語言稱為 LOGO程式語言,這個程式語言是由美

    國麻省理工學院的數學家兼教育家巴彼特(Seymour Papert)和 BBN研

    究群的成員在一九六○年代末期所設計出來的。巴彼特深受著名心理

    學家皮亞傑(Jean Piaget)的影響,他體認到一般智慧發展中的兒童都

    會漸漸成長到學習將日常生活的經驗轉化成抽象觀念的階段,此時比

    較重要的是提供一些工具來幫助兒童自行發展他們自己的觀念並驗證

    觀念的正確性,而非直接拿我們認為正確的觀念來教導他們。於是巴

    彼特便想到要利用電腦的計算及繪圖能力,把電腦模擬成一個通用的

    4

  • 實驗裝置,供學生發展及驗證他們自己的觀念。LOGO程式語言便是在

    這樣的動機下設計出來的。

    2-2 NXT 主機介紹

    此為樂高機器人最重要的核心元件,擁有四個輸入端(連接感應器)、

    三個輸出端(連接直流馬達),以及一個 USB 連接埠(連接電腦)。除

    了使用 USB 連線,NXT 主機也可以透過藍芽通訊協定連接至個人電

    腦。

    附圖 1 NXT主機外觀

    按鍵 名稱 使用

    左鍵 選項向上滾動

    右鍵 選項向下滾動

    確定 選擇選單項目

    (未開機時,可按此

    鍵開啟 NXT)

    跳出 回到上一層

    表格 2樂高面版及 LeJOS選單說明:

    5

  • NXT操作面版

    附圖 2LeJOS NXJ主選單

    附圖 3檔案選單

    附圖 4 藍芽通信開啟

    電池量 NXT名稱

    刪除

    執行

    內定執行

    6

  • 附圖 5藍芽通信關閉

    附圖 6配對找尋

    附圖 7選擇配對者

    附圖 8已配對完成 7

  • 主機規格

    表格 3主機規格

    CPU:32位元 ARM7微處理器

    記憶體: 256Kbytes FLASH;64Kbytes RAM

    輔助處理器:8位元 AVR處理器

    記憶體:24 Kbytes FLASH;512Byte RAM

    通訊方式:藍芽無線傳輸與 USB 2.0

    輸入端:4個(可連接觸碰、聲音、光源與超音波感測器)

    輸出端:3個(馬達)

    顯示設備:100 X 64像素液晶顯示面板

    電池:充電鋰電池(或 3號電池 X6)

    8

  • 2-3 NXT元件說明

    2-3-1 觸碰感應器

    當觸碰感應器被壓下時,回傳值為 1;未按下的回傳值為 0。此類

    型感應器可以做為機械模型的啟動 / 停止開關。舉例來說,在機械手

    臂前端可利用觸碰感應器偵測是否碰觸到物品,如果有,則將它抓起

    來。

    附圖 9觸碰感應器

    9

  • 2-3-2 光源感應器

    此種感應器可以偵測反射物的亮度。顏色較暗的物體,光源感應器

    的回傳值較低;顏色較亮的物體,光源感應器的回傳值較高。國際奧

    林匹克機器人競賽中經常出現的軌跡賽,就可以利用光源感應器來控

    制軌跡車如何前進。

    附圖 10光源感應器

    2-3-3 聲音感應器

    聲音感應器可以偵測機器人周遭的聲音大小,其測量單位分為 dB

    (分貝)與 dBA(調整分貝)兩種。透過聲音感應器,可以藉由聲音

    大小的變化來改變機器人的行為。

    附圖 11聲音感應器

    10

  • 2-3-4 直流馬達

    這個裝置可以說是機器人的雙腳,裝上馬達後樂高機器人就可以自

    由移動或執行某個動作,因為 NXT馬達內建角度感應器, 所以我們可

    以更精確的控制機器人的行為, 例如讓 A馬達順時針旋 轉 30度或是

    逆時針旋轉 5圈。

    附圖 12直流馬達

    2-3-5 連接線

    NXT專用連接線用來連接 NXT可程式積木與各種感應器,或直流馬

    達。目前的連接線有三種規格:20公分、35公分與 50公分。

    附圖 13連接線

    11

  • 2-3-6 超音波感應器

    NXT超音波感應器就像人類的眼睛,可以偵測距離的遠近(有效範

    圍約 255公分),其測量單位為英吋或公分。

    附圖 14超音波感應器

    12

  • 2-4 NXT指令

    指令可分為 4大類:

    1. 無控制模式、2.速度控制模式、3.同步模式、4.轉速表模式

    1. 無控制模式

    簡單來說,就是沒有特別去設定馬達的模式就是無控制模式了,

    此模式會使 NXT 不會理會馬達轉動的角度跟我們起初所設定的目

    標角度是否有差異。它只會照著給予多少數值,而下去轉動而已。

    2. 速度控制模式

    使用速度模式時,即使因摩擦力或者人為使馬達轉速變慢,NXT

    將會加大對馬達的電力輸出,來維持當初所設定的速度。

    3. 同步模式

    如果你想要兩個馬達速度一樣的話,就要用此模式了,只要兩

    個馬達的速度有一點差異,就會依據雙方的狀況做調整,一個快

    另一個就快,而一個慢另一個也就慢,不論直走、左右轉或者是

    原地旋轉都可以保持同步。

    13

  • 4. 轉速表模式

    此模式會利用 NXT裡面的角度感應器,角度感應器可以控制轉動的

    角度,讓機體不會因為摩擦力或者外力的影響,而沒有轉到當初所設

    定的角度目標。

    簡單來說,就是你要它轉幾度,他就會轉到幾度,不會因外力而少轉

    或是多轉。

    2-5藍芽傳輸

    2-5-1 藍芽

    藍牙(英語:Bluetooth),一種無線技術標準,用來讓固定與行動

    裝置,在短距離間交換資料,以形成個人區域網路(PAN)。其使用短

    波特高頻(UHF)無線電波,經由 2.4至 2.485 GHz的 ISM頻段來進行

    通訊。1994年由電信商愛利信(Ericsson)發展出這個技術。它最初

    的設計,是希望建立一個 RS-232資料線的無線通訊替代版本。它能夠

    連結多個裝置,克服同步的問題。

    藍牙技術目前由藍牙技術聯盟(SIG)來負責維護其技術標準。截至

    2013年為止,SIG已擁有超過 20,000間公司成員,其成員的領域分布

    14

  • 在電信、電腦、網路與消費性電子產品上。IEEE曾經將藍牙技術標準

    化為 IEEE 802.15.1,但是這個標準已經不再繼續使用。

    2-5-2 藍芽歷史

    藍牙技術最初由愛利信創製。技術始於愛利信公司的 1994方案,它

    是研究在行動電話和其他配件間進行低功耗、低成本無線通訊連線的

    方法。發明者希望為裝置間的通訊創造一組統一規則(標準化協定),

    以解決用戶間互不相容的移動電子裝置。1997年前愛利信公司以此概

    念接觸了行動裝置製造商,討論其專案合作發展,結果獲得支援。

    1998年 5月 20日,索尼易立信、國際商業機器、英特爾、諾基亞及

    東芝公司等業界龍頭創立「特別興趣小組」(Special Interest Group,

    SIG),即藍牙技術聯盟的前身,目標是開發一個成本低、效益高、可

    以在短距離範圍內隨意無線連線的藍牙技術標準。

    這項無線技術的名稱取自古代丹麥維京國王 HaraldBlåtand的名字,

    他以統一了因宗教戰爭和領土爭議而分裂的挪威與丹麥而聞名於世,

    而這個名字的英文便是 Harald Bluetooth。

    1998年時藍牙推出 0.7規格,支援 Baseband與 LMP(Link Manager

    Protocol)通訊協定兩部份。1999年推出先後 0.8版,0.9版、1.0 Draft

    15

  • 版,1.0a版、1.0B版。1.0 Draft版,完成 SDP(Service Discovery

    Protocol)協定、TCS(Telephony Control Specification)協定。

    1999年 7月 26日正式公布 1.0版,確定使用 2.4GHz頻譜,最高資料

    傳輸速度 1Mbps,同時開始了大規模宣傳。和當時流行的紅外線技術

    相比,藍牙有著更高的傳輸速度,而且不需要像紅外線那樣進行介面

    對介面的連線,所有藍牙裝置基本上只要在有效通訊範圍內使用,就

    可以進行隨時連線。

    當 1.0規格推出以後,藍牙並未立即受到廣泛的應用,除了當時對

    應藍牙功能的電子裝置種類少,藍牙裝置也十分昂貴。2001年的 1.1

    版正式列入 IEEE標準,Bluetooth 1.1即為 IEEE 802.15.1。同年,

    SIG成員公司超過 2000家。過了幾年之後,採用藍牙技術的電子裝置

    如雨後春筍般增加,售價也大幅下降。為了擴寬藍牙的應用層面和傳

    輸速度,SIG先後推出了 1.2、2.0版,以及其他附加新功能,例如 EDR

    (Enhanced Data Rate,配合 2.0的技術標準,將最大傳輸速度提高

    到 3Mbps)、A2DP(Advanced Audio Distribution Profile,一個控

    音軌分配技術,主要應用於立體聲耳機)、AVRCP(A/V Remote Control

    Profile)等。Bluetooth 2.0將傳輸率提升至 2Mbps、3Mbps,遠大於

    1.x版的 1Mbps(實際約 723.2kbps)。

    16

  • 2-5-3 藍芽應用

    1.行動電話和免提裝置之間的無線通訊,這也是最初流行的應用。

    2.特定距離內電腦間的無線網路。

    3.電腦與外設的無線連線,如:滑鼠、耳機、印表機等。

    4.藍牙裝置之間的檔案傳輸。

    5.傳統有線裝置的無線化,如:醫用器材、GPS、條形碼掃描器。交管

    裝置、藍芽無線麥克風收發機:具有發送端與接收端,發送端提供

    3-pin XLR接頭,可連接麥克風發射訊號,接收端提供 3.5mm接頭

    /6.3mm接頭,可直接插在揚聲器或擴大機上,彼此之間使用藍芽傳

    輸。

    6.數個乙太網之間的無線橋架。

    7.7代家用遊戲機的手柄,包括 PS3、PSP Go、Nintendo Wii。

    8.依靠藍牙支援,使 PC或 PDA能通過手機的數據機實作撥號上網。

    9.實時定位系統(RTLS),應用"節點"或"標籤"嵌入被跟蹤物品中讀卡

    機從標籤接收並處理無線訊號以確定物品位置。

    17

  • 2-5-4 藍芽規格

    Speed(速率) 11MB

    Physical Layer(調變方式) FHSS ( 跳頻展頻, Frequency

    Hop Spread Spectrum)

    使用範圍 個人小區域網路

    應用範圍 NoteBook、PDA、行動電話、印表

    傳輸距離 30feet(約近 10M)

    傳輸方向 採放射狀無方向性

    表格 4藍芽規格表

    18

  • 2-5-5 藍芽傳輸原理

    附圖 15藍芽傳輸原理

    NXT的藍芽傳輸方式採用主從式架構。由一個特定的 NXT(主)控制其

    他 NXT(從),因此在特定 NXT上開啟藍芽目錄並搜尋其他的 NXT(注意:

    此時主、從的相對關係就已決定),當搜尋到其他的 NXT後,須為加入

    的第二個 NXT設定連結序號(1、2、3)。當第一次進行連結時,二個

    NXT上會顯示請輸入認證碼的畫面,此時須輸入同一組自訂密碼。

    NXT(主)的連結目錄中會顯示另一個 NXT(從)的名稱及連結序號。在另

    19

  • 一 NXT(從)上,則會顯示 NXT(主)的名稱及連結序號,其連結序號必為

    0。當以上二個 NXT皆顯示正確訊息後,表示 NXT(主)已與另一 NXT(從)

    連結完成。若 NXT(主)與多個 NXT進行連結(最多為 3個),即重覆上

    述程序即可。

    2-6-1 藍芽網路架構:

    1. NXT 藍芽網路並非為廣播模式,當你想傳送訊息給多台 NXT 時,

    一次只能針對單一 NXT 進行傳送。

    2. 若是 Salve A 要傳送給 Salve B,那就得先上傳到 Master 上再

    下傳到 Salve B,Salve 對 Salve 是不能互相通訊的。

    3. 單台 NXT 不能同時擔任 Master & Salve,因為 Salve 唯一的通

    訊對象只有 Master。

    藍芽顯示圖像

    NXT藍芽已打開,但

    對其他藍芽設備而言

    是隱藏情況。

    NXT藍芽已打開,對

    其他藍芽設備而言是

    顯示情況。

    NXT藍芽已打開,並

    且以連接到其他藍芽

    設備。

    表格 5藍芽顯示圖像

    20

  • 2-6-2 藍芽相關設定

    隱藏選擇:我們可以

    將 NXT設定成對其他

    藍芽設備為顯示或隱

    藏。

    密碼設定:第一次連

    接藍芽設備到 NXT 都

    需要輸入默認密碼

    1234 或自己設定的

    密碼,而其他的藍芽

    必須知道密碼才能連

    接。

    藍芽設定:藍芽關閉

    時 NXT就不能發送和

    接收資料,只能透過

    USB下載程式。但為

    了節省電量,可以在

    不使用藍芽情況下進

    行關閉。

    表格 6藍芽相關設定表

    21

  • 2-6-3 建立 NXT與 NXT 之間的藍芽連接

    螢幕上選擇藍芽子

    功能表。

    選擇 Search功能表後,NXT

    會自動搜尋其他藍芽設

    備,而搜尋範圍為 0-30米

    內的藍芽設備(也許範圍會

    超過 30米)。

    幾秒鐘後,NXT會把

    搜索到的藍芽設備

    顯示在螢幕上。

    表格 7建立 NXT與 NXT之間的藍芽連接表

    22

  • 第三章 作業系統介紹

    3-1 行動裝置作業系統:Android

    Android單字的原意為(機器人),Google號稱 Android是第一個真

    正為行動裝置打造的作業系統。Google將 Android的代表圖示設計為

    綠色機器人,不但表達了字面上意義,並且進一步的強調 Android作

    業系統不僅符合環保概念,更是一個輕薄短小但功能強大的作業系

    統。

    Android是一個以 Linux為基礎的開放原始碼作業系統,主要用於

    行動設備,目前由 Google持續領導與開發中。Android作業系統是完

    全免費,任何廠商都可以不經過 Google的授權隨意使用 Android作業

    系統,甚至進行修改。Android作業系統支援各種先進的繪圖、網路、

    相機、感測器等處理能力,方便開發者撰寫各式各樣的應用軟體。市

    面上智慧型手機的型號及規格繁多,Android開發的應用程式可相容

    於不同規格的行動裝置,對於開發者來說是一大福音。

    23

  • Android系統能在短時間風起雲湧,因其具備下列特點:

    1. 開放原始碼:Google公司公布 Android系統的核心原始碼,並且提

    供 SDK讓程式設計者可以透過標準 API存取核心功能,撰寫各式應

    用軟體。如果設計者認為 Android的功能不足或介面不夠美觀,也

    可自行修改以符合自己的需求。

    2. 多工系統:Android替桶可同時執行多個應用程式,是完整的多功

    環境。Android同時具備獨特的(通知)機制,應用程式在背景執行,

    必要時可以產生通知來引其起使用者注意。例如:開車使用導航裝

    置時,如果有電話進來鈴聲會響起,可以接聽電話,同時導航系統

    仍在運行。

    3. 虛擬鍵盤:Android從 1.5版開始同時支援實體鍵盤及虛擬鍵盤,

    可以滿足不同使用者在不同場合的需求。虛擬鍵盤可在任何要輸入

    文字的應用程式中使用,包括電子郵件、瀏覽器、文書處理等。

    24

  • 4. 充分表現個性:現在的潮流是崇尚個性的表現,哪家廠商的手機介

    面能符合多數人的時尚,其業績就能創造傲人的成果。Android系

    統可使用Widget來實現桌面個性化,其預設安裝了5個桌面Widget,

    分別為數位時鐘、日曆、音樂播放器、相框及搜索頁面。廠商及個

    人使用者皆可修改美化這些介面,充分表現自己的時尚氣息。

    3-2 App Inventor 2 的誕生

    App Inventor是由 Google實驗室所發展用來開發 Android應用

    程式的開發平台,它以不同以往的設計理念為號召,一推出即獲得

    許多人的注目。Google實驗室在 2012年 1月 1日將 App Inventor

    整個計畫移交給麻省理工學院行動學習中心維護,並堅持維持免費

    及開放原始碼的精神繼續運作。2013年 8月大幅提升 App Inventor

    功能,將其更名為 App Inventor 2。

    25

  • 3-3 App Inventor 拼圖程式

    MIT行動學習中心在 2013年 12月發表 App Inventor 2,除了省略

    需要使用 Java才能開啟的 Blocks Editor之外,並且大幅度的改善開

    發環境。因此,目前 App Inventor已經被公認為小學生也可以開發

    Android App程式的重要工具,其主要原因如下:

    1. 提供[雲端化]的[整合開發環境]來開發專案。

    2. 提供[群組化]的[元件庫]來快速設計使用者介面。

    3. 利用[視覺化]的[拼圖程式]來撰寫程式邏輯。

    4. 支援[娛樂化]的[NXT樂高機器人]製作的控制元件。

    5. 提供[多元化]的[專案發佈模式]來輕易在手機上執行測試。

    26

  • 3-4 App Inventor2 的開發優勢

    App Inventor2的設計理念是以拼圖式方塊來撰寫程式,強調視覺引

    導,好學易用,而且功能強大。App Inventor2將所有程式與資源放

    在網路雲端上,應用程式設計者只要使用瀏覽器,即可透過網路在任

    何時間、任何地點進行開發的工作。

    附圖 16App Inventor2的開發示意圖

    27

  • 3-5 App Inventor2 在進行 App 應用程式開發的優點如

    下:

    1. 開發環境佈署方便:顛覆許多人對於佈署程式開發環境困難又繁瑣

    的印象,App Inventor2經由簡單的步驟,即可讓使用者能在極短

    的時間內即可完成開發環境建置。

    2. 拼圖程式設計:視覺圖形化的開發環境,讓程式流程與內容可以在

    拼塊的拖拉組合之間輕鬆完成。App Inventor2發展小組號稱可以

    讓完全沒有任何程式碼撰寫經驗者,也能在訓練後完成應用程式開

    發。

    3. 雲端專題開發:整個開發介面是透過瀏覽器操作,專題的內容與成

    果皆儲存在雲端之中。無論設計者身在何處,只要有網路,隨時都

    可以透過瀏覽器進行開發工作。

    4. 強大而實用的元件庫:App Inventor2提供許多功能強大的元件,

    只要拖曳到編輯區中設定後即可使用。例如使用手機照相的動作,

    指需拖曳 Camera元件到介面中就可以拍照,並可輕易將相片存檔

    或顯示於圖形元件中。

    28

  • 5. 支援 NXT樂高機器人:App Inventor2有專屬的拼塊可以設計控制

    NXT樂高機器人的程式,可以使用 Android手機控制 NXT樂高機器

    人。

    6.開發作品實用性高:用 App Inventor2開發出來的應用程式,可以直

    接在電腦的模擬器中執行,更可以下載到智慧型手機或平板電腦上安

    裝,甚至還能輕易發佈到 Google Play商店中進行分享或是販售也沒

    有問題。

    29

  • 3-6 文字與按鈕元件

    1. Label元件

    Label元件的用途是顯示文字,而不是讓使用者輸入或修改文字;

    如果要讓使用者輸入或修改文字,需用 TextBox元件。

    屬性設定

    屬性 說明

    BackgroundColor 設定背景顏色

    FontBold 設定文字是否顯示粗體

    Fontltalic 設定文字是否顯示斜體

    FontSize 設定文字大小,預設值為(14)

    FontTypeface 設定文字字型

    Height 設定元件高度

    Text 設定顯示的文字

    TextAlignment 設定文字對齊方式

    TextColor 設定文字顏色

    Visible 設定是否在螢幕中顯示元件

    Width 設定元件寬度

    表格 8 Label元件屬性設定表

    30

  • 2. TextBox元件

    TextBox元件的用途是讓使用者輸入文字,所輸入的文字會儲存在

    Text屬性中。TextBox元件通常會與 Button元件搭配使用,讓使

    用者輸入文字後按下按鈕做後續處理。

    屬性設定

    BackgroundColor、Height及 Width 是大部分元件都具有

    的屬性。

    屬性 說明

    Enabled 設定元件是否可用,即是否可輸

    入文字

    FontBold 設定文字是否顯示粗體

    Fontltalic 設定文字是否顯示斜體

    FontSize 設定文字大小,預設值為(14)

    FontTypeface 設定文字字型

    Hint 設定提示文字,即尚未輸入文字

    時顯示的文字

    NumbersOnly 設定是否只能輸入數字

    Multiline 設定是否可輸入多列文字

    Text 設定顯示的文字

    31

  • TextAlignment 設定文字對齊方式

    TextColor 設定文字顏色

    Visible 設定是否在螢幕中顯示元件

    表格 9 TextBox元件屬性設定表

    32

  • 3-7 Button 元件

    Button元件又稱為按鈕元件,是應用程式與使用者互動的主要元件。

    當使用者按下按鈕元件時,會執行設計者安排的程式片段,達到互動

    目的。

    屬性設定

    屬性 說明

    Enabled 設定元件是否可用,即按鈕是否

    可按

    FontBold 設定文字是否顯示粗體

    Fontltalic 設定文字是否顯示斜體

    FontSize 設定文字大小,預設值為(14)

    FontTypeface 設定文字字型

    Image 設定顯示圖片按鈕

    Shape 設定按鈕的形狀

    ShowFeedback 設定按下按鈕時,按鈕是否會閃

    Text 設定按鈕文字

    TextAlignment 設定文字對齊方式

    33

  • TextColor 設定文字顏色

    Visible 設定是否在螢幕中顯示元件

    表格 10 Button元件設定表

    34

  • 第四章 實作程式碼

    附圖 17夾娃娃機的手機搖控器軟體介面圖

    35

  • 附圖 18程式二的介面

    36

  • 附圖 19 APP介面所使用到的元件

    ListPicker:使用者可點選 ListPicker元件來選擇其中的某個項目,

    資料型態為字串陣列

    Button:按鈕

    Back:向後,Left:向左,Right:向右,Go:前進

    BluetoothClient:藍芽連線裝置

    NXT Drive:NXT驅動程式

    NXT DirectCommands:NXT執行指令

    Notifier:對話框 37

  • 附圖 20點選按鈕控制藍芽裝置

    附圖 21藍芽裝置接收到命令後,開始控制 NXT主機

    附圖 22藍芽連接後可使用的按鍵

    38

  • 附圖 23遙控器控制程式(相互關聯)

    附圖 24 夾娃娃機的功能健

    39

  • 附圖 25馬達動作時的控制

    附圖 26程式二的執行指令

    40

  • 第五章 建置 App Inventor2專題

    5-1 進入 App Inventor2 的開發網頁

    App Inventor2的整合開發是網頁式的平台,所以要使用 App

    Inventor 2設計 Android應用程式,首先必須以 Google帳戶登入 App

    Inventor2開發頁面。

    附圖 27 AI2登入介面

    41

  • 5-2 新增 App Inventor2 專題

    App Inventor2應用程式是以專題的方式進行。

    1. 請按 New Project鈕,接著在對話方塊的 Project name欄輸入專

    題名稱後按 OK鈕即可完成建立專題的動作。

    附圖 28 程式選單

    附圖 29 新增專案

    42

  • 2.建立專題後會自動開啟版面配置頁面,畫面左上角會顯示目前專題

    的名稱,左方為元件區(Palette),中間為介面設計區(Viewer),右方

    為放置已使用元件的 Components區。按上方 My Projects鈕可回到專

    題管理頁面。

    附圖 30 AI2介面編輯

    43

  • 3.專題管理頁面顯示所有建立的專題,點選專題名稱可進入版面配置

    頁面。

    附圖 31 AI2專案清單

    5-3版面配置頁面的佈置/拼塊編輯頁面

    1.由元件區中拖曳 User Interface/Label元件到頁面中,此時已使用

    元件區會顯示這個 Label元件,並自動命名為 Label1。

    附圖 32 AI2主頁面

    44

  • 2.當應用程式的介面設計完成後,就可以切換到拼塊編輯頁面

    (Blocks),它最主要的功能是以拼塊來設計程式。

    在版面配置頁面按右上方 Blcoks鈕就會切換到拼塊編輯頁面。拼塊編

    輯頁面主要分為以下幾個部分:

    附圖 33 拼塊編輯頁面

    Designer鈕:切換到版面配置頁面。

    Blocks鈕:切換到拼塊編輯頁面。

    內建拼塊區:本區提供程式流程所需的程式拼塊。

    已建立元件區:在版面配置頁面建立的元件,會在本區建立對應的元件

    拼塊。

    進階功能區:提供通用元件。

    拼塊編輯區:可將各種拼塊由拼塊區拖曳到此區進行程式流程設計。

    垃圾桶:將拼塊拖曳到垃圾桶可移除該程式拼塊。 45

  • 5-4 在模擬器中執行應用程式

    App Inventor2最主要的目的即是在開發 Android應用程式,所以

    完成的成品要測試或是使用都必須運作在 Android的行動裝置上。開

    發階段時測試是相當重要的,如果沒有實機,App Inventor2提供了

    模擬器讓設計者執行應用程式。模擬器具備大部分實機功能,在測試

    應用程式是很方便的工具。

    附圖 34 選擇 Emulator

    1. 點按上方 Connect鈕後在下拉式選單中點選 Emulator項目。

    2.點按上方 Connect鈕後在下拉式選單中點選 Emulator項目,約數十

    秒後,會出現首頁並包含了時間及鎖頭圖示,向右拖曳鎖頭解鎖。 46

  • 附圖 35 手機模擬器

    47

  • 第六章 製作過程

    附圖 36初型架構

    附圖 37滑軌

    48

  • 附圖 38輸送帶

    附圖 39爪子 49

  • 附圖 40 移動馬達

    附圖 41架構成品

    50

  • 第七章結論

    透過這次的專題製作,讓我們對娃娃機有更深的了解,原本以為夾

    娃娃就只是把銅板放進去,移動夾子,之後就看運氣了,沒想到這當

    中還藏了這麼大的學問不僅有很多技巧可以運用,還利用了很多的原

    理,原來夾娃娃也是一門很大的學問。也讓我們了解整個娃娃機市場

    的結構,娃娃機可以說是學生族群的最愛,可以藉由夾娃娃機產生勝

    利感,把課業的壓力暫時拋在一旁,真是學生不可或缺的遊戲機。

    另外,我們發現學生族群占了大多數的比例,大部分的人一個月消

    費的次數幾乎都是在三次以下,每次消費的金額也都不多,大概只是

    身上剩下的幾個銅板。男生、女生喜歡夾的物品也不太一樣,女生絕

    大部分的人喜歡娃娃類的商品,男生則是喜惡差別不大,沒有特別喜

    愛的類型。

    51

  • 第八章 參考文獻

    1.手機應用程式設計超簡單—APP Inventor初學特訓班

    文淵閣工作室 編著 鄧文淵 總監制

    2.手機應用程式設計超簡單—App Inventor 2 零基礎入門班

    文淵閣工作室 編著 鄧文淵 總監制

    3.正確學會 App Inventor的 16堂課

    白乃遠、曾奕霖、呂國泰 博碩文化股份有限公司

    4.Appinventor 中文學習網

    http://www.appinventor.tw/ai2

    5.藍芽維基百科

    https://zh.wikipedia.org/wiki/%E8%97%8D%E7%89%99

    52

    http://www.appinventor.tw/ai2

    簡介1-1 研究動機與目的1-2 工作進度表

    文獻探索2-1認識樂高2-2 NXT主機介紹2-3 NXT元件說明2-3-1觸碰感應器2-3-2光源感應器2-3-3聲音感應器2-3-4直流馬達2-3-5連接線2-3-6超音波感應器

    2-4 NXT指令2-5藍芽傳輸2-5-1 藍芽2-5-2藍芽歷史2-5-3藍芽應用2-5-4藍芽規格2-5-5藍芽傳輸原理2-6-1藍芽網路架構:2-6-2藍芽相關設定表格 6藍芽相關設定表2-6-3建立NXT與NXT之間的藍芽連接

    第三章 作業系統介紹3-1行動裝置作業系統:Android3-2 App Inventor 2的誕生3-3 App Inventor拼圖程式3-4 App Inventor2的開發優勢3-5 App Inventor2在進行App應用程式開發的優點如下:3-6文字與按鈕元件3-7 Button元件

    第四章 實作程式碼第五章 建置App Inventor2專題5-1進入App Inventor2的開發網頁5-2新增App Inventor2專題5-3版面配置頁面的佈置/拼塊編輯頁面5-4在模擬器中執行應用程式

    第六章 製作過程第七章結論第八章 參考文獻