內容特色:
Arduino編程涵蓋了學習Arduino所需的各方面知識。更關鍵的是,Arduino編程解析了Arduino的編程語言,以及在根據設計需要添加程序庫之后我們可以獲得哪些額外的功能。同時貫穿整Arduino編程的大量實例對電子電路方面的知識也進行了講解。
閱讀Arduino編程,Arduino可以變成你的“畫布”,而你所編寫的程序可以成就你的數字杰作。Arduino編程非常適合創(chuàng)客,幫助他們創(chuàng)造出令人驚訝的應用程序,讓日常任務智能化。并且Arduino編程也同樣適用于對Arduino編程感興趣的開發(fā)者。
閱讀Arduino編程你將學到:
通過以太網、Wi-Fi、USB、Firmata的多種通信方式。
如何查找、導入和更新用戶庫,并學會創(chuàng)建自己的庫。
探究專門為外設創(chuàng)建的特定設備庫的用法。
掌握使用Arduino Due、Esplora、Yun和Robot板。
如何播放音頻,控制LED、鍵盤、鼠標,以及實現更多功能的好方法。
適讀人群:創(chuàng)客、對Arduino感興趣的軟硬件工程師,以及青少年和電子愛好者
編輯推薦:
快速精通Arduino編程的實戰(zhàn)指南,深入透徹講解Arduino的編程語言,快速掌握編程技能與作品實踐操作。
原Arduino中國董事總經理陳愈容、創(chuàng)客布道師程晨、知名創(chuàng)客教師吳俊杰聯合推薦。
叢書解讀:
“創(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)造出一些精彩復雜的設備來幫助他們完成一個個引人入勝的小玩意。按下按鈕點亮一盞燈。這樣的簡單設備可以驅動3D打印。你可以把Arduino應用于很多設備中。
要開啟這一切。Arduino需要使用一款編程軟件來進行設計以幫助你完成程序。它們在與外界通信時會注意項目本身的邏輯性。為了提供更多的幫助。Arduino自帶程序庫?梢愿鶕枨蟀惭b軟件。也根據應用程序以及硬件需要添加程序。Arduino編程用實例對每個程序進行了詳解。
Arduino編程介紹了Arduino的編程環(huán)境。你可能會用到的軟件程序。以及在遇到各種不同的Arduino開發(fā)板時應該選用哪種程序庫。Arduino可以變成你的“畫布”。而你所編寫的程序可以成就你的數字杰作。
關于Arduino編程以及相關技術的概述
Arduino編程涵蓋了學習Arduino所需的各方面知識。介紹了目前市場上常見的Arduino開發(fā)板,解釋了如何下載并運行軟件以及如何編程。更關鍵的是,Arduino編程解析了Arduino的編程語言,以及在根據設計需要添加程序庫之后我們可以獲得哪些額外的功能。同時貫穿整Arduino編程的大量實例對電子電路方面的知識也進行了入門級的講解。
Arduino編程的結構框架
Arduino編程為幫助想要學習Arduino編程的人提供了盡可能多的信息,Arduino編程分成四個部分。
第1部分,“Arduino的基本知識”(第1~3章)對Arduino進行了概述。包括它們的來源以及為什么需要去學習。介紹了Arduino的編程語言、C語言的入門知識以及電子方面的基本知識,也對編程中常用的組件部分進行了講解。
第2部分,“標準程序庫”(第4~17章)詳細闡述了每種Arduino開發(fā)板可能用到的程序庫,也就是說你可以根據不同的功能需要以及硬件支持選用不同的軟件組件。每個程序庫按章呈現,其使用方法會結合具體的實例進行解釋,有助于理解其用途.
第3部分,“特殊設備程序庫”(第18~23章)主要介紹特殊類型的Arduino開發(fā)板所用的程序庫,可以將其加載到新的軟件中與硬件設備連接或者完成指定任務。此外,每一個庫中程序的使用都提供了相應的示例。
第4部分,“用戶程序庫和擴展板”(第24~26章)。這一部分是關于Arduino的進一步研究,說明了如何導入用戶的程序庫以及如何設計、分享自己的程序。介紹了如何將一個電路板加到你的板子中以增加一些功能,并形成自己的擴展板。
誰應該讀Arduino編程
Arduino編程主要適用對象為創(chuàng)客。他們知道如何能夠創(chuàng)造出令人驚訝的應用程序,如何使日常任務智能化。當然Arduino編程也同樣適用于對Arduino編程感興趣的開發(fā)者。
需要的工具
每一章都有示例。每一章的開頭部分都準確地列出了學習該章所需要的工具。根據Arduino編程中的示例介紹。我們需要以下的硬件:
●計算機
●USB數據線以及微型USB數據線
●5V電源
●面包板和與其相適應的導線
●幾種Arduino開發(fā)板:兩個Arduino Uno、Arduino Due、Arduino Mega 2560、Arduino Esplora、Arduino Robot、Arduino各一個
●SainSmart LCD擴展板
●SainSmart以太網擴展板
●LM35溫度傳感器
●SD存儲卡
●Adafruit ST7735 TFT接口板
●Adafruit MAX31855接口板
●K型熱電偶絲
●Adafruit的SI1145 UV傳感器板
●SainSmart的Wi-Fi無線擴展板
●DHT11濕度傳感器
●HC-SR04超聲波測距傳感器
●HYX-S0009或者伺服電動機
●L293D
●5V雙極步進電動機
●紅綠藍LED燈
●10kΩ電阻
●4.7kΩ電阻關于網站
書中的案例的源代碼都可以從www.wiley.com/go/arduinosketches網站下載。
總結
Arduino開發(fā)是一個有趣的話題。它為人們打開一個擁有無數可能的新世界。Arduino不僅非常適合嵌入式開發(fā)的學習,也適用于將日常生活智能化,或者是用它做出一些奪人眼球的小玩意。在Arduino編程中你會看到許多關于如何制作一個簡單設備的示例講解,詳細地從硬件原理圖開始直到你能夠組裝設備并運行程序。
對每個程序的介紹以及對不同功能的解釋能夠幫助你獲得更想要的運行效果。每個程序庫中都提供了相應的示例,逐行顯示的代碼幫助你理解整個程序在做什么。希望在你啟動新項目的時候,Arduino編程能夠為你提供一些參考,幫助你玩得開心!
詹姆斯 A.蘭布里奇 是一名軟件顧問,專門從事嵌入式系統(tǒng)和代碼優(yōu)化。他在航空、國防、工業(yè)領域及電信行業(yè)有超過十余年的工作經驗。他也是意法半導體公司和Amtel的研發(fā)顧問。工作之余他做過嵌入式系統(tǒng)工程師培訓工作,幫助開發(fā)人員快速獲得提升;蛘咦鲆恍┝钏耐聬鄄会屖值男⊥嬉。
詹姆斯在他六歲的時候就寫了他人生的第1個程序,此后從未間斷。他開始使用蘋果IIs、ZX80s和ZX81s,隨后開始使用BBC Micros和Amiga,到后來開始使用計算機進行工作與創(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以太網擴展板
1.5.6 Arduino WiFi擴展板
1.5.7 Arduino GSM擴展板
1.5.8 你自己的擴展板
1.6 你能用Arduino做什么
1.7 你需要為本書準備什么
1.8 小結
第2章 Arduino編程
2.1 安裝環(huán)境
2.1.1 下載軟件
2.1.2 運行軟件
2.1.3 使用自己的IDE
2.2 你的第一個程序
2.3 理解你的程序
2.4 編程基礎
2.4.1 變量和數據類型
2.4.2 控制結構
2.4.3 函數
2.4.4 庫
2.5 小結
第3章 電子基礎
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 小結
第2部分 標準程序庫
第4章 Arduino語言
4.1 I/O函數
4.1.1 數字I/O
4.1.2 模擬I/O
4.1.3 生成音調
4.1.4 讀取脈沖
4.2 時間函數
4.2.1 delay()
4.2.2 delayMicroseconds()
4.2.3 millis()
4.2.4 micros()
4.3 數學函數
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 三角函數
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 小結
第5章 串口通信
5.1 串口通信的簡介
5.2 UART通信
5.2.1 波特率
5.2.2 數據位
5.2.3 奇偶校驗位
5.2.4 停止位
5.3 調試和輸出
5.4 啟動一個串行連接
5.5 寫數據
5.5.1 發(fā)送文本
5.5.2 發(fā)送數據
5.6 讀數據
5.6.1 開始通信
5.6.2 是否阻塞
5.6.3 讀取一個字節(jié)
5.6.4 讀取多個字節(jié)
5.6.5 數據預覽
5.6.6 解析數據
5.6.7 清除
5.7 示例編程
5.8 軟件串口
5.9 小結
第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 準備EEPROM存儲
6.5 擴展非易失性存儲器
6.6 小結
第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 練習
7.7 小結
第8章 Wire
8.1 Wire的簡介
8.2 連接I2C
8.3 I2C協(xié)議
8.3.1 地址
8.3.2 通信
8.4 進行通信
8.4.1 主機通信
8.4.2 從機通信
8.5 陷阱和缺陷
8.5.1 不同電壓
8.5.2 總線速率
8.5.3 I2C擴展板
8.6 小結
第9章 Ethernet
9.1 以太網的簡介
9.2 以太網
9.2.1 以太網電纜
9.2.2 交換機和集線器
9.2.3 以太網供電
9.3 TCP/IP
9.3.1 MAC地址
9.3.2 IP地址
9.3.3 DNS
9.3.4 端口
9.4 Arduino上的以太網
9.4.1 導入Ethernet庫
9.4.2 開始構建以太網
9.5 Arduino作為客戶端
9.5.1 發(fā)送和接收數據
9.5.2 示例程序
9.5.3 Arduino作為服務器
9.5.4 示例程序
9.6 小結
第10章 WiFi
10.1 引言
10.2 WiFi協(xié)議
10.2.1 拓撲
10.2.2 網絡參數
10.3 Arduino WiFi
10.3.1 導入庫
10.3.2 初始化
10.3.3 狀態(tài)
10.3.4 掃描網絡
10.3.5 連接和配置
10.3.6 無線客戶端
10.3.7 無線服務器
10.4 示例應用
10.4.1 硬件
10.4.2 程序
10.4.3 練習
10.5 小結
第11章 LiquidCrystal
11.1 引言
11.2 LiquidCrystal庫
11.2.1 寫入文本
11.2.2 光標命令
11.2.3 文本方向
11.2.4 滾動
11.2.5 自定義文本
11.3 示例程序
11.3.1 硬件
11.3.2 軟件
11.3.3 練習
11.4 小結
第12章 SD
12.1 引言
12.2 SD卡
12.2.1 容量
12.2.2 速率
12.3 在Arduino中使用SD卡
12.3.1 公認的SD卡
12.3.2 限制
12.4 SD庫
12.4.1 導入庫
12.4.2 連接SD卡
12.4.3 打開和關閉文件
12.4.4 讀取和寫入文件
12.4.5 文件操作
12.4.6 SD卡操作
12.4.7 高級用法
12.5 示例程序
12.6 小結
第13章 TFT
13.1 引言
13.2 技術
13.3 TFT庫
13.3.1 初始化
13.3.2 屏幕準備
13.3.3 文本操作
13.3.4 基本圖形
13.3.5 上色
13.3.6 圖形圖像
13.4 示例程序
13.4.1 硬件
13.4.2 程序
13.4.3 練習
13.5 小結
第14章 Servo
14.1 伺服電動機的簡介
14.2 控制伺服電動機
14.2.1 連接伺服電動機
14.2.2 轉動伺服電動機
14.2.3 斷開
14.2.4 準確性與安全性
14.3 示例程序
14.3.1 電路圖
14.3.2 程序
14.3.3 練習
14.4 小結
第15章 Stepper
15.1 電動機的簡介
15.2 控制步進電動機
15.2.1 硬件
15.2.2 單極性與雙極性步進電動機
15.3 Stepper庫
15.4 示例項目
15.4.1 硬件
15.4.2 程序
15.5 小結
第16章 Firmata
16.1 Firmata的簡介
16.2 Firmata庫
16.2.1 發(fā)送消息
16.2.2 接收消息
16.2.3 回調
16.2.4 SysEx
16.3 示例程序
16.4 小結
第17章 GSM
17.1 全球移動通信系統(tǒng)(GSM)的簡介
17.2 移動數據網絡
17.2.1 GSM
17.2.2 3G
17.2.3 4G和未來
17.2.4 調制解調器
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 應用示例
17.6 小結
第3部分 特殊設備程序庫
第18章 Audio
18.1 音頻的簡介
18.2 數字語音文件
18.3 Arduino上的音樂
18.4 Arduino Due
18.4.1 數模轉換器
18.4.2 數字音頻到模擬音頻
18.4.3 創(chuàng)建數字音頻
18.4.4 存儲數字音頻
18.4.5 播放數字音頻
18.5 示例程序
18.5.1 硬件
18.5.2 程序
18.5.3 練習
18.6 小結
第19章 Scheduler
19.1 調度器的簡介
19.2 Arduino多任務
19.3 調度
19.3.1 多任務合作
19.3.2 非合作函數
19.4 示例程序
19.4.1 硬件
19.4.2 程序
19.4.3 練習
19.5 小結
第20章 USBHost
20.1 USBHost的簡介
20.2 USB協(xié)議
20.3 USB設備
20.3.1 鍵盤
20.3.2 鼠標
20.3.3 集線器
20.4 Arduino Due
20.5 USBHost庫
20.5.1 鍵盤
20.5.2 鼠標
20.6 示例程序
20.6.1 硬件
20.6.2 源代碼
20.7 小結
第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 示例程序和練習
21.4 小結
第22章 Robot
22.1 Robot庫的簡介
22.2 Arduino機器人
22.3 Robot庫
22.3.1 控制板
22.3.2 電動機板
22.4 示例程序和練習
22.5 小結
第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 示例應用程序
23.3.1 硬件
23.3.2 程序
23.3.3 練習
23.4 小結
第4部分用戶程序庫和擴展板
第24章 導入第三方庫
24.1 庫
24.1.1 查找?guī)?
24.1.2 導入一個庫
24.1.3 使用擴展庫
24.2 示例應用程序
24.3 練習
24.4 小結
第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 小結
第26章 創(chuàng)建你自己的庫
26.1 庫
26.1.1 庫基礎
26.1.2 初級庫
26.1.3 高級庫
26.1.4 添加注釋
26.1.5 添加示例
26.1.6 須知
26.1.7 編碼風格
26.1.8 發(fā)布你的庫
26.1.9 閉源庫
26.2 示例庫
26.2.1 庫
26.2.2 示例
26.2.3 須知
26.2.4 收尾
26.3 小結