采用Arduino進(jìn)行電子制作越來(lái)越流行,在網(wǎng)絡(luò)上可以找到很多用Arduino制作機(jī)器人、媒體互動(dòng)產(chǎn)品、電子創(chuàng)意項(xiàng)目的案例。本書(shū)用50個(gè)項(xiàng)目來(lái)介紹Arduino的應(yīng)用,從基礎(chǔ)的輸入輸出項(xiàng)目逐漸進(jìn)入較高級(jí)的話(huà)題,比如Arduino與互聯(lián)網(wǎng)的連接等。每一個(gè)項(xiàng)目都由完整的硬件方案和軟件程序組成,讀者無(wú)須再翻閱其他書(shū)籍即可完成本書(shū)中的各種電子制作項(xiàng)目。本書(shū)為第2版,在第1版的基礎(chǔ)上更新了大量?jī)?nèi)容,增加了一些更為實(shí)用和有趣的項(xiàng)目。本書(shū)對(duì)讀者的基礎(chǔ)知識(shí)要求非常低,非常適合學(xué)生進(jìn)行課外電子制作項(xiàng)目使用,同時(shí)本書(shū)也介紹了一些相當(dāng)有難度和實(shí)用性很強(qiáng)的項(xiàng)目,對(duì)于有一定基礎(chǔ)的電子愛(ài)好者也有很好的參考價(jià)值。
1.國(guó)外流行的全面、完善的開(kāi)源硬件圖書(shū),引進(jìn)國(guó)內(nèi)后第1版出版5年仍暢銷(xiāo)不衰。
2.屬于一書(shū)在手通曉所有的完全手冊(cè)。從零基礎(chǔ)開(kāi)始,講解詳細(xì)到位。
3.書(shū)中50個(gè)案例全部附有源代碼,方便讀者學(xué)習(xí)與練習(xí)。
序
言 一
我和郎咸蒙老師結(jié)識(shí)有一年多時(shí)間了,每次與他交流,或者閱讀到他的微信公眾號(hào)文章,我都能感受到工作帶給他的無(wú)窮的力量和快樂(lè)。我相信,對(duì)于一位信息技術(shù)創(chuàng)客愛(ài)好者而言,不斷探索未知,不斷體驗(yàn)成功,不斷勇于嘗試,是其他任何事情都無(wú)法比擬的。
創(chuàng)客教育以其分享、開(kāi)源、協(xié)作、創(chuàng)新等魅力越來(lái)越受到重視,作為創(chuàng)客教育內(nèi)容的主要載體之一,Arduino逐步走進(jìn)中小學(xué)課堂是必然趨勢(shì)。Arduino相對(duì)低廉的價(jià)格和較高的性?xún)r(jià)比符合現(xiàn)階段創(chuàng)客發(fā)展的需求,有一本適合零基礎(chǔ)入門(mén)的操作手冊(cè),更是每一位教授者與學(xué)習(xí)者最迫切需要的。
這本書(shū)是幾位信息技術(shù)創(chuàng)客同仁共同翻譯出版的,他們的執(zhí)著和對(duì)開(kāi)源硬件新技術(shù)的研究熱情感染著我,希望更多的優(yōu)秀教師參與到信息技術(shù)創(chuàng)客的研究和普及中,希望更多的孩子在其中找到學(xué)習(xí)信息技術(shù)的樂(lè)趣。
山東省教育科學(xué)研究院
山東省創(chuàng)客教育聯(lián)盟
趙亮
序
言 二
我不太懂技術(shù),我的技術(shù)一直以來(lái)都落后于那些特別擅長(zhǎng)技術(shù)的老師大概兩三年,比如我至今不太會(huì)用超聲波傳感器。當(dāng)然,你也可以理解成我是一個(gè)想把問(wèn)題講清楚的人,意思是說(shuō),對(duì)于一個(gè)東西,我如果不能從盡可能接近基本原理的層面給學(xué)生講清楚,就一般不會(huì)將其放在我日常的教學(xué)中,這可能和我自己有物理學(xué)背景有關(guān)吧。但是我還是認(rèn)為自己是一個(gè)學(xué)東西很慢的人,連我老婆都說(shuō),怎么天天都看到你在研究差不多的東西啊。是啊,我就是一個(gè)只研究成熟技術(shù)而非前沿技術(shù)的人,所以當(dāng)收到這本以眾包的形式翻譯的Arduino教材的時(shí)候,我發(fā)現(xiàn)自己仍然有很多案例不會(huì),很多程序看不懂,但是這并不影響我懷著非常崇敬的心情看待曾經(jīng)向我展示創(chuàng)客技術(shù)和創(chuàng)客精神的創(chuàng)客們,因?yàn)椋瑳](méi)有他們就沒(méi)有創(chuàng)客教育。
我接觸的最早的創(chuàng)客是北京創(chuàng)客空間的肖文鵬老師,他的基于Arduino平臺(tái)的可編程套件FlamingoEDA幾乎和DFrobot、Seeed Studio同時(shí)起步,但是一直不如后兩者知道的人多。在宣武門(mén)附近一個(gè)叫富豪寫(xiě)字樓的不太高的三層小樓里,有一個(gè)不到20平方米的小房間,那就是北京創(chuàng)客空間最早的辦公地點(diǎn)。我?guī)е⒆觽冊(cè)谀抢锟吹搅诵の涅i老師,他似乎在修理一些東西,桌子上擺著各種各樣的半成品,兩側(cè)是一系列鐵架子,用那種常常在小雜貨鋪中能夠看到的有很多孔的角鐵搭成的鐵架子,鐵架子上擺著幾臺(tái)用激光切割機(jī)切割的木板組裝的3D打印機(jī),也擺著一些示波器一類(lèi)的儀器。當(dāng)時(shí)創(chuàng)客空間的其他會(huì)員在我看來(lái)要洋氣一些,高冷一些,所以看起來(lái)溫文爾雅的肖老師就成了我和這些六年級(jí)的同學(xué)們主要的套磁對(duì)象。肖老師給我們介紹了一個(gè)項(xiàng)目:把古老的打字機(jī)時(shí)代的鍵盤(pán),改裝成能夠把英文字母輸入現(xiàn)代計(jì)算機(jī)的一個(gè)機(jī)械鍵盤(pán)。這看起來(lái)既古老又神奇。肖老師介紹我去創(chuàng)客嘉年華,2012年的北京創(chuàng)客嘉年華到現(xiàn)在為止都是我最難忘的創(chuàng)客嘉年華,那一年有很多外國(guó)人的項(xiàng)目,有果凍鋼琴,有87 Hacking Toy(玩具改裝)的焊接工作坊,有扎染的工作坊,還有無(wú)數(shù)至今難以超越的互動(dòng)媒體作品。肖文鵬一直在清華大學(xué)美術(shù)學(xué)院設(shè)計(jì)專(zhuān)業(yè)教互動(dòng)媒體,他和很多設(shè)計(jì)系的學(xué)生合作,那些學(xué)生很多在讀大學(xué)之前沒(méi)有接觸過(guò)程序,數(shù)學(xué)和電子基礎(chǔ)也不太好,但是肖老師總是很耐心地幫助他們,被稱(chēng)為Arduino醫(yī)生,幫助學(xué)生解決各種各樣的故障。之后肖老師就離開(kāi)北京創(chuàng)客空間了,我甚至常常覺(jué)得肖文鵬之于北京創(chuàng)客空間就像喬布斯之于蘋(píng)果公司一樣,他總有一天會(huì)回來(lái)的,帶我們走得更遠(yuǎn)、更美好。
另一位創(chuàng)客是Seeed Studio的創(chuàng)始人潘昊在2015年深圳Maker Faire上請(qǐng)來(lái)的一位資深創(chuàng)客咖啡罐子機(jī)器人的設(shè)計(jì)者Judy。Judy是Arduino官方教材作者M(jìn)icheal的女朋友,一位藝術(shù)家,她告訴我這代表勇氣、智慧和生命的守護(hù)。她是一個(gè)職業(yè)創(chuàng)客,沒(méi)有什么全職的工作,平時(shí)的主要收入來(lái)自她在世界各地的講學(xué)和工作坊,以及幫助一些藝術(shù)和設(shè)計(jì)專(zhuān)業(yè)的學(xué)生完成畢業(yè)設(shè)計(jì)。在她的眼中,每一個(gè)創(chuàng)客作品都是有生命的,比如一個(gè)一瘸一拐的機(jī)器人,她給它起的名字是查理?卓別林,還給這個(gè)機(jī)器人帶上了卓別林式的帽子。Judy教會(huì)了我后來(lái)設(shè)計(jì)的家庭創(chuàng)客空間孵化課程的各種基本技能,比如如何用莫爾斯管來(lái)控制幾個(gè)馬達(dá),我的工作就是將一個(gè)完整的結(jié)果拆成幾個(gè)連續(xù)的部分。我問(wèn)Judy,我能不能改裝一下您的課程去設(shè)計(jì)一個(gè)新的課程,Judy告訴我:當(dāng)然了,我很高興你能這么做。受潘昊的委托,我安排了Micheal和Judy在中國(guó)的首場(chǎng)巡回工作坊,借用了清華創(chuàng)客空間的地方,十幾個(gè)老師做了兩天,各種各樣的利用廢舊物品制成的機(jī)器人就出來(lái)了,確實(shí)很值得點(diǎn)贊,很多成年人在一起玩得開(kāi)心。當(dāng)時(shí)由于經(jīng)費(fèi)的限制,老師們不能把在工作坊制作的機(jī)器人帶回家,我至今仍記得Judy傷感的表情,因此我的所有工作坊,都盡可能讓參與者帶走作品,讓快樂(lè)因分享而加倍。我終于懂得,為什么潘昊在向我介紹這兩位來(lái)自美國(guó)的朋友時(shí),說(shuō)他們是他心中的True Maker真正的創(chuàng)客。
創(chuàng)客運(yùn)動(dòng)是一項(xiàng)旨在變革人們生活方式的社會(huì)運(yùn)動(dòng),有些人走得太靠前,有的人走得太快,有些人太理想主義,有些人太關(guān)注個(gè)人興趣,有些人生活壓力太大……可能很多真正的創(chuàng)客并沒(méi)有取得通常意義上的成功,但是我發(fā)自?xún)?nèi)心地感謝他們,他們教會(huì)了我原汁原味的創(chuàng)客精神,他們傳遞給了我一種理想信念和生活方式,他們告訴我有一種簡(jiǎn)單的選擇,用自己的愛(ài)好、興趣和對(duì)這個(gè)世界的本真的善來(lái)感染更多的人,幫助更多的人,讓這個(gè)世界變得更加美好。這里有一個(gè)真實(shí)的例子2011年,當(dāng)Makeblock的創(chuàng)始人王建軍剛剛設(shè)計(jì)出產(chǎn)品原型,缺少資金請(qǐng)代工廠制作出來(lái)的時(shí)候,肖文鵬老師拿出了10萬(wàn)元資助了建軍的這個(gè)項(xiàng)目,我至今都不知道這10萬(wàn)元的投資占了多少股份這種比較俗的東西,我只知道肖老師當(dāng)時(shí)并不寬裕,也沒(méi)打算真的期許什么,而只是出于對(duì)一個(gè)充滿(mǎn)希望的年輕人的想法的支持。2017年Makeblock融資兩億元,成為創(chuàng)客教育領(lǐng)域估值最高的企業(yè),產(chǎn)品在全世界都賣(mài)得很好,成為了真正的華人之光。我想這就是我一直信仰的一種理念好人有好報(bào),好人要團(tuán)結(jié)起來(lái)的一種實(shí)現(xiàn)。于是,我期待著通過(guò)創(chuàng)客教育讓更多的教會(huì)我創(chuàng)客精神的創(chuàng)客們離他們的理想更近一些,而且,這一切已經(jīng)并不遙遠(yuǎn)了,因?yàn)樗麄円恢痹谟幸鉄o(wú)意地指引著我們的方向。因此,再一次謝謝他們!也期望廣大讀者能夠讀出這本書(shū)背后的人和故事。
北京景山學(xué)校
吳俊杰
序
言 三
Arduino自2005年問(wèn)世至今,之所以被廣泛應(yīng)用,不僅是因?yàn)槠溟_(kāi)源,更重要的是很多創(chuàng)客本著開(kāi)源的精神在社區(qū)論壇上免費(fèi)發(fā)布自己的創(chuàng)作設(shè)計(jì),讓更多人參與其中,不斷優(yōu)化升級(jí),從而創(chuàng)作出更好的創(chuàng)意作品。近兩年Arduino正式進(jìn)入中國(guó)后,國(guó)內(nèi)的創(chuàng)客們可以在官方授權(quán)的代理商那里,不受地域限制第一時(shí)間購(gòu)買(mǎi)到Arduino的各種全新產(chǎn)品。產(chǎn)品的國(guó)產(chǎn)化促使價(jià)格降低,性?xún)r(jià)比從而大大提高,給廣大中國(guó)創(chuàng)客帶來(lái)了更多合適的選擇。
本人作為Arduino教學(xué)培訓(xùn)開(kāi)發(fā)與推廣的倡導(dǎo)者,見(jiàn)證著其在開(kāi)源硬件領(lǐng)域蓬勃發(fā)展的整個(gè)過(guò)程。《Arduino從基礎(chǔ)到實(shí)踐》作為最早一批進(jìn)入中國(guó)的Arduino類(lèi)譯著圖書(shū),深受廣大讀者的喜愛(ài)!本人很高興看到電子工業(yè)出版社能夠再次引進(jìn)《Beginning Arduino》第2版,相信本書(shū)的出版一定會(huì)給廣大電子愛(ài)好者帶來(lái)莫大的幫助。
全書(shū)采用軟硬結(jié)合,實(shí)踐先行的寫(xiě)作風(fēng)格,由淺入深、圖文并茂地展開(kāi)教學(xué),列舉多種傳感器、電機(jī)驅(qū)動(dòng)、機(jī)器人制作等實(shí)戰(zhàn)案例,內(nèi)容豐富廣泛成為全書(shū)最大亮點(diǎn),實(shí)用性較強(qiáng)。本人先于廣大讀者閱讀全書(shū)內(nèi)容,本書(shū)各章節(jié)內(nèi)容明確,重點(diǎn)突出,可作為學(xué)校開(kāi)展STEAM創(chuàng)新教育的教材。假如你是一個(gè)初學(xué)者,請(qǐng)記住在學(xué)習(xí)開(kāi)始之前一定要準(zhǔn)備好硬件,全書(shū)實(shí)驗(yàn)較多,建議從頭開(kāi)始整章閱讀,以方便實(shí)踐;你如果在Arduino編程方面有一定基礎(chǔ),也可以直接選擇實(shí)戰(zhàn)項(xiàng)目開(kāi)始學(xué)習(xí),相信本書(shū)豐富的項(xiàng)目會(huì)讓你受益匪淺。
Arduino的學(xué)習(xí)過(guò)程是分享快樂(lè)和面對(duì)挑戰(zhàn)克服困難的過(guò)程。為了方便讀者之間的學(xué)習(xí)和交流,大家可以在創(chuàng)客社區(qū)www.makerspace.cn的論壇板塊Arduino專(zhuān)區(qū)發(fā)帖討論。如果讀者在閱讀過(guò)程中發(fā)現(xiàn)任何問(wèn)題希望找到譯者共同探討,可以加入愛(ài)玩ArduinoQQ群:218767405。也可以登錄SuperMaker創(chuàng)客教育網(wǎng)(www.supermaker.tv)觀看更多Arduino相關(guān)教學(xué)演示視頻案例,通過(guò)掃描下方二維碼,就可以快速進(jìn)入學(xué)習(xí)。
希望這本從基礎(chǔ)實(shí)踐出發(fā),全方位解讀Arduino的實(shí)戰(zhàn)應(yīng)用寶典,能夠成為你日后打開(kāi)科技圣殿大門(mén)的金鑰匙。
奧松機(jī)器人創(chuàng)始人,資深創(chuàng)客
于欣龍
Michael McRoberts,2008年在天體攝影的小項(xiàng)目中制作云探測(cè)器,尋找將溫度傳感器連接到PC的方法時(shí)發(fā)現(xiàn)了Arduino。經(jīng)過(guò)研究,發(fā)現(xiàn)Arduino是解決這個(gè)問(wèn)題的理想選擇。最后很快成功地制作出了云探測(cè)器,而且價(jià)格便宜。米歇爾對(duì)Arduino的興趣由此開(kāi)始。自那以后,他采用Arduino完成了大量的工程項(xiàng)目。他同時(shí)在網(wǎng)上發(fā)現(xiàn)了被稱(chēng)為地球之光電子(Earthshine Electronics)的Arduino入門(mén)套件及組件。他采用Arduino制作的下一個(gè)項(xiàng)目是在UKHAS 和CUSF的搭檔們的幫助下,將一個(gè)高海拔氣球送到邊緣空間進(jìn)行拍照和錄像。他做這個(gè)項(xiàng)目?jī)H僅是為了好玩。
當(dāng)米歇爾還是一個(gè)孩子的時(shí)候,就對(duì)電子產(chǎn)生了濃厚的興趣。那時(shí),無(wú)線(xiàn)電器材公司還在利用一百合一電子套件制作圣誕禮物單。在他青少年時(shí),得到一臺(tái)辛克萊81計(jì)算機(jī),開(kāi)始對(duì)編程感興趣。從那以后,他再也離不開(kāi)計(jì)算機(jī)。最近,他又成為了Mac平臺(tái)的粉絲。
他是倫敦黑客聯(lián)盟(London Hackspace)和奧爾平頓天文協(xié)會(huì)的會(huì)員,他還經(jīng)常為Arduino論壇寫(xiě)一些東西。他還喜歡以Arduino愛(ài)好者(TheArduinoGuy)為網(wǎng)名,潛伏在Arduino、高海拔探測(cè)項(xiàng)目和倫敦黑客聯(lián)盟(一個(gè)位于倫敦的非盈利性的技術(shù)人員分享工具和知識(shí)的社區(qū))等論壇上,或在Twitter上與網(wǎng)民閑聊。閑暇之余,他也喜歡研究天文學(xué)、天體攝像,以及騎摩托車(chē)兜風(fēng)和航海。
第1 章 引言 .......................................................................................... 1
如何使用本書(shū) ......................................................................................................................... 2
你需要的東西 ......................................................................................................................... 2
Arduino 到底是什么 ............................................................................................................... 3
搭建你的Arduino 環(huán)境 .......................................................................................................... 6
加載第一個(gè)程序 ................................................................................................................... 13
Arduino IDE .......................................................................................................................... 14
總結(jié) ...................................................................................................................................... 21
第2 章 讓我們開(kāi)始吧 ........................................................................ 22
項(xiàng)目1LED 閃燈器 ........................................................................................................... 22
需要的元件 ........................................................................................................................................ 23
把元件連接起來(lái) ................................................................................................................................ 23
輸入代碼 ............................................................................................................................................ 24
項(xiàng)目1LED 閃燈器代碼回顧 ..................................................................................................... 24
項(xiàng)目1LED 閃燈器硬件回顧 ..................................................................................................... 29
項(xiàng)目2S.O.S 莫爾斯碼信號(hào)源 .......................................................................................... 33
輸入代碼 ............................................................................................................................................ 34
項(xiàng)目2S.O.S 莫爾斯碼信號(hào)源代碼回顧 .................................................................................... 35
項(xiàng)目3交通信號(hào)燈 ............................................................................................................ 37
需要的元件 ........................................................................................................................................ 38
把元件連接起來(lái) ................................................................................................................................ 38
輸入代碼 ............................................................................................................................................ 39
項(xiàng)目4互動(dòng)交通燈 ............................................................................................................ 40
需要的元件 ........................................................................................................................................ 41
把元件連接起來(lái) ................................................................................................................................ 42
輸入代碼 ............................................................................................................................................ 42
項(xiàng)目4互動(dòng)交通燈代碼回顧 ...................................................................................................... 44
項(xiàng)目4互動(dòng)交通燈硬件回顧 ...................................................................................................... 49
邏輯狀態(tài) ............................................................................................................................................ 49
下拉電阻 ............................................................................................................................................ 49
上拉電阻 ............................................................................................................................................ 50
Arduino 的內(nèi)部上拉電阻 ................................................................................................................... 52
小結(jié) ...................................................................................................................................... 52
第3 章 LED 效果 ................................................................................54
項(xiàng)目5LED 跑馬燈效果 ................................................................................................... 54
需要的元件 ........................................................................................................................................ 54
把元件連接起來(lái) ................................................................................................................................ 54
輸入代碼 ............................................................................................................................................ 55
項(xiàng)目5LED 跑馬燈效果代碼回顧 .............................................................................................. 56
項(xiàng)目6互動(dòng)LED 跑馬燈效果 .......................................................................................... 58
需要的元件 ........................................................................................................................................ 58
把元件連接起來(lái) ................................................................................................................................ 58
輸入代碼 ............................................................................................................................................ 59
項(xiàng)目6互動(dòng)LED 跑馬燈效果代碼回顧 ..................................................................................... 60
項(xiàng)目6互動(dòng)LED 跑馬燈效果硬件回顧 ..................................................................................... 60
項(xiàng)目7閃爍燈 .................................................................................................................... 62
需要的元件 ........................................................................................................................................ 62
把元件連接起來(lái) ................................................................................................................................ 62
輸入代碼 ............................................................................................................................................ 62
項(xiàng)目7閃爍燈代碼回顧 .............................................................................................................. 63
項(xiàng)目8RGB 彩燈 ............................................................................................................... 64
需要的元件 ........................................................................................................................................ 65
把元件連接起來(lái) ................................................................................................................................ 65
輸入代碼 ............................................................................................................................................ 65
項(xiàng)目8RGB 彩燈代碼回顧 ......................................................................................................... 67
項(xiàng)目9LED 火焰效果 ....................................................................................................... 71
需要的元件 ......................................................