內(nèi)容特色:
Arduino編程涵蓋了學(xué)習(xí)Arduino所需的各方面知識(shí)。更關(guān)鍵的是,Arduino編程解析了Arduino的編程語言,以及在根據(jù)設(shè)計(jì)需要添加程序庫之后我們可以獲得哪些額外的功能。同時(shí)貫穿整Arduino編程的大量實(shí)例對(duì)電子電路方面的知識(shí)也進(jìn)行了講解。
閱讀Arduino編程,Arduino可以變成你的“畫布”,而你所編寫的程序可以成就你的數(shù)字杰作。Arduino編程非常適合創(chuàng)客,幫助他們創(chuàng)造出令人驚訝的應(yīng)用程序,讓日常任務(wù)智能化。并且Arduino編程也同樣適用于對(duì)Arduino編程感興趣的開發(fā)者。
閱讀Arduino編程你將學(xué)到:
通過以太網(wǎng)、Wi-Fi、USB、Firmata的多種通信方式。
如何查找、導(dǎo)入和更新用戶庫,并學(xué)會(huì)創(chuàng)建自己的庫。
探究專門為外設(shè)創(chuàng)建的特定設(shè)備庫的用法。
掌握使用Arduino Due、Esplora、Yun和Robot板。
如何播放音頻,控制LED、鍵盤、鼠標(biāo),以及實(shí)現(xiàn)更多功能的好方法。
適讀人群:創(chuàng)客、對(duì)Arduino感興趣的軟硬件工程師,以及青少年和電子愛好者
編輯推薦:
快速精通Arduino編程的實(shí)戰(zhàn)指南,深入透徹講解Arduino的編程語言,快速掌握編程技能與作品實(shí)踐操作。
原Arduino中國董事總經(jīng)理陳愈容、創(chuàng)客布道師程晨、知名創(chuàng)客教師吳俊杰聯(lián)合推薦。
叢書解讀:
“創(chuàng)客+”叢書希望成為創(chuàng)客的“水果書”,水果美味又富有營養(yǎng),繽紛的色彩又能激發(fā)無限創(chuàng)意。叢書通過甄選全球更好的作品與作譯者,提供好玩又有趣的創(chuàng)客知識(shí),激發(fā)大小創(chuàng)客們更多創(chuàng)造的靈感,玩出樂趣,創(chuàng)出夢(mèng)想。
Arduino為我們開辟了一個(gè)新世界。無論是業(yè)余愛好者還是專業(yè)人員都能夠利用Arduino系統(tǒng)創(chuàng)造出一些精彩復(fù)雜的設(shè)備來幫助他們完成一個(gè)個(gè)引人入勝的小玩意。按下按鈕點(diǎn)亮一盞燈。這樣的簡(jiǎn)單設(shè)備可以驅(qū)動(dòng)3D打印。你可以把Arduino應(yīng)用于很多設(shè)備中。
要開啟這一切。Arduino需要使用一款編程軟件來進(jìn)行設(shè)計(jì)以幫助你完成程序。它們?cè)谂c外界通信時(shí)會(huì)注意項(xiàng)目本身的邏輯性。為了提供更多的幫助。Arduino自帶程序庫?梢愿鶕(jù)需求安裝軟件。也根據(jù)應(yīng)用程序以及硬件需要添加程序。Arduino編程用實(shí)例對(duì)每個(gè)程序進(jìn)行了詳解。
Arduino編程介紹了Arduino的編程環(huán)境。你可能會(huì)用到的軟件程序。以及在遇到各種不同的Arduino開發(fā)板時(shí)應(yīng)該選用哪種程序庫。Arduino可以變成你的“畫布”。而你所編寫的程序可以成就你的數(shù)字杰作。
關(guān)于Arduino編程以及相關(guān)技術(shù)的概述
Arduino編程涵蓋了學(xué)習(xí)Arduino所需的各方面知識(shí)。介紹了目前市場(chǎng)上常見的Arduino開發(fā)板,解釋了如何下載并運(yùn)行軟件以及如何編程。更關(guān)鍵的是,Arduino編程解析了Arduino的編程語言,以及在根據(jù)設(shè)計(jì)需要添加程序庫之后我們可以獲得哪些額外的功能。同時(shí)貫穿整Arduino編程的大量實(shí)例對(duì)電子電路方面的知識(shí)也進(jìn)行了入門級(jí)的講解。
Arduino編程的結(jié)構(gòu)框架
Arduino編程為幫助想要學(xué)習(xí)Arduino編程的人提供了盡可能多的信息,Arduino編程分成四個(gè)部分。
第1部分,“Arduino的基本知識(shí)”(第1~3章)對(duì)Arduino進(jìn)行了概述。包括它們的來源以及為什么需要去學(xué)習(xí)。介紹了Arduino的編程語言、C語言的入門知識(shí)以及電子方面的基本知識(shí),也對(duì)編程中常用的組件部分進(jìn)行了講解。
第2部分,“標(biāo)準(zhǔn)程序庫”(第4~17章)詳細(xì)闡述了每種Arduino開發(fā)板可能用到的程序庫,也就是說你可以根據(jù)不同的功能需要以及硬件支持選用不同的軟件組件。每個(gè)程序庫按章呈現(xiàn),其使用方法會(huì)結(jié)合具體的實(shí)例進(jìn)行解釋,有助于理解其用途.
第3部分,“特殊設(shè)備程序庫”(第18~23章)主要介紹特殊類型的Arduino開發(fā)板所用的程序庫,可以將其加載到新的軟件中與硬件設(shè)備連接或者完成指定任務(wù)。此外,每一個(gè)庫中程序的使用都提供了相應(yīng)的示例。
第4部分,“用戶程序庫和擴(kuò)展板”(第24~26章)。這一部分是關(guān)于Arduino的進(jìn)一步研究,說明了如何導(dǎo)入用戶的程序庫以及如何設(shè)計(jì)、分享自己的程序。介紹了如何將一個(gè)電路板加到你的板子中以增加一些功能,并形成自己的擴(kuò)展板。
誰應(yīng)該讀Arduino編程
Arduino編程主要適用對(duì)象為創(chuàng)客。他們知道如何能夠創(chuàng)造出令人驚訝的應(yīng)用程序,如何使日常任務(wù)智能化。當(dāng)然Arduino編程也同樣適用于對(duì)Arduino編程感興趣的開發(fā)者。
需要的工具
每一章都有示例。每一章的開頭部分都準(zhǔn)確地列出了學(xué)習(xí)該章所需要的工具。根據(jù)Arduino編程中的示例介紹。我們需要以下的硬件:
●計(jì)算機(jī)
●USB數(shù)據(jù)線以及微型USB數(shù)據(jù)線
●5V電源
●面包板和與其相適應(yīng)的導(dǎo)線
●幾種Arduino開發(fā)板:兩個(gè)Arduino Uno、Arduino Due、Arduino Mega 2560、Arduino Esplora、Arduino Robot、Arduino各一個(gè)
●SainSmart LCD擴(kuò)展板
●SainSmart以太網(wǎng)擴(kuò)展板
●LM35溫度傳感器
●SD存儲(chǔ)卡
●Adafruit ST7735 TFT接口板
●Adafruit MAX31855接口板
●K型熱電偶絲
●Adafruit的SI1145 UV傳感器板
●SainSmart的Wi-Fi無線擴(kuò)展板
●DHT11濕度傳感器
●HC-SR04超聲波測(cè)距傳感器
●HYX-S0009或者伺服電動(dòng)機(jī)
●L293D
●5V雙極步進(jìn)電動(dòng)機(jī)
●紅綠藍(lán)LED燈
●10kΩ電阻
●4.7kΩ電阻關(guān)于網(wǎng)站
書中的案例的源代碼都可以從www.wiley.com/go/arduinosketches網(wǎng)站下載。
總結(jié)
Arduino開發(fā)是一個(gè)有趣的話題。它為人們打開一個(gè)擁有無數(shù)可能的新世界。Arduino不僅非常適合嵌入式開發(fā)的學(xué)習(xí),也適用于將日常生活智能化,或者是用它做出一些奪人眼球的小玩意。在Arduino編程中你會(huì)看到許多關(guān)于如何制作一個(gè)簡(jiǎn)單設(shè)備的示例講解,詳細(xì)地從硬件原理圖開始直到你能夠組裝設(shè)備并運(yùn)行程序。
對(duì)每個(gè)程序的介紹以及對(duì)不同功能的解釋能夠幫助你獲得更想要的運(yùn)行效果。每個(gè)程序庫中都提供了相應(yīng)的示例,逐行顯示的代碼幫助你理解整個(gè)程序在做什么。希望在你啟動(dòng)新項(xiàng)目的時(shí)候,Arduino編程能夠?yàn)槟闾峁┮恍﹨⒖,幫助你玩得開心!
第1部分 Arduino的基本知識(shí)
第1章 Arduino的簡(jiǎn)介
1.1 Atmel AVR
1.2 Arduino 項(xiàng)目
1.3 ATmega
1.3.1 ATmega系列
1.3.2 ATtiny系列
1.3.3 其他系列
1.4 不同的Arduino
1.4.1 Arduino Uno
1.4.2 Arduino Leonardo
1.4.3 Arduino Ethernet
1.4.4 Arduino Mega 2560
1.4.5 Arduino Mini
1.4.6 Arduino Micro
1.4.7 Arduino Due
1.4.8 LilyPad Arduino
1.4.9 Arduino Pro
1.4.10 Arduino Robot
1.4.11 Arduino Esplora
1.4.12 Arduino Yún
1.4.13 Arduino Tre
1.4.14 Arduino Zero
1.4.15 你自己的Arduino
1.5 擴(kuò)展板
1.5.1 什么是擴(kuò)展板
1.5.2 不同的擴(kuò)展板
1.5.3 Arduino電動(dòng)機(jī)擴(kuò)展板
1.5.4 Arduino無線SD擴(kuò)展板
1.5.5 Arduino以太網(wǎng)擴(kuò)展板
1.5.6 Arduino WiFi擴(kuò)展板
1.5.7 Arduino GSM擴(kuò)展板
1.5.8 你自己的擴(kuò)展板
1.6 你能用Arduino做什么
1.7 你需要為本書準(zhǔn)備什么
1.8 小結(jié)
第2章 Arduino編程
2.1 安裝環(huán)境
2.1.1 下載軟件
2.1.2 運(yùn)行軟件
2.1.3 使用自己的IDE
2.2 你的第一個(gè)程序
2.3 理解你的程序
2.4 編程基礎(chǔ)
2.4.1 變量和數(shù)據(jù)類型
2.4.2 控制結(jié)構(gòu)
2.4.3 函數(shù)
2.4.4 庫
2.5 小結(jié)
第3章 電子基礎(chǔ)
3.1 電子入門
3.2 電壓、電流和電阻
3.2.1 電壓
3.2.2 電流
3.2.3 電阻
3.3 基本元器件
3.3.1 電阻
3.3.2 電容
3.3.3 二極管
3.3.4 發(fā)光二極管
3.3.5 晶體管
3.4 面包板
3.5 輸入和輸出
3.6 連接發(fā)光二極管
3.6.1 計(jì)算
3.6.2 軟件
3.6.3 硬件
3.6.4 接下來呢
3.7 小結(jié)
第2部分 標(biāo)準(zhǔn)程序庫
第4章 Arduino語言
4.1 I/O函數(shù)
4.1.1 數(shù)字I/O
4.1.2 模擬I/O
4.1.3 生成音調(diào)
4.1.4 讀取脈沖
4.2 時(shí)間函數(shù)
4.2.1 delay()
4.2.2 delayMicroseconds()
4.2.3 millis()
4.2.4 micros()
4.3 數(shù)學(xué)函數(shù)
4.3.1 min()
4.3.2 max()
4.3.3 constrain()
4.3.4 abs()
4.3.5 map()
4.3.6 pow()
4.3.7 sqrt()
4.3.8 random()
4.4 三角函數(shù)
4.4.1 sin()
4.4.2 cos()
4.4.3 tan()
4.4.4 常量
4.5 中斷
4.5.1 attachInterrupt()
4.5.2 detachInterrupt()
4.5.3 noInterrupt()
4.5.4 interrupts()
4.6 小結(jié)
第5章 串口通信
5.1 串口通信的簡(jiǎn)介
5.2 UART通信
5.2.1 波特率
5.2.2 數(shù)據(jù)位
5.2.3 奇偶校驗(yàn)位
5.2.4 停止位
5.3 調(diào)試和輸出
5.4 啟動(dòng)一個(gè)串行連接
5.5 寫數(shù)據(jù)
5.5.1 發(fā)送文本
5.5.2 發(fā)送數(shù)據(jù)
5.6 讀數(shù)據(jù)
5.6.1 開始通信
5.6.2 是否阻塞
5.6.3 讀取一個(gè)字節(jié)
5.6.4 讀取多個(gè)字節(jié)
5.6.5 數(shù)據(jù)預(yù)覽
5.6.6 解析數(shù)據(jù)
5.6.7 清除
5.7 示例編程
5.8 軟件串口
5.9 小結(jié)
第6章 EEPROM
6.1 EEPROM的簡(jiǎn)介
6.2 Arduino上的不同存儲(chǔ)器
6.3 EEPROM庫
6.3.1 讀取和寫入字節(jié)
6.3.2 讀取和寫入位
6.3.3 讀取和寫入字符串
6.3.4 讀取和寫入其他值
6.3.5 示例程序
6.4 準(zhǔn)備EEPROM存儲(chǔ)
6.5 擴(kuò)展非易失性存儲(chǔ)器
6.6 小結(jié)
第7章 SPI
7.1 SPI的簡(jiǎn)介
7.2 SPI總線
7.2.1 與RS232比較
7.2.2 配置
7.2.3 通信
7.3 Arduino SPI
7.4 SPI庫
7.5 Arduino Due上的SPI
7.6 示例程序
7.6.1 硬件
7.6.2 程序
7.6.3 練習(xí)
7.7 小結(jié)
第8章 Wire
8.1 Wire的簡(jiǎn)介
8.2 連接I2C
8.3 I2C協(xié)議
8.3.1 地址
8.3.2 通信
8.4 進(jìn)行通信
8.4.1 主機(jī)通信
8.4.2 從機(jī)通信
8.5 陷阱和缺陷
8.5.1 不同電壓
8.5.2 總線速率
8.5.3 I2C擴(kuò)展板
8.6 小結(jié)
第9章 Ethernet
9.1 以太網(wǎng)的簡(jiǎn)介
9.2 以太網(wǎng)
9.2.1 以太網(wǎng)電纜
9.2.2 交換機(jī)和集線器
9.2.3 以太網(wǎng)供電
9.3 TCP/IP
9.3.1 MAC地址
9.3.2 IP地址
9.3.3 DNS
9.3.4 端口
9.4 Arduino上的以太網(wǎng)
9.4.1 導(dǎo)入Ethernet庫
9.4.2 開始構(gòu)建以太網(wǎng)
9.5 Arduino作為客戶端
9.5.1 發(fā)送和接收數(shù)據(jù)
9.5.2 示例程序
9.5.3 Arduino作為服務(wù)器
9.5.4 示例程序
9.6 小結(jié)
第10章 WiFi
10.1 引言
10.2 WiFi協(xié)議
10.2.1 拓?fù)?
10.2.2 網(wǎng)絡(luò)參數(shù)
10.3 Arduino WiFi
10.3.1 導(dǎo)入庫
10.3.2 初始化
10.3.3 狀態(tài)
10.3.4 掃描網(wǎng)絡(luò)
10.3.5 連接和配置
10.3.6 無線客戶端
10.3.7 無線服務(wù)器
10.4 示例應(yīng)用
10.4.1 硬件
10.4.2 程序
10.4.3 練習(xí)
10.5 小結(jié)
第11章 LiquidCrystal
11.1 引言
11.2 LiquidCrystal庫
11.2.1 寫入文本
11.2.2 光標(biāo)命令
11.2.3 文本方向
11.2.4 滾動(dòng)
11.2.5 自定義文本
11.3 示例程序
11.3.1 硬件
11.3.2 軟件
11.3.3 練習(xí)
11.4 小結(jié)
第12章 SD
12.1 引言
12.2 SD卡
12.2.1 容量
12.2.2 速率
12.3 在Arduino中使用SD卡
12.3.1 公認(rèn)的SD卡
12.3.2 限制
12.4 SD庫
12.4.1 導(dǎo)入庫
12.4.2 連接SD卡
12.4.3 打開和關(guān)閉文件
12.4.4 讀取和寫入文件
12.4.5 文件操作
12.4.6 SD卡操作
12.4.7 高級(jí)用法
12.5 示例程序
12.6 小結(jié)
第13章 TFT
13.1 引言
13.2 技術(shù)
13.3 TFT庫
13.3.1 初始化
13.3.2 屏幕準(zhǔn)備
13.3.3 文本操作
13.3.4 基本圖形
13.3.5 上色
13.3.6 圖形圖像
13.4 示例程序
13.4.1 硬件
13.4.2 程序
13.4.3 練習(xí)
13.5 小結(jié)
第14章 Servo
14.1 伺服電動(dòng)機(jī)的簡(jiǎn)介
14.2 控制伺服電動(dòng)機(jī)
14.2.1 連接伺服電動(dòng)機(jī)
14.2.2 轉(zhuǎn)動(dòng)伺服電動(dòng)機(jī)
14.2.3 斷開
14.2.4 準(zhǔn)確性與安全性
14.3 示例程序
14.3.1 電路圖
14.3.2 程序
14.3.3 練習(xí)
14.4 小結(jié)
第15章 Stepper
15.1 電動(dòng)機(jī)的簡(jiǎn)介
15.2 控制步進(jìn)電動(dòng)機(jī)
15.2.1 硬件
15.2.2 單極性與雙極性步進(jìn)電動(dòng)機(jī)
15.3 Stepper庫
15.4 示例項(xiàng)目
15.4.1 硬件
15.4.2 程序
15.5 小結(jié)
第16章 Firmata
16.1 Firmata的簡(jiǎn)介
16.2 Firmata庫
16.2.1 發(fā)送消息
16.2.2 接收消息
16.2.3 回調(diào)
16.2.4 SysEx
16.3 示例程序
16.4 小結(jié)
第17章 GSM
17.1 全球移動(dòng)通信系統(tǒng)(GSM)的簡(jiǎn)介
17.2 移動(dòng)數(shù)據(jù)網(wǎng)絡(luò)
17.2.1 GSM
17.2.2 3G
17.2.3 4G和未來
17.2.4 調(diào)制解調(diào)器
17.3 Arduino和GSM
17.4 Arduino GSM庫
17.4.1 GSM類
17.4.2 SMS類
17.4.3 VoiceCall類
17.4.4 GPRS
17.4.5 Modem
17.5 應(yīng)用示例
17.6 小結(jié)
第3部分 特殊設(shè)備程序庫
第18章 Audio
18.1 音頻的簡(jiǎn)介
18.2 數(shù)字語音文件
18.3 Arduino上的音樂
18.4 Arduino Due
18.4.1 數(shù)模轉(zhuǎn)換器
18.4.2 數(shù)字音頻到模擬音頻
18.4.3 創(chuàng)建數(shù)字音頻
18.4.4 存儲(chǔ)數(shù)字音頻
18.4.5 播放數(shù)字音頻
18.5 示例程序
18.5.1 硬件
18.5.2 程序
18.5.3 練習(xí)
18.6 小結(jié)
第19章 Scheduler
19.1 調(diào)度器的簡(jiǎn)介
19.2 Arduino多任務(wù)
19.3 調(diào)度
19.3.1 多任務(wù)合作
19.3.2 非合作函數(shù)
19.4 示例程序
19.4.1 硬件
19.4.2 程序
19.4.3 練習(xí)
19.5 小結(jié)
第20章 USBHost
20.1 USBHost的簡(jiǎn)介
20.2 USB協(xié)議
20.3 USB設(shè)備
20.3.1 鍵盤
20.3.2 鼠標(biāo)
20.3.3 集線器
20.4 Arduino Due
20.5 USBHost庫
20.5.1 鍵盤
20.5.2 鼠標(biāo)
20.6 示例程序
20.6.1 硬件
20.6.2 源代碼
20.7 小結(jié)
第21章 Esplora
21.1 Esplora的簡(jiǎn)介
21.2 Arduino Esplora庫
21.2.1 RGB LED
21.2.2 傳感器
21.2.3 按鍵
21.2.4 蜂鳴器
21.2.5 TinkerKit
21.2.6 LCD模塊
21.3 示例程序和練習(xí)
21.4 小結(jié)
第22章 Robot
22.1 Robot庫的簡(jiǎn)介
22.2 Arduino機(jī)器人
22.3 Robot庫
22.3.1 控制板
22.3.2 電動(dòng)機(jī)板
22.4 示例程序和練習(xí)
22.5 小結(jié)
第23章 Bridge
23.1 Bridge庫的簡(jiǎn)介
23.2 Bridge
23.2.1 Process
23.2.2 FileIO
23.2.3 YunServer
23.2.4 YunClient
23.3 示例應(yīng)用程序
23.3.1 硬件
23.3.2 程序
23.3.3 練習(xí)
23.4 小結(jié)
第4部分用戶程序庫和擴(kuò)展板
第24章 導(dǎo)入第三方庫
24.1 庫
24.1.1 查找?guī)?
24.1.2 導(dǎo)入一個(gè)庫
24.1.3 使用擴(kuò)展庫
24.2 示例應(yīng)用程序
24.3 練習(xí)
24.4 小結(jié)
第25章 創(chuàng)建你自己的擴(kuò)展板
25.1 創(chuàng)建一個(gè)擴(kuò)展板
25.1.1 想法
25.1.2 必備硬件
25.1.3 必備軟件
25.2 你的第一個(gè)擴(kuò)展板
25.2.1 第1步: 面包板
25.2.2 第2步: 原理圖
25.2.3 第3步: PCB
25.3 小結(jié)
第26章 創(chuàng)建你自己的庫
26.1 庫
26.1.1 庫基礎(chǔ)
26.1.2 初級(jí)庫
26.1.3 高級(jí)庫
26.1.4 添加注釋
26.1.5 添加示例
26.1.6 須知
26.1.7 編碼風(fēng)格
26.1.8 發(fā)布你的庫
26.1.9 閉源庫
26.2 示例庫
26.2.1 庫
26.2.2 示例
26.2.3 須知
26.2.4 收尾
26.3 小結(jié)