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