此函式库实作了 86Duino 操控伺服马达的功能,可最多同时操控 45 个伺服马达。86Duino 的 Servo 函式库除了与 Arduino 的 Servo 函式库相容以外,我们也对 PWM 生成算法作了改进,使得 PWM 抖动(jitter)现象受到抑制,在 86Duino 上不论同时操控几颗伺服马达,PWM 抖动现象都不会恶化,且抖动幅度比 Arduino 的 Servo 函式库更小,详见此篇文章说明。 由于共用相同的计时器产生 PWM 脉波,Servo 函式库与 analogWrite() 函式不能同时使用,应特别注意。 电路 伺服马达有三条线,分别是电源线、地线、讯号线。电源线通常是红色,如果使用的伺服马达需要的是 5V 的电源,可以把伺服马达的电源线插在 86Duino 上的 5V 电源输出脚位。地线通常是黑色或棕色,可以连接到 86Duino 上有标示 GND 脚位。讯号线通常是黄色、橘色或白色,讯号线应该要连接到 86Duino 上的数位脚位。要注意一点,如果要连接的伺服马达所需电流很大或是要同时操控多颗马达,应该要使用额外的电源供电给马达,当马达使用的电不是来自 86Duino 时,要把马达使用的外部电源与 86Duino 共地。 函式 - attach() - write() - writeMicroseconds() - […]
SD 函式库实作对 86Duino MicroSD 插槽的 MicroSD 卡读取和写入资料的功能。SD 函式库支援 SD 和 SDHC 的 MicroSD 卡。格式化 MicroSD 卡时可以选择 FAT16 或是 FAT32,这两种档案系统都被支援。SD 函式库也支援同时开启多个档案。指定档案路径时,可以使用 / 说明位于资料夹下的档案,例如:资料夹名称1/资料夹名称2/档案名称.txt。SD 函式库预设的初始资料夹位址是根目录(也就是 /),因此 /档案名称.txt 和 档案名称.txt 这两个路径是相同的。 在使用 MicroSD 卡前必须先格式化成 FAT16 或是 FAT32。在这篇文章裡有说明以 MicroSD 执行韧体系统的优点。另外,您如果希望制作一片没有可开机磁区的 MicroSD 卡,让 86Duino 在插着 MicroSD 卡的前提下还能从板上内建的 Flash 开机,可参考此篇教学。 SD 类别 SD 类别实作操作资料夹和档案的功能 - begin() - exists() - mkdir() - […]
这个函式库让 86Duino 可以控制使用 Hitachi HD44780 晶片或是相容于该晶片的液晶显示器(LiquidCrystal displays, LCDs),而使用这类晶片的液晶显示器佔了大多数。这个函式库支援 4 或 8 位元的模式,也就是说资料线可以用 4 或 8 条。 函式 - LiquidCrystal() - begin() - clear() - home() - setCursor() - write() - print() - cursor() - noCursor() - blink() - noBlink() - display() - noDisplay() - scrollDisplayLeft() - scrollDisplayRight() - autoscroll() - noAutoscroll() - leftToRight() - rightToLeft() […]
86Duino SysImage 是一个可在 MicroSD 卡上建立 86Duino 韧体系统的工具程式,主要可用于: 建立用 MicroSD 卡开机的 86Duino 韧体系统(参考:以 MicroSD 卡执行 86Duino 韧体系统的好处) 更新 86Duino 内建 Flash 里的韧体系统(包含 bootloader) 更新 86Duino 的 BIOS 本文将以 Ubuntu 为例,介绍 SysImage 在 Linux 系统下的安装,至于其使用方式,请参阅此连结。 事前准备材料 一个空的 MicroSD 卡(容量必须不小于 1GB) 一个 MicroSD 读卡机 Step 1 下载最新版本的 86Duino SysImage。将其解压缩至 /tmp 目录后, 您会看到大小约 1GB 的 86duino.img 档案。 Step 2 […]
当您成功将 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 更新 […]
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 是一个可在 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 是一个可在 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:使用 […]
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() - […]
大多的 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 […]