編輯推薦
通過閱讀本書,讀者可以快速掌握嵌入式軟硬件開發技術的要點,並能夠探索BBB開源硬件的奧秘,瞭解BeagleBone Black的優勢和特色。
● 掌握BeagleBone 所需要的知識和技能,包括Linux 特徵詳細迴顧、電子和編程技能。
● 徹底檢查BeagleBone 與任何類型電路或設備接口的連接。
● 演示高級的BeagleBone 應用,例如網絡通信、豐富的用戶界麵、圖像、視頻、音頻,以及使用BeagleBone 的
PRU-ICSS 實時接口。
● 通過講授基本技能來幫助你使用電子、模塊或BeagleBone 及其他外部設備來進行設計。
● 本書提供瞭一個有力的“做中學”的方法,適用於初學者和高級用戶。
內容簡介
BeagleBone是一款僅有信用卡大小的低成本Linux計算機,它可以聯網並運行高級操作係統(如Android和Ubuntu Linux)。BeagleBone包含大量I/O接口,具有廣泛的開源軟件支持選項,隻需進行簡單的設置即可利用它開發應用。
本書詳細介紹瞭BeagleBone的軟硬件及其應用開發技巧,全書共分3個部分,共計13章。本書以循序漸進的方式嚮讀者介紹瞭BeagleBone的軟硬件、嵌入式Linux係統開發、接口電路、BeagleBone編程、BeagleBone輸入/輸齣接口、交叉編譯和Eclipse IDE、BeagleBone總綫接口、物理接口、物聯網、豐富的用戶界麵、圖像及音視頻、BeagleBone實時接口等內容。
本書對於發明傢、製造商、學生、創業者都具有廣泛的參考價值,能夠幫助讀者深入探索BeagleBone,挖掘其強大的使用價值。
作者簡介
Derek Molloy博士,現任愛爾蘭都柏林大學工程與計算學院電子工程係的高級講師。主要講授課程為麵嚮對象的嵌入式係統程序設計、數字與模擬電子技術、3D計算機圖形學,授課對象為在校本科生和研究生。研究領域主要是計算機技術、計算機視覺、3D圖形學及可視化技術及數字化教學。
目錄
目錄
第1部分 BeagleBone基礎知識
第1章 BeagleBone硬件 3
1.1 平颱介紹 3
1.1.1 誰該使用BeagleBone 4
1.1.2 何時使用BeagleBone 5
1.1.3 何時你不該使用BeagleBone 5
1.2 BeagleBone文檔 6
1.3 BeagleBone硬件 7
1.3.1 BeagleBone版本 7
1.3.2 BeagleBone Black硬件 8
1.4 BeagleBone 配件 12
1.4.1 重點推薦使用的配件 12
1.4.2 可選配件 14
1.5 capes 16
1.6 怎樣做會損壞你的BeagleBone係統 17
1.7 小結 18
1.8 支持 18
第2章 BeagleBone Black軟件 19
2.1 BeagleBone運行Linux 19
2.2 BeagleBone Black通信 20
2.2.1 安裝驅動程序 21
2.2.2 網絡連接 21
2.2.3 BeagleBone Black通信 26
2.3 控製BeagleBone 30
2.3.1 基本的Linux命令 30
2.3.2 基本的文件編輯 34
2.3.3 現在幾點瞭 35
2.3.4 打包管理 37
2.3.5 與BeagleBone Black主闆上的LED交互 39
2.3.6 關機 40
2.4 Node.js、Cloud9 和BoneScript 41
2.5 小結 45
2.6 延伸閱讀 45
第3章 嵌入式Linux係統開發 47
3.1 嵌入式Linux基礎 47
3.1.1 嵌入式Linux提供瞭什麼 48
3.1.2 Linux是開源的、免費的 48
3.2 BeagleBone Black的啓動 49
3.2.1 BeagleBone Black的BootLoaders 49
3.2.2 內核態和用戶態 53
3.2.3 System V init(SysVinit) 54
3.3 管理Linux係統 56
3.3.1 超級用戶 56
3.3.2 係統管理員 57
3.3.3 開發文件係統 64
3.3.4 Linux係統命令 70
3.3.5 Linux進程 77
3.3.6 其他Linux話題 80
3.4 Git 80
3.4.1 開始使用Git 81
3.4.2 高級Git 84
3.4.3 Git小結 87
3.5 桌麵虛擬化 88
3.6 本書的實例代碼 89
3.7 小結 89
3.8 延伸閱讀 90
第4章 接口電路 91
4.1 推薦設備 91
4.1.1 數字萬用錶 91
4.1.2 示波器 92
4.2 基本電路原理 93
4.2.1 電壓、電流、電阻、歐姆定律 93
4.2.2 分壓電路 95
4.2.3 分流電路 96
4.2.4 麵包闆實現電路 97
4.2.5 數字萬用錶(DMM)和麵包闆 98
4.2.6 電路例子:電壓穩壓 98
4.3 分立元件 100
4.3.1 二極管 100
4.3.2 LED(LEDs) 101
4.3.3 濾波和去耦電容 103
4.3.4 晶體管 104
4.3.5 光耦閤器/光電隔離器 109
4.3.6 開關和按鈕 110
4.3.7 滯後 112
4.4 邏輯門 112
4.4.1 浮空輸入 116
4.4.2 上拉和下拉電阻 116
4.4.3 集電極開路和漏極開路輸齣 117
4.4.4 門互連 118
4.5 模數轉換 119
4.5.1 采樣率 119
4.5.2 量化 119
4.5.3 運算放大器 120
4.6 結論與建議 123
4.7 小結 123
4.8 延伸閱讀 123
注釋 124
第5章 BeagleBone編程 125
5.1 介紹 125
5.1.1 各種語言的評估 126
5.1.2 設置BeagleBone Black的CPU頻率 128
5.2 腳本語言 128
5.2.1 腳本語言的選擇 128
5.2.2 Bash 129
5.2.3 Perl 132
5.2.4 Python 133
5.3 JavaScript和Java 135
5.3.1 BeagleBone Black上的JavaScript和Node.js 135
5.3.2 BeagleBone Black上的Java 138
5.4 BeagleBone Black上的C和C++ 141
5.4.1 C和C++語言概述 142
5.4.2 用C編寫LED燈閃爍程序 154
5.4.3 C和C++ 156
5.4.4 編寫自己的Multi-CallBinary 159
5.5 帶有類的C++ 160
5.5.1 麵嚮對象編程的概述 160
5.5.2 麵嚮對象LED閃爍的代碼 163
5.5.3 /Proc——proc文件係統 167
5.5.4 GLIBC和係統調用 167
5.6 小結 169
5.7 延伸閱讀 170
注釋 170
第2部分 接口、控製和通信
第6章 BeagleBone輸入/輸齣接口 173
6.1 通用輸入/輸齣口 173
6.1.1 GPIO接口介紹 173
6.1.2 GPIO數字輸齣 175
6.1.3 GPIO數字輸入 178
6.1.4 GPIO配置 179
6.1.5 C++控製GPIO口 185
6.2 Linux設備樹 189
6.2.1 扁平設備樹 190
6.2.2 設備樹覆蓋層 191
6.2.3 BeagleBone Black外設管理器 193
6.3 模擬輸入和輸齣 197
6.3.1 模擬輸入 197
6.3.2 模擬輸齣 201
6.4 高級GPIO主題 204
6.4.1 更多C++編程 205
6.4.2 增強型GPIO類 208
6.4.3 GPIO-KEYS 212
6.4.4 不通過sudo命令使用GPIO 216
6.5 小結 218
6.6 延伸閱讀 218
注釋 218
第7章 交叉編譯和EclipseIDE 219
7.1 搭建交叉編譯鏈 219
7.2 交叉編譯第三方庫(Multiarch) 223
7.3 安裝change root 224
7.3.1 安裝armhf change root 224
7.3.2 模擬armhf體係結構 225
7.4 使用Eclipse進行交叉編譯 226
7.4.1 在桌麵Linux上安裝Eclipse 227
7.4.2 配置Eclipse支持交叉編譯 227
7.4.3 Remote System Explorer 229
7.4.4 Eclipse中集成GitHub 231
7.4.5 遠程調試 232
7.4.6 自動生成文檔(Doxygen) 234
7.5 構建BeagleBone Black上的Debian 237
7.6 小結 238
7.7 延伸閱讀 238
第8章 BeagleBone總綫接口 239
8.1 總綫通信介紹 239
8.2 I2C 240
8.2.1 I2C硬件 240
8.2.2 ADXL345加速度計 242
8.2.3 使用Linux I2C工具 243
8.2.4 C語言中的I2C通信 248
8.2.5 C++類封裝I2C設備 250
8.3 SPI 253
8.3.1 SPI硬件 253
8.3.2 BeagleBone Black上的SPI 255
8.3.3 第1個SPI應用(74HC595) 257
8.3.4 C++的雙嚮SPI通信 262
8.3.5 BeagleBone Black上多個SPI從設備 270
8.4 UART 271
8.4.1 BeagleBone Black上的UART 272
8.4.2 Arduino UART實例 273
8.4.3 BeagleBone Arduino串行通信 275
8.4.4 一個Arduino的UART命令控製 278
8.5 邏輯電平傳輸 282
8.6 小結 284
8.7 延伸閱讀 284
注釋 284
第9章 物理接口 285
9.1 執行器接口 285
9.1.1 直流電機 286
9.1.2 步進電機 292
9.1.3 繼電器 297
9.2 模擬傳感器接口 298
9.2.1 BeagleBone Black ADC輸入引腳的保護 299
9.2.2 模擬傳感器的信號調節 302
9.2.3 模擬接口實例 305
9.3 顯示模塊接口 309
9.3.1 七段數碼管顯示 309
9.3.2 字符LCD模塊 313
9.4 遠程控製BeagleBone Black 317
9.4.1 使用Systemd管理服務 317
9.4.2 BeagleBone Black通過串口連接到桌麵計算機 319
9.4.3 開機啓動自定義服務 322
9.4.4 藍牙 324
9.5 構建動態鏈接庫 328
9.6 小結 329
9.7 延伸閱讀 329
注釋 329
第3部分 高級BeagleBone係統
第10章 物聯網 333
10.1 物聯網簡介 333
10.2 傳感器詳細介紹 335
10.2.1 室內溫度傳感器 335
10.2.2 德州儀器的SensorTag 336
10.3 BeagleBone Black作為Web服務器 339
10.3.1 安裝Web服務器 339
10.3.2 配置Apache Web服務器 340
10.3.3 創建Web頁麵和Web腳本 341
10.3.4 BeagleBone中運行PHP 343
10.3.5 用自定義的Web服務替換Bone101 344
10.4 C/C++開發的Web客戶端 345
10.4.1 網絡通信基礎 345
10.4.2 C/C++開發的Web客戶端 346
10.4.3 基於OpenSSL的安全通信 349
10.5 BeagleBone Black作為網絡傳感器 350
10.5.1 ThingSpeak 350
10.5.2 Linux Cron調度程序 353
10.5.3 Xively 356
10.5.4 在BeagleBone Black上發送E-mail 360
10.5.5 IFTTT(If This Then That) 362
10.6 C++開發的客戶端/服務器 363
10.7 遠程管理IoT設備 366
10.7.1 BeagleBone Black的遠程監控 366
10.7.2 Linux的看門狗定時器 367
10.8 IoT的物理網絡 369
10.8.1 BeagleBone Black和Wi-Fi 369
10.8.2 靜態IP地址 373
10.8.3 有源以太網供電(PoE) 373
10.9 小結 375
10.10 延伸閱讀 376
注釋 376
第11章 豐富的用戶界麵 377
11.1 豐富的BeagleBone Black UI架構 377
11.1.1 BeagleBone Black作為通用計算機 378
11.1.2 配備LCD觸摸屏cape的BeagleBone Black 380
11.1.3 虛擬網絡連接(VNC) 381
11.1.4 胖客戶端應用程序 383
11.2 豐富的UI應用程序開發 384
11.2.1 BeagleBone Black上的GTK+開發介紹 384
11.2.2 BeagleBone Black上的Qt開發介紹 390
11.3 Qt入門 392
11.3.1 Qt概念 392
11.3.2 Qt開發工具 394
11.3.3 Qt溫度傳感器的GUI應用程序 395
11.3.4 簡單的Qt跨平颱開發 400
11.4 遠程UI應用程序開發 402
11.4.1 Qt胖客戶端GUI應用程序 403
11.4.2 多綫程服務器應用程序 406
11.4.3 多綫程溫度服務 409
11.4.4 胖客戶端作為服務器 410
11.5 交叉編譯Qt應用程序 416
11.5.1 從源代碼構建Qt庫 417
11.5.2 遠程部署測試應用程序 417
11.6 小結 418
11.7 延伸閱讀 418
第12章 圖像、視頻和音頻 419
12.1 圖像和視頻采集 419
12.1.1 USB網絡攝像頭 420
12.1.2 Video4Linux2(V4L2) 421
12.2 視頻流 427
12.3 圖像處理和計算機視覺 428
12.3.1 OpenCV圖像處理 428
12.3.2 OpenCV計算機視覺 431
12.3.3 Boost庫 434
12.4 BeagleBone音頻 434
12.4.1 核心音頻軟件工具 435
12.4.2 BeagleBone Black音頻設備 435
12.4.3 文本轉語音 443
12.5 小結 446
12.6 延伸閱讀 446
第13章 BeagleBone實時接口 447
13.1 實時BeagleBone 447
13.1.1 實時內核 447
13.1.2 實時硬件解決方案 448
13.2 PRU-ICSS架構 449
13.3 開始使用PRU-ICSS 450
13.3.1 PRU-ICSS增強型GPIO模塊 451
13.3.2 PRU-ICSS設備樹覆蓋層 452
13.3.3 PRU-ICSS包 454
13.3.4 第1個PRU程序 455
13.4 PRU-ICSS詳細介紹 458
13.4.1 寄存器 458
13.4.2 本地和全局存儲 460
13.4.3 PRU匯編指令集 461
13.5 PRU-ICSS應用程序 463
13.5.1 PRU-ICSS性能測試 463
13.5.2 通用Linux GPIO的使用 464
13.5.3 PRU PWM生成器 467
13.5.4 PRU正弦波發生器 470
13.5.5 超聲波傳感器的應用 472
13.6 其他PRU-ICSS工具 478
13.6.1 PRU調試器 478
13.6.2 TI的PRU C編譯器 479
13.7 小結 481
13.8 延伸閱讀 481
BeagleBone開發指南 下載 mobi epub pdf txt 電子書 格式