(RB-07B024)Arduino 技術(shù)內(nèi)幕
目錄 |
書籍簡(jiǎn)介
《Arduino技術(shù)內(nèi)幕》一書教你動(dòng)手制作機(jī)器人!全面深入理解Arduino工作原理,靈活進(jìn)行Arduino開發(fā)?!禔rduino技術(shù)內(nèi)幕》摒棄了大量基礎(chǔ)知識(shí),全面深入揭秘Arduino的內(nèi)部工作原理。其中,它通過(guò)“LED閃燈”、“LED照明”、“數(shù)字鐘”等示例作品由淺入深、由易而難介紹Arduino開發(fā),并最后以一個(gè)“自動(dòng)機(jī)器人”示例總結(jié)全書,不僅介紹了可用的軟硬件及軟硬件間的協(xié)作,闡述了軟硬件的選取與設(shè)計(jì),而且分析了項(xiàng)目管理(包括文檔化、團(tuán)隊(duì)工作與協(xié)作開發(fā)以及如何選擇許可方式)方面的內(nèi)容。另外,讀者還可從《Arduino技術(shù)內(nèi)幕》了解設(shè)計(jì)原則與優(yōu)秀的編程技巧、編程風(fēng)格,學(xué)會(huì)動(dòng)手設(shè)計(jì)實(shí)現(xiàn)優(yōu)秀的Arduino作品?!禔rduino技術(shù)內(nèi)幕》適合所有Arduino用戶學(xué)習(xí)參考。
書籍目錄
第1章 硬件 1
1.1 什么是arduino 1
1.2 arduino uno 2
1.2.1 處理器 3
1.2.2 串口 4
1.2.3 電源 5
1.2.4 擴(kuò)展插座 6
1.2.5 盾板 8
1.3 arduino mega 2560 11
1.4 之前的硬件 12
1.4.1 arduino serial 12
1.4.2 arduino usb 13
1.4.3 arduino extreme 14
1.4.4 arduino nuova generazione(新一代) 14
1.4.5 arduino diecimila 14
1.4.6 arduino duemilanove 15
1.4.7 arduino mega 15
1.5 誰(shuí)在做arduino 15
1.5.1 正式許可的產(chǎn)品 15
.1.5.2 其他人 17
1.6 自己做arduino 17
1.6.1 arduino印刷電路板 17
1.6.2 面包板arduino 18
1.7 小結(jié) 19
第2章 軟件 21
2.1 主機(jī)和目標(biāo)機(jī) 21
2.2 一步步來(lái) 21
2.2.1 第一步:寫代碼 22
2.2.2 第二步:編譯代碼 27
2.2.3 第三步:給芯片編程 28
2.2.4 第四步:測(cè)試和調(diào)試 29
2.2.5 第五步:重復(fù) 29
2.3 半自動(dòng)化 29
2.4 更進(jìn)一步 33
2.5 小結(jié) 33
第3章 atmel avr 34
3.1 起源 34
3.2 avr芯片家族 34
3.3 若有疑問(wèn):芯片器件手冊(cè) 35
3.4 芯片封裝 35
3.4.1 雙列直插(dip) 35
3.4.2 表面安裝器件(smd) 36
3.4.3 多出來(lái)的引腳 37
3.5 管腳定義 37
3.6 avr內(nèi)核 43
3.6.1 時(shí)鐘源 45
3.6.2 地址空間 46
3.6.3 指令集 49
3.7 片內(nèi)外圍設(shè)備 54
3.7.1 通用輸入/輸出(i/o) 55
3.7.2 外部中斷 55
3.7.3 定時(shí)器/計(jì)數(shù)器 56
3.7.4 usart 57
3.7.5 兩線串行接口(twi),即i2c 57
3.7.6 模擬輸入 58
3.8 小結(jié) 58
第4章 支持硬件 59
4.1 電路圖 59
4.1.1 元件類型 60
4.1.2 元件編號(hào) 60
4.1.3 元件值 61
4.1.4 元件值誤差 61
4.1.5 元件的其他參數(shù) 62
4.1.6 連接 62
4.2 給電路板供電 63
4.2.1 柱式電源插座 63
4.2.2 輸入電源調(diào)節(jié) 63
4.2.3 穩(wěn)壓器 65
4.2.4 電源電路的演變 65
4.3 串口 67
4.4 處理器 69
4.4.1 功耗 69
4.4.2 i/o驅(qū)動(dòng)能力 70
4.4.3 -reset信號(hào) 70
4.4.4 時(shí)間基準(zhǔn) 70
4.4.5 去耦電容 71
4.4.6 閃燈 71
4.5 擴(kuò)展空間 71
4.6 結(jié)構(gòu)外形 72
4.7 通用串行總線(usb):信號(hào)加電源 73
4.8 小結(jié) 74
第5章 arduino軟件 75
5.1 開源軟件 76
5.2 多平臺(tái)支持 76
5.3 arduino的傳承與發(fā)展 76
5.4 軟件安裝 77
5.5 實(shí)踐 77
5.6 用戶界面 78
5.6.1 file(文件)菜單 79
5.6.2 edit(編輯)菜單和edit關(guān)聯(lián)菜單 80
5.6.3 sketch(程序)菜單 80
5.6.4 tools(工具)菜單 81
5.6.5 help(幫助)菜單 82
5.7 小結(jié) 82
第6章 優(yōu)化 83
6.1 可行性 83
6.2 壓縮閃燈程序 83
6.2.1 閃爍是如何實(shí)現(xiàn)的 84
6.2.2 衡量節(jié)省空間的優(yōu)化措施 84
6.2.3 代碼分析 84
6.2.4 沒(méi)有pinmode()的生活 85
6.2.5 縮寫和簡(jiǎn)語(yǔ) 86
6.2.6 二進(jìn)制寫法 87
6.2.7 深入分析 87
6.2.8 輕松翻轉(zhuǎn) 88
6.2.9 進(jìn)一步精簡(jiǎn) 88
6.2.10 更有效地“浪費(fèi)時(shí)間” 89
6.2.11 更低級(jí)別的代碼 89
6.3 用簡(jiǎn)單的串口通信來(lái)節(jié)省空間 90
6.3.1 “hello, world!”做了什么 91
6.3.2 寫配置寄存器 91
6.3.3 發(fā)送數(shù)據(jù) 93
6.3.4 一串字符 94
6.3.5 輸出數(shù)字 95
6.4 節(jié)省sram 96
6.4.1 測(cè)量要用的sram 96
6.4.2 最小裸機(jī) 98
6.4.3 內(nèi)存分區(qū) 99
6.4.4 變量的位置 100
6.4.5 使用恰當(dāng)?shù)臄?shù)據(jù)類型 100
6.4.6 再探字符串 101
6.5 低功耗,還是高速度? 102
6.6 電子測(cè)量 103
6.6.1 用arduino做測(cè)試儀器 103
6.6.2 盡可能快 105
6.6.3 讓它慢下來(lái) 108
6.6.4 進(jìn)一步降低功耗 110
6.7 小結(jié) 112
第7章 硬件加軟件 113
7.1 可用的外圍設(shè)備 113
7.1.1 串口 113
7.1.2 通用數(shù)字輸入輸出 119
7.1.3 定時(shí)器和計(jì)數(shù)器 121
7.1.4 脈寬調(diào)制(pwm)輸出 124
7.1.5 模擬輸入 129
7.1.6 外部中斷 133
7.1.7 中斷手冊(cè) 135
7.2 小結(jié) 137
第8章 示例作品 139
8.1 不只是閃爍的led:從簡(jiǎn)單開始 139
8.1.1 足夠慢 142
8.1.2 基本完成優(yōu)化的六通道調(diào)光器 144
8.1.3 變暗了 147
8.2 閃爍led的其他用處 154
8.2.1 紅外遙控 154
8.2.2 tv-b-gone 156
8.3 許多閃爍的led 157
8.3.1 一個(gè)直接驅(qū)動(dòng)的例子 157
8.3.2 用led驅(qū)動(dòng)器直接驅(qū)動(dòng) 159
8.3.3 多路復(fù)用技術(shù) 160
8.4 數(shù)字鐘 174
8.4.1 精度 179
8.4.2 用戶界面 180
8.4.3 其他功能 180
8.5 小結(jié) 181
第9章 項(xiàng)目管理 182
9.1 文檔 182
9.1.1 源代碼注釋 183
9.1.2 空格 184
9.1.3 按你的意思編程,按你的代碼解釋 185
9.1.4 自動(dòng)文檔編制 186
9.1.5 寫給你的“讀者”看 186
9.1.6 硬件文檔 187
9.1.7 再進(jìn)一步 188
9.2 團(tuán)隊(duì)工作和協(xié)同開發(fā) 189
9.2.1 博客 190
9.2.2 論壇 190
9.2.3 維基 191
9.2.4 修訂控制系統(tǒng) 191
9.2.5 關(guān)于修訂版號(hào)和版本號(hào)的說(shuō)明 192
9.2.6 放作品的網(wǎng)站 192
9.3 選擇許可方式 195
9.3.1 專利和商標(biāo) 195
9.3.2 版權(quán) 196
9.3.3 開源 197
9.3.4 公共域 198
9.4 小結(jié) 199
第10章 硬件設(shè)計(jì) 200
10.1 了解硬件 200
10.1.1 必須要有的東西 201
10.1.2 想要有的東西 202
10.2 紅外接近傳感器 203
10.2.1 一個(gè)簡(jiǎn)易原型 205
10.2.2 一些簡(jiǎn)單的改進(jìn) 207
10.2.3 印制電路板 210
10.2.4 pcb布局技術(shù) 211
10.2.5 第一次嘗試 212
10.2.6 更小的版本 214
10.2.7 連接 215
10.3 自己定制的arduino 216
10.3.1 兼容現(xiàn)有arduino和盾板 216
10.3.2 電源的可能選擇 217
10.3.3 處理器選擇 218
10.3.4 還有什么? 219
10.4 設(shè)計(jì)用的軟件 219
10.4.1 cadsoft eagle 220
10.4.2 eagle 貼士 220
10.5 小結(jié) 221
第11章 軟件設(shè)計(jì) 222
11.1 arduino高級(jí)話題 222
11.1.1 寫arduino庫(kù) 222
11.1.2 備選內(nèi)核 229
11.2 不用arduino 239
11.2.1 再探bare metal 239
11.2.2 其他開發(fā)環(huán)境 242
11.3 小結(jié) 245
第12章 組網(wǎng) 246
12.1 點(diǎn)對(duì)點(diǎn)組網(wǎng) 246
12.1.1 通過(guò)串口交談 246
12.1.2 arduino間的對(duì)話 248
12.2 midi:樂(lè)器數(shù)字接口 260
12.3 互聯(lián)網(wǎng) 264
12.4 小結(jié) 268
第13章 更多示例作品 269
13.1 一個(gè)自動(dòng)機(jī)器人 269
13.2 電源 270
13.3 動(dòng)作控制 270
13.4 傳感器 276
13.4.1 光敏傳感器 276
13.4.2 接觸傳感器 277
13.4.3 非接觸傳感器 278
13.4.4 聲音傳感器 279
13.4.5 指示器、控制器和其他形式的通信 279
13.5 控制系統(tǒng) 281
13.5.1 開環(huán)系統(tǒng) 281
13.5.2 閉環(huán)系統(tǒng) 282
13.6 示例機(jī)器人作品 283
13.6.1 一個(gè)練習(xí)機(jī)器人 284
13.6.2 下一個(gè)機(jī)器人 304
13.6.3 你的終極機(jī)器人 318
13.7 小結(jié) 319