TOP
0
0
【23號簡體館日】限時三天領券享優惠!!
Arduino開發實戰指南:AVR篇 (簡體書)
滿額折

Arduino開發實戰指南:AVR篇 (簡體書)

人民幣定價:59 元
定  價:NT$ 354 元
優惠價:87308
絕版無法訂購
相關商品
商品簡介
名人/編輯推薦
目次

商品簡介

目前,在國內關注Arduino的人越來越多,但介紹Arduino的書籍卻很少。Arduino是一個注重實際動手操作應用的產品,所以本書以實際應用為紐帶將各個章節聯系起來。本書首先介紹Arduino的一些基礎知識,接著針對具體應用介紹了一些擴展板以及Arduino擴展庫,最后應用之前的內容完成了具有視頻監控功能的履帶車、遙控機械臂以及雙足機器人的制作。內容是循序漸進,使讀者深刻的理解Arduino的優點,本書會引領您走入Arduino的精彩世界。

名人/編輯推薦

在2011年舉行的Google I/O開發者大會上,Google發布了基于Arduino的Android Open Accessory標準和ADK工具,這使得大家對Arduino的前景十分看好。Phillip Torrone大膽地預測Google將用Android+Arduino的形式掀起自己的“Kinect模式”浪潮。目前,國內關注Arduino的人越來越多,但介紹Arduino的書籍卻很少。筆者由于工作的關系,接觸Arduino較早,所以希望通過自己的努力讓更多的人了解Arduino,在近一年的時間里,通過不斷學習、查閱Arduino相關知識,終于完成了書稿的撰寫工作。但在書稿完成之後,心中卻一直忐忑不安,Arduino是一個介于軟件與硬件之間的產品,系統性不是很強,加上筆者水平有限,拙著中一定存在不少的缺點與漏洞,為此,筆者先為書中的不足之處致以真誠的歉意,同時誠摯地歡迎廣大讀者提出寶貴的意見并不吝賜教。
本書的內容及面向的讀者
Arduino是一個注重實際動手操作的產品,所以本書以實際應用為紐帶將各個章節聯系起來。本書共9章,首先介紹Arduino的一些基礎知識,接著針對具體應用介紹了一些擴展板以及Arduino擴展庫,最後應用之前的內容完成了具有視頻監控功能的履帶車、遙控機械臂以及雙足機器人的制作。
因為Arduino本身具有簡單易用的特點,所以本書面向的讀者是所有有興趣使用Arduino進行項目開發的人。
當然,根據讀者的情況不同,本書的閱讀方式也不同。
如果讀者是一個之前沒有進行過單片機開發也沒有進行過軟件開發的人,現在想使用Arduino來實現自己的一些想法,那么首先要閱讀本書的前兩章,了解一些簡單的編程思想以及程序結構,接下來閱讀第3章的目錄,了解Arduino都有什么基本函數,具體內容可以先不用看,當你之後使用這些函數遇到問題時再回過頭來看一看相應的函數說明。然後將Arduino接到你的電腦上,翻開第4章,根據書中的內容,邊學習邊實踐,4.5節可以跳過不看。第5~7章介紹了Arduino周邊的資源,以便幫助你盡快地實現想法,這3章的內容也可以采用跳躍式的閱讀方式。第8、9章會告訴你前3章的內容是如何結合起來的,建議按照書中的內容至少動手完成一個項目的制作。
如果讀者之前進行過AVR單片機的開發,想了解Arduino一些底層的知識,那么第2章的知識就可以跳過了,在簡單地翻閱第3章的內容後,直接進入第4章,把Arduino連到電腦上實踐一下,再回過頭閱讀第3章中關于Arduino的基本函數,結合自身已有的AVR單片機的知識了解Arduino底層的工作機制。需要說明的是,這里需要讀者自己花一些精力,可能還需要學習一些C++方面的知識。第5章對Arduino硬件原理進行了詳細介紹,若讀者之前學習過,這一章可以選擇性學習。第6章介紹的是Arduino的擴展庫,如果讀者也想開發一些Arduino擴展板,并以庫的形式提供擴展板的軟件資源,那么建議先學習最後一節,再從6.1節開始學習,深入地了解這些擴展庫是如何與Arduino結合在一起的。至于剩下幾章的內容,如果用開發單片機的思路來完成也是不難的,所以閱讀的重點是看看如何用Arduino的思路進行項目的制作。
如果讀者之前是做純電腦軟件開發工作的,即使用C++非常熟練,那么在閱讀完第1章後,可以直接跳到第4章,感受一下Arduino給純軟件開發人員帶來的那種完成硬件制作的感覺,然後仔細閱讀第5章,看看目前都有哪些擴展板可以為自己所用,控制電機、控制液晶之類的,硬件知識哪怕我們不用,也還是要了解一些的。接下來,對于第6章,可以仔細閱讀一下與硬件關系不太大的擴展庫以及如何創建自己的庫,在今後底層硬件庫不斷豐富完善的情況下,開發一些注重應用、與底層關系不是太緊密的庫時,這就是我們的用武之地。第7~9章的內容會告訴我們前面的知識是如何結合起來的—用純軟件的思路,同樣建議按照書中的內容至少動手完成一個項目的制作,做純軟件開發工作的人開發硬件也是很容易的。
致謝
首先要感謝本書的策劃張國強先生,是他對Arduino的關注促成了本書的出版,同時在筆者撰寫書稿時他也對本書提出了寶貴的寫作建議,并對書稿進行了仔細審閱。
其次要感謝讓我了解Arduino的莊明波先生,他不但在技術上給予了我很多的指導,同時也無私地提供了大量的Arduino擴展板的資料以及實物,供我在Arduino的程序調試中使用,同時與我共同探討技術上遇到的問題。
最後要感謝現在正捧著這本書的您,感謝您肯花費時間和精力閱讀本書,由于時間有限,書中難免存在疏漏與錯誤,誠懇地希望您批評指正,您的意見和建議將是我巨大的財富。希望在Arduino的領域結識更多的朋友。

目次

前言
第一篇 基礎篇
第1章 初識Arduino 2
1.1 Arduino的歷史 2
1.2 Arduino的家族 3
1.3 Arduino的資源 6
1.4 Arduino的開發環境 9
1.5 添加新硬件及設置開發環境 9
1.6 Arduino開發環境的應用 14
第2章 編寫Arduino程序 16
2.1 繪制流程圖 16
2.1.1 流程圖基本符號 16
2.1.2 流程圖的三種基本結構 17
2.2 C語言的標識符與關鍵字 18
2.2.1 標識符 18
2.2.2 關鍵字 18
2.2.3 運算符 19
2.2.4 分隔符 21
2.2.5 常量 21
2.2.6 注釋符 21
2.3 控制語句 21
2.3.1 if語句 21
2.3.2 switch語句 22
2.3.3 while語句 23
2.3.4 do-while語句 24
2.3.5 for語句 25
2.3.6 break語句 26
2.3.7 continue語句 26
2.3.8 goto語句 26
2.4 程序結構 27
第3章 Arduino的基本函數 29
3.1 數字I/O 30
3.1.1 pinMode(pin,mode) 30
3.1.2 digitalWrite(pin,value) 31
3.1.3 digitalRead(pin) 32
3.2 模擬I/O 33
3.2.1 analogReference(type) 33
3.2.2 analogRead(pin) 33
3.2.3 analogWrite(pin, value) 34
3.3 高級I/O 37
3.3.1 shiftOut(dataPin,clockPin, bitOrder,val) 37
3.3.2 pulseIn(pin,state,timeout) 38
3.4 時間函數 39
3.4.1 millis( ) 39
3.4.2 delay(ms) 40
3.4.3 delayMicroseconds(us) 40
3.5 數學庫 41
3.5.1 min(x,y) 41
3.5.2 max(x,y) 41
3.5.3 abs(x) 41
3.5.4 constrain(amt,low,high) 41
3.5.5 map(x,in_min,in_max,out_min, out_max) 41
3.5.6 三角函數 42
3.6 隨機數 42
3.6.1 randomSeed(seed) 42
3.6.2 random(howsmall,howbig) 42
3.7 位操作 43
3.8 中斷函數 43
3.8.1 interrupts( )和noInterrupts( ) 43
3.8.2 attachInterrupt(interrupt,function,mode) 43
3.9 串口通信 45
3.10 SPI接口 48
3.10.1 SPI接口概述 48
3.10.2 SPI接口數據傳輸 48
3.10.3 SPI類及其成員函數 49
第4章 Arduino硬件平臺 52
4.1 Arduino的原理圖 52
4.2 串行通信口的使用 55
4.2.1 實例功能 56
4.2.2 硬件電路 56
4.2.3 程序設計 56
4.3 數字I/O口的使用 58
4.3.1 實例功能 59
4.3.2 硬件電路 59
4.3.3 程序設計 59
4.4 模擬I/O口的使用 61
4.4.1 實例功能 61
4.4.2 硬件電路 61
4.4.3 程序設計 62
4.5 燒寫引導程序 62
4.5.1 下載器AVRISP 63
4.5.2 AVR Studio 64
4.5.3 燒寫引導程序 65
第二篇 模塊篇
第5章 Arduino基本擴展模塊 68
5.1 L293 Motor Shield 68
5.1.1 直流電機的工作原理 68
5.1.2 H橋驅動電路 70
5.1.3 線性放大調速原理 71
5.1.4 PWM調速原理 72
5.1.5 L293 Motor Shield的原理 72
5.1.6 L293 Motor Shield的應用 74
5.1.7 程序設計 75
5.1.8 程序分析 76
5.1.9 程序的精練 77
5.2 Input Shield 78
5.2.1 Input Shield原理圖 79
5.2.2 Input Shield的實例 79
5.2.3 程序設計 80
5.2.4 程序分析 81
5.2.5 使用搖桿控制直流電機轉速 81
5.3 LCD Keypad Shield 83
5.3.1 液晶顯示原理 83
5.3.2 標準1602液晶模塊 83
5.3.3 1602液晶模塊控制方式 84
5.3.4 LCD Keypad Shield原理圖 87
5.3.5 LCD Keypad Shield應用實例 89
5.3.6 程序設計 89
5.3.7 程序分析 92
5.3.8 Arduino的液晶控制方式 93
5.3.9 “hello Arduino!” 94
5.4 Ethernet Shield 97
5.4.1 Ethernet Shield原理圖 97
5.4.2 W5100芯片介紹 97
5.4.3 W5100芯片的寄存器 101
5.4.4 W5100芯片的使用 105
5.4.5 Ethernet Shield應用實例 105
5.4.6 程序設計 106
5.5 I/O擴展板 109
5.5.1 Xbee傳感器擴展板V5 109
5.5.2 伺服電機控制 110
5.5.3 伺服電機應用實例 111
5.5.4 Interface shield 114
5.5.5 RGB LED Module 114
5.5.6 RGB LED Module應用實例 118
5.5.7 程序的精練 123
第6章 Arduino的擴展庫 126
6.1 Arduino擴展庫介紹 126
6.1.1 Arduino擴展庫的作用 126
6.1.2 Arduino擴展庫的應用 126
6.2 對象和類 130
6.2.1 類的定義 130
6.2.2 對象的創建及成員函數的調用 131
6.2.3 對象的初始化和構造函數 132
6.2.4 函數的重載 133
6.2.5 析構函數 133
6.3 LiquidCrystal庫 134
6.3.1 構造函數 136
6.3.2 command( )和write( ) 139
6.3.3 begin( ) 140
6.3.4 clear( ) 142
6.3.5 home( ) 142
6.3.6 setCursor( ) 142
6.3.7 noDisplay( )和display( ) 143
6.3.8 cursor( )和noCursor( ) 143
6.3.9 blink( )和noBlink( ) 143
6.3.10 autoscroll( )和
noAutoscroll( ) 144
6.3.11 scrollDisplayLeft( )和scrollDisplayRight( ) 144
6.3.12 print( ) 145
6.4 Ethernet庫 146
6.4.1 EthernetClass類定義 146
6.4.2 Server類定義 148
6.4.3 Server類構造函數 148
6.4.4 Server類成員函數 148
6.4.5 Client類定義 152
6.4.6 Client類構造函數 152
6.4.7 Client類成員函數 153
6.5 SoftwareSerial庫 158
6.5.1 構造函數 159
6.5.2 begin( ) 160
6.5.3 read( ) 160
6.5.4 print( )和println( ) 161
6.5.5 使用限制 164
6.6 EEPROM庫 165
6.6.1 read( ) 165
6.6.2 write( ) 166
6.7 Wire庫 166
6.7.1 IIC總線概述 166
6.7.2 TwoWire類定義 167
6.7.3 begin( ) 168
6.7.4 requestFrom( ) 168
6.7.5 available ( ) 169
6.7.6 receive( ) 169
6.7.7 beginTransmission( ) 170
6.7.8 endTransmission( ) 170
6.7.9 send( ) 171
6.7.10 onReceive( ) 172
6.7.11 onRequest( ) 173
6.8 Servo庫 174
6.8.1 構造函數 175
6.8.2 attach() 176
6.8.3 write( ) 177
6.8.4 writeMicroseconds( ) 177
6.8.5 read( ) 178
6.8.6 readMicroseconds( ) 178
6.8.7 attached( ) 178
6.8.8 detach( ) 179
6.9 Stepper庫 179
6.9.1 步進電機概述 179
6.9.2 步進電機的基本參數 180
6.9.3 步進電機的優缺點 181
6.9.4 步進電機的工作原理 181
6.9.5 步進電機的控制電路 183
6.9.6 Stepper類定義 185
6.9.7 構造函數 186
6.9.8 setSpeed( ) 188
6.9.9 step( ) 188
6.10 TLC5940庫 189
6.10.1 Tlc5940類的定義 190
6.10.2 init( ) 191
6.10.3 update( ) 192
6.10.4 set( ) 193
6.10.5 get( ) 194
6.10.6 setAll( ) 194
6.10.7 clear( ) 195
6.11 OneWire庫 195
6.11.1 單總線的結構 195
6.11.2 單總線控制方式 195
6.11.3 單總線信號形式 196
6.11.4 OneWire類 198
6.11.5 構造函數 200
6.11.6 reset( ) 200
6.11.7 write_bit( ) 201
6.11.8 read_bit( ) 202
6.11.9 write( ) 202
6.11.10 read( ) 203
6.11.11 select( ) 203
6.11.12 skip( ) 204
6.12 XBee庫 204
6.12.1 XBee類定義 204
6.12.2 構造函數 205
6.12.3 begin( ) 206
6.12.4 readPacket( ) 206
6.12.5 send( ) 209
6.13 創建自己的庫 210
6.13.1 庫的功能—Morse 210
6.13.2 MorseCode類的定義 213
6.13.3 MorseCode類的成員函數 214
6.13.4 MorseCode庫的使用 222
6.13.5 關鍵字的定義 223
第7章 無線模塊的應用 224
7.1 APC220 224
7.1.1 APC220性能指標 224
7.1.2 模塊引腳定義 226
7.1.3 模塊的使用 226
7.1.4 注意事項 227
7.2 DFduino wireless 228
7.2.1 DFduino wireless性能指標 228
7.2.2 模塊引腳定義 229
7.2.3 模塊的使用 229
7.3 Bluetooth V3 231
7.3.1 Bluetooth V3性能指標 231
7.3.2 模塊引腳定義 232
7.3.3 模塊的使用 232
7.4 XBee和XBee PRO 234
7.4.1 XBee及XBee PRO性能指標 235
7.4.2 模塊引腳定義 235
7.4.3 模塊的使用 236
7.4.4 程序設計 236
第三篇 應用篇
第8章 打造自己的遙控履帶車 242
8.1 履帶車的驅動 242
8.1.1 實現功能 242
8.1.2 所需器材 242
8.1.3 硬件連接 243
8.1.4 程序設計 246
8.1.5 MotorCar類 251
8.1.6 類的應用 255
8.2 添加感知器件 257
8.2.1 實現功能 257
8.2.2 所需器材 257
8.2.3 器材介紹 257
8.2.4 硬件連接 258
8.2.5 程序設計 258
8.3 添加無線模塊 261
8.3.1 實現功能 261
8.3.2 所需器材 261
8.3.3 硬件連接 261
8.3.4 程序設計 262
8.4 制作遙控器 264
8.4.1 實現功能 264
8.4.2 所需器材 265
8.4.3 硬件連接 265
8.4.4 程序設計 265
8.5 履帶車遙控調速 267
8.5.1 實現功能 267
8.5.2 程序設計 267
8.6 添加無線攝像頭 272
8.6.1 實現功能 272
8.6.2 所需器材 272
8.6.3 器材介紹 272
8.6.4 硬件連接 273
8.6.5 程序設計 277
8.7 環境信息獲取器件 283
8.7.1 實現功能 283
8.7.2 所需器材 284
8.7.3 器材介紹 284
8.7.4 硬件連接 285
8.7.5 程序設計 286
第9章 仿生機器人 295
9.1 遙控機械臂 295
9.1.1 實例功能 295
9.1.2 器材列表 295
9.1.3 搭建硬件環境 296
9.1.4 安裝控制部分 298
9.1.5 Wii游戲手柄 298
9.1.6 機械臂程序設計 300
9.2 雙足機器人 304
9.2.1 實例功能 304
9.2.2 器材列表 304
9.2.3 搭建硬件環境 305
9.2.4 雙足機器人程序設計 307
9.2.5 PC調試軟件編寫 310
9.2.6 雙足機器人的調試 317
附錄A Arduino引腳與AVR單片
機管腳對應關系 319
附錄B Arduino擴展板 320
附錄C 其他可擴展模塊 322

您曾經瀏覽過的商品

購物須知

大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。

特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:87 308
絕版無法訂購

暢銷榜

客服中心

收藏

會員專區