交互設(shè)計在國內(nèi)還屬于發(fā)展的初期階段,屬于一個綜合性相對較強(qiáng)的領(lǐng)域,是今后技術(shù)與藝術(shù)相結(jié)合的一個重要趨勢。完美圖解Arduino互動設(shè)計入門主要針對沒有電子電路基礎(chǔ),但又對微控制器、電子電路、互動裝置等感興趣的讀者,以輕松幽默的方式講解Arduino及其相關(guān)的各種電子元件。完美圖解Arduino互動設(shè)計入門配有一些實際的制作項目,具有較高的實用價值。另外,完美圖解Arduino互動設(shè)計入門在講述基本電子電路和程序設(shè)計概念時,精心制作了大量的手繪圖,讓讀者能夠很快地理解這些概念。
更多科學(xué)出版社服務(wù),請掃碼獲取。
目錄
CHAPTER 01 認(rèn)識Arduino
1-1 │ Arduino 微電腦板 1-3
1-2 │ Arduino 的相關(guān)軟件 1-10
1-3 │ Arduino 開發(fā)環(huán)境安裝 1-12
動手做1-1 執(zhí)行與設(shè)置Arduino 開發(fā)環(huán)境 1-18
1-4 │下載“LED 閃爍”示例程序 1-21
CHAPTER 02 認(rèn)識電子零件、工具與基礎(chǔ)焊接
2-1 │電壓、電流與接地 2-2
2-2 │微電腦板的電源適配器 2-5
2-3 │電阻 2-6
2-4 │電容 2-11
2-5 │二極管 2-14
2-6 │發(fā)光二極管(LED) 2-15
2-7 │看懂電路圖 2-16
2-8 │電子工作必備的測量工具:萬用表 2-18
動手做2-1 測量電阻、電容、電壓和電流 2-20
2-9 │用面包板組裝實驗電路 2-22
CHAPTER 03 Arduino 互動程序設(shè)計入門
3-1 │ Arduino 程序設(shè)計基礎(chǔ) 3-3
動手做3-1 寫一個LED 閃爍控制程序 3-8
3-2 │用“變量”來管理代碼 3-10
3-3 │認(rèn)識數(shù)字系統(tǒng) 3-17
3-4 │不變的“常量” 3-19
CHAPTER 04 開關(guān)電路與LED 流水燈效果
4-1 │認(rèn)識開關(guān) 4-2
4-2 │讀取數(shù)字輸入值 4-6
4-3 │改變程序流程的if 條件式 4-7
動手做4-1 用面包板組裝開關(guān)電路 4-10
動手做4-2 LED 流水燈示例一 4-16
4-4 │編寫循環(huán)程序 4-18
動手做4-3 流水燈示例二:使用for 循環(huán) 4-21
4-5 │認(rèn)識數(shù)組 4-22
動手做4-4 流水燈示例三:使用數(shù)組變量 4-23
4-6 │使用端口操作指令與位移運算符制作流水燈程序 4-24
動手做4-5 流水燈示例四:使用位移運算符 4-25
CHAPTER 05 串口通信
5-1 │并行與串行通信簡介 5-2
5-2 │處理文字信息:認(rèn)識字符與字符串?dāng)?shù)據(jù)類型 5-10
5-3 │從Arduino 傳遞串行信息給電腦 5-13
動手做5-1 從串口監(jiān)控窗口觀察變量值 5-14
5-4 │從Arduino 接收串口數(shù)據(jù) 5-16
動手做5-2 從串口控制LED 開關(guān) 5-17
5-5 │ switch…case 控制結(jié)構(gòu) 5-19
CHAPTER 06 模擬信號處理
6-1 │讀取模擬值 6-2
動手做6-1 從串口讀取“模擬輸入”值 6-3
6-2 │認(rèn)識光敏電阻與分壓電路 6-4
動手做6-2 使用光敏電阻制作小夜燈 6-7
6-3 │壓力傳感器與彎曲傳感器 6-8
6-4 │電容式麥克風(fēng)與運算放大器 6-9
動手做6-3 自制麥克風(fēng)聲音放大器(拍手控制開關(guān)) 6-13
動手做6-4 拍手控制開關(guān)改良版 6-16
CHAPTER 07 七段LED 數(shù)碼管
7-1 │數(shù)碼管 7-2
動手做7-1 連接LED 數(shù)碼管與Arduino 板 7-3
7-2 │使用集成電路簡化電路 7-6
動手做7-2 串接數(shù)碼管 7-11
CHAPTER 08 LED 點陣屏與SPI 接口控制
8-1 │建立自定義函數(shù) 8-2
動手做8-1 建立自定義函數(shù) 8-4
8-2 │認(rèn)識變量的作用域 8-6
8-3 │ LED 點陣屏簡介 8-8
8-4 │認(rèn)識SPI 接口與MAX7219 8-9
動手做8-2 組裝LED 點陣屏電路 8-12
8-5 │顯示單一矩陣圖像 8-18
動手做8-3 在矩陣LED 上顯示音符圖像 8-19
動手做8-4 在串口監(jiān)視器輸出矩形排列的星號 8-22
8-6 │ LED 點陣屏動畫與多維數(shù)組程序設(shè)計 8-24
動手做8-5 在矩陣LED 上顯示動態(tài)圖像 8-26
8-7 │ LED 點陣屏流水燈 8-27
動手做8-6 LED 點陣屏逐字滾動效果程序 8-30
8-8 │將常數(shù)保存在“程序內(nèi)存”里 8-33
CHAPTER 09 LCD 液晶屏+溫濕度傳感器+ 超聲波傳感器
9-1 │認(rèn)識文本型LCD 顯示模塊 9-2
動手做9-1 在LCD 液晶屏上顯示一段文本 9-4
動手做9-2 在LCD 上顯示自定義字符符號 9-9
動手做9-3 序列連接LCD 顯示模塊 9-12
9-2 │數(shù)字溫濕度傳感器 9-16
動手做9-4 制作數(shù)字溫濕度顯示器 9-16
9-3 │認(rèn)識超聲波 9-21
動手做9-5 使用超聲波傳感器制作數(shù)字量尺 9-24
CHAPTER 10 變頻控制LED 燈光和電機(jī)
10-1 │調(diào)節(jié)電壓變化 10-2
10-2 │模擬輸出(PWM)指令和默認(rèn)頻率 10-4
動手做10-1 調(diào)光器 10-5
動手做10-2 隨機(jī)數(shù)字與燭光效果 10-6
動手做10-3 通過串口調(diào)整燈光亮度 10-8
動手做10-4 使用atoi( ) 轉(zhuǎn)換字符串成數(shù)字 10-10
10-3 │認(rèn)識直流電機(jī) 10-12
10-4 │齒輪箱∕滑輪組和動力模型玩具 10-16
10-5 │認(rèn)識晶體管元器件 10-17
動手做10-5 晶體管電機(jī)控制與調(diào)速器 10-20
10-6 │控制電機(jī)正反轉(zhuǎn)的H 橋式電機(jī)控制電路 10-22
動手做10-6 自動回避障礙物的自走車 10-27
CHAPTER 11 使用Wii 游戲桿控制機(jī)械手臂
11-1 │認(rèn)識舵機(jī) 11-2
動手做11-1 自制機(jī)械手臂 11-4
11-2 │認(rèn)識Wii 左手把的通信接口:I2C 11-7
動手做11-2 通過I2C 接口串聯(lián)兩個Arduino 板 11-10
動手做11-3 在I2C 接口下載發(fā)送整數(shù)數(shù)據(jù) 11-13
動手做11-4 讀取Wii 左手把的游戲桿、按鈕與加速度計值 11-14
動手做11-5 使用Wii 左手把控制機(jī)械手臂 11-18
11-3 │改造舵機(jī)成連續(xù)360°旋轉(zhuǎn) 11-23
CHAPTER 12 紅外線遙控與間隔拍攝控制器
12-1 │認(rèn)識紅外線 12-2
動手做12-1 監(jiān)測人體移動 12-4
12-2 │紅外線遙控 12-5
動手做12-2 使用IRremote 擴(kuò)展庫解析紅外線遙控值 12-8
動手做12-3 使用紅外線遙控器控制舵機(jī) 12-10
動手做12-4 從Arduino 發(fā)射紅外線遙控電器 12-12
12-3 │運用紅外線遙控照相機(jī) 12-16
動手做12-5 遙控照相機(jī)間隔拍攝影片 12-17
CHAPTER 13 制作光電子琴與MIDI 電子鼓
13-1 │發(fā)音體和聲音 13-2
13-2 │使用tone() 函數(shù)發(fā)出聲音 13-5
動手做13-1 演奏一段馬里奧旋律 13-5
13-3 │使用#define 替換數(shù)據(jù) 13-6
13-4 │認(rèn)識反射型與遮光型光電開關(guān) 13-10
動手做13-2 光電子琴制作 13-11
13-5 │認(rèn)識MIDI 13-15
13-6 │ MIDI 信息格式 13-19
動手做13-3 通過Arduino 演奏MIDI 音樂 13-21
動手做13-4 通過“虛擬MIDI”接口演奏音樂 13-24
動手做13-5 制作MIDI 電子鼓 13-27
CHAPTER 14 手機(jī)藍(lán)牙遙控機(jī)器人制作
14-1 │電波、頻段和無線傳輸簡介 14-3
14-2 │認(rèn)識藍(lán)牙(Bluetooth) 14-4
動手做14-1 使用軟件串口程序連接Arduino 與藍(lán)牙模塊 14-8
動手做14-2 用Android 手機(jī)藍(lán)牙遙控機(jī)器人 14-13
CHAPTER 15 網(wǎng)絡(luò)與HTML 網(wǎng)頁基礎(chǔ)+嵌入式網(wǎng)站服務(wù)器制作
15-1 │認(rèn)識網(wǎng)絡(luò)與IP 地址 15-2
15-2 │域名、URL 網(wǎng)址和傳輸協(xié)議 15-7
動手做15-1 認(rèn)識網(wǎng)頁與HTML 15-11
15-3 │網(wǎng)絡(luò)的聯(lián)機(jī)標(biāo)準(zhǔn)與封包 15-14
15-4 │認(rèn)識HTTP 協(xié)議 15-15
15-5 │連接以太(Ethernet)網(wǎng)卡建立Arduino 微型網(wǎng)站服務(wù)器 15-17
動手做15-2 建立微型網(wǎng)站服務(wù)器 15-18
CHAPTER 16 網(wǎng)絡(luò)家電控制
16-1 │使用Webduino 擴(kuò)展庫建立微型網(wǎng)站 16-2
16-2 │定義錯誤信息網(wǎng)頁與超鏈接設(shè)置 16-7
動手做16-1 監(jiān)控遠(yuǎn)程的溫濕度值 16-9
16-3 │傳遞數(shù)據(jù)給網(wǎng)站服務(wù)器 16-15
動手做16-2 建立網(wǎng)頁表單 16-15
16-4 │認(rèn)識傳遞數(shù)據(jù)的GET/POST 方法和查詢字符串 16-17
動手做16-3 建立接收POST 表單數(shù)據(jù)的自定義命令 16-20
動手做16-4 從瀏覽器控制遠(yuǎn)程的燈光開關(guān) 16-24
16-5 │控制家電開關(guān) 16-29
動手做16-5 使用繼電器控制家電開關(guān) 16-30
CHAPTER 17 Arduino + Flash 集成互動應(yīng)用
17-1 │ Arduino + Flash = 多元互動媒體 17-2
動手做17-1 測試Arduino 與Flash 聯(lián)機(jī) 17-5
動手做17-2 “接電子零件”互動游戲 17-12
17-2 │認(rèn)識Arduino 的String(字符串)擴(kuò)展庫 17-16
動手做17-3 Flash 燈光開關(guān)和調(diào)光器 17-17
17-3 │使用Firmata 在Flash 和Arduino 之間傳遞數(shù)據(jù) 17-23
CHAPTER 18 RFID 無線識別設(shè)備與問答游戲制作
18-1 │認(rèn)識條碼與RFID 18-2
18-2 │ RFID 模塊規(guī)格介紹與標(biāo)簽讀取實驗 18-7
動手做18-1 讀取RFID 標(biāo)簽 18-8
18-3 │存儲與比對RFID 編碼 18-10
動手做18-2 使用RFID 控制開關(guān) 18-12
動手做18-3 使用RFID 進(jìn)行Flash 問答游戲 18-16
APPENDIX A 認(rèn)識焊接工具:焊錫、電烙鐵及焊接助手
A-1 │焊接工具 A-2
動手做A-1 基礎(chǔ)焊接練習(xí) A-4
動手做A-2 焊接鱷魚夾 A-7
A-2 │印刷電路板及萬用板 A-8
動手做A-3 焊接電路板 A-9
動手做A-4 活用USB 電源適配器 A-11
APPENDIX B 燒寫ATmega 微處理器的引導(dǎo)程序(boot loader)
動手做B-1 使用Arduino 控制板編程ATmega328 固件 B-2
動手做B-2 用面包板組裝Arduino 微電腦實驗板 B-5
APPENDIX C 改造3C 小玩意的控制鈕
C-1 │認(rèn)識光電耦合元器件 C-2
APPENDIX D 中斷處理與交流電調(diào)光器制作
D-1 │輪詢VS 中斷 D-2
D-2 │調(diào)整交流電的輸出功率 D-7
D-3 │定時激發(fā)運行的 TimerOne 擴(kuò)展庫 D-10
動手做D-1 交流電調(diào)光器電路 D-12
INDEX 索引 索引-1
以下內(nèi)容請參見光盤電子書
APPENDIX E 使用App Inventor 開發(fā)Android App
E-1 │認(rèn)識App Inventer 2.0 E-2
E-2 │建立第一個App Inventor 項目:聲音播放程序 E-3
E-3 │藍(lán)牙遙控機(jī)器人App 的代碼說明 E-12
CAPTER01 認(rèn)識Arduino
2005年時,任教于意大利北部伊夫雷亞(IvreA)一所互動設(shè)計學(xué)院(InterAction Design Institute IvreA)的 MAssimo BAnzi和 DAvid CuArtielles教授,希望能替學(xué)生和互動藝術(shù)設(shè)計師,找到一種能幫助他們學(xué)習(xí)電子和傳感器基本知識,并快速地設(shè)計、集成互動作品原型(prototype)的微電腦裝置。
“原型”是在新產(chǎn)品開發(fā)階段所制作的模型或?qū)嶒炿娐罚脕碓囼炐庐a(chǎn)品的功能、造型和材料。
有鑒于當(dāng)時市面上的微電腦控制相關(guān)產(chǎn)品眾多,而有些產(chǎn)品采用的程序語言深奧難懂,也不適合設(shè)計學(xué)院的學(xué)生使用。所以他們找來幾個志同道合的伙伴和學(xué)生,以 11世紀(jì)北意大利的一個國王 "Arduino"為名,設(shè)計出開放式(open source)微電腦控制板(以下簡稱“微電腦板”或“控制板”)以及程序開發(fā)工具。
Arduino微電腦板價格低廉,一塊不到兩百元(若是自己買零件組裝,幾十元左右),程序設(shè)計容易上手,因此廣受世界各地的電子愛好者和互動設(shè)計師的喜愛,運用 Arduino創(chuàng)造出各種新奇有趣的互動裝置。
讀者可以在網(wǎng)絡(luò)上搜索到各種 Arduino衍生的創(chuàng)意發(fā)明,例如:
●聲光玩具,搜索關(guān)鍵詞:Arduino toy。
●防盜∕防災(zāi)警報器;
●自動化機(jī)械,如:寵物喂食器。
●四軸飛行器,搜索關(guān)鍵詞:Arduino quAdcopter。
●人造衛(wèi)星,搜索關(guān)鍵詞:ArduSAt。
●被喻為第三次工業(yè)革命的 3D打印機(jī),搜索關(guān)鍵詞:3D Printer。例如,開放源代碼的RepRAp(http://www.reprAp.org),以及 MArkerBot打印機(jī)(http://www.mArkerbot.com/)的控制板都采用 Arduino微電腦板。你可以在家用 3D打印機(jī)制造齒輪、曲柄等機(jī)械零件、手機(jī)保護(hù)殼、公仔模型等各種有用或有趣的創(chuàng)作。
還有讓盆栽在缺水時,自動發(fā)布 Twitter(推特)信息的裝置(搜索關(guān)鍵詞:botAnicAlls)。也有人將 Arduino縫制在衣服上,搭配 EL冷光線材,做出像電影 TRON主角的高科技炫光服飾(搜索關(guān)鍵詞:"Arduino EL wire"以及"weArAble Arduino",代表“可穿戴的Arduino”)。
想知道更多 Arduino在世界各地蔚為風(fēng)潮的故事嗎?請看創(chuàng)始人MAssimo BAnzi在 TED大會(ted.com)上現(xiàn)身說法,網(wǎng)址:http://goo.gl/JbZtwN。
導(dǎo)演 Rodrigo CAlvo和 RAul Alejos拍攝了一部紀(jì)錄片,由 Arduino的創(chuàng)始者訴說 Arduino的誕生過程,還有運用 Arduino制作出開放軟∕硬件源代碼的3D打印機(jī) "MAkerBot"的創(chuàng)辦人ZAch Smith,和其他互動設(shè)計師的訪談記錄,以及在工廠大量生產(chǎn) Arduino微電腦的片段,有興趣的讀者可在這個網(wǎng)址免費觀看(有英文和西班牙文字幕)和下載:http://ArduinothedocumentAry.org/。
Arduino創(chuàng)始人在 TED大會的演說
Arduino紀(jì)錄片
1-1
Arduino微電腦板
就像計算機(jī)一樣,Arduino的軟硬件都持續(xù)推出新的版本,每個硬件版本都有不同的名字,如 Arduino LeonArdo、Arduino Uno、Arduino Mini等,本書采用的是 2009年推出的Arduino DuemilAnove。
完整的官方硬件產(chǎn)品列表、外觀和說明,請到 Arduino.cc網(wǎng)頁,點擊"Products"(產(chǎn)品)鏈接。
下圖是 Arduino Uno和 LeonArdo微電腦控制板的正面外觀。
不同 Arduino控制板的主要差異在于微處理器以及連接 USB接口的 IC(集成電路,參閱第 7章說明)不一樣,但是程序的寫法,以及硬件的連接方式幾乎都一樣。
除了購買“官方版”的 Arduino之外,任何人都可以在 Arduino.cc網(wǎng)站下載免費的電路圖(以及程序開發(fā)軟件),自己 DIY一個 Arduino,也能在網(wǎng)上購得各種形式的 Arduino兼容板。
兼容板和官方版的主要差異是,兼容版必須額外支付一筆權(quán)利金,才能替產(chǎn)品冠上 "Arduino"的名字和商標(biāo)。因此 Arduino兼容硬件板大多以 "duino"或 "ino"名稱結(jié)尾,例如:Freeduino、JApAnino、Zigduino等。本書第 5章將介紹一種自行組裝 Arduino的簡易方法,下圖是筆者自行焊接的 Arduino微電腦板。
使用 Arduino微電腦板的注意事項
Arduino板不同于其他 3C產(chǎn)品,它沒有精美的外殼保護(hù)。出廠時,廠商通常會用防靜電袋(外觀像褐色半透明塑料袋)來包裝微電腦板。若翻到
Arduino板子背面,你會看到許多圓圓亮亮的焊接點。
平常拿取 Arduino板子的時候,請盡量不要碰觸到組件的引腳與焊接點,尤其在冬季比較干燥的時節(jié),我們身上容易帶靜電,可能會損壞板子上的集成電路(注:就是板子上黑黑一塊,兩旁或四周有許多引腳的組件)。
做實驗時,桌子上請不要放飲料和水,萬一打翻或者滴到運行中的Arduino板,可能會因短路而損壞。此外,Arduino板底下最好墊一張白紙或塑料墊,也是為了避免板子背后的接點碰觸到導(dǎo)電物質(zhì)而短路。
Arduino的擴(kuò)展板(Shield)
基本上,微電腦控制板就像是一個具有大腦和神經(jīng),但是沒有感官和行動能力的物體。我們可以替它加上眼睛(如:紅外線或超音波傳感器)、耳朵(如:麥克風(fēng))和手腳(如:舵機(jī)),再加上自行撰寫的控制程序,就能做出各種自動控制應(yīng)用。例如,加上溫度傳感器和一些控制線路,以及判斷條件的程序代碼,就能讓 Arduino自動控制電風(fēng)扇的運轉(zhuǎn);加上舵機(jī)∕步進(jìn)電機(jī),以及障礙物傳感器,即可組裝一臺自走車或機(jī)器人。
微電腦板子上下兩側(cè)的黑色插槽,叫做杜邦接頭、杜邦迷你連接器或杜邦單排母座,是 Arduino的擴(kuò)充接口槽,用來銜接傳感器和接口設(shè)備控制電路。市面上有許多和 Arduino插槽兼容的擴(kuò)展板(統(tǒng)稱為 Shield),買回家之后,將它插在 Arduino上面,再自行編寫一些程序代碼即可使用。下圖是在Arduino板子疊上以太網(wǎng)絡(luò)擴(kuò)展卡的樣子。