出版時間:2012-3 出版社:機械工業(yè)出版社 作者:程晨 頁數(shù):323
Tag標簽:無
內容概要
目前,在國內關注Arduino的人越來越多,但介紹Arduino的書籍卻很少。Arduino是一個注重實際動手操作應用的產品,所以本書以實際應用為紐帶將各個章節(jié)聯(lián)系起來。本書首先介紹Arduino的一些基礎知識,接著針對具體應用介紹了一些擴展板以及Arduino擴展庫,最后應用之前的內容完成了具有視頻監(jiān)控功能的履帶車、遙控機械臂以及雙足機器人的制作。內容是循序漸進,使讀者深刻的理解Arduino的優(yōu)點,本書會引領您走入Arduino的精彩世界。
作者簡介
程晨,國內較早接觸Arduino的硬件工程師,在Arduino的應用方面擁有豐富的實戰(zhàn)經驗。對Arduino的底層代碼進行了長達一年的學習與研究,同時使用過大量的ArdtJino類庫,對于Arduino的架構和實現(xiàn)原理有著非常深入的理解和認識。同時在PC端、手機端的應用程序開發(fā)方面也有一定的經驗,應用Arduino進行過多款交互式產品制作。
書籍目錄
前言
第一篇 基礎篇
第1章 初識Arduino
1.1 Arduino的歷史
1.2 Arduino的家族
1.3 Arduino的資源
1.4 Arduino的開發(fā)環(huán)境
1.5 添加新硬件及設置開發(fā)環(huán)境
1.6 Arduino開發(fā)環(huán)境的應用
第2章 編寫Arduino程序
2.1 繪制流程圖
2.1.1 流程圖基本符號
2.1.2 流程圖的三種基本結構
2.2 C語言的標識符與關鍵字
2.2.1 標識符
2.2.2 關鍵字
2.2.3 運算符
2.2.4 分隔符
2.2.5 常量
2.2.6 注釋符
2.3 控制語句
2.3.1 if語句
2.3.2 switch語句
2.3.3 while語句
2.3.4 do-while語句
2.3.5 for語句
2.3.6 break語句
2.3.7 continue語句
2.3.8 goto語句
2.4 程序結構
第3章 Arduino的基本函數(shù)
3.1 數(shù)字I/O
3.1.1 pinMode(pin,mode)
3.1.2 digitalWrite(pin,value)
3.1.3 digitalRead(pin)
3.2 模擬I/O
3.2.1 analogReference(type)
3.2.2 analogRead(pin)
3.2.3 analogWrite(pin, value)
3.3 高級I/O
3.3.1 shiftOut(dataPin,clockPin, bitOrder,val)
3.3.2 pulseIn(pin,state,timeout)
3.4 時間函數(shù)
3.4.1 millis( )
3.4.2 delay(ms)
3.4.3 delayMicroseconds(us)
3.5 數(shù)學庫
3.5.1 min(x,y)
3.5.2 max(x,y)
3.5.3 abs(x)
3.5.4 constrain(amt,low,high)
3.5.5 map(x,in_min,in_max,out_min, out_max)
3.5.6 三角函數(shù)
3.6 隨機數(shù)
3.6.1 randomSeed(seed)
3.6.2 random(howsmall,howbig)
3.7 位操作
3.8 中斷函數(shù)
3.8.1 interrupts( )和noInterrupts( )
3.8.2 attachInterrupt(interrupt,function,mode)
3.9 串口通信
3.10 SPI接口
3.10.1 SPI接口概述
3.10.2 SPI接口數(shù)據傳輸
3.10.3 SPI類及其成員函數(shù)
第4章 Arduino硬件平臺
4.1 Arduino的原理圖
4.2 串行通信口的使用
4.2.1 實例功能
4.2.2 硬件電路
4.2.3 程序設計
4.3 數(shù)字I/O口的使用
4.3.1 實例功能
4.3.2 硬件電路
4.3.3 程序設計
4.4 模擬I/O口的使用
4.4.1 實例功能
4.4.2 硬件電路
4.4.3 程序設計
4.5 燒寫引導程序
4.5.1 下載器AVRISP
4.5.2 AVR Studio
4.5.3 燒寫引導程序
第二篇 模塊篇
第5章 Arduino基本擴展模塊
5.1 L293 Motor Shield
5.1.1 直流電機的工作原理
5.1.2 H橋驅動電路
5.1.3 線性放大調速原理
5.1.4 PWM調速原理
5.1.5 L293 Motor Shield的原理
5.1.6 L293 Motor Shield的應用
5.1.7 程序設計
5.1.8 程序分析
5.1.9 程序的精練
5.2 Input Shield
5.2.1 Input Shield原理圖
5.2.2 Input Shield的實例
5.2.3 程序設計
5.2.4 程序分析
5.2.5 使用搖桿控制直流電機轉速
5.3 LCD Keypad Shield
5.3.1 液晶顯示原理
5.3.2 標準1602液晶模塊
5.3.3 1602液晶模塊控制方式
5.3.4 LCD Keypad Shield原理圖
5.3.5 LCD Keypad Shield應用實例
5.3.6 程序設計
5.3.7 程序分析
5.3.8 Arduino的液晶控制方式
5.3.9 “hello Arduino!”
5.4 Ethernet Shield
5.4.1 Ethernet Shield原理圖
5.4.2 W5100芯片介紹
5.4.3 W5100芯片的寄存器
5.4.4 W5100芯片的使用
5.4.5 Ethernet Shield應用實例
5.4.6 程序設計
5.5 I/O擴展板
5.5.1 Xbee傳感器擴展板V5
5.5.2 伺服電機控制
5.5.3 伺服電機應用實例
5.5.4 Interface shield
5.5.5 RGB LED Module
5.5.6 RGB LED Module應用實例
5.5.7 程序的精練
第6章 Arduino的擴展庫
6.1 Arduino擴展庫介紹
6.1.1 Arduino擴展庫的作用
6.1.2 Arduino擴展庫的應用
6.2 對象和類
6.2.1 類的定義
6.2.2 對象的創(chuàng)建及成員函數(shù)的調用
6.2.3 對象的初始化和構造函數(shù)
6.2.4 函數(shù)的重載
6.2.5 析構函數(shù)
6.3 LiquidCrystal庫
6.3.1 構造函數(shù)
6.3.2 command( )和write( )
6.3.3 begin( )
6.3.4 clear( )
6.3.5 home( )
6.3.6 setCursor( )
6.3.7 noDisplay( )和display( )
6.3.8 cursor( )和noCursor( )
6.3.9 blink( )和noBlink( )
6.3.10 autoscroll( )和
noAutoscroll( )
6.3.11 scrollDisplayLeft( )和scrollDisplayRight( )
6.3.12 print( )
6.4 Ethernet庫
6.4.1 EthernetClass類定義
6.4.2 Server類定義
6.4.3 Server類構造函數(shù)
6.4.4 Server類成員函數(shù)
6.4.5 Client類定義
6.4.6 Client類構造函數(shù)
6.4.7 Client類成員函數(shù)
6.5 SoftwareSerial庫
6.5.1 構造函數(shù)
6.5.2 begin( )
6.5.3 read( )
6.5.4 print( )和println( )
6.5.5 使用限制
6.6 EEPROM庫
6.6.1 read( )
6.6.2 write( )
6.7 Wire庫
6.7.1 IIC總線概述
6.7.2 TwoWire類定義
6.7.3 begin( )
6.7.4 requestFrom( )
6.7.5 available ( )
6.7.6 receive( )
6.7.7 beginTransmission( )
6.7.8 endTransmission( )
6.7.9 send( )
6.7.10 onReceive( )
6.7.11 onRequest( )
6.8 Servo庫
6.8.1 構造函數(shù)
6.8.2 attach()
6.8.3 write( )
6.8.4 writeMicroseconds( )
6.8.5 read( )
6.8.6 readMicroseconds( )
6.8.7 attached( )
6.8.8 detach( )
6.9 Stepper庫
6.9.1 步進電機概述
6.9.2 步進電機的基本參數(shù)
6.9.3 步進電機的優(yōu)缺點
6.9.4 步進電機的工作原理
6.9.5 步進電機的控制電路
6.9.6 Stepper類定義
6.9.7 構造函數(shù)
6.9.8 setSpeed( )
6.9.9 step( )
6.10 TLC5940庫
6.10.1 Tlc5940類的定義
6.10.2 init( )
6.10.3 update( )
6.10.4 set( )
6.10.5 get( )
6.10.6 setAll( )
6.10.7 clear( )
6.11 OneWire庫
6.11.1 單總線的結構
6.11.2 單總線控制方式
6.11.3 單總線信號形式
6.11.4 OneWire類
6.11.5 構造函數(shù)
6.11.6 reset( )
6.11.7 write_bit( )
6.11.8 read_bit( )
6.11.9 write( )
6.11.10 read( )
6.11.11 select( )
6.11.12 skip( )
6.12 XBee庫
6.12.1 XBee類定義
6.12.2 構造函數(shù)
6.12.3 begin( )
6.12.4 readPacket( )
6.12.5 send( )
6.13 創(chuàng)建自己的庫
6.13.1 庫的功能—Morse
6.13.2 MorseCode類的定義
6.13.3 MorseCode類的成員函數(shù)
6.13.4 MorseCode庫的使用
6.13.5 關鍵字的定義
第7章 無線模塊的應用
7.1 APC220
7.1.1 APC220性能指標
7.1.2 模塊引腳定義
7.1.3 模塊的使用
7.1.4 注意事項
7.2 DFduino wireless
7.2.1 DFduino wireless性能指標
7.2.2 模塊引腳定義
7.2.3 模塊的使用
7.3 Bluetooth V3
7.3.1 Bluetooth V3性能指標
7.3.2 模塊引腳定義
7.3.3 模塊的使用
7.4 XBee和XBee PRO
7.4.1 XBee及XBee PRO性能指標
7.4.2 模塊引腳定義
7.4.3 模塊的使用
7.4.4 程序設計
第三篇 應用篇
第8章 打造自己的遙控履帶車
8.1 履帶車的驅動
8.1.1 實現(xiàn)功能
8.1.2 所需器材
8.1.3 硬件連接
8.1.4 程序設計
8.1.5 MotorCar類
8.1.6 類的應用
8.2 添加感知器件
8.2.1 實現(xiàn)功能
8.2.2 所需器材
8.2.3 器材介紹
8.2.4 硬件連接
8.2.5 程序設計
8.3 添加無線模塊
8.3.1 實現(xiàn)功能
8.3.2 所需器材
8.3.3 硬件連接
8.3.4 程序設計
8.4 制作遙控器
8.4.1 實現(xiàn)功能
8.4.2 所需器材
8.4.3 硬件連接
8.4.4 程序設計
8.5 履帶車遙控調速
8.5.1 實現(xiàn)功能
8.5.2 程序設計
8.6 添加無線攝像頭
8.6.1 實現(xiàn)功能
8.6.2 所需器材
8.6.3 器材介紹
8.6.4 硬件連接
8.6.5 程序設計
8.7 環(huán)境信息獲取器件
8.7.1 實現(xiàn)功能
8.7.2 所需器材
8.7.3 器材介紹
8.7.4 硬件連接
8.7.5 程序設計
第9章 仿生機器人
9.1 遙控機械臂
9.1.1 實例功能
9.1.2 器材列表
9.1.3 搭建硬件環(huán)境
9.1.4 安裝控制部分
9.1.5 Wii游戲手柄
9.1.6 機械臂程序設計
9.2 雙足機器人
9.2.1 實例功能
9.2.2 器材列表
9.2.3 搭建硬件環(huán)境
9.2.4 雙足機器人程序設計
9.2.5 PC調試軟件編寫
9.2.6 雙足機器人的調試
附錄A Arduino引腳與AVR單片機管腳對應關系
附錄B Arduino擴展板
附錄C 其他可擴展模塊
章節(jié)摘錄
版權頁:插圖:Arduino是源自意大利的一個開放源代碼的硬件項目平臺,該平臺包括一塊具備簡單I/O功能的電路板以及一套程序開發(fā)環(huán)境軟件。Arduino可以用來開發(fā)交互產品,比如它可以讀取大量的開關和傳感器信號,并且可以控制電燈、電機和其他各式各樣的物理設備;Arduino也可以開發(fā)出與PC相連的周邊裝置,能在運行時與PC上的軟件進行通信。Arduino的硬件電路板可以自行焊接組裝,也可以購買已經組裝好的模塊,而程序開發(fā)環(huán)境的軟件則可以從網上免費下載與使用。說到Arduino的起源似乎有點令人感覺無心插柳柳成蔭。MassimoBanzi是意大利米蘭互動設計學院的教師,他的學生常常抱怨不能找到一塊價格便宜且功能強大的控制主板來設計他們的機器人。2005年的冬天,Banzi和1DavidCual。tielles討論到這個問題,David Cuartielles是西班牙的微處理器設計工程師,當時在這所學校做訪問研究。他們決定自己設計一塊控制主板。他們找來了Banzi的學生DavidMellis,讓他來編寫代碼程序。DavidMellis只花了兩天時間就完成了代碼的編寫,然后又過了3天,板子就設計出來了,取名為Arduino。很快,這塊板子受到了廣大學生的歡迎。這些學生當中那些甚至完全不懂計算機編程的人,都用Arduino做出了“很炫”的東西:有人用它控制和處理傳感器,有人用它控制燈閃爍,有人用它制作機器人……之后Banzi、Cuartielles和Mellis將設設計圖上傳到網上,然后花了3000歐元加工出第一批板子。Banzi等人當時加工了200塊板子,賣給學校50塊,起初還擔心剩下的150塊怎么賣出去,但是幾個月后,他們的設計作品在網上得到了快速傳播,接著他們收到了幾個上百塊板子的訂單。這時他們明白Arduino是很有市場價值的,所以,他們決定開始Arduino的事業(yè),但是有個原則——開源。他們規(guī)定任何人都可以復制、重設計甚至出售Arduino板子。人們不用花錢購買版權,連申請許可權都不用。但是,如果你加工出售Arduino原板,版權還是歸Arduino團隊所有。如果你是在基于.Arduino的設計上修改,你的設計必須也和Arduino一樣開源。
媒體關注與評論
這是一本全面講述Arduino應用開發(fā)的書,它從Arduino的I/O板和最基本的C語言入門開始,詳細介紹了Arduino庫和10多個第三方開源庫及其對應的外圍設備的使用與編程。這本書第三部分通過詳細介紹兩個實例展示了Arduino作品開發(fā)的過程,也體現(xiàn)了Arduino的強大潛力。本書適合Arduino的初學者作為循序漸進的教材,也適合希望深入學習Arduino的開發(fā)者作為參考手冊?! 憬髮W計算機學院Arduino創(chuàng)新教學實踐者翁愷老師A rduIno是一個開源硬件平臺,電子專業(yè)的學生完全可以通過查資料、買元件、做PCB、焊電路,制作自己的ArduIno硬件模塊;同時,很多廠商也開發(fā)了各種各樣的ArdtJino外圍功能電路供學生選擇,無論是電機驅動、無線通信、音樂播放,還是各種傳感器壓力、速度、傾角、方向等),這些均為學生在學習和設計與自動控制、物聯(lián)網、無線傳感網相關的知識提供了不同的學習途徑,并且使得學習電子知識變得相對容易。另外,Arduino的代碼語法簡單易懂,對于學過C語言程序設計甚至沒有任何編程經驗的讀者來說,Arduino程序也是簡單易讀的。因此,這本書非常適合作為Arduino愛好者的參考教材。同時。通過全面系統(tǒng)介紹Arduino及其開發(fā)方法,本書也為電子和計算機類專業(yè)低年級學生打開了一扇興趣之門,書中豐富的實例更是增強學生動手能力不可多得的素材?! 靼侧]電大學計算機學院周立功“3+1”創(chuàng)新教育實驗班班主任馬博老師這是一本關于Arduino及其開發(fā)方法的書。本書內容涵蓋廣泛,但又不失重點。通過系統(tǒng)的理論知識介紹和精彩的實例講解,將Arduino這個開源硬件平臺闡釋得淋漓盡致。這本書的內容包括Arduino的來龍去脈、C語言基礎、Arduino開發(fā)平臺的使用以及實戰(zhàn)項目。與之前看過的幾本直接翻譯的國外Arduino書籍相比,這本書更加生動。讀者即使原來沒有在嵌入式平臺上編寫過軟件,通過這本書也可以學會Arduino的開發(fā)方法,實現(xiàn)自己的產品創(chuàng)意。這也是Arduino的魔力所在。本書作者有非常豐富的Arduino項目開發(fā)經驗,后面幾個章節(jié)的項目記錄了作者使用Arduino的開發(fā)心得。通過閱讀此書你也可以DIY出充滿創(chuàng)意的產品原型! ——DFRobot創(chuàng)始人、Arduino首批引入者之一莊明波
編輯推薦
《Arduino開發(fā)實戰(zhàn)指南(AVR篇)》編輯推薦:國內首本Arduino著作,全面而系統(tǒng)地講解Arduino平臺的功能特性和開發(fā)方法。注重實戰(zhàn)。包含大量實戰(zhàn)案例,不懂硬件的工程師也能迅速搭建產品原型。資深Arduino玩家、硬件工程師主筆。創(chuàng)客聯(lián)盟與學術專家聯(lián)袂推薦,權威性毋庸置疑。
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載
Arduino開發(fā)實戰(zhàn)指南 PDF格式下載