BeagleBone Black 上手體驗
發展歷史
第一代 BeagleBoard 開發板推出於2008年,第三代開發板被命名為 BeagleBone,從這一代開始將 GPIO 口統一放置到開發板的兩側了。BeagleBone Black 誕生於2013年,它是繼 BeagleBone 後的新版本,中國版的價格是 399 RMB。BeagleBoard 家族的開發板均採用德州儀器的 ARM 處理器,BeagleBoard 系列開發板的一大優點是它的開源硬體設計及預設執行開源軟體。這意味著 BeagleBoard 所有版本的設計原理圖都是開放的,這些設計可以被任何人複製、修改和使用。
硬體概覽
序號 | 模組 | 描述 |
---|---|---|
1 | 處理器 | 德州儀器 Sitara AM3358 ARM [email protected] 1 GHz 處理器下面的是 512MB DDR3 RAM |
2 | 電源介面 | BBB 需要 5V/1000mA 的直流電 大部分的 5V DC電源介面卡都可以給 BBB 供電 在電源插口附近有一個電壓保護器 如果接入 5~12V 的電源,它可以保護你的板子不被燒壞 但是,最好保證你給板子的是 5V 電源 |
3 | 乙太網口 | 標準的 RJ45 乙太網埠 你可以用網線連線板子,也可連線 WiFi |
4 | 復位按鈕 | 復位鍵 |
5 | USB Host | 就像電腦一樣,可以通過 USB Host 連線鍵盤滑鼠、WiFi 介面卡 |
6 | 板載 LEDs | 板子上有幾個 LED 燈 其中靠近電源插口的是用來指示有電源供電 而靠近reset的4個led你可以用程式控制他們 預設情況下 led 0 代表你的系統正在運轉,以心跳模式閃爍 led 1 代表 micro SD 卡在使用中 led 2 閃爍表示 CPU 正在活動 led 3 閃爍代表板載快閃記憶體正在被使用中 |
7 | GPIO 擴充套件口 | 可以直接插入其他硬體外掛板實現更多功能 最多連續疊加4塊外掛板 |
8 | Mini USB 介面 | 當通過這個 USB 口連上電腦時,可以像一個裝置那樣被電腦識別 電腦可以通過這個埠給板子供電,也可以通過這個埠與板子通訊。 同時,在電腦上的板子就像一個儲存裝置一樣 不過,用這個埠給板子供電時,處理器速度會變慢來減少板子的耗電 |
9 | Micro SD card 插槽 | BBB 沒有硬碟驅動器,取而代之的是 Micro SD 卡, 可以用來儲存作業系統,程式以及你的資料, 在 BBB 上作業系統儲存在板載快閃記憶體上 可以通過 Micro SD 卡來升級 |
10 | Micro HDMI 介面 | 可以用 micro HDMI 介面來把 BBB 連線到顯示器或者電視上 這個介面看上去和 Mini USB 介面很相似,所以你最好看清楚 |
11 | 除錯串列埠 | 可以通過 USB 轉串列埠裝置連線電腦和這個除錯串列埠,從而登入終端控制檯 |
12 | 板載快閃記憶體 | 2 GB eMMC Flash 儲存器 |
13 | Boot Switch 按鈕 | 長按這個鍵可以讓你的板子從 Micro SD 而不是板載快閃記憶體啟動 |
登入控制檯
BeagleBone Black 比上一代 BeagleBone 新增了串列埠除錯引腳,我們直接把串列埠轉 USB 模組的 TXD,RXD 和地線連到對應的引腳上(如圖所示),無需進行任何配置,立刻就能開始使用了。
登入使用者:root
系統檢查
板載快閃記憶體
BeagleBone Black 中國版配置的板載快閃記憶體大小為 2GB,這類似於電腦配置一個 2GB 的硬碟的概念。
[email protected]:~# df -h
Filesystem Size Used Avail Use% Mounted on
rootfs 1.7G 1.4G 237M 86% /
udev 10M 0 10M 0% /dev
tmpfs 100M 556K 99M 1% /run
/dev/disk/by-uuid/7dcc1ad1-bbf5-4d1d-acb9-5bbfd7e4630f 1.7G 1.4G 237M 86% /
tmpfs 249M 0 249M 0% /dev/shm
tmpfs 249M 0 249M 0% /sys/fs/cgroup
tmpfs 100M 0 100M 0% /run/user
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/mmcblk0p1 96M 72M 25M 75% /boot/uboot
乙太網
BeagleBone Black 配置了乙太網口,該網口允許通過乙太網將 BBB 連線到網路中,最大速率為 100Mbit/s
[email protected]:~# ifconfig eth0
eth0 Link encap:Ethernet HWaddr c8:a0:30:aa:45:33
inet addr:192.168.3.2 Bcast:192.168.3.255 Mask:255.255.255.0
inet6 addr: fe80::caa0:30ff:feaa:4533/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2867283 errors:0 dropped:7770 overruns:0 frame:0
TX packets:41726 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:224632977 (214.2 MiB) TX bytes:3013218 (2.8 MiB)
Interrupt:40
也可以通過 USB Host 口外接 WiFi 介面卡來提供無線網路,這種連線方式會更加方便。
GPIO 介面
BeagleBone Black 的兩側是 GPIO 介面,在物理上分為兩個叢集,分別是 P8 和 P9,每個叢集又分別有46個介面,可以插入連線線。通過這些 GPIO 介面,我們可以連線其他模組來實現更多功能。
訪問 Web 伺服器
我們可以將 BeagleBone Black 通過 USB 線連線到電腦,為了和 BBB 通訊,需要在你的電腦中安裝相應的驅動程式。如果你的電腦是 Win7,只需通過 USB 介面將 BBB 連線到電腦,預先儲存在 BBB 上的驅動程式將自動安裝,所以不需要花費額外的時間去尋找這些驅動。大夥也可以從 BeagleBoard 的網站下載相應的驅動程式。
因為我手頭上沒有 mini USB 線,所以我準備直接通過網口訪問。
根據工作環境的情況,我將修改 /etc/network/interfaces 檔案,為 eth0 網絡卡設定靜態 IP:
auto eth0
iface eth0 inet static
address 192.168.3.2
netmask 255.255.255.0
network 192.168.3.0
gateway 192.168.3.1
開啟 Chrome 或 Firefox 瀏覽器,輸入 http://192.168.3.2 即可訪問 BeagleBone Black 的 Web 伺服器。如果你使用 USB 連線,預設情況下則應該輸入 http://192.168.7.2
程式設計:點燈實驗
想編寫可以在 BeagleBone Black 上執行的程式,除了使用 C/C++ 之外,還可以使用 Python 和 BoneScript 語言。
在上面開啟的網頁中,左邊導航欄找到 “Cloud9 IDE”,點選進去按提示操作即可在新標籤頁中開啟一個 Cloud9 線上程式設計環境,這是一個強大的、直接執行在 BeagleBone Black 上的 Web 版本的 IDE。接下來,我們將在這裡實現點燈實驗。
首先點選 Cloud9 IDE 主視窗中的 “+” 按鈕,選擇 “New File” 開啟一個空白檔案,儲存為 blink.js。然後,編寫如下程式碼:
var bbb = require('bonescript');
var state = bbb.LOW;
bbb.pinMode('USR1', bbb.OUTPUT);
setInterval(blink, 1000);
console.log('Hello, World!');
function blink() {
if(state == bbb.LOW) {
state = bbb.HIGH;
} else {
state = bbb.LOW;
}
bbb.digitalWrite('USR1', state);
}
儲存程式碼,點選 “Run” 即可執行,你會在 Cloud9 IDE 的頁面底部標籤 “/blink.js - Running” 中看到打印出來的 “Hello, World!”。
這個實驗是通過 BoneScript 庫來控制 LED 燈閃爍及列印訊息到控制檯。需要注意的是,BoneScript 只在 bonescript 庫中做了定義,底層的語法和結構是用 JavaScript 編寫的。可以看到,使用 BoneScript 程式設計非常方便,但也有它的侷限性。如果面對更復雜的程式碼和功能,還是建議使用 C/C++ 和 Python 來編寫。