2013/02/12

用小磚塊與水泥蓋Raspberry Pi的外殼,非常笨重既不炫也不潮

自從Raspberry Pi問世以來,就有很多商家設計出各式各樣的外殼,也有很多人自己動手製作,琳琅滿目,目不暇給。要賣錢的一般大約350元,好看的約600元,有些鋁製高級品甚至可到2000元之譜。我的Raspberry Pi板子一直都是裸機的狀態,有時放進不合身的紙盒裡,有點可憐啊。

非常漂亮的Pibow,好想要啊。


3D成型機作出來的外殼,酷。


外型是Star Wars鈦戰機的外殼,太屌了。


幾個禮拜前,無意間發現了三和瓦窯的起厝-砌磚組,突然想到,說不定我可以用迷你磚塊與水泥為Raspberry Pi蓋一棟外殼,哇,試試看吧!


三和瓦窯,位於高雄大樹區。


起厝-砌磚組的內容物,製作說明書一張、小磚40塊(約長4  寬2  高1cm)、小半磚12塊(約長2  寬2  高1cm)、膠泥、攪棒及海棉。


首先,排排看,主要是下底與上蓋兩個部分,確認磚塊數量夠不夠。


水泥加水,攪拌待用。


因為「磚」原本應該用「砌」的,一層一層疊上去,一層一層塗上水泥,但我想要的樣子卻是向水平方向展開的,我試了一下,發現並不容易固定,水泥需要滿長時間才會乾掉,所以我只好先用強力膠固定磚塊,組成適當的外型,然後再填入水泥到縫隙裡。

這是下底。


這是上蓋。


等它乾、等它固定,啊哈,完成囉。


放進去吧,不太可能弄的剛剛好,可在板子與磚塊接觸的地方加入一些橡皮,加以固定。


組合後的樣子。








上面留個洞觀看LED。


好重,大概有700g吧,非常笨重既不炫也不潮,哈哈。

2013/02/03

將Arduino Uno當做一台ISP線上燒錄器,燒錄sketch到麵包板上的ATtiny85-20PU晶片

我買了一顆ATtiny85-20PU晶片,裡頭空空的沒有任何sketch。但我有一塊Arduino Uno R3板子,它可化身成一台ISP燒錄器;把ATtiny85-20PU放上麵包板,再接上一些電子元件與線材後,便可從主機電腦透過Arduino Uno R3板、將sketch燒錄到麵包板的ATtiny85-20PU晶片裡。

我的板子是Arduino Uno R3,Arduino軟體開發環境是1.0.3 Windows版,燒錄對象是ATtiny85

本篇介紹的內容,應該也可套用到其他Arduino板子與其他型號的AVR晶片,但我也沒試過,所以此篇內容皆以我的環境為準。(我另一篇是燒錄到ATmega328P-PU。)

若不清楚ISP是什麼意思,若想知道ATtiny85-20PU的PU之意,請參考我寫的:Arduino與AVR微控制器相關詞彙

底下是我的板子Arduino Uno R3,其微控制器晶片是ATmega328P-PU,屬於PDIP封裝。(另有SMD版本。)


首先,要讓Uno板變成一台ISP燒錄器。很簡單,請開啟Arduino軟體開發環境,然後選File - Examples - ArduinoISP,將這支sketch,Upload(上傳、燒錄)進Uno板,如此即可,ArduinoISP這支sketch的功能就是讓Arduino板子變成一台ISP燒錄器。

Arduino軟體開發環境裡支援的板子,其AVR微控制器晶片皆為ATmega系列,所以我們需先讓它支援ATtiny系列。到這裡下載讓Arduino支援ATtiny的檔案(適用於Arduino軟體開發環境1.0.1版與1.0.3版,1.0.2版不行),解壓縮可得到attiny-master目錄,裡面的attiny目錄才是我們要的,含有子目錄variants與boards.txt檔。

然後以Arduino軟體開發環境的File - Preferences的Sketchbook location:查出sketchbook目錄的路徑,將解壓縮後的attiny整個目錄(不是attiny-master目錄),搬移到sketchbook目錄裡的hardware子目錄裡(若無此目錄請自行建立)。

然後重新啟動Arduino軟體開發目錄,應該就能在Tools - Board裡看到新增的ATtiny系列了。


下圖是單獨的ATtiny85-20PU晶片。


接下來,我們想要燒錄sketch到麵包板的ATtiny85-20PU晶片裡,底下是ATtiny85晶片的腳位功能對照,對照這張圖進行接線。


Arduino板的5V與GND接到麵包板。

ATtiny85-20PU的腳位8(VCC)接到5V。
ATtiny85-20PU的腳位4(GND)接地。

然後根據ArduinoISP這支sketch定義的ISP腳位接線,

Arduino Uno板腳位10,接ATtiny85-20PU的腳位1(RESET)。
Arduino Uno板腳位11,接ATtiny85-20PU的腳位5(MOSI)。
Arduino Uno板腳位12,接ATtiny85-20PU的腳位6(MISO)。
Arduino Uno板腳位13,接ATtiny85-20PU的腳位7(SCK)。

另外,因為我將燒錄Blink範例sketch,所以:
ATtiny85-20PU的腳位3(將會對應到Arduino的數位腳位4)串接220 ohm電阻後接LED長腳,LED短腳接地。




如此便完成硬體線路了。

Arduino Uno板以USB線連接主機電腦後,開啟Arduino軟體開發環境,先做一些設定:

  • 設定Tools - Board選為ATtiny85 (internal 1 MHz clock)。這個設定的意思是「被燒錄的對象」。ATtiny85預設使用內部頻率1 MHz。
  • 設定Tools-Serial Port。這是Uno板連接到電腦的序列埠號。
  • 設定Tools - Programmer,選為Arduino as ISP
然後執行File - Upload Using Programmer,便可將sketch透過Arduino Uno板(扮演一台ISP線上燒錄器),燒錄到麵包板上的ATtiny85-20PU晶片裡。

成功後,你應該看到LED閃爍。

內部頻率也可改成8 MHz,請將Tools - Boards改成ATtiny85 (internal 8 MHz clock),然後執行Tools - Burn Bootloader,但其實並沒有定義bootloader的路徑與檔案,所以這個動作將會修改fuse,改變內部頻率。



參考資料:

紅色的Raspberry Pi

原本Raspberry Pi官方授權經銷商有兩家,RS ComponentsPremier Farnell,現在又多了一家Egoman Technology Corp,負責澳門、台灣、香港、中國大陸的銷售事宜。

原文消息網址

外觀將改成紅色,為了與其他地方的板子作區別,因為這些紅色Raspberry Pi沒有FCC/CE安規認證,沒通過這些認證不能輸入到歐盟或美國。

雖然沒有FCC/CE,但板子是相容的,只希望價格不要離$35美金太遠就好了。


2013/02/01

將Arduino Uno當做一台ISP線上燒錄器,燒錄bootloader或sketch到麵包板上的ATmega328P-PU晶片

我買了一顆ATmega328P-PU晶片,裡頭空空的,沒有Arduino的bootloader也沒有任何sketch。但我有一塊Arduino Uno R3板子,它可化身成一台ISP燒錄器;把ATmega328P-PU放上麵包板,再接上一些電子元件與線材後,便可從主機電腦透過Arduino Uno R3板、將bootloader或sketch燒錄到麵包板的ATmega328P-PU晶片裡。

我的板子是Arduino Uno R3,Arduino軟體開發環境是1.0.3 Windows版,燒錄對象是ATmega328P-PU。

本篇介紹的內容,應該也可套用到其他Arduino板子與其他型號的AVR晶片,但我也沒試過,所以此篇內容皆以我的環境為準。(我另一篇是燒錄到ATtiny85-20PU。)

若不清楚ISP是什麼意思,若想知道ATmega328P-PU的P與PU之意,請參考我寫的:Arduino與AVR微控制器相關詞彙

底下是我的板子Arduino Uno R3,其微控制器晶片是ATmega328P-PU,屬於PDIP封裝。(另有SMD版本。)


首先,要讓Uno板變成一台ISP燒錄器。很簡單,請開啟Arduino軟體開發環境,然後選File - Examples - ArduinoISP,將這支sketch,Upload(上傳、燒錄)進Uno板,如此即可,ArduinoISP這支sketch的功能就是讓Arduino板子變成一台ISP燒錄器。

底下是單獨的ATmega328P-PU晶片。


接下來,我們想要將bootloader燒錄到麵包板的ATmega328P-PU晶片裡,需要一些硬體線路,所需電子元件如下:

  • 16 MHz crystal石英晶體
  • 10K ohm電阻
  • 18~22 pF陶瓷電容,2個

也可以燒錄一般的sketch,之後將會燒錄Blink範例(閃爍LED),所以還需要底下的元件:
  • LED
  • 220 ohm電阻

底下是ATmega328晶片的腳位功能對照(328與168是一樣的),對照這張圖進行接線。


Arduino板的5V與GND接到麵包板。
ATmega328P-PU的腳位7(VCC)、20(AVCC)接到5V。
ATmega328P-PU的腳位8(GND)、22(GND)接地。





然後是16 MHz石英晶體(不分極性),兩隻腳分別接一個18~22 pF陶瓷電容後,接地。陶瓷電容不分極性。

ATmega328P-PU的腳位9(XTAL1)、10(XTAL2)接到石英晶體的兩隻腳。




然後根據ArduinoISP這支sketch定義的ISP腳位接線,

ATmega328P-PU的腳位1(RESET)接5V。

Arduino Uno板腳位10,接ATmega328P-PU的腳位1(RESET)。
Arduino Uno板腳位11,接ATmega328P-PU的腳位17(MOSI)。
Arduino Uno板腳位12,接ATmega328P-PU的腳位18(MISO)。
Arduino Uno板腳位13,接ATmega328P-PU的腳位19(SCK)。




如此便完成硬體線路了,接下來要燒錄bootloader。

Arduino Uno板以USB線連接主機電腦後,開啟Arduino軟體開發環境,先做一些設定:
  • 設定Tools - Board選為Uno。這個設定的意思是「被燒錄的對象」,但我們並不是要燒錄到Uno板子,因為Uno板使用的晶片跟麵包板上的ATmega328P-PU相同,所以選此設定,但選Arduino Duemilanove w/ ATmega328也是可行的,不過會有些差異,譬如說將燒錄不同版本的bootloader,詳情請見Arduino軟體開發環境目錄\hardware\arduino\boards.txt。如果要燒錄別的型號的晶片,就要選別的選項,甚至要動手修改boards.txt自己新增。
  • 設定Tools-Serial Port。這是Uno板連接到電腦的序列埠號。
  • 設定Tools - Programmer,選為Arduino as ISP

然後執行Tools - Burn Bootloader,便可將bootloader透過Arduino Uno板(扮演一台ISP線上燒錄器),燒錄到麵包板上的ATmega328P-PU晶片裡。

會顯示訊息Burning bootloader to I/O Board (this may take a minute)...,會花一點時間,以我的環境來說不到1分鐘。

之後會顯示Done burning bootloader.,代表成功了。只要再加上USB轉TTL序列訊號的電路(譬如SparkFun的Breakout Board for FT232RL USB to Serial),就幾乎等同於一塊普通的Arduino板子了。

相關參考資料請看Physical Computing at ITP的教學文章Setting up an Arduino on a breadboard、swf.com.tw的用麵包板組裝Arduino微電腦實驗板、Dale Wheat的How to Build an Arduino-compatible Physical Computing Platform on a Solderless Breadboard

接下來要把一般的sketch燒錄到麵包板上的ATmega328P-PU晶片裡。

有一個作法是,拔除Uno板的晶片,然後修改接線(板子的0 RX接到晶片的2、板子的1 TX接到晶片的3),這麼一來,就能跟平常一樣,Upload(上傳、燒錄)一般的sketch了。這種作法就好像是以麵包板的晶片取代Uno板的晶片。詳情請見Arduino官方網站的From Arduino to a Microcontroller on a Breadboard

上述作法,bootloader與sketch共存,就跟平常使用Arduino板子時一樣。

底下介紹的作法,燒錄sketch會蓋掉先前的bootloader。

原先的接線維持不變,Arduino Uno板仍然扮演ISP燒錄器的角色。

讓我們試著燒錄閃爍LED的sketch,先接好硬體線路,麵包板的ATmega328P-PU晶片的腳位4(就是Arduino數位腳位2),接220 ohm電阻後、接LED長腳,LED短腳接地。




開啟File-Examples-01.Basics-Blink,將sketch裡頭設定的腳位13改為2,然後執行File - Upload Using Programmer,便能將sketch透過Arduino Uno板(扮演ISP線上燒錄器)燒錄到麵包板的ATmega328P-PU晶片裡,成功的話,就能看到LED閃爍。


參考資料: