Java Embedded(3)Raspberry Pi 硬體週邊與作業系統設定 by Michael | CodeData
top

Java Embedded(3)Raspberry Pi 硬體週邊與作業系統設定

分享:

Java Embedded(2)安裝 Java Embedded 開發環境 << 前情

3-1 準備好Raspberry Pi與需要的設備

目前已經安裝好Java SE 8與Java SE Embedded 8 JDK,也瞭解Java SE Embedded的基本概念,接下來就開始準備嵌入式應用程式運作的設備,包含Raspberry Pi與必要的週邊設備,還有讓Raspberry Pi可以運作的作業系統。

Raspberry Pi是Raspberry Pi基金會研發的單板電腦,以提供學校電腦教育為目的。目前Raspberry Pi基金會授權給兩家經銷商,在官方網站http://www.raspberrypi.org/buy/提供它們的連結:

JavaEmbedded_03_01

兩家經銷商中的「element 14」提供台灣的的購物網站http://tw.element14.com/,進入網站後,搜尋產品「Raspbery Pi」,可以看到所有相關的商品:

JavaEmbedded_03_02

目前Raspberry Pi最新的產品是「Raspberry Pi 2 Model B」,建議購買Pi 2 Model B或Pi Model B+。在台灣有其它許多購買Raspberry Pi的管道,請你自行搜尋與比較,例如運費、保固與開發技術的支援。

準備好Raspberry Pi以後,接下來認識其它需要的週邊設備:

  • 電源 :跟一般電腦一樣,Raspbery Pi需要供應電源才可以運作。有兩個選擇:
    • Raspberry Pi有一個Micro USB的電源輸入埠,規格是5V、700-1200mA(Model B+是5V、1500-2000mA),如果你剛好有5V、2A(2000mA)的電源供應器,例如行動電話的充電器,就可以直接使用。
    • 供應電源的USB Hub,可以直接由Hub經由USB供電給Raspbery Pi,而且USB連接埠也比較夠用。(實際在Model B+測試,無法使用USB Hub供應電源,可能是因為我的USB Hub供電電流不足)
  • USB鍵盤 :在第一次開機的時後一定會用到
  • USB滑鼠 :在視窗環境下設定WiFi網路連線的時候使用,會比較簡單、方便一些
  • Micro SD記憶卡:Raspbery Pi的作業系統與儲存設備使用Micro SD記憶卡,官方網站建議容量是4GB,速度是class 4。建議使用8GB的容量,速度可以選擇class 10。(Model B使用SD記憶卡,Model B+與Pi 2 Model B使用Micro SD記憶卡)
  • HDMI連接線 :連接Raspberry Pi的HDMI埠到螢幕
  • 網路設備 :下載需要的檔案與遠端控制。有兩個選擇:
    • 使用網路線連接到Raspberry Pi。
    • 如果有WiFI的話,建議使用WiFi USB網路卡,會比較方便一些。Raspberry Pi支援的WiFi USB網路卡非常多,可以參考這個網站http://elinux.org/RPiUSBWi-Fi_Adapters。我使用的「EDIMAX EW-7811Un」與「D-Link DWA-125」,都沒有任何問題。

這是Raspberry Pi Model B連接好設備以後的樣子(使用USB Hub供應電源,USB WiFi無線網卡):

JavaEmbedded_03_03

另外這張圖片,使用一般行動電話使用的充電器(5V1A),連接到Raspberry Pi的Micro USB供應電源,使用網路線連接到RJ45埠:

JavaEmbedded_03_04

為了在學習Java嵌入式程式設計的過程可以節省一些費用,建議儘量使用現有的設備。

3-2 建立Raspberry Pi的作業系統記憶卡

準備好需要的硬體設備以後,就剩下Raspberry Pi作業系統的部份了。Raspberry Pi使用記憶卡為主要的儲存設備,所以作業系統也必須安裝在記憶卡。Raspberry Pi支援許多Linux作業系統,官方網站提供幾種不同的選擇,開啟官方網站的下載網頁http://www.raspberrypi.org/downloads/,選擇「RASPBIAN」的「Download ZIP」:

JavaEmbedded_03_05

檔案大約有800多MB,所以需要花費一些時間下載。儲存下載的檔案,解壓縮檔案後,就可以看到一個檔名為「2015-02-16-raspbian-wheezy.img」的作業系統檔案。(因為官方網站會不定期更新,所以檔案名稱可能不一樣)

建議先移除電腦所有的儲存設備,例如USB隨身碟與外接硬碟,把準備好的記憶卡插入電腦,確認記憶卡配置的磁碟機代號。要特別注意,執行後面的步驟以後,記憶卡的內容會全部清空,如果需要的話,先執行備份的工作。

接下來需要把作業系統檔案燒錄到記憶卡,在Windows環境下,需要下載額外的軟體。開啟這個網頁http://fedoraproject.org/wiki/FedoraARMInstaller,點選「Windows Zip Archive」下載需要的檔案:

JavaEmbedded_03_06

儲存並解壓縮下載的檔案,在解壓縮的目錄下,找到「fedora-arm-installer-2.exe」檔案,按滑鼠右鍵,選擇「以系統管理員身份執行」,啟動這個應用程式。出現應用程式畫面後,選擇「Browse」按鈕,選擇剛才下載與解壓縮的作業系統檔案:

JavaEmbedded_03_07

JavaEmbedded_03_08

在應用程式畫面的「Destination」選擇SD記憶卡配置的磁碟機代號(請小心選擇),然後選擇「Install」按鈕:

JavaEmbedded_03_09

在確認的對話框選擇「Yes」按鈕:

JavaEmbedded_03_10

應用程式開始儲存作業系統檔案到記憶卡,這個工作需要花費一些時間:

JavaEmbedded_03_11

完成工作後,關閉應用程式,並退出記憶卡:

JavaEmbedded_03_12

3-3 Raspberry Pi作業系統的初始設定

完成硬體設備和作業系統記憶卡的準備工作後,接下來就可以在Raspberry Pi啟動作業系統,並執行第一次開機的初始設定。檢查是否已經連接好這些需要的設備:

  • 電源 :獨立或使用USB Hub供應電源(先不要開啟電源)
  • SD記憶卡 :已經安裝好作業系統的SD記憶卡
  • 網路 :網路線或WiFi USB網路卡
  • HDMI :連接到螢幕
  • 鍵盤與滑鼠

確認已經連接好設備以後,連接或開啟電源,Raspberry Pi會亮起紅色的電源指示燈,讀取儲存設備的時候,也會有黃色的指示燈,螢幕開始顯示開機過程的訊息:

JavaEmbedded_03_13

第一次開機的時候,系統會自動進入設定畫面:

JavaEmbedded_03_14

接下來在文字選單畫面中執行設定的工作:

  1. 選擇「1. Expand Filesystem」,擴大記憶卡的使用空間
  2. 選擇「2. Change User Password」,更改預設使用者「pi」的密碼
  3. 選擇「4. Internationalisation Options -> Change Locale」,使用空白鍵勾選「enUS.UTF-8 UTF-8」與「zhTW.UTF-8 UTF-8」,取消預設已經勾選的「en_GB,UTF-8 UTF-8」,設定完成後按「Enter」鍵確認
  4. 選擇「4. Internationalisation Options -> Change Timezone」,選擇「Asia, Taipei」
  5. 選擇「4. Internationalisation Options -> Change Keyboard Layout」,依照順序選擇:
    • Generic 105-key(Intl) PC
    • Other
    • English (US)
    • English (US)
    • The default for the keyboard layout
    • No compose key
    • No
  6. 選擇「8. Advanced Options -> Memory Split」,輸入「128」(這個設定是為了讓JavaFX應用程式可以運作的順暢一些)
  7. 選擇「8. Advanced Options -> SSH」,選擇「Enable」

完成上面的設定以後,選擇「Finish」後選擇「Yes」,系統會重新開機。開機完成後,使用帳號「pi」,上面設定好的密碼登入系統。如果你使用網路線連接到Raspberry Pi,可以輸入下列的指令檢查IP位址:

ifconfig

檢查畫面上的資訊,把IP位址記起來:

JavaEmbedded_03_15

3-5 設定無線網路與固定的IP位址

在後續使用Rasperry Pi的時候,經常需要執行連線與傳輸檔案的工作,使用Raspberry Pi支援的USB Wifi網路卡,並為它設定一個固定的IP位址,會是比較方便一些。如果你有無線網路的設備,而且已經準備好USB無線網路卡,啟動Raspberry Pi並登入後,把USB無線網路卡插入Raspberry Pi的USB埠,執行「lsusb」指令檢查是否支援這個USB無線網路卡設備。下面是使用EdiMax EW-7811Un的顯示的訊息:

pi@raspberrypi:~$ lsusb

Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. 
Bus 001 Device 004: ID 7392:7811 Edimax Technology Co., Ltd EW-7811Un 802.11n Wireless Adapter [Realtek RTL8188CUS]

確定作業系統支援你的USB無線網路卡以後,執行下列的指令準備使用nano編輯網路設定檔。因為網路設定檔是作業系統的設定檔,所以在nano之前加上sudo,表示使用管理員的權限執行修改檔案的工作:

sudo nano /etc/network/interfaces

執行指令以後畫面顯示的是原來預設的設定檔內容,把原來預設的設定修改為下列的內容:

auto lo

iface lo inet loopback

auto wlan0

iface wlan0 inet static
    address 你為Raspberry Pi決定的IP位址
    netmask 子網路遮罩
    gateway 預設閘道/路由器
    wpa-ssid 無線網路的名稱
    wpa-psk 無線網路的密碼

修改後的內容會像這樣,裡面的設定值需要依照你實際的網路環境調整:

auto lo

iface lo inet loopback

auto wlan0

iface wlan0 inet static
address 192.168.1.101
netmask 255.255.255.0
gateway 192.168.0.1
wpa-ssid yourwifi
wpa-psk yourpassword

修改完成以後,依序按下「Ctrl+X」、「Y」與「Enter」鍵,儲存修改後的設定檔案。執行下面關機的指令:

sudo poweroff

等候Raspberry Pi完成關機以後再關閉電源,確認USB無線網路卡已經插入Raspberry Pi的USB埠,啟動並登入Raspberry Pi,執行「ifconfig」指令確認網路的設定是否正確。無線網路的名稱是「wlan0」,所以執行「ifconfig wlan0」指令,顯示無線網路的狀態就可以了:

pi@raspberrypi:~$ ifconfig wlan0
wlan0     Link encap:Ethernet  HWaddr 80:1f:02:fd:ad:b0  
          inet addr:192.168.1.101  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

確認正確設定網路以後,可以使用「ping」指令測試網路連線是否正確。執行「ping 主機名稱/IP位址」指令,可以測試與指定主機之間的網路通訊,執行這個指令以後會持續的測試,所以要自己按「Ctrl + C」停止,在畫面顯示「^C」訊息後停止ping應用程式(168.95.1.1是一家電信公司的DNS伺服器IP位址):

pi@raspberrypi:~$ ping 168.95.1.1
PING 168.95.1.1 (168.95.1.1) 56(84) bytes of data.
64 bytes from 168.95.1.1: icmp_req=1 ttl=247 time=15.4 ms
64 bytes from 168.95.1.1: icmp_req=2 ttl=247 time=8.06 ms
64 bytes from 168.95.1.1: icmp_req=3 ttl=247 time=9.89 ms
64 bytes from 168.95.1.1: icmp_req=4 ttl=247 time=9.67 ms
64 bytes from 168.95.1.1: icmp_req=5 ttl=247 time=12.1 ms
64 bytes from 168.95.1.1: icmp_req=6 ttl=247 time=8.56 ms
^C
--- 168.95.1.1 ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 5008ms
rtt min/avg/max/mdev = 8.069/10.635/15.429/2.510 ms

如果畫面顯示類似上面的訊息,表示你的Raspberry Pi已經可以經由無線網路連接到網際網路,而且IP固定為你設定的位址。

3-6 遠端連線與傳輸檔案

安裝好Raspberry Pi作業系統與網路連線以後,後續的工作雖然可以直接在Raspberry Pi操作,不過每次都要接上螢幕與鍵盤,會比較麻煩一些。大部份的工作,可以在你工作的電腦,使用遠端連線到Raspberry Pi執行操作,為Raspberry Pi接上作業系統記憶卡、網路與電源,等候Raspberry Pi開機完成後,就可以不用管它了。

在使用Raspberry Pi的時候,通常需要傳輸一些檔案,還有在連線以後執行指令。Windows作業系統沒有提供SSH(Secure Shell)與SCP(Secure Copy)工具程式,如果你已經有熟悉的工具程式,就直接使用它們。如果沒有的話,Windows比較常見的工具程式有Putty,開啟這個網頁http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html,下載並儲存「putty.exe」與「pscp.exe」:

JavaEmbedded_03_17

先使用putty測試遠端連線,執行下載的putty.exe,在出現的視窗中選擇「Session」目錄;在「Host Name(or IP address)」輸入Raspberry Pi的IP位址;在「Saved Sessions」輸入一個自己取的連線名稱;最後選擇「Save」按鈕儲存:

JavaEmbedded_03_18

雙擊已經儲存的連線設定:

JavaEmbedded_03_19

選擇「Yes」按鈕:

JavaEmbedded_03_20

在啟動的連線視窗,輸入帳號「pi」與設定的密碼,出現像這樣的畫面,就表示已經連線到Raspberry Pi:

JavaEmbedded_03_21

如果需要傳輸檔案到Raspberry Pi,可以使用剛才下載的pscp.exe工具程式,這是它的基本使用方式:

pscp 要傳輸的檔案 帳號@IP位址:儲存的位置

如果需要傳輸一個名稱為「hellorpi.txt」的檔案到Raspberry Pi,開啟一個命令提示字元,切換到儲存pscp.exe工具程式的目錄,執行下列的指令:

cd C:\JavaEmbedded
C:\JavaEmbedded>pscp hellorpi.txt pi@192.168.1.105:/home/pi
pi@192.168.1.105's password:
hellorpi.txt              | 0 kB |   0.0 kB/s | ETA: 00:00:00 | 100%

傳輸成功以後,回到putty的視窗,可以執行「ls」指令,看看是不是多了傳輸的檔案。

使用完Raspberry Pi以後,儘量不要直接關閉它的電源,在連線到Raspberry Pi的putty視窗,輸入下列的指令執行關機的步驟:

sudo shutdown -h now

等待Raspberry Pi關機以後,再關閉它的電源。

課程相關的檔案都可以GitHub瀏覽與下載。

https://github.com/macdidi5/JavaEmbedded

前情 >> Java Embedded (4)建立 Raspberry Pi 上的 Java 執行環境

分享:
按讚!加入 CodeData Facebook 粉絲群

相關文章

留言

留言請先。還沒帳號註冊也可以使用FacebookGoogle+登錄留言

熱門論壇文章

熱門技術文章