Articles Posted by the Author:

  • 86Duino SysImage 使用教学

    86Duino SysImage 使用教学

    当您成功将 86Duino SysImage 烧录至 MicroSD 卡后,您的 86Duino 便可使用此 MicroSD 卡开机,MicroSD 里包含整套的 86Duino 韧体系统,并且已包含一个称为 SysImage 的复杂 sketch 程式,您可透过它执行下列动作: 更新 86Duino 内建 Flash 里的韧体系统(包含 bootloader) 更新 86Duino 的 BIOS SysImage 在执行时会以 3 次短闪 2 次长闪的节奏点亮 86Duino 上的 LED 点,您可据此判断 SysImage 是否正在执行。若您不需要 SysImage,您可随时以 86Duino Coding 将您自己的 sketch 程式上传到 MicroSD 卡上,将 SysImage 盖掉。 下面我们介绍 SysImage 的使用方式。 开始使用 SysImage 更新 […]


  • Firmata 函式库

    Firmata 函式库

    Firmate 是一个规范微处理器如何与主机端互相传递资料的协定。Firmata 详细的协定内容可以看 wiki page 或是 Firmate 官网。 Firmata 函式库实作了 Firmata 协定,让使用者可以製作自己的韧体而不需要另外建立微处理器与主机端之间的沟通方式。 我们拍了一个使用 86Duino 与电脑透过 Firmata 函式库传递资料的范例影片,也许你会有兴趣。 方法 begin() 启动 Firmata 函式库 begin(long) 启动 Firmata 函式库并同时设定与主机端传输资料时的鲍率(baud rate) printVersion() 传送使用的 Firmata 版本到主机端 blinkVersion() 使用 pin 13 连接的 LED 标示目前 Firmate 使用的版本 printFirmwareVersion() 传送韧体名称和版本到主机端 setFirmwareVersion(byte major, byte minor) 设定韧体名称和版本,使用草稿码(sketch)的档案名称(不包含副档名, 如:.ino, .pde) 传送讯息: sendAnalog(byte pin, int value) 传送类比讯息到主机端 […]


  • 86Duino SysImage 安装方式 (Mac OS X)

    86Duino SysImage 安装方式 (Mac OS X)

    86Duino SysImage 是一个可在 MicroSD 卡上建立 86Duino 韧体系统的工具程式,主要可用于: 建立用 MicroSD 卡开机的 86Duino 韧体系统(参考:以 MicroSD 卡执行 86Duino 韧体系统的好处) 更新 86Duino 内建 Flash 里的韧体系统(包含 bootloader) 更新 86Duino 的 BIOS 本文将介绍 SysImage 的安装,至于其使用方式,请参阅此连结。 事前准备材料 一个空的 MicroSD 卡(容量必须不小于 1GB) 一个 MicroSD 读卡机 Step 1 下载最新版本的 86Duino SysImage。将其解压缩至 /tmp 目录后, 您会看到大小约 1GB 的 86duino.img 档案。 Step 2 接下来准备将 86Duino SysImage 烧录到 […]


  • 86Duino SysImage 安装方式 (Windows)

    86Duino SysImage 安装方式 (Windows)

    86Duino SysImage 是一个可在 MicroSD 卡上建立 86Duino 韧体系统的工具程式,主要可用于: 建立用 MicroSD 卡开机的 86Duino 韧体系统(参考:以 MicroSD 卡执行 86Duino 韧体系统的好处) 更新 86Duino 内建 Flash 里的韧体系统(包含 bootloader) 更新 86Duino 的 BIOS 本文将介绍 SysImage 的安装,至于其使用方式,请参阅此连结。 事前准备材料 一个空的 MicroSD 卡(容量必须不小于 1GB) 一个 MicroSD 读卡机 Step 1 下载最新版本的 86Duino SysImage。将其解压缩至 c:\ 后,您会看到大小约 1GB 的 86duino.img 档案。 Step 2 您可以使用 2 种工具程式来还原 86Duino SysImage:使用 […]


  • Ethernet 函式库

    Ethernet 函式库

    86Duino 内建 10/100Mbps 的网路介面,不需使用 Arduino Ethernet Shield 即可连接网际网路。 86Duino 的网路介面透过本章介绍的 Ethernet 函式库控制。 该 Ethernet 函式库可以实做以下两种功能,接收客户端连线要求以及送出连线请求给伺服端。在 86Duino Coding 101 中,该函式库最多同时支援 4 个连线(包含接收请求、送出请求及溷合以上两种);在之后的版本将把上限从 4 提高为 128。 Ethernet 类别 Ethernet 类别初始化 Ethernet 函式库和网路设定。 - begin() - localIP() - localMAC() - maintain() IPAddress 类别 IPAddress 类别用以操作本地和远端 IP 位址。 - IPAddress() Server 类别 Server 类别用以创建伺服端与客户端连接,透过网路传送与接收资料。 - EthernetServer() - begin() - […]


  • EEPROM 函式库

    EEPROM 函式库

    大多的 Arduino 板子含有 实体的 EEPROM,EEPROM 的作用为板子断电后仍可保留住资料 (类似硬碟),但 86Duino 并没有实体 EEPROM。因此,我们实作了 虚拟 EEPROM 软体。实际做法有两种,一种是利用 SPI flash 配上进阶虚拟 EEPROM 演算法来模拟 16KB 大小的 EEPROM 空间。另一种方法是利用 CMOS 空间来模拟 200B 大小的 EEPROM 空间。 此函式库提供对 EEPROM 的读写函式。 函式 - read() - write() - setBank() 注意 当使用 86Duino 的 SysImage 工具来更新存放于 86Duino flash 内的韧体系统时,存放在两种虚拟 EEPROM 空间的资料将被移除。 函式库参考主页面 The text of the 86Duino […]


  • Variables (程式变数)

    Variables (程式变数)

    变数是用来储存资料的地方,它有名字、型别、数值;举个例子,下面这行指令 (又称为 宣告):    int pin = 13; 创建一个名为 pin 的变数,数值为 13,资料型别为 int;后面的程式码你可以透过它的名字来使用这个变数,在使用变数时程式会自动去找出它的值;举个例子,像这个状况:    pinMode(pin, OUTPUT); 变数的好处是你只需要指定一次脚位数字就可以一直去使用它,假如你之后决定要把 pin 13 改为 pin 12 的话你只需要改变一点点程式码即可。你也可以利用语意较清楚的描述来作为变数的名字,使变数所代表的意义更加明确 (例:一支程式控制 RGB LED 的变数叫做 redPin、greenPin、bluePin)。 另外,变数还有比单纯使用一个数字方便的优点:那就是你可以用 指派 的方式去改变一个变数的数值 (以等号表示),举个例子:    pin = 12; 这会把变数的值改变成 12,注意这边并没有指明变数的资料型别,也没有因为指派数值而改变资料型别。变数会永久保持原本的资料型别,只有它的数值会改变 (注:只有在一些语言中有支援,像是 Python,它的资料型别会随着它的数值变化,而不是随变数名称,所以你可以指派任何型别的数值给同一变数,这称为 动态型别;但在 86Duino 和 Arduino 中不支援动态型别功能) 注意:你必须要先宣告变数才可以去指派数值给它,如果你在使用变数之前没有先宣告的话,将会得到以下的讯息:” error: pin was not declared in this scope”。 当你指派变数给另一个变数,你只是复制它的数值到另一个变数的记忆体位置,改变其中一个不会对另一个有影响,举个例子: […]


  • Sketch 入门

    Sketch 入门

    在这个教学中,你将学习到草稿码各部分的运作方式。 草稿码 草稿码(sketch)是 Arduino 与 86Duino 用来称呼一支程式的方式,它是一个上传和运行在 Arduino、86Duino 板上的程式单元。 注解 Blink 草稿码的头几行是 注解: Arduino/86Duino 在运行草稿码时,在 /* 和 */ 之间的每一行叙述都会被忽略 (每一行叙述前面都有一个 *,那只是为了美观,并不是必需的),对阅读草稿码的人来说,注解用来解释这个程式是做什么、是怎么做的、又或者是为何使用这种方法。修改程式码后立即加上注解是一个良好的习惯,好的注解可以帮助你花较少的时间了解程式码的用意,也可以让其他人学习或修改你的程式码。 另一种简洁的注解方式,以 // 开头并且注解一整行;例如:    int ledPin = 13; // LED 连接到数位 pin13 以上的 LED 连接到数位 pin13 这行讯息就是注解 变数 变数 是用来储存数据的地方。它有名字、型态、数值。Blink 草稿码中有一行宣告变数名为 ledPin、型态是 int、初始数值是 13。它用来指示 Arduino / 86Duino 哪一个脚位与 LED 灯相连,在草稿码中每写一次 ledPin,它的值就会被取出来使用。事实上在这个例子中,不一定要创建一个名为 ledPin 的变数,可以直接写 13 […]


  • == 运算子

    == 运算子

    描述 比较两个字串是否相等。比较过程中会区分大小写,所以字串 hello 和字串 HELLO 是不同的。与 String.equals() 的功能是相同的。 语法 string1 == string2 参数 string,string2:String 物件 (字串) 回传 true: 假如 string1 与 string2 相等 false: 与上面结果相反 范例 - StringComparisonOperators See also - String - equals() - equalsIgnoreCase() - compareTo() 语法参考主页面 The text of the 86Duino reference is a modification of the Arduino reference, and is licensed […]


  • + 运算子

    + 运算子

    描述 结合两个字串成为一个新字串。第二组字串会接在第一组字串后面。与呼叫 String.concat() 的结果相同。 语法 string3 = string1 + string 2; string3 += string2; 参数 string,string2,string3:String 物件 (字串) 回传 两个字串结合过后的新字串 范例 - StringAppendOperator See also - String - String Addition operator 语法参考主页面 The text of the 86Duino reference is a modification of the Arduino reference, and is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. […]