描述 载入 RobovieMaker2 的 .txt 动作档案里指定的动作帧。 语法 myframe.load(filename, frame_name) 参数 myframe:ServoFrameVstone 型别的物件。 filename:由 RobovieMaker2 所储存的 .txt 动作档案名称。注意:此函式只会到 SD 卡的根目录下寻找动作档案,假如您的 86Duino 没有插入 SD 卡,或者 SD 卡中没有指定档案,则载入会失败。 frame_name:动作帧的名称(可在 RobovieMaker2 中查询取得)。 回传 true:档案载入成功。 false:档案载入失败。 范例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 #include <Servo86.h> Servo […]
描述 将 positions[] 阵列的内容储存为可被 ServoFrame 载入的动作帧档案。 语法 servoframevstone.save(filename) 参数 myframe:ServoFrameVstone 型别的物件。 filename:动作帧档案的名称。注意:档案会储存至 SD 卡的根目录下,假如您的 86Duino 没有插入 SD 卡,则储存会失败。 回传 true:档案储存成功。 false:档案储存失败。 范例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #include <Servo86.h> ServoFrameVstone myframe; void setup() { myframe.positions[0] = 1800; // 设定 Frame 内容 myframe.positions[1] = 1300; myframe.positions[2] […]
描述 将指定伺服机的目标位置设定为 positions[] 阵列储存的动作帧内容,同时命令伺服机转动。 呼叫 playPositions() 后,您的程式可以去做其他事情,转动伺服机的工作会在背景执行,如果想知道伺服机是否转到目标位置,可以呼叫 isServoMultiMoving() 来检查。 语法 myframe.playPositions() myframe.playPositions(servo0) myframe.playPositions(servo0, servo1) myframe.playPositions(servo0, servo1, ... , servo44) myframe.playPositions(time) myframe.playPositions(time, servo0) myframe.playPositions(time, servo0, servo1) myframe.playPositions(time, servo0, servo1, ... , servo44) 参数 myframe:ServoFrameVstone 型别的物件。 servo0 ~ servo44(可选):Servo 型别的物件;其中 servo0 使用 positions[0] 的值,servo1 使用 positions[1] 的值,以此类推。 time(可选):设定伺服机一起转动到目标位置所使用的时间;若没有设定此值,或者将其设定为 0,则伺服机将会以全速转动。 回传 无 范例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 #include […]
描述 将指定伺服机的目标位置设定为 positions[] 阵列储存的动作帧内容。 语法 myframe.setPositions() myframe.setPositions(servo0) myframe.setPositions(servo0, servo1) myframe.setPositions(servo0, servo1, ... , servo44) myframe.setPositions(time) myframe.setPositions(time, servo0) myframe.setPositions(time, servo0, servo1) myframe.setPositions(time, servo0, servo1, ... , servo44) 参数 myframe:ServoFrameVstone 型别的物件。 servo0 ~ servo44(可选):Servo 型别的物件;其中 servo0 使用 positions[0] 的值,servo1 使用 positions[1] 的值,以此类推。 time(可选):设定伺服机一起转动到目标位置所使用的时间;若没有设定此值,或者将其设定为 0,则伺服机将会以全速转动。 回传 无 范例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 #include […]
描述 存放机器人动作帧的整数阵列,每个阵列元素的值对应一个机器人伺服机的位置,单位为 us。 若 ServoFrameVstone 在初始化时,没有指定载入动作帧档案,则使用者可改由直接设定此阵列的元素值来设定动作帧。 语法 myframe.positions[channel] 参数 myframe:ServoFrameVstone 型别的物件。 channel:指定阵列元素,范围为 0 ~ 44。第 n 个元素值代表要指定给第 n 个 Servo 的位置,请见下面范例说明。 (注意:在 86Duino One 上所有阵列元素都有效;在86Duino EduCake 上只有 0 ~ 25 的范围有效;在 86Duino Zero 上只有 0 ~ 16 的范围有效。) 由于 RobovieMaker2 固定支援 30 轴伺服机,当使用 load() 函式由其动作帧档案载入指定动作帧时,只有 positions[0]、positions[1]、…、positions[29] 会包含有效值,其余阵列元素皆为 0。 回传 无 范例 1 2 3 4 5 6 7 8 9 […]
描述 初始化 ServoFrameVstone 类别。 ServoFrameVstone 是继承自 ServoFrame 类别,能载入用 RobovieMaker2 动作编辑器制作的机器人动作帧。 语法 ServoFrameVstone myframe ServoFrameVstone myframe(filename, frame_name) 参数 filename:由 RobovieMaker2 所儲存 .txt 動作檔案名稱。 frame_name:動作幀的名稱(可在 RobovieMaker2 中查詢取得)。 如果有輸入以上兩個參數,則 ServoFrameVstone 在初始化類別時,會自動載入該檔案內的指定動作幀做為初始動作幀。請注意,您必須將檔案放在 SD 卡根目錄下;假如您的 86Duino 沒有置入 SD 卡,或者 SD 卡內不包含動作檔案,則檔案載入會失敗。 范例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 […]
当 86Duino 通电开机时,BIOS 会到三个地方去寻找可开机磁碟:内建的 Flash 记忆体、SD 卡、USB 随身碟。搜寻顺序是 SD 卡优先,然后是 USB 随身碟,最后才是 Flash。 内建的 Flash 记忆体在出厂时,已经预设安装了 86Duino 韧体系统,如果使用者在 86Duino 上没有插上可开机的 SD 卡或 USB 随身碟,预设就会从 Flash 开机;但如果使用者插上具有开机磁区的 SD 卡或 USB 随身碟,则必须确保该 SD 卡或 USB 随身碟上已安装 86Duino 韧体系统(即安装 SysImage)或其它作业系统(例如 Windows 或 Linux),否则 86Duino 将因找不到作业系统而开机失败。 如果希望能插上 SD 卡或 USB 随身碟,同时又让 86Duino 从 Flash 开机,则必须先将 SD 卡或 USB 随身碟做成没有开机磁区的空白磁碟。以下提供一种制作方法给读者参考。 […]
描述 可关闭由 servoBeginSplineMotion() 开启的曲线插补功能。 86Duino IDE 从 Coding 300 开始支援此函式。 语法 servoEndSplineMotion() 参数 无 回传 无 范例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 #include "Servo86.h" Servo Servo1; Servo Servo2; Servo Servo3; ServoFrame Frames[3]; unsigned long […]
描述 允许使用者指定曲线规划作为伺服机运动轨迹的插补方法,开启曲线插补功能后,可适度抑制机器人运动过程产生的震动,让机器人动作更稳定。 86Duino IDE 从 Coding 300 开始支援此函式。 语法 servoBeginSplineMotion(mode, frames, frameTime, numFrames) 参数 mode:有 3 种模式可选择。 NATURAL_CUBIC:可适度降低机器人运动中的震动,平滑化机器人动作,需要注意的是,为了符合 NATURAL CUBIC SPLINE 公式定义,机器人的 Frame 编排在某些方式下,插补出来的轨迹可能会超出预期动作,如果不希望此状况发生,可使用 CONSTRAINED_CUBIC 模式。 CONSTRAINED_CUBIC:依据 CONSTRAINED CUBIC SPLINE 公式定义,可保证不会有上述 NATURAL_CUBIC 的缺点,但会降低平滑化的效果。 CATMULL_ROM:依据 CATMULL-ROM SPLINE 公式定义,能有效抑制 NATURAL_CUBIC 所产生的 overshooting,且平滑化的效果优于 CONSTRAINED_CUBIC。 (从 Coding 315 开始支援此设定) frames:要进行曲线规划的 frame 阵列。 frameTime:每个 frame 播放的间隔时间阵列(时间单位为 ms)。 numFrames:要进行曲线规划的 frames 数量(即 […]
专案起源 功能说明 准备材料 硬体架设 步态解说 动作编辑 成果展示 相关连结 专案起源 此专案源起自废材小六足专案的衍伸, 「竟然有个 PrintBot Crab 专案和废材小六足那麽类似?」老大说道。 「恩卓博士的士兵C,这个 PrintBot Crab 专案就交给你啦!」 随后士兵C就被指派为此专案的负责人。 功能说明 在 Thingiverse 上有一个有趣的专案叫做 PrintBot Crab,它包含了 GUIA_Printbot_Cangrejo 的组装文件。 我们可以使用 86Duino Enjoy 和 86Duino Zero 实作,并搭配 86ME 使用,就能要让 PrintBot Crab 动起来,连一行程式都不用写呢! 准备材料 把零件用 86Duino Enjoy 印出 首先把 PrintBot Crab 所有的零件用 86Duino Enjoy 印出来(如果在使用 86Duino Enjoy 时有问题可以参考这份教学文件),在用切片软体製作 g-code […]