目 錄
第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 擴展插座 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 誰在做Arduino 15
1.5.1 正式許可的産品 15
1.5.2 其他人 17
1.6 自己做Arduino 17
1.6.1 Arduino印刷電路闆 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.2 AVR芯片傢族 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.6 AVR內核 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.4 USART 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.2 I/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.3 Arduino的傳承與發展 76
5.4 軟件安裝 77
5.5 實踐 77
5.6 用戶界麵 78
5.6.1 File(文件)菜單 79
5.6.2 Edit(編輯)菜單和Edit關聯菜單 80
5.6.3 Sketch(程序)菜單 80
5.6.4 Tools(工具)菜單 81
5.6.5 Help(幫助)菜單 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.2 TV-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.4 PCB布局技術 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.1 CadSoft EAGLE 220
10.4.2 EAGLE 貼士 220
10.5 小結 221
第11章 軟件設計 222
11.1 Arduino高級話題 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.2 Arduino間的對話 248
12.2 MIDI:樂器數字接口 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
· · · · · · (
收起)