L86duntu

一、簡介

L86duntu 是針對 86Duino 客製化的 Linux 映像檔,內中包含了完整的 Lubuntu 12.04 作業系統,並預先安裝了 GCCPythonJavaNode.jsScratch 等程式開發環境,以及 ROS 機器人作業系統,並且支援 USB WiFi、USB 藍牙、USB 螢幕等外部裝置。這免除使用者自行安裝、設定軟體的鎖碎步驟,進而加快程式開發速度。

針對 86Duino Zero 及 86Duino EduCake 無法連接 VGA 顯卡以輸出 Linux 畫面的情況,L86duntu 也提供了數種遠端登入方法,讓使用者可直接透過 USB Device 介面或網路介面來操作 L86duntu。

二、安裝

L86duntu 需先安裝至 SD 卡,才可在 86Duino 上使用。開始安裝前請先至系統工具下載頁面下載 L86duntu 壓縮檔。在不同的作業系統下,安裝的方法稍有不同,請根據您個人電腦使用的作業系統選擇安裝教學:

如果您使用 86Duino One,把安裝有 L86duntu 的 SD 卡插入 One 的 SD 卡插槽,並接上 VGA 顯卡及 USB 鍵盤,通電開機之後即可像操作普通個人電腦一樣地直接操作 L86duntu,所下圖所示:

86Duino_and_VGA_card

至於無法連接 VGA 顯卡的 86Duino Zero 及 86Duino Educake,則需藉由遠端登入或主機畫面重定向(Console Redirection)功能才能操作 L86duntu,相關設定及操作方法請見後面第四節及第六節的說明。

三、L86duntu 內含軟體

L86duntu 內建了下列軟體:

作業系統

  • Lubuntu 12.04:Ubuntu Linux 桌面系統計劃的一個分支,特色是輕巧、快速、易上手。

程式語言、軟體開發

應用程式

  • VNC Server 4.1.1:使用 RFB(Remote Framebuffer)協定的螢幕畫面分享及遠端操作軟體。
  • Apache 2.2.22:被廣泛使用的開放原始碼 Web 伺服器。
  • Samba 3.6.3:可讓 Linux 與微軟 Windows 的 SMB/CIFS 通訊協定做連結的軟體。
  • GUVCView 1.5.3:WebCam 影像擷取應用程式。
  • MJPG-streamer:WebCam 即時影像串流程式。

四、登入 L86duntu

當 86Duino 以 LAN 或 WiFi 連接網路,使用者便可在個人電腦上透過網路連線方式遠端登入 L86duntu:

86Lubuntu312

此外,L86duntu 亦內建 USB 虛擬網卡驅動程式(USB Ethernet Gadget),允許使用者僅透過 USB Device 介面,即可實現個人電腦與 86Duino 之間的網路連線,進而達成由個人電腦遠端登入 L86duntu 的功能:

86LubuntuUSBwire

注意,若您個人電腦使用 Windows 作業系統,需先安裝 USB 網卡驅動程式才能透過 USB Device 介面進行 L86duntu 的遠端登入,安裝方式如下,請根據您使用的 Windows 版本選擇對應的教學文章(若您個人電腦使用 Linux 或 Mac OS X 作業系統,則可以跳過此安裝驅動程式步驟):

在建立好電腦與 86Duino 之間的網路連線後,我們可以使用下面任何一種方式來登入 L86duntu:

五、在 L86duntu 與個人電腦之間傳輸檔案

在建立好電腦與 86Duino 之間的網路連線後,我們可以使用下面任何一種方式,在 L86duntu 與個人電腦之間傳輸檔案:

六、啟動內建服務與軟體

L86duntu 有部份內建服務與軟體預設是不啟動的,使用者可以根據實際應用需求,手動啟動它們。下面說明啟動這些服務與軟體的方法:

七、外接裝置

L86duntu 支援數種外接裝置,例如 USB 攝影機及 WiFi 無線網卡等,以下介紹幾種裝置的安裝及設定方法:

八、86Duino Linux SDK

L86duntu 從 1.0 版開始內建 86Duino Linux SDK(原始碼連結),可允許使用者在自行撰寫的 C++ 程式中呼叫 86Duino 的 API 及大部份函式庫來存取 86Duino 提供的各種 I/O 功能,如 digitalRead()digitalWrite()analogRead() 等函數。詳細說明請參閱下列文章:

L86duntu 亦從 1.1 版開始包含了幾個以 86Duino Linux SDK 開發的 I/O 工具小程式,做為 86Duino Linux SDK 的使用範例。這些小工具可在 Linux 下存取 86Duino I/O 介面及顯示系統資訊,列表如下:

  • 86ADC:讀取並顯示 86Duino A/D 接腳上偵測到的數值。
  • 86IO:存取 86Duino 板上 GPIO 接腳。
  • 86CRSBAR:透過設定 Vortex86EX SoC 的 I/O Crossbar,切換 86Duino 部份 I/O 接腳的功能。
  • 86CLOCK:設定 86Duino 的 CPU 工作時脈。
  • 86INFO:顯示 86Duino 的系統資訊。

九、mraa 函式庫

L86duntu 從 1.1 版開始內建由 Intel 發展的 mraa 函式庫,支援在 C/C++、Node.js、Python、Java 多種語言中,透過 mraa 定義的 API 來存取 86Duino 的 I/O 介面,例如:GPIO、UART、SPI、PWM …等。(注意,L86duntu 內建的 mraa 函式庫為 86Duino 專用版本,最新原始碼可在其 GitHub 頁面 找到。)

mraa 函式庫的使用方法可參考 Intel 或 MediaTek Labs 提供的教學文章:

十、即時核心與 EtherCAT 支援

L86duntu 有一個針對即時嵌入式系統、機器人及自動化應用校調的版本,稱為 L86duntu-RT。(L86duntu-RT 映像檔安裝方式與 L86duntu 完全相同。)其除了支援 L86duntu 原本所有功能外,亦內建了 Xenomai 即時 Linux 核心,並且安裝了開源 IgH EtherCAT Master 軟體,其中並包含了 86Duino 內建網路卡 R6040 的 EtherCAT 即時驅動程式,可直接透過 86Duino 板上網路孔連接各種 EtherCAT slave 設備。

下面教學文章簡單介紹在 L86duntu-RT 內以 IgH EtherCAT Master 操作 EtherCAT slave 設備的方法:


展示影片


黑客天地主頁面

The text of the 86Duino reference is licensed under a Creative Commons Attribution-ShareAlike 3.0 License.