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.