主要內容
目錄
第1章 初識Edison
1.1 Edison 介紹 1
1.1.1 第一版Edison 1
1.1.2 第二版Edison 2
1.2 Edison 的硬體參數 2
1.2.1 Edison 的性能 2
1.2.2 Edison 的硬體布局 4
1.2.3 70PIN 接口引腳定義 4
1.2.4 Edison 的軟體架構 7
1.2.5 Yocto Project 7
1.3 接口擴展板 8
1.3.1 兩種官方擴展板 8
1.3.2 Arduino 擴展板接口說明 9
1.3.3 Breakout Board 12
1.3.4 第三方擴展板 14
第2章 快速上手
2.1 Edison kit for Arduino 的用法 17
2.1.1 下載軟體及驅動 17
2.1.2 安裝硬體驅動 18
2.2 Arduino IDE for Edison 20
2.2.1 Arduino 開發環境 20
2.2.2 下載開發環境 21
2.2.3 配置開發環境 21
2.3 簡單的I/O 口控制 23
2.3.1 Blink 例程 23
2.3.2 PWM 輸出 24
2.4 Wi-Fi 連線 26
2.4.1 無線通信 26
2.4.2 無線網路 27
2.4.3 Wi-Fi 27
2.5 Wi-Fi 庫 28
2.5.1 Wi-Fi 庫概述 28
2.5.2 Wi-Fi 類中的函式 28
2.5.3 Server 類中的函式 29
2.5.4 Client 類中的函式 30
2.6 Wi-Fi 網路 31
2.6.1 掃描Wi-Fi 網路 31
2.6.2 連線Wi-Fi 網路 32
2.7 基於網路的互動 33
2.7.1 HTML 語言 33
2.7.2 網頁製作 34
2.7.3 在伺服器上運行網頁 36
2.7.4 通過網頁控制LED 40
2.7.5 在網頁中顯示溫度 42
2.8 實例:網路遠程養花系統 44
2.8.1 功能描述 44
2.8.2 硬體準備 44
2.8.3 編程實現 46
2.8.4 虛擬伺服器 48
2.8.5 擴展思考 50
2.9 通過串口登錄Linux 51
2.9.1 驅動安裝 51
2.9.2 設定Edison 52
2.9.3 藍牙連線 54
2.9.4 Linux 下的GPIO 操作 56
第3章 Edison 技術實現淺析
3.1 Edison 的硬體架構 61
3.1.1 Edison 核心 61
3.1.2 Edison 核心與外部系統的連線 63
3.1.3 深入研究Edison 的Arduino 接口擴展板 64
3.1.4 信號電平轉換的實現 67
3.1.5 I/O 工作模式和上拉電阻的實現 70
3.1.6 I/O 連線埠操作的性能問題 72
3.1.7 I/O 連線埠模式復用的實現 72
3.1.8 ADC 模擬信號採集 74
3.1.9 電源與電池充電 75
3.1.10 小結 76
3.2 Edison 的軟體架構 76
3.2.1 總體的軟體架構 76
3.2.2 系統引導過程 78
3.2.3 系統分區和檔案組織 83
3.2.4 Arduino Sketch 程式的執行機制 85
第4章 進階開發
4.1 開發Edison 原生套用 95
4.1.1 在Edison 中開發第一個Hello World 程式 95
4.1.2 本機編譯和交叉編譯 97
4.1.3 使用配套的原生套用SDK 進行開發 98
4.1.4 程式的部署與調試 101
4.2 使用第三方軟體包進行開發 106
4.2.1 使用libjpeg 庫實現對jpeg 圖像進行操作 106
4.2.2 將OpenCV 庫編譯成Edison 版本 107
4.2.3 在編寫的程式中調用OpenCV 113
第5章 系統定製與功能擴展
5.1 使用Yocto Project 定製Edison 系統 117
5.1.1 系統定製的方式與Yocto Project系統簡介 117
5.1.2 在開發機中搭建Yocto Project
開發環境 118
5.1.3 編譯產生Edison 完整系統鏡像 120
5.1.4 將編譯完成的系統鏡像寫入Edison 122
5.1.5 修改Linux 核心配置 123
5.1.6 增加額外的軟體包 125
5.2 修改啟動引導配置 127
5.2.1 在U-boot 中修改配置參數 127
5.2.2 在Linux 系統中修改U-boot 配置參數129
5.2.3 製作運行在SD 卡上的系統 130
第6章 給Edison 添加圖形人機互動界面
6.1 背景和原理 135
6.1.1 使用USB 顯示器 136
6.1.2 工作原理 136
6.2 在Yocto Project Linux 中增加圖形顯示和互動支持 138
6.2.1 對Linux 核心的配置 138
6.2.2 核心驅動編譯和部署 139
6.2.3 配置USB 屏核心驅動隨系統自動載入 142
6.2.4 在顯示屏中輸出命令終端 143
6.2.5 使用用戶態驅動庫直接驅動USB顯示器 144
6.3 運行PC 版Ubuntu 圖形界面 146
6.3.1 製作安裝Ubuntu 系統的SD 卡 147
6.3.2 配置Edison 進行Ubuntu 系統引導148
6.3.3 系統的登錄和使用 149
第7章 使用攝像頭進行圖像識別開發
7.1 從攝像頭捕捉數據 151
7.1.1 USB 攝像頭的選取 151
7.1.2 增加Linux 核心對USB 攝像頭的支持 153
7.1.3 使用OpenCV 獲取攝像頭圖像 154
7.2 製作一個攝像頭取景器 154
7.3 使用Edison 製作人臉跟蹤器 156
7.3.1 基本原理 157
7.3.2 在本機套用中使用Arduino 庫直接操作硬體 158
7.3.3 在本機套用驅動OLED 螢幕顯示畫面 161
7.3.4 舵機雲台控制 163
7.3.5 實現人臉跟蹤的facetrack 程式 164
第8章 基於Edison 的智慧型水杯
8.1 背景與原理 167
8.1.1 Edison 168
8.1.2 外部單片機 168
8.1.3 LED 顯示陣列 169
8.1.4 無線充電模組 169
8.1.5 板載充電方案 169
8.1.6 電池 170
8.1.7 音頻 170
8.1.8 運動感測器 170
8.1.9 低電壓保護電路 170
8.1.10 USB MUX 切換線路 171
8.1.11 功耗管理和系統電源狀態 171
8.1.12 系統上電時序和規範 172
8.2 系統構架與設計 173
8.2.1 硬體設計 173
8.2.2 軟體系統 176
8.2.3 IDEAir 無線編程環境 181
8.3 網際網路和雲計算 183
8.4 套用展望 185
附錄A Edison 相關的論壇、社區和開發者資源 187
附錄B Edison 的小夥伴們 190