內(nèi)容特色:
Arduino編程涵蓋了學(xué)習(xí)Arduino所需的各方面知識。更關(guān)鍵的是,Arduino編程解析了Arduino的編程語言,以及在根據(jù)設(shè)計需要添加程序庫之后我們可以獲得哪些額外的功能。同時貫穿整Arduino編程的大量實例對電子電路方面的知識也進(jìn)行了講解。
閱讀Arduino編程,Arduino可以變成你的“畫布”,而你所編寫的程序可以成就你的數(shù)字杰作。Arduino編程非常適合創(chuàng)客,幫助他們創(chuàng)造出令人驚訝的應(yīng)用程序,讓日常任務(wù)智能化。并且Arduino編程也同樣適用于對Arduino編程感興趣的開發(fā)者。
閱讀Arduino編程你將學(xué)到:
通過以太網(wǎng)、Wi-Fi、USB、Firmata的多種通信方式。
如何查找、導(dǎo)入和更新用戶庫,并學(xué)會創(chuàng)建自己的庫。
探究專門為外設(shè)創(chuàng)建的特定設(shè)備庫的用法。
掌握使用Arduino Due、Esplora、Yun和Robot板。
如何播放音頻,控制LED、鍵盤、鼠標(biāo),以及實現(xiàn)更多功能的好方法。
適讀人群:創(chuàng)客、對Arduino感興趣的軟硬件工程師,以及青少年和電子愛好者
編輯推薦:
快速精通Arduino編程的實戰(zhàn)指南,深入透徹講解Arduino的編程語言,快速掌握編程技能與作品實踐操作。
原Arduino中國董事總經(jīng)理陳愈容、創(chuàng)客布道師程晨、知名創(chuàng)客教師吳俊杰聯(lián)合推薦。
叢書解讀:
“創(chuàng)客+”叢書希望成為創(chuàng)客的“水果書”,水果美味又富有營養(yǎng),繽紛的色彩又能激發(fā)無限創(chuàng)意。叢書通過甄選全球更好的作品與作譯者,提供好玩又有趣的創(chuàng)客知識,激發(fā)大小創(chuàng)客們更多創(chuàng)造的靈感,玩出樂趣,創(chuàng)出夢想。
Arduino為我們開辟了一個新世界。無論是業(yè)余愛好者還是專業(yè)人員都能夠利用Arduino系統(tǒng)創(chuàng)造出一些精彩復(fù)雜的設(shè)備來幫助他們完成一個個引人入勝的小玩意。按下按鈕點亮一盞燈。這樣的簡單設(shè)備可以驅(qū)動3D打印。你可以把Arduino應(yīng)用于很多設(shè)備中。
要開啟這一切。Arduino需要使用一款編程軟件來進(jìn)行設(shè)計以幫助你完成程序。它們在與外界通信時會注意項目本身的邏輯性。為了提供更多的幫助。Arduino自帶程序庫。可以根據(jù)需求安裝軟件。也根據(jù)應(yīng)用程序以及硬件需要添加程序。Arduino編程用實例對每個程序進(jìn)行了詳解。
Arduino編程介紹了Arduino的編程環(huán)境。你可能會用到的軟件程序。以及在遇到各種不同的Arduino開發(fā)板時應(yīng)該選用哪種程序庫。Arduino可以變成你的“畫布”。而你所編寫的程序可以成就你的數(shù)字杰作。
關(guān)于Arduino編程以及相關(guān)技術(shù)的概述
Arduino編程涵蓋了學(xué)習(xí)Arduino所需的各方面知識。介紹了目前市場上常見的Arduino開發(fā)板,解釋了如何下載并運行軟件以及如何編程。更關(guān)鍵的是,Arduino編程解析了Arduino的編程語言,以及在根據(jù)設(shè)計需要添加程序庫之后我們可以獲得哪些額外的功能。同時貫穿整Arduino編程的大量實例對電子電路方面的知識也進(jìn)行了入門級的講解。
Arduino編程的結(jié)構(gòu)框架
Arduino編程為幫助想要學(xué)習(xí)Arduino編程的人提供了盡可能多的信息,Arduino編程分成四個部分。
第1部分,“Arduino的基本知識”(第1~3章)對Arduino進(jìn)行了概述。包括它們的來源以及為什么需要去學(xué)習(xí)。介紹了Arduino的編程語言、C語言的入門知識以及電子方面的基本知識,也對編程中常用的組件部分進(jìn)行了講解。
第2部分,“標(biāo)準(zhǔn)程序庫”(第4~17章)詳細(xì)闡述了每種Arduino開發(fā)板可能用到的程序庫,也就是說你可以根據(jù)不同的功能需要以及硬件支持選用不同的軟件組件。每個程序庫按章呈現(xiàn),其使用方法會結(jié)合具體的實例進(jìn)行解釋,有助于理解其用途.
第3部分,“特殊設(shè)備程序庫”(第18~23章)主要介紹特殊類型的Arduino開發(fā)板所用的程序庫,可以將其加載到新的軟件中與硬件設(shè)備連接或者完成指定任務(wù)。此外,每一個庫中程序的使用都提供了相應(yīng)的示例。
第4部分,“用戶程序庫和擴展板”(第24~26章)。這一部分是關(guān)于Arduino的進(jìn)一步研究,說明了如何導(dǎo)入用戶的程序庫以及如何設(shè)計、分享自己的程序。介紹了如何將一個電路板加到你的板子中以增加一些功能,并形成自己的擴展板。
誰應(yīng)該讀Arduino編程
Arduino編程主要適用對象為創(chuàng)客。他們知道如何能夠創(chuàng)造出令人驚訝的應(yīng)用程序,如何使日常任務(wù)智能化。當(dāng)然Arduino編程也同樣適用于對Arduino編程感興趣的開發(fā)者。
需要的工具
每一章都有示例。每一章的開頭部分都準(zhǔn)確地列出了學(xué)習(xí)該章所需要的工具。根據(jù)Arduino編程中的示例介紹。我們需要以下的硬件:
●計算機
●USB數(shù)據(jù)線以及微型USB數(shù)據(jù)線
●5V電源
●面包板和與其相適應(yīng)的導(dǎo)線
●幾種Arduino開發(fā)板:兩個Arduino Uno、Arduino Due、Arduino Mega 2560、Arduino Esplora、Arduino Robot、Arduino各一個
●SainSmart LCD擴展板
●SainSmart以太網(wǎng)擴展板
●LM35溫度傳感器
●SD存儲卡
●Adafruit ST7735 TFT接口板
●Adafruit MAX31855接口板
●K型熱電偶絲
●Adafruit的SI1145 UV傳感器板
●SainSmart的Wi-Fi無線擴展板
●DHT11濕度傳感器
●HC-SR04超聲波測距傳感器
●HYX-S0009或者伺服電動機
●L293D
●5V雙極步進(jìn)電動機
●紅綠藍(lán)LED燈
●10kΩ電阻
●4.7kΩ電阻關(guān)于網(wǎng)站
書中的案例的源代碼都可以從www.wiley.com/go/arduinosketches網(wǎng)站下載。
總結(jié)
Arduino開發(fā)是一個有趣的話題。它為人們打開一個擁有無數(shù)可能的新世界。Arduino不僅非常適合嵌入式開發(fā)的學(xué)習(xí),也適用于將日常生活智能化,或者是用它做出一些奪人眼球的小玩意。在Arduino編程中你會看到許多關(guān)于如何制作一個簡單設(shè)備的示例講解,詳細(xì)地從硬件原理圖開始直到你能夠組裝設(shè)備并運行程序。
對每個程序的介紹以及對不同功能的解釋能夠幫助你獲得更想要的運行效果。每個程序庫中都提供了相應(yīng)的示例,逐行顯示的代碼幫助你理解整個程序在做什么。希望在你啟動新項目的時候,Arduino編程能夠為你提供一些參考,幫助你玩得開心!
詹姆斯 A.蘭布里奇 是一名軟件顧問,專門從事嵌入式系統(tǒng)和代碼優(yōu)化。他在航空、國防、工業(yè)領(lǐng)域及電信行業(yè)有超過十余年的工作經(jīng)驗。他也是意法半導(dǎo)體公司和Amtel的研發(fā)顧問。工作之余他做過嵌入式系統(tǒng)工程師培訓(xùn)工作,幫助開發(fā)人員快速獲得提升;蛘咦鲆恍┝钏耐聬鄄会屖值男⊥嬉狻
詹姆斯在他六歲的時候就寫了他人生的第1個程序,此后從未間斷。他開始使用蘋果IIs、ZX80s和ZX81s,隨后開始使用BBC Micros和Amiga,到后來開始使用計算機進(jìn)行工作與創(chuàng)作。
第1部分 Arduino的基本知識
第1章 Arduino的簡介
1.1 Atmel AVR
1.2 Arduino 項目
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 擴展板
1.5.1 什么是擴展板
1.5.2 不同的擴展板
1.5.3 Arduino電動機擴展板
1.5.4 Arduino無線SD擴展板
1.5.5 Arduino以太網(wǎng)擴展板
1.5.6 Arduino WiFi擴展板
1.5.7 Arduino GSM擴展板
1.5.8 你自己的擴展板
1.6 你能用Arduino做什么
1.7 你需要為本書準(zhǔn)備什么
1.8 小結(jié)
第2章 Arduino編程
2.1 安裝環(huán)境
2.1.1 下載軟件
2.1.2 運行軟件
2.1.3 使用自己的IDE
2.2 你的第一個程序
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 計算
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ù)
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 串口通信的簡介
5.2 UART通信
5.2.1 波特率
5.2.2 數(shù)據(jù)位
5.2.3 奇偶校驗位
5.2.4 停止位
5.3 調(diào)試和輸出
5.4 啟動一個串行連接
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 讀取一個字節(jié)
5.6.4 讀取多個字節(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的簡介
6.2 Arduino上的不同存儲器
6.3 EEPROM庫
6.3.1 讀取和寫入字節(jié)
6.3.2 讀取和寫入位
6.3.3 讀取和寫入字符串
6.3.4 讀取和寫入其他值
6.3.5 示例程序
6.4 準(zhǔn)備EEPROM存儲
6.5 擴展非易失性存儲器
6.6 小結(jié)
第7章 SPI
7.1 SPI的簡介
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的簡介
8.2 連接I2C
8.3 I2C協(xié)議
8.3.1 地址
8.3.2 通信
8.4 進(jìn)行通信
8.4.1 主機通信
8.4.2 從機通信
8.5 陷阱和缺陷
8.5.1 不同電壓
8.5.2 總線速率
8.5.3 I2C擴展板
8.6 小結(jié)
第9章 Ethernet
9.1 以太網(wǎng)的簡介
9.2 以太網(wǎng)
9.2.1 以太網(wǎng)電纜
9.2.2 交換機和集線器
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 滾動
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 高級用法
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 伺服電動機的簡介
14.2 控制伺服電動機
14.2.1 連接伺服電動機
14.2.2 轉(zhuǎn)動伺服電動機
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 電動機的簡介
15.2 控制步進(jìn)電動機
15.2.1 硬件
15.2.2 單極性與雙極性步進(jìn)電動機
15.3 Stepper庫
15.4 示例項目
15.4.1 硬件
15.4.2 程序
15.5 小結(jié)
第16章 Firmata
16.1 Firmata的簡介
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 全球移動通信系統(tǒng)(GSM)的簡介
17.2 移動數(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 音頻的簡介
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 存儲數(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)度器的簡介
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的簡介
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的簡介
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庫的簡介
22.2 Arduino機器人
22.3 Robot庫
22.3.1 控制板
22.3.2 電動機板
22.4 示例程序和練習(xí)
22.5 小結(jié)
第23章 Bridge
23.1 Bridge庫的簡介
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部分用戶程序庫和擴展板
第24章 導(dǎo)入第三方庫
24.1 庫
24.1.1 查找?guī)?
24.1.2 導(dǎo)入一個庫
24.1.3 使用擴展庫
24.2 示例應(yīng)用程序
24.3 練習(xí)
24.4 小結(jié)
第25章 創(chuàng)建你自己的擴展板
25.1 創(chuàng)建一個擴展板
25.1.1 想法
25.1.2 必備硬件
25.1.3 必備軟件
25.2 你的第一個擴展板
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 初級庫
26.1.3 高級庫
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é)