N E H S . P E T E R W A N G
1
國立新竹科學園區
實驗高級中等學校
機器人動手做
期中專題報告
姓 名 : 王 平
班 級 : 1 0 1
座 號 : 1 4
N E H S . P E T E R W A N G
N E H S . P E T E R W A N G
2
目錄
實作結果
軟體及硬體應用
命令格式
程式碼解說
遇到的困難與挑戰
心得與反思
前言與動機
N E H S . P E T E R W A N G
3
前言
這是我在上了高中選修課後做的第一個小專題,老師設計
此專題的用意是為了讓我們先熟悉一些工具的用法,以及
學習Arduino的一些基礎語法和功能,為的是之後能做更大
的專案,對於未來能夠繼續往這方面發展,也有非常實際
的幫助。
N E H S . P E T E R W A N G
4
動機
因為對電子電機領域非常有興趣,加上也很樂於學習物理
及數學方面的知識,所以選了機器人動手做的課程。剛開
始預期自己學到更多軟體方面的應用,做完這個專題以後,
發現比較偏向硬體的實作,但從中也更了解軟硬體之間連
結的基本概念與關係。
N E H S . P E T E R W A N G
5
實作結果
圖為Arduino UNO板連接馬達及
燈條的初始狀況
左邊馬達已經經過校正
右邊燈條已經測試顏色及亮度
燈泡及馬達原狀
N E H S . P E T E R W A N G
6
燈泡及馬達接收指令後之結果
圖為Arduino UNO板連接馬達
及燈條並完成指令後之狀態
左邊馬達轉動角度為90度
右邊燈條設定顏色為紅色
實作結果
N E H S . P E T E R W A N G
7
軟體及硬體應用
n Arduino是這次專題主要使用的工具,
報告的重點軟硬體都與Arduino的應
用與學習相關
n 圖左上是用來寫程式碼的應用程式
也就是我們熟知的Arduino
n 圖左下是Arduino UNO板
屬於此次專題中最重要的硬體設備
N E H S . P E T E R W A N G
8
命令格式
L E D 顏 色 伺 服 馬 達 轉 角 L E D 亮 度
@ # $
以下三種皆為分割符號
當程式碼接收到此符
號就代表
已經讀取完LED顏
色的輸入
當程式碼接收到此符號
就代表
已經讀取完LED亮度
的輸入
並且結束所有輸入
當程式碼接收到此符
號就代表
已經讀取完伺服馬達
轉角的輸入
此為在主函式中接收的判斷式 此為在主函式中接收的判斷式 此為在主函式中接收的判斷式
N E H S . P E T E R W A N G
9
程式碼解說
是引用伺服馬達控制的函式庫
是定義一個控制伺服馬達的物件
int 定義整數
char 定義字元
angle 伺服馬達角度
c 輸入字元變數
a 計算用變數
col 燈條顏色記錄的腳位
b 燈條亮度
01
02
03
04
05
06
07
08
09
N E H S . P E T E R W A N G
1 0
程式碼解說-初始化
初始化的函式
設定傳輸速度
馬達控制線接在腳位9
連接燈條的紅色腳位設為輸出模式
連接燈條的綠色腳位設為輸出模式
連接燈條的籃色腳位設為輸出模式
01
02
03
04
05
06
01
02
03
04
05
06
N E H S . P E T E R W A N G
1 1
主要執行函式
high代表關燈,燈條一開始是暗的
available試看arduino有無接收
read是將讀進來的數字放進c中
當接收到第一個分割符號#
就儲存伺服馬達轉角
當接收到第二個分割符號@代表
已經存完腳位顏色
當接收到結尾符號就存燈條亮度
01
02
03
04
05
06
07
08
N E H S . P E T E R W A N G
1 2
程式碼解說-初始化
當接收到 r 代表是要輸出紅色
腳位存3
當接收到 g 代表是要輸出綠色
腳位存4
當接收到 b 代表是要輸出籃色
腳位存5
這裡是用來計算角度和亮度的公式,
利用ascii code把文字轉數字
最後用函式庫已經寫好的函 式,
控制馬達轉動角度,以 及控制燈條顏色及亮度
01
02
03
04
05
06
07
08
09
10
01
02
03
04
05
06
07
08
09
10
N E H S . P E T E R W A N G
1 3
困難及挑戰
有時候接腳位會不
知道不同腳位的用
意或用途,或是如
何設定腳位,是我
覺得自己需要再加
強的部分。
在中間有個計算角
度及亮度的公式,
是透過與同學討論
才想出來的,是在
其中較具有挑戰性
的部分。
在寫程式碼的過程
中,時常會忘記或
誤解函式的用途,
需要花時間去理解
與應用,例如控制
馬達轉動或燈條亮
度的函式…等。
除了Arduino本身
軟硬體相容的問題,
還有程式設定的問
題,都會造成上傳
不成功,都是自己
需要學習解決與調
整的。
0 1 0 2 0 3 0 4
N E H S . P E T E R W A N G
1 4
這堂機器人選修課,讓我得以初步涉入電子電機相關的領域,也可以學習電子電機相關的
基本概念。課堂中除了電學知識,電路板接線,也有涉及資訊領域的概念,透過學習簡單
的程式碼,來控制簡單的機械,這門選修課啟發我對電子電機領域的興趣,也對我學習有
所幫助。
另外,這門課除了增進自己對硬體方面的了解,也因為自己一直有學習C++,因此就程式碼
編譯的過程來說,語法的部分都還算熟悉。不過,運用到一些函式庫的副函式時,有時會
因為不了解其功能或用法,導致硬體運作失敗,因此歷經多次嘗試,才使得燈條以及馬達
都成功運作,這實作的經驗很寶貴,也讓自己獲益良多。
在這次製作期中專題的過程中,發現自己對於程式碼控制機器的運作頗有興趣,但有些部
分還需多練習應用才能更熟悉。期許自己接下來能更進深學習研究,挑戰充實自己,繼續
往自己有興趣的電資方向邁進。
心得與反思

學習歷程 期中專題-機器人動手做

  • 1.
    N E HS . P E T E R W A N G 1 國立新竹科學園區 實驗高級中等學校 機器人動手做 期中專題報告 姓 名 : 王 平 班 級 : 1 0 1 座 號 : 1 4 N E H S . P E T E R W A N G
  • 2.
    N E HS . P E T E R W A N G 2 目錄 實作結果 軟體及硬體應用 命令格式 程式碼解說 遇到的困難與挑戰 心得與反思 前言與動機
  • 3.
    N E HS . P E T E R W A N G 3 前言 這是我在上了高中選修課後做的第一個小專題,老師設計 此專題的用意是為了讓我們先熟悉一些工具的用法,以及 學習Arduino的一些基礎語法和功能,為的是之後能做更大 的專案,對於未來能夠繼續往這方面發展,也有非常實際 的幫助。
  • 4.
    N E HS . P E T E R W A N G 4 動機 因為對電子電機領域非常有興趣,加上也很樂於學習物理 及數學方面的知識,所以選了機器人動手做的課程。剛開 始預期自己學到更多軟體方面的應用,做完這個專題以後, 發現比較偏向硬體的實作,但從中也更了解軟硬體之間連 結的基本概念與關係。
  • 5.
    N E HS . P E T E R W A N G 5 實作結果 圖為Arduino UNO板連接馬達及 燈條的初始狀況 左邊馬達已經經過校正 右邊燈條已經測試顏色及亮度 燈泡及馬達原狀
  • 6.
    N E HS . P E T E R W A N G 6 燈泡及馬達接收指令後之結果 圖為Arduino UNO板連接馬達 及燈條並完成指令後之狀態 左邊馬達轉動角度為90度 右邊燈條設定顏色為紅色 實作結果
  • 7.
    N E HS . P E T E R W A N G 7 軟體及硬體應用 n Arduino是這次專題主要使用的工具, 報告的重點軟硬體都與Arduino的應 用與學習相關 n 圖左上是用來寫程式碼的應用程式 也就是我們熟知的Arduino n 圖左下是Arduino UNO板 屬於此次專題中最重要的硬體設備
  • 8.
    N E HS . P E T E R W A N G 8 命令格式 L E D 顏 色 伺 服 馬 達 轉 角 L E D 亮 度 @ # $ 以下三種皆為分割符號 當程式碼接收到此符 號就代表 已經讀取完LED顏 色的輸入 當程式碼接收到此符號 就代表 已經讀取完LED亮度 的輸入 並且結束所有輸入 當程式碼接收到此符 號就代表 已經讀取完伺服馬達 轉角的輸入 此為在主函式中接收的判斷式 此為在主函式中接收的判斷式 此為在主函式中接收的判斷式
  • 9.
    N E HS . P E T E R W A N G 9 程式碼解說 是引用伺服馬達控制的函式庫 是定義一個控制伺服馬達的物件 int 定義整數 char 定義字元 angle 伺服馬達角度 c 輸入字元變數 a 計算用變數 col 燈條顏色記錄的腳位 b 燈條亮度 01 02 03 04 05 06 07 08 09
  • 10.
    N E HS . P E T E R W A N G 1 0 程式碼解說-初始化 初始化的函式 設定傳輸速度 馬達控制線接在腳位9 連接燈條的紅色腳位設為輸出模式 連接燈條的綠色腳位設為輸出模式 連接燈條的籃色腳位設為輸出模式 01 02 03 04 05 06 01 02 03 04 05 06
  • 11.
    N E HS . P E T E R W A N G 1 1 主要執行函式 high代表關燈,燈條一開始是暗的 available試看arduino有無接收 read是將讀進來的數字放進c中 當接收到第一個分割符號# 就儲存伺服馬達轉角 當接收到第二個分割符號@代表 已經存完腳位顏色 當接收到結尾符號就存燈條亮度 01 02 03 04 05 06 07 08
  • 12.
    N E HS . P E T E R W A N G 1 2 程式碼解說-初始化 當接收到 r 代表是要輸出紅色 腳位存3 當接收到 g 代表是要輸出綠色 腳位存4 當接收到 b 代表是要輸出籃色 腳位存5 這裡是用來計算角度和亮度的公式, 利用ascii code把文字轉數字 最後用函式庫已經寫好的函 式, 控制馬達轉動角度,以 及控制燈條顏色及亮度 01 02 03 04 05 06 07 08 09 10 01 02 03 04 05 06 07 08 09 10
  • 13.
    N E HS . P E T E R W A N G 1 3 困難及挑戰 有時候接腳位會不 知道不同腳位的用 意或用途,或是如 何設定腳位,是我 覺得自己需要再加 強的部分。 在中間有個計算角 度及亮度的公式, 是透過與同學討論 才想出來的,是在 其中較具有挑戰性 的部分。 在寫程式碼的過程 中,時常會忘記或 誤解函式的用途, 需要花時間去理解 與應用,例如控制 馬達轉動或燈條亮 度的函式…等。 除了Arduino本身 軟硬體相容的問題, 還有程式設定的問 題,都會造成上傳 不成功,都是自己 需要學習解決與調 整的。 0 1 0 2 0 3 0 4
  • 14.
    N E HS . P E T E R W A N G 1 4 這堂機器人選修課,讓我得以初步涉入電子電機相關的領域,也可以學習電子電機相關的 基本概念。課堂中除了電學知識,電路板接線,也有涉及資訊領域的概念,透過學習簡單 的程式碼,來控制簡單的機械,這門選修課啟發我對電子電機領域的興趣,也對我學習有 所幫助。 另外,這門課除了增進自己對硬體方面的了解,也因為自己一直有學習C++,因此就程式碼 編譯的過程來說,語法的部分都還算熟悉。不過,運用到一些函式庫的副函式時,有時會 因為不了解其功能或用法,導致硬體運作失敗,因此歷經多次嘗試,才使得燈條以及馬達 都成功運作,這實作的經驗很寶貴,也讓自己獲益良多。 在這次製作期中專題的過程中,發現自己對於程式碼控制機器的運作頗有興趣,但有些部 分還需多練習應用才能更熟悉。期許自己接下來能更進深學習研究,挑戰充實自己,繼續 往自己有興趣的電資方向邁進。 心得與反思