2015年2月23日 星期一

Raspberry Pi B+ 入手順便讓他唱小蘋果

以下會簡單介紹 Raspberry Pi 的用途,安裝 Raspbain 作業系統,最後寫一個 Python 程式讓 Raspberry Pi 透過蜂鳴器唱出世界名曲-小蘋果。廢話不多說直接先 po 成果:


流水帳

Raspberry Pi 出一陣子了,突然想買是因為最近出二代了,價錢不變但 CPU 變四核心,也就還蠻心動的,在 RS 上買含運也不到1200元, 但下完單才發現三月中才能拿到(靠!我是想買來過年玩的誒),就在機器人王國又花了一千七百多買了Raspberry Pi B+ 套餐(多外殼,5V2A 電源 + 金士頓 16G micro SD 卡),現在算算反正我一時用不到很多輸出,應該就直接花五百單買出清中的 Raspberry Pi B 就夠了。總共我買了以下設備:

2015-02-13 15.11.49
  • Raspberry Pi 2 B(還在海上...)
  • Raspberry Pi B+
  • b+ 透明外殼(可用在 2 上)
  • 5V2A 電源
  • 金士頓 class 10 16G micro SD 卡
  • 羅技無線鍵盤 k400r(含觸碰板)
  • 麵包板
  • 杜邦線公+母
  • LED
  • 電阻
  • 蜂鳴器

Raspberry Pi 能做啥?

反正出發點跟百元筆電一樣,是希望大家能以比較低的價格擁有一個能寫程式的硬體,基本上可以想成一台像信用卡大小的電腦,上面跑 Linux 的作業系統,插上滑鼠鍵盤再用 HDMI 輸出到螢幕上就是一台電腦。

因為價格實在太便宜了,除了拿來當電腦用以外,有人會拿來安裝軟體/作業系統,把 Raspberry Pi 搖身一變當成 Web Server,家庭娛樂中心,NAS,電動模擬器來使用。

2015-02-14 11.20.25

另外 Raspberry Pi 版子上有一組 GPIO 輸入輸出界面,裝上感應器/攝影機當輸入,裝上馬達/蜂鳴器/LED Matrix 當輸出,輸出輸入都可以透過程式(Python,Java...)的方式來控制,對軟體工程師來說,瞬間突破了只能用鍵盤當輸入,螢幕顯示當輸出的限制,感覺又可以幹很多壞事了...

安裝 OS

我選的是最多人用的 Raspbain,參考官方說明絕對不會錯,大概步驟如下:
  1. 格式化 SD 卡
  2. 下載 Raspbain
  3. 透過特殊軟體將 Raspbain 寫到 SD 卡上
  4. SD 卡裝到 Raspberry 後開機
  5. 第一次開機會進入設定畫面(鍵盤,語系,開啟 SSH...etc)
裝完後,基本上你就有一台圖形化的 Linux 電腦可用了。

第一支 Script

因為之後這台 Raspberry Pi 可能會拿來拿去,不想每一次都要接上螢幕鍵盤進去看 IP,所以想要一開機就自己把自己取得的 IP 寄到我的 Gmail 信箱,詳細步驟如下:
  1. 寫一個 Python Script - send_ip.py (程式碼參考下面)取得 IP 透過 Gmail 寄到你指定的信箱。
  2. 寫一個 Script - laucher.sh 內容為執行 send_ip.py。
  3. 將 laucher.sh 設定成開機時會自動執行。
    1. 將 launcher.sh 拷貝到 /etc/initd
    2. sudo update-rc.d launcher.sh defaults # 新增開機執行
    3. sudo chmod +x /etc/init.d/launcher.sh # 增加執行的權限
這樣每次開機就會收到 Raspberry 取得的 IP,我就可以用這 IP 來連 SSH。如果屌一點應該要改成用外接 LED 跑馬燈的方式來顯示取得的 IP。


小蘋果

書看再多還不如動手做比較印象深刻,我買 Raspberry Pi 主要是想玩一些硬體的東西,未來搭配程式可以做一些小玩具,第一支程式的目標是讓 Raspberry Pi 唱出小蘋果,當然一開始是完全沒頭緒,只知道用 Python 可以控制 GPIO,GPIO 的訊號可以控制蜂鳴器發出聲音。

一開始是直接 SSH 連進去用 vim 寫 Python,好處是直接在上面跑結果,但 vim 對我來說還是有些難用。後來想改用在 macbook pro 上用 IDE 寫,然後透過 git 兩邊作同步的方式,但實際應用每次修改都要上 commit / push,Raspberry Pi 又要 pull 下來才能執行,感覺更麻煩了。

最終改用 FTP + git 的方式來開發,Raspberry Pi 上裝 vftpd 當作 FTP Server,在 macbook pro 上開發透過 FTP 上傳到 Raspberry Pi(部署至硬體),Raspberry Pi 執行成功在 commit 到 git 上(版本控管)。FTP 上傳這段,應該有 IDE 支援,不過過年時間有限 + 還不確定未來都是用 Python 來開發,就先這樣。

上網找到這影片如下,最後我的接法跟他差不多。


  • 硬體部分:透過 GPIO 接上蜂鳴器當輸出。
  • 軟體部分:透過 Python (程式碼如下)控制 GPIO 接上蜂鳴器的針腳,改變其發生頻率和播放時間。
最終就可以聽到小蘋果了!

參考:

結語

整篇文章看完,我們可以得到以下結論:
  • Raspberry Pi 不會很貴!
  • Raspberry Pi 可以拿來當 Linux Server 用!
  • 透過 Raspberry Pi 的 GPIO,程式設計師可以有更多種輸入/輸出的選擇!

0 則回應:

Related Posts Plugin for WordPress, Blogger...