作者:趙英傑
出版社:旗標科技股份有限公司
出版日期:2024年12月16日
頁數:720頁(索引PDF檔、附錄電子書不計入頁數),雙色印刷。
定價:NT$780
Arduino書籍第四版的新增內容介紹和討論貼文,請按此連結。
「電腦」可以用性能和普及程度來分成這些類型:
「嵌入式系統」指的是内嵌在裝置裡面,控制該裝置運作的微型電腦,例如,內嵌在冰箱檢測並控制溫度。嵌入式系統通常用於執行特定任務,像維持冰箱的冷度,對性能要求不高、耗電量低、成本低,長時間運作也不易故障。
Arduino是操控電子設備的微電腦控制板(也稱為「開發板」)的品牌,也是程式語言的名字。因為容易上手且價格低廉,在Maker(創客,泛指喜歡動手做和改造物品的人士)風潮推波助瀾之下,Arduino迅速成為電子DIY愛好者的新歡及必備技能,利用它創作出新奇、實用,甚至無俚頭、只為搏君一笑的作品,像寵物自動餵食器、智慧家庭控制器和防盜器、機器人、樂器、遊戲機、毛線編織機、環境品質檢測器…等。
在Arduino問世之前,對微電腦控制有興趣的人士,需要購買價格不斐且專屬特定品牌的軟硬體開發工具,而如今市面數百款不同類型和品牌的微電腦開發板,都能使用免費的Arduino語言和工具軟體來創作。再加上各式各樣的電子模組,如:馬達控制器、距離感測器、顯示器…,都會附上Arduino操控範例,因而造就了Arduino龐大且成熟的生態體系。
打造微電腦互動裝置,需要融合不同領域的軟、硬體基礎知識。雖然按圖連接電子模組,再修改現成的範例程式,有時也能在一知半解的情況完成電子互動裝置。但學習不應該止於表面。
本書的目標是讓高中以上,沒有電子電路基礎,對微電腦、電子DIY有興趣的人士,也能輕鬆閱讀,進而順利使用Arduino 開發板完成互動應用。從2013年第一版問世以來,本書是唯一採用手繪圖解,兼顧電子電路基礎知識和程式開發的Arduino書籍。從基本的電子元件和工具操作,如:電阻、電容、二極體、電晶體到常見於感測器模組,也內建於Arduino UNO R4的運算放大器元件,乃至於電子模組和Arduino開發板的電路,都有圖解說明,讓讀者更加理解Arduino電子裝置的運作全貌。唯有兼具電子電路和程式設計兩種技能,才能自由整合軟硬體。
例如,底下是運算放大器的基本訊號放大電路的說明。本書封面的麵包板電路接線,就是UNO R4內建的運算放大器以及數位類比轉換器(DAC)應用電路。
此外,底下是一個「序列輸入、並列輸出」積體電路74HC595的其中一個運作圖解:
及其應用電路圖:
上面電路和Arduino開發板的麵包板實驗接線:
最後配上實驗程式的運作流程:
第四版的更新著重在程式設計和演算法,更加全面地介紹Arduino程式語言,包含物件導向程式設計和自製程式庫。第五版的每一個章節和附錄,都經過不同程度的改寫,第18章後半、19和20章則是全新內容,因篇幅有限,之前版本的部分內容移到附錄,以電子書方式提供。第五版有三個改版重點:
- 再次加強基本電子學,例如,說明電子學的重要基本定律:克希荷夫電流∕電壓定律,並且利用此定律分析電路的電流和電壓。
- 採用Arduino 2.x版開發工具編寫程式(軟體),此前的書籍都是用1.x版。
- 使用Arduino UNO R3和R4開發板(硬體)創作,此前的書籍主要採用UNO R3開發板。
Arduino UNO R3和UNO R4開發板的主要差異是R3的微處理器是8位元、R4搭載32位元微處理器;R4開發板有Minima(基本款)和WiFi(無線網路)兩種版本,WiFi具備藍牙和Wi-Fi聯網功能以及12 × 8 LED點陣。
書本第19章分析了UNO R4 WiFi的LED點陣電路原理:
筆者也編寫了一個Python程式,轉換中文點陣字體:
然後在UNO R4 WiFi板的LED點陣呈現動態中文字幕:
新書第18章後半說明UNO R4 WiFi的無線聯網功能與範例,原本第四版的17和18章的乙太網路連線應用,合併成附錄A;第四版19章的ESP8266物聯網應用,挪到附錄B。
新書第20章說明UNO R4開發板的其他特色功能應用,包含USB人機介面(鍵盤和滑鼠)、RTC即時鐘、中斷處理、數位輸出入埠口(port)的操作以及觸控介面的原理和程式:
在撰寫本書的過程中,非常感謝旗標科技的黃昕暐先生提供許多專業的看法,驗證範例程式並且糾正內容的錯誤、添加文字讓文章更通順、晚上和假日加班改稿,由衷感謝昕暐先生對本書的貢獻。筆者也依照這些想法和指正,逐一調整解說方式,讓圖文內容更清楚易懂。
筆者統計了整本書的手繪插圖,未計算附錄D~F,也未計入螢幕截圖,這本書大大小小的插圖總計1320張。從《超圖解C語言》開始,本系列書籍的插圖的手寫文字改用游清松先生的「清松手寫體2」,程式碼字體改用“Fira Code”,關於字體的選用,請參閱「《超圖解Arduino互動設計入門》的書本封面、插圖與程式字體之Hack」。
補充說明,UNO R4 WiFi開發板搭載兩個32位元處理器晶片,一個是負責運算和控制周邊的RA4M1,另一個是負責Wi-Fi和藍牙通訊的ESP32-S3。ESP32-S3可單獨運作,而且它的功能和效能並不亞於RA4M1微控器,只是ESP32系列晶片的接腳輸入電壓不能超過3.6V。關於ESP32與聯網控制應用,請參閱《超圖解ESP32深度實作》以及《超圖解ESP32應用實作》。
《超圖解Arduino互動設計入門》第五版目錄
第1章 認識 Arduino 與微電腦開發板
1-1∣認識Arduino
1-2∣安裝 Arduino UNO 開發板的驅動程式
1-3∣Arduino 程式開發工具與開發步驟簡介
動手做 1-1 執行與設定 Arduino IDE
第2章 認識電子零件與工具
2-1∣電壓、電流與接地.
2-2∣開發板的電源供應器.
2-3∣電阻
2-4∣電容
2-5∣二極體
2-6∣發光二極體(LED)
2-7∣看懂電路圖
2-8∣電子工作必備的量測工具:萬用電錶
動手做 2-1 測量電阻或電容
2-9∣麵包板以及其他電子工具
第3章 Arduino 開發板、程式設計入門 與歐姆定律
3-1∣Arduino UNO R3 及 R4 開發板的功能和接腳說明
3-2∣MPU, MCU 和 SoC
3-3∣認識程式語言
動手做 3-1 寫一個 LED 閃爍控制程式
3-4∣用變數來管理程式碼
3-5∣不變的「常數」
3-6∣使用 #define 巨集指令替換資料
3-7∣用歐姆定律計算出限流電阻值
第4章 開關與分歧指令
4-1∣認識開關
4-2∣開關電路與上∕下拉電阻
動手做 4-1 用麵包板組裝開關電路
4-3∣改變程式流程的 if 條件式
動手做 4-2 LED 切換開關
動手做 4-3 不用 delay() 的延遲方法
4-4∣RC 濾波電路
動手做 4-4 用 RC 電路消除開關彈跳訊號
動手做 4-5 LED 跑馬燈
4-5∣迴圈
動手做 4-6 跑馬燈範例程式二:使用 for 迴圈
4-6∣認識陣列
動手做 4-7 使用陣列變數的 LED 來回跑馬燈
第5章 序列埠通信
5-1∣並列與序列通訊簡介
5-2∣認識 UART 序列埠
5-3∣處理文字訊息:認識字元與字串資料類型
5-4∣認識程式庫:傳遞序列訊息
動手做 5-1 從序列埠監控窗觀察變數值
5-5∣認識 String(字串)程式庫
5-6∣從 Arduino 接收序列埠資料
動手做 5-2 從序列埠控制 LED 開關
5-7∣switch…case 控制結構
5-8∣認識數字系統
第6章LED 七段顯示器與序列轉並列輸出 IC
6-1∣七段顯示器
動手做 6-1 連接 LED 七段顯示器與 Arduino 板
6-2∣使用積體電路簡化電路
動手做 6-2 序列連接七段顯示器
動手做 6-3 一個 74HC595 控制多個七段顯示器
第7章 SPI 序列介面與LED 點陣顯示器
7-1∣建立自訂函式
動手做 7-1 建立自訂函式
7-2∣變數的有效範圍:全域、區域和靜態
7-3∣LED 點陣簡介
7-4∣認識 SPI 序列介面與 MAX7219
動手做 7-2 組裝 LED 點陣電路
7-5∣顯示單一點陣圖像
動手做 7-3 在點陣 LED 上顯示音符圖像
動手做 7-4 在序列埠監控窗輸出 矩形排列的星號
7-6∣LED 點陣動畫與多維陣列程式設計
動手做 7-5 在點陣 LED 上顯示動態圖像
7-7∣LED 點陣跑馬燈
動手做 7-6 LED 點陣逐字捲動效果程式
7-8∣認識指標(Pointer)
7-9∣將常數保存在「程式記憶體」裡
第8章 類比信號處理與運算放大器(OPA)
8-1∣讀取類比值與電阻分壓電路
動手做 8-1 從序列埠讀取「類比輸入」值
8-2∣認識光敏電阻
動手做 8-2 使用光敏電阻製作小夜燈
8-3∣壓力感測器與彎曲感測器
8-4∣電容式麥克風元件與運算放大器
動手做 8-3 自製麥克風聲音放大器(拍手控制開關)
動手做 8-4 拍手控制開關改良版
8-5∣克希荷夫電路定律
8-6∣Arduino UNO R4 微控器內建的運算放大器
動手做 8-5 使用 UNO R4 內建的運算放大器製作麥克風放大器
第9章 I2C 序列通訊介面與 LCD 顯示器
9-1∣認識文字型 LCD 顯示模組
動手做 9-1 並列連接 LCD 顯示器
9-2∣認識 I2C 與 Qwiic 介面
9-3∣安裝第三方程式庫
動手做 9-2 掃描 I2C 匯流排連接的週邊位址
9-4∣LCD 顯示器的特殊字元和自訂字元
動手做 9-3 在 LCD 上顯示自訂字元符號
動手做 9-4 透過 I2C 介面串連 兩個 Arduino 板
動手做 9-5 在 I2C 介面上傳送整數資料
9-5∣DHT11 數位溫濕度感測器
動手做 9-6 製作數位溫濕度顯示器
9-6∣Qwiic 介面
第10章 變頻控制 LED 燈光和馬達
10-1∣調節電壓變化
10-2∣類比輸出(PWM)指令和預設頻率
動手做 10-1 調光器
動手做 10-2 隨機數字與燭光效果
10-3∣使用 Serial 物件的 parseInt() 和parseFloat 方法解析整數和浮點數
動手做 10-3 透過序列埠調整燈光亮度
10-4∣認識直流馬達
10-5∣認識電晶體元件
動手做 10-4 電晶體馬達控制與調速器
10-6∣調整 PWM 的工作頻率
第11章 發音體、數位類比轉換器(DAC)
11-1∣發音體和聲音
11-2∣使用 tone() 函數發出聲音
動手做 11-1 演奏一段瑪莉歐旋律
11-3∣UNO R4 的 DAC
動手做 11-2 電音蝌蚪
第12章 超音波距離感測、物件導向 程式設計與自製程式庫
12-1∣認識超音波
動手做12-1 使用超音波感測器製作數位量尺
12-2∣物件導向程式設計:自己寫程式庫
第13章 馬達控制板、自走車與 MOSFET 電晶體應用
13-1∣控制馬達正反轉的 H 橋式馬達控制電路
動手做13-1 編寫馬達驅動程式模組
動手做13-2 自動迴避障礙物的自走車
13-2∣認識 MOSFET
第14章 伺服馬達、數位濾波、資料排序、EEPROM與體感控制機械雲台
14-1∣認識伺服馬達
動手做 14-1 吃錢幣存錢筒
動手做 14-2 自製伺服馬達雲台
14-2∣簡易數位濾波以及資料排序演算法
14-3∣使用陀螺儀和加速度計模組控制伺服馬達雲台
動手做 14-3 讀取IMU數據並繪圖顯示
動手做 14-4 透過「序列埠繪圖家」呈現訊號波型
動手做 14-5 在 EEPROM 儲存陀螺儀偏移值
動手做 14-6 使用 IMU 感測器控制伺服馬達
第15章 紅外線遙控、施密特觸發器 與循跡自走車
15-1∣認識紅外線
動手做 15-1 使用 IRremote 程式庫解析紅外線遙控值
動手做 15-2 使用紅外線遙控器 控制伺服馬達
動手做 15-3 從 Arduino 發射紅外線 遙控電器
15-2∣認識反射型與遮光型光電開關
動手做 15-4 光電子琴製作
15-3∣紅外線循跡∕避障模組與施密特觸發器
15-4∣認識電壓比較器
15-5∣製作循跡自走車
動手做 15-5 組裝循跡自走車
第16章 手機藍牙遙控機器人製作
16-1∣電波、頻段和無線傳輸簡介
16-2∣認識藍牙(Bluetooth)
16-3∣5V 和 3.3V 電壓準位轉換
動手做 16-1 使用軟體序列埠(SoftwareSerial)
16-4∣連接 Arduino 與藍牙模組
動手做 16-2 UNO R4 板的 Serial1 物件
16-5∣使用 Serial Bluetooth Terminal 連接藍牙
動手做 16-3 用 Android 手機 藍牙遙控機器人
16-6∣藍牙模組的 AT 命令
動手做 16-4 透過 AT 命令更改藍牙模組的名稱
第17章 RFID 無線識別裝置
17-1∣認識條碼與 RFID
動手做 17-1 讀取 Mifare RFID 卡 的 UID 碼
動手做 17-2 Mifare RFID 的門禁系統實驗
17-2∣Mifare Classic 1KB 的記憶體結構
動手做 17-3 讀寫 RFID 卡片資料(扣款與充值)實驗
第18章 網路與 HTML 網頁基礎 + 嵌入式網站伺服器製作
18-1∣認識網路與 IP 位址
18-2∣網域名稱、URL 網址和傳輸協定
動手做 18-1 認識網頁與 HTML
18-3∣網路的連線標準與封包
18-4∣認識 HTTP 通訊協定
18-5∣認識 Wi-Fi 無線網路
18-6∣建立 Wi-Fi 網路連線
動手做 18-2 連線到 Wi-Fi 網路並顯示 IP 位址和電波訊號強度
18-7∣建立 Arduino 微型網站伺服器
動手做 18-3 建立微型網站伺服器
18-8∣靜態 IP 以及 DHCP 動態 IP 分配
動手做 18-4 網路控制開關
18-9∣認識繼電器
動手做 18-5 使用繼電器控制家電開關
第19章 操控 Arduino UNO R4 WiFi 的 LED 點陣
19-1∣認識 UNO R4 WiFi 板的三態多工 LED 電路
動手做 19-1 操控三態多工 LED
19-2∣製作 Wi-Fi 連線動畫
動手做 19-2 使用雲端 LED 點陣畫面編輯器
動手做 19-3 在 UNO R4 WiFi 板的 LED 點陣顯示動畫
19-3∣開發環境內建的靜態和動態 LED 點陣畫面
19-4∣在 UNO R4 WiFi 的 LED 點陣呈現捲動文字
動手做 19-4 在 LED 點陣捲動顯示本機 IP 位址
19-5∣繪製點陣圖像
19-6∣在 LED 矩陣顯示捲動的中文字
19-7∣捲動中文字的 Arduino 程式
第20章 USB 人機介面、觸控介面、 RTC 即時鐘以及中斷處理
20-1∣USB 人機介面:模擬鍵盤與滑鼠
動手做 20-1 模擬 USB 鍵盤和滑鼠
20-2∣電容式觸控開關
動手做 20-2 使用觸控開關模組製作 LED 開關
20-3∣UNO R4 的內建電容式觸控介面
動手做 20-3 校準觸控腳
動手做 20-4 觸控功能鍵
20-4∣RA4M1 微控器內建的月曆和時鐘:即時鐘(RTC)
動手做 20-5 連線 NTP 伺服器顯示正確日期時間
20-5∣輪詢 VS 中斷
20-6∣UNO R4 的 RA4M1 微控器的輸出入埠
附錄A 微型乙太網路伺服器
A-1∣連接乙太(Ethernet)網路卡建立 Arduino 微型網站伺服器
動手做 A-1 建立微型網站伺服器
A-2∣使用 Webduino 程式庫建立微型網站
動手做 A-2 監控遠端的溫濕度值
A-3∣傳遞資料給網站伺服器
動手做 A-3 建立網頁表單
A-4∣認識傳遞資料的 GET 方法和查詢字串
動手做 A-4 建立接收 POST 表單資料的自訂命令
附錄B ESP8266 開發板 Wi-Fi 物聯網應用實作
B-1∣Wemos D1 mini 板的接腳
B-2∣使用 Arduino IDE 開發 ESP8266 開發板程式
B-3∣使用 ESP8266 的 WiFi 程式庫連接無線網路
動手做 B-1 使用 ESP8266WebServer 程式庫建立 HTTP 伺服器
動手做 B-2 處理 GET 或 POST 請求
B-4∣PIR人體感應器
動手做 B-3 偵測人體移動
B-5∣HTTPS 加密通訊簡介
動手做 B-4 從 D1 板(ESP8266)連結網站伺服器
B-6∣在 ESP8266 的快閃記憶體中儲存網頁檔案
動手做 B-5 建立非同步網站伺服器讀取並傳送網頁檔案
動手做 B-6 動態網頁調光器
附錄C 交流電調光器製作
C-1∣調整交流電的輸出功率
C-2∣定時觸發執行的 TimerOne 程式庫
動手做 C-1 交流電調光器電路
附錄D 燒錄 ATmega 微處理器的 開機啟動程式 (bootloader)
動手做 D-1 用麵包板組裝 Arduino 微電腦實驗板
動手做 D-2 使用 Arduino Uno 控制板燒錄 bootloader
動手做 D-3 連接電腦的 USB 介面並上傳程式檔
附錄E 改造 3C 小玩意的控制鈕
E-1∣認識光電耦合元件
附錄F 認識焊接工具:焊錫、電烙鐵 及焊接助手
F-1∣焊接工具
動手做 F-1 基礎焊接練習
動手做 F-2 焊接鱷魚夾
F-2∣印刷電路板及萬用板
動手做 F-3 焊接電路板
動手做 F-4 活用 USB 電源供應器
附錄G 使用 App Inventor 開發 Android App
G-1∣認識 App Inventer 2.0
G-2∣建立第一個 App Inventor 專案:聲音播放程式
G-3∣藍牙遙控機器人 App 的程式碼說明
附錄H 使用 Wii 搖桿控制機械手臂
H-1∣認識 Wii 左手把的通訊介面:I2C
動手做 H-1 讀取 Wii 左手把的搖桿、按鈕與加速度計值
動手做 H-2 使用 Wii 左手把控制機械手臂
附錄I 製作 MIDI 電子鼓
I-1∣認識 MIDI
I-2∣MIDI 訊息格式
動手做 I-1 透過 Arduino 演奏 MIDI 音樂
動手做 I-2 透過「虛擬 MIDI」介面演奏音樂
動手做 I-3 製作 MIDI 電子鼓