書名:Arduino輕鬆入門:範例分析與實作設計
作者:我
頁數:456頁
出版日期:2014年2月19日
出版社:博碩文化(書號PG21403 )
ISBN:978-986-201-870-5
印刷:單色
一本從零開始介紹Arduino的入門書,不管是硬體還是軟體方面,都從最基本的層級開始講解,希望能引導初學者快速入門Arduino這套熱門的電子原型開發平台,打造您心中醞釀已久的專案。
★有硬有軟,電子零件與程式碼完全掌握。
★逐步學習,基本的LED與開關,直到溫濕度感測器、馬達、紅外線、無線傳輸、等等技術。
★介紹各種感測器,偵測氣溫、濕度、壓力、彎曲程度、等等。
★解說何謂驅動電路,如何掌控大電壓與大電流,操控馬達製作雙輪電動車。
★容易看懂的電路圖,按圖施工,保證成功。
★從簡單的程式碼著手,慢慢邁向更複雜的功能,提供原始碼檔案下載。
★收錄有趣的小遊戲專案:包括石頭砸雞蛋、打鼓機、肺活量測試機、請你跟我這樣做。
書裡的電路圖,使用一套名為Fritzing的開放原始碼軟體來繪製,所有原始程式碼與電路圖檔案(彩色),都可到GitHub下載,只需點按「Download ZIP」即可全部打包下載,書籍章節內也會註明個範例專案的所在路徑。
第1章,Arduino導論,從零開始介紹Arduino這套開放原始碼電子原型開發平台,自造者(Maker)運動、歷史源流、細數官方推出的開發板、以及各種相容產品與模組,然後介紹Arduino的軟體部分並在各作業系統上安裝驅動程式,本章結束之時,您面前就會有一套準備就緒的軟硬體開發環境。
第2章,介紹閱讀本書需要的電子零件與設備,包括電阻、二極體、各種晶片、等等,以及手邊需備齊的工具。若讀者已有經驗,可跳過這一章。
第3章,正式進入Arduino的領域,這一章將從基礎開始講解如何運用最基本的零件:LED與開關,並開發軟體程式,一步一步介紹關於硬體與軟體的各種概念。
第4章,廣泛介紹各種「輸入」,包括數位輸入與類比輸入,諸如可變電阻、光敏電阻、壓力感測器、磁力感測器、等等,皆有其適合的運用場合。
第5章,介紹各種「視覺」輸出元件,包括可發出各種色彩的RGB LED、能顯示數字的七段顯示器、LED矩陣、以及文字型LCD;加上前一章的輸入裝置後,我們就可以製作各種有趣的小專案。
第6章,介紹「聽覺」方面的零件,包括能發出基本逼逼聲的蜂鳴器,加裝其他輸入裝置製作簡單的玩具鋼琴,然後是電容式麥克風,使得電路也能感知聲音大小。
第7章,除了人為的輸入形式,電子電路也能偵測周遭世界的各項環境數值,包括氣溫、濕度、大氣壓力、海拔高度、等等,運用這些感測器,就能隨時監控植栽的狀況、家居環境的溫度變化、記錄並觀察氣象、等等有趣的專案。
第8章,紅外線這種無線傳輸技術,運用領域非常廣泛,價格低廉且用法簡單,這一章將試著讓Arduino遙控家裡的電器、接收紅外線遙控器並解讀指令,最後會介紹動作偵測器,可用來建構保全系統,監控不明入侵者。
第9章,介紹各種電力來源,以及如何驅動大電壓與大電流,介紹電晶體、達靈頓配對、穩壓器、準位調節器與相關原理。
第10章,馬達是非常重要的致動器,能將電能轉為機械能,風扇、電動玩具車、光碟機、等等,裡頭都有馬達,本章將介紹直流馬達、步進馬達、伺服馬達的原理與用法,並運用直流馬達製作能自行避開障礙物的超音波自走車。
第11章,想要達成萬物聯網的夢想,就需要各種傳輸技術,本章將介紹藍牙、以太網路、WiFi。
第12章,除了購買非常方便的Arduino開發板之外,我們也能在麵包板(或洞洞板)上建構屬於自己的Arduino,本章將介紹USB轉序列傳輸介面、ISP燒錄器、自行製作便宜的並列埠燒路線。
第13章,這是最後一章,介紹本書未能收錄的主題,以及在讀完本書後,下一步可往哪些方向。
附錄A,列出與微控制器開發相關的詞彙與簡短描述。
附錄B,比較Uno與Leonardo這兩塊主流開發板的差異。
附錄C,Arduino核心函式的參考資料。
附錄D:介紹Arduino IDE的設定與目錄結構。
附錄E:各範例專案所需零件材料列表。勘誤表:
如果您發現書中有任何錯誤,還請留言告知,謝謝。
嚴重程度:高
頁數:291
位置:表10.3
修正: 應互換粉紅線與黃線對應的Arduino腳位,將「對應Arduino腳位11的驅動腳位」與「對應Arduino腳位10的驅動腳位」互換
【2016.04.03新增】
頁數:177
位置:圖6-12
修正: 圖中的82kΩ電阻,其一腳接到5V,錯了,應接到GND。
頁數:180
位置:圖6-13
修正: 圖中的82kΩ電阻,其一腳接到5V,錯了,應接到GND。
【2016.05.29新增】
頁數:263
位置:圖9.15的電路圖錯了,其中二極體(1N4001)的接法錯了
修正: 請見下圖,或到GitHub。
嚴重程度:低
頁數:144
位置:所需零件裡的「8×8 陰極單色LED 矩陣」
修正: 將「陰極」改為「共陰極」
頁數:150
位置:程式碼5.9裡面的註解「將資料快閃記憶體裡,不佔用SRAM」
修正: 將「將資料」改為「將資料放進」
頁數:171
位置:第一行末端「音量強落」
修正: 將「強落」改為「強弱」
頁數:
位置:倒數第三行的「2 號計時器則負責腳位11 與3 的PWM」
修正: 將「2 號計時器」改為「2 號計時器(Timer 2)」
頁數:183
位置:6.6 Wave擴充版裡的「由一塊音訊負責解碼檔案」
修正: 將「音訊」改為「音訊晶片」
頁數:228
位置:程式碼8.2裡的註解
修正: 在「Uno是 3 Leonardo是 13 」的「3」與「Leonardo」之間插入逗號「,」
頁數:360
位置:12.2的第一行裡的「第一章」
修正: 將「第一章」改為「第1章」
頁數:368
位置:零件材料裡的電阻,忘記寫上色環
修正: 將「220Ω電阻」改為「220Ω電阻(色環:紅紅棕)」;將「470Ω電阻」改為「470Ω電阻(色環:黃紫棕)」
頁數:387
位置:倒數第三行的「Lego Mindstorm」
修正: 將「Lego Mindstorm」改為「Lego Mindstorms」
【2014.04.16新增】
頁數:308
位置:第一段第四行後面,「比較」重複了
修正: 將「選購時請比較比較能驅動...」改成「選購時請比較能驅動...」
頁數:321
位置:程式碼10.13裡的註解
修正:將「假定當電流從BACKWARD流向FORWARD 輪子往前轉」的「往前轉」改成「往後轉」
頁數:328
位置:程式碼10.17裡的註解
修正:將「假定當電流從BACKWARD流向FORWARD 輪子往前轉」的「往前轉」改成「往後轉」
【2014.08.17新增】
頁數:64
位置:第二段,第二行與第四行,圖編號錯了(有兩處)
修正: 將「圖3.3」改成「圖3.5」(有兩處)
【2014.12.18新增】
頁數:200
位置:倒數第二段,程式庫Timer的網址
修正:若照書中網址下載,將會下載1.x版,但書中範例使用的是2.x版;請改到2.x版的網址https://github.com/JChristensen/Timer/tree/v2.1下載,或是直接使用本書原始碼網站(https://github.com/yehnan/arduino_book_yehnan)裡提供的Timer程式庫。
【2015.04.27新增】
頁數:266
位置:倒數第二段,第三行,有個錯字
修正: 將「答靈頓」改成「達靈頓」
【2016.01.13新增】
頁數:43
位置:第一段第三行,圖標號錯了
修正: 將「圖2.8」改成「圖2.9」
頁數:43
位置:第二段最後一行,圖標號錯了
修正: 將「圖2.9」改成「圖2.10」
頁數:44
位置:第二段第二行,圖標號錯了
修正: 將「圖2.11」改成「圖2.12」
真是佛心來的~~
ReplyDelete好讚哦!^^
ReplyDelete使用書中範例ch10_stepper輸入負數, 28BYJ-48無法逆轉.
ReplyDelete比對馬達規格與stepper library, 發現library是用2相激磁(4拍), 不是用規格建議的1-2相激磁(8拍).
將2相激磁的順序由1010-0110-0101-1001改為1100-0110-0011-1001, 即可順利正逆轉.
如要改為1-2相激磁, 激磁順序為1000-1100-0100-0110-0010-0011-0001-1001.
*2相激磁轉一圈步數為(360/5.625)/2*64=2048
*1-2相激磁轉一圈步數為(360/5.625)*64=4096
以上皆已改stepper.cpp驗證過
謝謝回報錯誤,我將會再確認一次,然後寫在這一篇的勘誤表裡。
Delete謝謝。
謝謝你的指正,我確認過後,不需要修改Stepper.cpp,結果如下:
Delete表10.3有錯誤,粉紅與黃的接法應互換。
粉紅 原本 對應 Arduino 腳位 11 的驅動腳位,請改為「10」。
紅 原本 對應 Arduino 腳位 10 的驅動腳位,請改為「11」。
圖10.9的電路圖是對的,程式碼10.2(ch10_stepper)也是對的,輸入正數會正轉,負數會逆轉。
再次感謝指正。
版主回應好快! 此例剛好改硬體或改軟體皆可, 因我以前本業是IC設計, 如出錯時較傾向改軟不改硬^^
Delete另請教p.290轉動一圈的步數:512步, 是如何得知的? 謝謝您花功夫出了一本很棒的arduino入門書.
從產品網站得知http://www.adafruit.com/products/918,實際上,一圈是32*16.032=513.024步。
Delete哪裡,謝謝購買。
那這樣p.290(搭配1/64減速齒輪箱), 1/64要改為1/16才對.
ReplyDelete我是使用28BYJ-48 5VDC, 它配的才是1/64減速齒輪箱.
http://arduino-info.wikispaces.com/SmallSteppers
規格其實滿混亂的。
Delete在http://forums.adafruit.com/viewtopic.php?f=31&t=41608有打開這顆步進馬達的照片,其馬達核心的確是8步,搭配1/64齒輪箱後得到512。
不過產品網頁卻寫著32-Step 1/16 Gearing(正確數值是16.032)。
所以我書上寫著「搭配1/64減速齒輪」,也不能算錯orz。
事實上,該產品網頁修改過,以前曾經寫著「48-Step 1/16 Gearing」。
至於「512步」,寬鬆一點來說是對的,但若不斷地叫步進馬達轉512步,那麼就會越來越偏移。
感謝提供資訊。
你好葉難大大,我是剛學arduino的新手,剛參考了你的文章,定時timer令led閃亮
ReplyDelete想弄一個定時器,是要發聲的,大大可幫一下忙,寫個簡單的程式碼來參考一下嗎?
我已e-mail了你 我的email是lhyedmond, 謝謝感激不盡。
已回信。
Delete上述174頁的修正,應為172頁
ReplyDeleteThanks.
Delete63頁需更動圖3.3=>需更動圖3.5
ReplyDelete找不到你說的地方耶,可以請您再確認一次嗎?
Delete打錯是64頁
ReplyDelete需更動圖3.3連接開關腳位(但是圖3.3沒有開關)
因該是圖3.5才有開關
謝謝,已更新勘誤表。
Delete請問我用20Mhz的震盪器可以取代16Mhz嗎?
ReplyDeleteArduino很早以前使用的微控制器只能跑到16 MHz,後來的皆可跑到20 MHz,但為了相容起見,仍維持16 MHz。
Delete技術上是可以的,但應該需要修改fuse與其他設定,若真的改為20 MHz,連帶地有些東西也會跟著變動,可能造成某些程式、某些擴充板出問題。
This comment has been removed by the author.
ReplyDelete想請問葉難
ReplyDeleteArduino的thread要如何運用
例如我用紅外線程式庫
感測按鈕為1 為步進正轉
感測按鈕為2 為步進反轉
遇到的問題是當馬達再轉動時,無法再接收紅外線的輸入訊號
懇請指教
「Arduino輕鬆入門:範例分析與實作設計」書中介紹的程式庫AccelStepper,應可達到你的要求。
DeleteOkay I'll get one : )
Delete請問 3.6 的小遊戲,5V 拉到麵包板上方後並沒有接到開關,如何對開關供電?
ReplyDelete謝謝!
3.6有寫了,第69頁,
Delete「省掉了開關需要的下拉電阻...將運用Arduino開發板內建的上拉電阻」
Hi Yehnan,
Delete如 ch03_repeat_after_me_bb 這張圖,圖中的 5V 接到麵包板上方後並沒有與開關或任何元件導通。
這樣看起來開關只有接地跟 input pin 而已?
謝謝!如有誤解敬請見諒
是的,圖中5V接線,其實可以去掉。
Delete「省掉了開關需要的下拉電阻...將運用Arduino開發板內建的上拉電阻,便可省下外接的電阻」,換句話說,就是由Arduino內部提供的上拉電阻(接到5V)連接到開關的某一邊。
程式碼裡需使用pinMode(pin_number, INPUT_PULLUP)來啟動Arduino內部提供的上拉電阻。
Hi Yehnan,
Delete了解了。感謝 :)
這個上拉電阻真好用,電路可以簡潔很多
第43頁第一段第三行:或是使用如圖2.8的洞洞板.....
ReplyDelete應改為圖2.9
第43頁第二段最後一行:尖嘴鉗、斜口鉗、剝線鉗,如圖2.9所示
應改為圖2.10
第44頁第二段第二行:最起碼只需要如圖2.11的烙鐵....
應改為如圖2.12
謝謝。
Delete請問 我們要如何用arduino透過繼電器控制陽極鎖來讓他斷電開門 有沒有一些參考資料
ReplyDelete不就是用arduino控制繼電器,而繼電器接到陽極鎖。
Delete繼電器和陽極鎖,大概都應使用外部電源,與arduino的電源分開。
那繼電器如何控制陽極鎖呢?
Delete嗯,陽極鎖的電源線接電源,接地線接到繼電器的NC(normal close),繼電器的接地線路接地。
Delete當繼電器處於平時狀態,陽極鎖可取得電源,於是上鎖。
當arduino發出訊號給繼電器時,繼電器的NC就不會接到接地,於是陽極鎖沒電,就會開鎖。
大概是這樣吧,要看實際產品而定。陽極鎖裡是不是已經有繼電器呢?