BeagleBone 開發指南 (Exploring BeagleBone: Tools and Techniques for Building with Embedded Linux)

[愛]Derek Molloy 莫洛伊

買這商品的人也買了...

相關主題

商品描述

<內容簡介>

 

BeagleBone是一款僅有信用卡大小的低成本Linux計算機,它可以聯網並運行高級操作系統(如Android和Ubuntu Linux)。BeagleBone包含大量I/O接口,具有廣泛的開源軟件支持選項,只需進行簡單的設置即可利用它開發應用。

 


本書詳細介紹了BeagleBone的軟硬件及其應用開發技巧,全書共分3個部分,共計13章。本書以循序漸進的方式向讀者介紹了BeagleBone的軟硬件、嵌入式Linux系統開發、接口電路、BeagleBone編程、BeagleBone輸入/輸出接口、交叉編譯和Eclipse IDE、BeagleBone總線接口、物理接口、物聯網、豐富的用戶界面、圖像及音視頻、BeagleBone實時接口等內容。

  
本書對於發明家、製造商、學生、創業者都具有廣泛的參考價值,能夠幫助讀者深入探索BeagleBone,挖掘其強大的使用價值。

 

 

<章節目錄>


第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