各位版友晚安!
上篇的動手做自己的智能家電系列-製作遙控器文廣受好評後
小編開始收到詢問:「請問你們是如何決定要買哪塊板子呢?」
之前的動手做自己的智能家電文章中有提到,我們使用的板子是Atmega2560
但是市面上那麼多Arduino板子,我們是如何挑選的呢?
各位別急~~以下且看我們慢慢解釋!
上篇的動手做自己的智能家電系列-製作遙控器文廣受好評後
小編開始收到詢問:「請問你們是如何決定要買哪塊板子呢?」
之前的動手做自己的智能家電文章中有提到,我們使用的板子是Atmega2560
但是市面上那麼多Arduino板子,我們是如何挑選的呢?
各位別急~~以下且看我們慢慢解釋!
這邊要先回到Arduino這平台 (這邊有點深...不想太了解的話可以往下快速略過看結論!)Arduino 通常用在所謂Atmel AVR晶片,而該晶片定義如下:
Atmel AVR系列是一種基於改進的哈佛結構、精簡指令集(Reduced Instruction Set Computing,RISC)的微控制器,由Atmel公司於1996年研發。AVR系列是首次採用快閃記憶體(Flash Memory)作為數據存儲介質的單晶片微控制器之一。
目前該處理器總共有6類:tinyAVR,ATtiny系列;megaAVR,ATmega系列;XMEGA,ATxmega系列;Application-specific AVR,
<<資料來源: http://zh.wikipedia.org/wiki/Atmel_AVR>>
好,我們知道這定義就好
事實上跟我們後面講怎麼挑板子也是沒太大相關...(無誤) 只是想讓大家知道些八卦!
接下來就是正式講小編是如何挑選板子的了!!
1. 去哪買?
之前的文章中已經介紹過,大家可以在 ”露天拍賣”上買到你所有想要的東西,但是也可以選擇”yahoo拍賣”喔!
在瀏覽器搜尋關鍵字(例: atmega 2560)就能找到到你要的結果了!
小編經驗指出,你可以在露天或是Y拍中比價,
基本上功能一樣但是價格差異蠻大的,買家自己要細心比價呦。
2.俗又大碗的Atmega 2560
小編強烈建議各位採用Atmega 2560! (置入性行銷,以下我們簡稱2560)
因為2560的I/O數很多(此外ROM, RAM, flash memory都比較高),
4組UART
16組AD
16MHz的運作時脈
而2560(左)價格與atmega328(右)比起來差不多,也支援各式積木模組,所以小編會建議新手都買這塊板子。
事實上跟我們後面講怎麼挑板子也是沒太大相關...(無誤) 只是想讓大家知道些八卦!
接下來就是正式講小編是如何挑選板子的了!!
1. 去哪買?
之前的文章中已經介紹過,大家可以在 ”露天拍賣”上買到你所有想要的東西,但是也可以選擇”yahoo拍賣”喔!
在瀏覽器搜尋關鍵字(例: atmega 2560)就能找到到你要的結果了!
小編經驗指出,你可以在露天或是Y拍中比價,
基本上功能一樣但是價格差異蠻大的,買家自己要細心比價呦。
2.俗又大碗的Atmega 2560
小編強烈建議各位採用Atmega 2560! (置入性行銷,以下我們簡稱2560)
因為2560的I/O數很多(此外ROM, RAM, flash memory都比較高),
4組UART
16組AD
16MHz的運作時脈
而2560(左)價格與atmega328(右)比起來差不多,也支援各式積木模組,所以小編會建議新手都買這塊板子。
以下為個人經驗分享,
小編曾經使用GPS以及電子羅盤搭配2560來做導航控制,
因為GPS以及電子羅盤皆為UART傳輸,
所以至少需要兩組UART(若使用Atmega328則需採用軟體Serial,但是這樣會消耗PWM腳位,畢竟羊毛出在羊身上),
這時Atmega1280以及Atmega2560就可輕鬆辦到;
另外當需要使用許多類比感測器時(例如同時量測16個位置的溫度),
2560的類比轉數位通道也比328較多;
還有2560的PWM通道達15組,
328只有6組,
因此在控制多軸系統時(例如機器手臂),
2560能夠控制較高的軸數。
根據小編開發的經驗!用他就對了! 能一次省去你很多麻煩!!
最後當你使用arduino的example code時,
若有使用到timer(ex: IR library),則要記得更換腳位,下篇文章會有列表,請參考連結!。更換腳位連結: http://takobear.weebly.com/12/post/2013/06/-arduino-buy-made.html
小編曾經使用GPS以及電子羅盤搭配2560來做導航控制,
因為GPS以及電子羅盤皆為UART傳輸,
所以至少需要兩組UART(若使用Atmega328則需採用軟體Serial,但是這樣會消耗PWM腳位,畢竟羊毛出在羊身上),
這時Atmega1280以及Atmega2560就可輕鬆辦到;
另外當需要使用許多類比感測器時(例如同時量測16個位置的溫度),
2560的類比轉數位通道也比328較多;
還有2560的PWM通道達15組,
328只有6組,
因此在控制多軸系統時(例如機器手臂),
2560能夠控制較高的軸數。
根據小編開發的經驗!用他就對了! 能一次省去你很多麻煩!!
最後當你使用arduino的example code時,
若有使用到timer(ex: IR library),則要記得更換腳位,下篇文章會有列表,請參考連結!。更換腳位連結: http://takobear.weebly.com/12/post/2013/06/-arduino-buy-made.html
3. 開發細節考量
接下來是談開發完成後的工作
好不容易完成開發工作,
準備要縮小電路體積時,
可以考慮使用Atmega nano 328模組(nano 328或 mini 328),
不過這些模組要跟其他積木模組(例如網路模組或藍芽模組)搭配時比較麻煩,
要另外把線拉出來,否則功能跟1點中的atmega328一樣。 (編按: 另外拉線就是很困擾的事..)
市售的集成328模組它分成兩種,
一種含FTDI晶片(底下左圖),
另一種不含(底下右圖),
執行速度上與2560一樣快(16MHz)。
因為arduino是利用COM將程式寫入到Atmega晶片上的,
所以一般需要FTDI(一種把 USB轉成COM的晶片)。
接下來是談開發完成後的工作
好不容易完成開發工作,
準備要縮小電路體積時,
可以考慮使用Atmega nano 328模組(nano 328或 mini 328),
不過這些模組要跟其他積木模組(例如網路模組或藍芽模組)搭配時比較麻煩,
要另外把線拉出來,否則功能跟1點中的atmega328一樣。 (編按: 另外拉線就是很困擾的事..)
市售的集成328模組它分成兩種,
一種含FTDI晶片(底下左圖),
另一種不含(底下右圖),
執行速度上與2560一樣快(16MHz)。
因為arduino是利用COM將程式寫入到Atmega晶片上的,
所以一般需要FTDI(一種把 USB轉成COM的晶片)。
不知道FTDI是什麼的朋友可以參考以下定義喔~
Future Technology Devices Internation, 簡稱FTDI,
是一間蘇格蘭的半導體開發公司所做的,該公司特別擅長處理USB相關科技,
FTDI在開發、製造與支援他們相關的軟體驅動程式去對RS232與TTL序列傳輸控制,
以希望能支援行動裝置的互動體驗
看完定義我想很多人還是跟小編一樣一頭霧水吧!
什麼情況不需要含FTDI的模組呢?
又是甚麼時候呢?
因為他把燒入模組跟單晶片模組分開,
這樣單晶片模組可以比較便宜,
例如你想要組一支arduino機器人隊,你只要買一組燒錄器,
其他的都買不含FTDI的單晶片模組即可。
不過因為Atmega328只有一組UART,
另外PWM組數也沒2560多,
所以你必須了解你其他電路架構後再來看Atmega328夠不夠用。
4. 最後什麼是boot loader?
其實你所買到的Atmega 2560或是 Atmega 328都已經預先燒入boot loader,
boot loader其實就像單晶片的作業系統,
有boot loader的Atmega晶片才能利用arduino將撰寫好的程式碼上載進去,
然後執行。
”有些”市售的單晶片模組是沒有預先燒錄boot loader的,
又或者是你買了一顆全新的Atmega 328的IC然後自己接其他電路(例如晶振、電容和電阻等等),
這時你就麻煩了,
因為你要自己燒boot loader進去才能開始用arduino來開發,
至於怎麼燒,
之後小編會有詳細說明。
但這邊就要請大家繼續關注TakoBear近況!
什麼情況不需要含FTDI的模組呢?
又是甚麼時候呢?
因為他把燒入模組跟單晶片模組分開,
這樣單晶片模組可以比較便宜,
例如你想要組一支arduino機器人隊,你只要買一組燒錄器,
其他的都買不含FTDI的單晶片模組即可。
不過因為Atmega328只有一組UART,
另外PWM組數也沒2560多,
所以你必須了解你其他電路架構後再來看Atmega328夠不夠用。
4. 最後什麼是boot loader?
其實你所買到的Atmega 2560或是 Atmega 328都已經預先燒入boot loader,
boot loader其實就像單晶片的作業系統,
有boot loader的Atmega晶片才能利用arduino將撰寫好的程式碼上載進去,
然後執行。
”有些”市售的單晶片模組是沒有預先燒錄boot loader的,
又或者是你買了一顆全新的Atmega 328的IC然後自己接其他電路(例如晶振、電容和電阻等等),
這時你就麻煩了,
因為你要自己燒boot loader進去才能開始用arduino來開發,
至於怎麼燒,
之後小編會有詳細說明。
但這邊就要請大家繼續關注TakoBear近況!