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