超圖解ESP32應用實作

超圖解ESP32應用實作

出版日期:
2024/06/10
79
820647
查詢門市庫存
華文世界第一的 Maker 系列書

內容簡介


內容介紹:

本書是《ESP32 深度實作》的系列作品, 兩書主題不重疊, 相輔相成, 沿襲《超圖解 Arduino 互動設計入門》以來作者手繪圖解的特色, 帶領讀者使用 ESP32 與新一代的 ESP32-S3、ESP32-S2 實作各式應用, 主要包含:

|自動控制必學的 PID 控制|

本書用淺顯易懂的方式解說自動控制中的 PID 理論, 並以恆溫控制器以及紅外線循跡自走車實踐 PID 控制理論, 從動手做中體驗 PID 的精髓以及調校 PID 參數的方法。

|自製 PCB 電路板流程|

本書除了使用現有的模組外, 為了能更完善呈現結果, 也在實作循跡自走車時自行設計 PCB 電路板, 書中也會分享整個 PCB 設計流程以及相關的軟硬體知識, 提升 DIY 自造能力。

|客製 USB HID 裝置|

ESP32-S3 內建 USB 介面, 可以用來快速實作 USB HID 裝置, 本書會帶領讀者利用旋轉編碼器模組設計多媒體控制器, 調整音量、播放/暫停不用再找功能鍵與滑鼠, 隨手一轉就行。

此外, 本書也會教你自製機械鍵盤, 你可以完全依據需求客製按鍵數、按鍵配置與鍵軸, 最重要的是客製韌體, 不必再因為市售的鍵盤缺少你想要的功能而怨嘆。

電玩控制器也是常見的 USB HID 裝置, 本書還會教你如何自製電玩控制器, 更棒的是, 你還可以透過程式幫你提升戰力, 設計只要按一下就能送出連續按鍵的功能, 對手怎麼按都不會有你快, 打遍天下無敵手。

|獨家的 CAN bus 介面實作|

在汽車以及工業世界中, CAN bus 是廣泛使用的傳輸介面, 本書會說明 CAN bus 的傳輸方式, 除了基本的傳輸實驗外, 還會帶大家實際使用 ESP32 接入真實的車上診斷電腦, 讀取引擎轉速等即時資訊, 製作自己的車上數位儀表板。

|高手都在用的 PlatformIO 開發環境|

本書範例雖然大部分都只要使用 Arduino 開發環境即可實作, 不過當專案越來越複雜時, 好的開發環境提供的功能可以讓你事半功倍。本書會介紹專業開發者必用的 PlatformIO 開發環境, 透過它的語法提示等功能讓你撰寫程式碼更快速, 檢查工具則可以幫你揪出潛藏在程式碼中的問題。另外, 還會介紹如何設計單元測試, 驗證程式碼是否正確運作。

|JTAG 硬體偵錯|

每個人都有使用 print 顯示各種資訊找程式錯誤的經驗, ESP32 系列其實具備硬體除錯的功能, 本書也會搭配 PlatformIO 與必要的硬體, 讓你可以使用硬體偵錯功能, 設定中斷點讓程式停在你需要觀察的位置, 並且隨意檢視變數內容, 甚至可在執行期間變更變數內容, 完整測試不同狀況下程式的執行結果。

|設計程式庫|

使用別人寫好的程式庫雖然方便, 但總是會遇到別人寫的程式庫不是你期望的使用方式, 或是沒有更新導致欠缺你需要的功能, 本書在實作各個範例的同時, 也會教導如何依照自己的需求設計程式庫, 還可以分享給別人使用。

|AI 程式助手|

在這個 AI 當道的年代, AI 不會取代你, 只會讓你變得更好!本書也加入 AI 輔助撰寫程式碼的內容, 透過 AI 助理的協助, 可以快速生成程式的輪廓, 經由細部的修整, 就可以更快、更正確的完成專案。

本書涵蓋的細項主題如下:

🚀 PID 控制/調校
🚀 陶瓷加熱片
🚀 MOSFET 電子開關
🚀 藍牙通訊事件
🚀 利用快閃記憶體儲存偏好設定
🚀 Codeium AI 程式助手
🚀 馬達轉速、移動距離檢測
🚀 光耦感測器、碼盤與霍爾編碼器
🚀 中斷常式類別實作
🚀 正交脈衝訊號
🚀 直流馬達驅動模組
🚀 循跡感測器
🚀 多工器/解多工器
🚀 並列轉序列輸出
🚀 客製 PCB 電路板
🚀 ESP32-S3 與 ESP32-S2 解析
🚀 WS2812 RGB LED
🚀 PlatformIO 開發環境建置
🚀 單元測試
🚀 自訂開發板組態
🚀 JTAG 硬體偵錯與 GDB 指令
🚀 差分訊號
🚀 旋轉編碼器
🚀 USB HID 裝置
🚀 鍵盤掃描電路
🚀 USB 鍵盤與遊戲控制器
🚀 CAN bus 說明與實驗
🚀 OBD 車上診斷電腦

本書會帶領大家實作:

🔧 不會太熱也不會太冷的 PID 陶瓷加熱恆溫控制
🔧 遠端調校 PID 的網頁/手機藍牙介面設計
🔧 平穩駕駛不搖擺的 PID 控制循跡自走車
🔧 可客製功能的 USB 多媒體旋鈕
🔧 完全依照自己喜好打造的 USB 機械鍵盤
🔧 一鍵瞬間使出必殺技的 USB 遊戲控制器
🔧 改造 Wii Classic 手把玩 Switch
🔧 介接 OBD 車上診斷系統的即時數位儀表板

本書特色:

  🚀 使用 Arduino/PlatformIO 實踐 PID/USB HID/CAN bus
🚀 自動控制一定要學的 PID, 用恆溫控制/循跡小車示範給你看
🚀 整合藍牙/動態網頁設計 PID 調校頁面
🚀 直流馬達驅動與馬達轉速、移動距離偵測
🚀 使用 C++ 類別建立中斷處理物件
🚀 類比輸入與數位輸入腳位的擴充方法
🚀 客製 PCB 板設計流程
🚀 ESP32-S3 與 ESP32-S2 開發板解析
🚀 PlatformIO 開發環境建置
🚀 使用 PlatformIO 的檢查工具找出隱藏在程式碼中的問題
🚀 為專案設計單元測試確保程式碼正常運作無誤
🚀 自製開發板組態設定檔
🚀 透過 JTAG 使用硬體偵錯功能
🚀 利用 USB HID 自製多媒體旋鈕控制器
🚀 DIY 自己的機械式小鍵盤
🚀 設計完全依照自己喜好配置的電玩控制器
🚀 可以瞬間使出連續按鍵必殺技的遊戲控制器
🚀 CAN bus 通訊解析
🚀 用 ESP32 接上你的車上診斷系統設計車速、轉速即時儀表板
🚀 使用 AI 助手輔助設計程式
🚀 設計自己的程式庫

展開看更多

產品目錄

目錄:
第 1 章 PID 控制入門
1-1 MCH 高溫陶瓷發熱元件簡介
►動手做 1-1 陶瓷加熱片電路
►動手做 1-2 開放迴路(open-loop)控制陶瓷加熱片
►動手做 1-3 閉迴路(closed-loop)控制系統以及起停式控制
1-2 PID 控制與方塊圖
1-3 比例控制器(P)
►動手做 1-4 採用 P 控制器的陶瓷加熱器

第 2 章 PI 和 PID 控制
2-1 積分控制器(I)
2-2 拆解逗號分隔字串
►動手做 2-1 加入積分運算的 PI 控制器
2-3 微分控制器(D)
►動手做 2-2 加入微分方程式的 PID 控制器
2-4 PID 的數學方程式

第 3 章 藍牙無線調整 PID 參數並於快閃記憶體儲存偏好設定
3-1 使用典型藍牙無線調整 PID 參數
►動手做 3-1 透過典型藍牙調整 PID 參數
3-2 透過回呼處理藍牙通訊事件
3-3 在快閃記憶體中儲存「偏好設定」

第 4 章 Visual Studio Code、AI 程式助手與動態 PID 調整網頁
4-1 下載與安裝 Visual Studio Code
4-2 使用 AI 助手建立互動網頁
4-3 製作 PID 調整滑桿與即時圖表網頁
4-4 在 ESP32 和瀏覽器之間的 JSON 訊息傳遞格式
4-5 顯示動態圖表
4-6 ESP32 的伺服器和 WebSocket 程式

第 5 章 檢測馬達轉速與移動距離
5-1 槽型光耦感測器和碼盤的運作原理
5-2 附帶減速齒輪箱與霍爾感測器的 N20 微型直流馬達
►動手做 5-1 使用中斷檢測馬達的轉動次數和方向
►動手做 5-2 「啟動」鍵與中斷常式的彈跳延遲處理
►動手做 5-3 測量移動距離
5-3 使用 XOR 邏輯閘降低外部中斷腳的需求

第 6 章 建立中斷類別程式
6-1 處理中斷的「啟動」鍵類別
6-2 使用自製的程式庫處理正交脈衝訊號
6-3 透過「函式指標」附加外部中斷

第 7 章 DRV8833 馬達驅動模組及其控制模式
7-1 直流馬達驅動控制模組
7-2 控制 DRV8833 的自訂函式
►動手做 7-1 以「快速衰減」模式控制馬達正、反轉
7-3 ESP32 的 DRV8833 程式庫
►動手做 7-2 測試不同衰減模式與 PWM 頻率對馬達運作的影響
7-4 重點解析 DRV8833 程式庫原始碼

第 8 章 循跡感測器以及擴充類比和數位輸入埠
8-1 擴充類比輸入埠
8-2 擴充數位輸入接腳

第 9 章 組裝循跡自走車
9-1 「差動驅動」型循跡自走車
9-2 製作循跡自走車的工具
9-3 ESP32 mini 開發板的接腳
9-4 焊接與組裝 PCB 子板
9-5 選擇電池盒與直流電壓轉換器
9-6 檢測電路以及繪製走線路徑
9-7 使用桌上型 CNC 雷射雕刻機切割壓克力板
9-8 循跡自走車的自製 PCB 板
9-9 試作 3 號機的修改電路

第 10 章 自走車的控制程式
10-1 感測車體的位置
►動手做 10-1 感測路線位置
►動手做 10-2 自走車的啟動∕暫停開關以及顯示畫面切換
►動手做 10-3 測量自走車馬達轉速並估算轉向的 PWM 值
10-2 依循跡感測值動態調整 PWM 輸出
10-3 調節左右馬達 PWM 值的程式碼
►動手做 10-4 PWM 循跡自走車的程式架構與原始碼
►動手做 10-5 動態調整雙輪轉速讓小車直行
►動手做 10-6 用 PID 控制器維持馬達轉速
►動手做 10-7 PID 控制循跡自走車

第 11 章 解析 ESP32-S2 與 ESP32-S3 開發板
11-1 認識 ESP32-S3 開發板
11-2 ESP32-S3 的兩個 ADC 單元 和類比輸入腳
11-3 ESP32 的開機模式說明
11-4 ESP32 內建的 USB Serial/CDC 序列通訊介面
11-5 WS2812 全彩 LED
11-6 GPIO Matrix(接腳矩陣)和 pins_arduino.h 檔
11-7 透過前置處理指令辨別 Arduino 開發板和微控器類型

第 12 章 使用 PlatformIO IDE 開發 Arduino 專案
12-1 安裝 PlatformIO IDE
12-2 新建 PlatformIO 專案
12-3 認識 PlatformIO 的操作介面
12-4 替專案加入第三方以及自訂程式庫
12-5 在快閃記憶體 SPIFFS 分區儲存網頁檔案
12-6 設定序列埠
12-7 在 PIO 中編譯與上傳程式
12-8 終端機介面以及 PlatformIO 的文字命令

第 13 章 PlatformIO 的檢查工具與單元測試
13-1 PlatformIO 的其他工具列說明
13-2 單元測試入門
►動手做 13-1 執行單元測試
►動手做 13-2 執行多個檢測
13-3 自訂開發板組態設定 JSON 檔

第 14 章 硬體偵錯與 JTAG 介面
14-1 硬體偵錯
►動手做 14-1 ESP32-S3 開發板 JTAG 偵錯
14-2 認識 GDB、OpenOCD 與 .elf 檔
14-3 JTAG 偵錯器架構與接線
►動手做 14-2 連接 ESP-Prog 進行偵錯
14-4 確認晶片的生產板本
14-5 清除編譯完成的韌體
14-6 使用 PlatformIO 開發與偵錯 Arduino UNO 開發板程式

第 15 章 USB 介面入門與人機介面裝置實作
15-1 認識 USB 介面
15-2 使用「查表法」編寫旋轉編碼器程式
►動手做 15-1 使用自訂程式庫製作旋鈕介面
15-3 ESP32 Arduino 開發環境內建的 USB 程式庫
►動手做 15-2 USB 多媒體旋鈕開關
15-4 按鍵掃描原理及 Keypad 程式庫
►動手做 15-3 密碼小鍵盤
15-5 製作 USB 媒體與系統控制鍵盤
►動手做 15-4 製作具備系統控制功能的媒體控制鍵盤

第 16 章 製作 USB 機械小鍵盤以及電玩控制器
16-1 機械鍵盤的元件和術語
►動手做 16-1 自製 USB 小機械鍵盤
16-2 USB 遊戲控制器
►動手做 16-2 自製 USB 遊戲控制器
►動手做 16-3 一鍵完成「必殺技」的 USB 遊戲控制器
16-3 改造現有 USB人機周邊介面

第 17 章 CAN 匯流排通訊實驗
17-1 認識 CAN 匯流排和 ECU
17-2 CAN 匯流排收發器 IC
►動手做 17-1 ESP32 CAN 匯流排通訊實驗
►動手做 17-2 傳遞以及解析浮點數資料
►動手做 17-3 發送接收請求封包

第 18 章 存取車上診斷系統(OBD)的即時資訊
18-1 OBD 車上診斷系統
18-2 從 ESP32 連接 OBD-II 介面
►動手做 18-1 讀取 OBD-II 訊框、轉發到藍牙序列埠
►動手做 18-2 在手機瀏覽器呈現即時車速和引擎轉速

規格

誠品貨碼 / 2682585336002
ISBN13 / 9789863127925
ISBN10 /
EAN貨碼 / 9789863127925
頁數 / 640
注音版 / 否
裝訂 / P:平裝
語言 / 1:中文/繁體
尺寸 / 23X17X3.1CM
級別 / N:無
重量(g) / 1120
提供維修 / 無

退貨說明

退貨須知:

  1. 依照消費者保護法的規定,您享有商品貨到次日起七天猶豫期(含例假日)的權益(請注意!猶豫期非試用期),辦理退貨之商品必須是全新狀態(不得有刮傷、破損、受潮)且需完整(包含全部商品、配件、原廠內外包裝、贈品及所有附隨文件或資料的完整性等)。
  2. 請您以送貨廠商使用之包裝紙箱將退貨商品包裝妥當,若原紙箱已遺失,請另使用其他紙箱包覆於商品原廠包裝之外,切勿直接於原廠包裝上黏貼紙張或書寫文字。若原廠包裝損毀將可能被認定為已逾越檢查商品之必要程度,本公司得依毀損程度扣除回復原狀必要費用(整新費)後退費;請您先確認商品正確、外觀可接受,再行拆封,以免影響您的權利;若為產品瑕疵,本公司接受退貨。

依「通訊交易解除權合理例外情事適用準則」,下列商品不適用七日猶豫期,除產品本身有瑕疵外,不接受退貨:

  1. 易於腐敗、保存期限較短或解約時即將逾期。(如:生鮮蔬果、乳製品、冷凍冷藏食材、蛋糕)
  2. 依消費者要求所為之客製化給付。(如:客製印章、鋼筆刻字)
  3. 報紙、期刊或雜誌。
  4. 經消費者拆封之影音商品或電腦軟體。
  5. 非以有形媒介提供之數位內容或一經提供即為完成之線上服務,經消費者事先同意始提供。(如:電子書)
  6. 已拆封之個人衛生用品。(如:內衣褲、襪類、褲襪、刮鬍刀、除毛刀等貼身用品)
  7. 國際航空客運服務。

若您退貨時有下列情形,可能被認定已逾越檢查商品之必要程度而須負擔為回復原狀必要費用(整新費),或影響您的退貨權利,請您在拆封前決定是否要退貨:

  1. 以數位或電磁紀錄形式儲存或著作權相關之商品(包含但不限於CD、VCD、DVD、電腦軟體等) 包裝已拆封者(除運送用之包裝以外)。
  2. 耗材(包含但不限於墨水匣、碳粉匣、紙張、筆類墨水、清潔劑補充包等)之商品包裝已拆封者(除運送用之包裝以外)。
  3. 衣飾鞋類/寢具/織品(包含但不限於衣褲、鞋子、襪子、泳裝、床單、被套、填充玩具)或之商品缺件(含購買商品、附件、內外包裝、贈品等)或經剪標或下水或商品有不可回復之髒污或磨損痕跡。
  4. 食品、美容/保養用品、內衣褲等消耗性或個人衛生用品、商品銷售頁面上特別載明之商品已拆封者(除運送用之包裝外一切包裝、包括但不限於瓶蓋、封口、封膜等接觸商品內容之包裝部分)或已非全新狀態(外觀有刮傷、破損、受潮等)與包裝不完整(缺少商品、附件、原廠外盒、保護袋、配件紙箱、保麗龍、隨貨文件、贈品等)。
  5. 家電、3C、畫作、電子閱讀器等商品,除商品本身有瑕疵外,退回之商品已拆封(除運送用之包裝外一切包裝、包括但不限於封膜等接觸商品內容之包裝部分、移除封條、拆除吊牌、拆除貼膠或標籤等情形)或已非全新狀態(外觀有刮傷、破損、受潮等)與包裝不完整(缺少商品、附件、原廠外盒、保護袋、配件紙箱、保麗龍、隨貨文件、贈品等)。
  6. 退貨程序請參閱【客服專區→常見問題→誠品線上退貨退款】之說明。
付款/配送