L86duntu
一、简介
L86duntu 是针对 86Duino 客制化的 Linux 映像档,内中包含了完整的 Lubuntu 12.04 作业系统,并预先安装了 GCC、Python、Java、Node.js、Scratch 等程式开发环境,以及 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,所下图所示:
至于无法连接 VGA 显卡的 86Duino Zero 及 86Duino Educake,则需藉由远端登入或主机画面重定向(Console Redirection)功能才能操作 L86duntu,相关设定及操作方法请见后面第四节及第六节的说明。
三、L86duntu 内含软体
L86duntu 内建了下列软体:
作业系统
- Lubuntu 12.04:Ubuntu Linux 桌面系统计划的一个分支,特色是轻巧、快速、易上手。
程式语言、软体开发
- GCC 4.9.2
- Java 8
- Python 2.7.3
- Node.js 0.10.42
- Scratch 1.4.0.6
- ROS (Robot Operating System) Hydro Medusa
- OpenCV 2.4.9
应用程式
- 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:
此外,L86duntu 亦内建 USB 虚拟网卡驱动程式(USB Ethernet Gadget),允许使用者仅透过 USB Device 介面,即可实现个人电脑与 86Duino 之间的网路连线,进而达成由个人电脑远端登入 L86duntu 的功能:
注意,若您个人电脑使用 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 提供的教学文章:
- ICS Using MRAA 白皮书(英文 PDF 档)
- 在 C/C++ 语言中使用的 API 手册
- 在 Java 语言中使用的 API 手册
- 在 Node.js 语言中使用的简明范例
- 在 Python 语言中使用的简明范例
十、即时核心与 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.