1.遇到 Scratch 2.0 – 有趣且容易上手的图形程式开发介面 Scratch 是麻省理工学院(MIT) 所发展跨平台、支援中文的程式语言,它主要用来创造互动式故事、动画、游戏、音乐和艺术,是一套视觉化的程式语言,使用拖曳、组合的方法,就可以编写程式码并执行,适用儿童学习数学以及逻辑训练,藉由这些学习也可以加强他们对设计流程的认识,但请注意,Scratch 本身并不支援 Arduino、86Duino,所以没有提供 Arduino 或 86Duino 积木方块,因此无法用 Scratch 来写 Arduino 或 86Duino 程式。 2.S4A、S2A 的出现 – 在 Scratch 上编写 Arduino 程式成为可能 有团队注意到 Scratch 简单的操作介面,开发了 S4A,这个团队是 Citilab。 S4A 是 Scratch for Arduino 的缩写,本身有和 Scratch 2.0 相似的图形操作介面,一执行就可以和 Arduino 硬体沟通 (必须先烧录 S4A 韧体),它提供了 Arduino 专用积木,透过拖拉组合的方式来编写 Arduino 程式,写好就可以立即执行,不需要透过 Arduino IDE 敲打程式码再烧录到板子上,大大降低小朋友学习 […]
86Scratch 是一套连接 Scratch 2.0 和 86Duino 的软体,允许使用者在 Scratch 2.0 中使用拖拉积木的方式,写程式控制 86Duino 开发板和基于 86Duino 的机器人。 86Scratch 开发经过 这里描述了 86Scratch 从无到有的过程,也顺便介绍 86Duino 团队的开发人员和负责项目。 86Scratch 下载和安装方法 请选择您的作业系统 : Windows Linux (Coming soon…) Mac (Coming soon…) 86Scratch 的使用方法 操作流程简介 86Scratch 完全用图形画面引导您,轻松连接 86Duino 和 Scratch 2.0 http://www.youtube.com/embed/QdQzyM3Uc8Y 内建教案简要介绍 从上面操作流程我们可以看到,点击 86Scratch 首页的 "载入教案"后,画面左边会出现数个教案, 其中 4 个教案是内建的,分别是 : I. S2A‧86强化形态 : […]
86Duino IDE 从 Coding 316 开始加入此函式库,移植自 S2A 的 FirmataPlus 函式库并加以改进,提供 86Duino 与 Scratch 2.0 连线的功能。 函式库参考主页面 86Duino 参考资料的文本遵循知识共享署名-相同方式共享 3.0 授权证。参考资料中的程式码范例已发布到公共领域。
专案起源 功能说明 准备材料 硬体架设 环境设定 程式解说 成果展示 相关连结 专案起源 此专案源起自魔人从阴间回到DM&P本部后迎来的尾牙聚餐, 「什麽!?我才刚回来就这麽不巧的轮到我们部门表演?」 正当魔人准备落跑时,被老大逮了个正着, 「既然你回来了,那我们来搞个机器人跳舞的尾牙表演吧!」 随后魔人就被指派为此专案的负责人。 功能说明 群组机器人跳妖怪舞,这是一个利用ROS系统来建立起所有机器人沟通与同步的系统,并利用86ME来编及机器人跳舞动作。 在此专案中使用了机械蝎子史加纳、两台人型机器、七台86小六足以及安装好ROS系统的笔记型电脑。 并利用ESP8266来让所有机器人可以通过网路来同步动作。 准备材料 安装好ROS系统的电脑 数台机器人 与机器人数量相符的86Duino Zero/One 与机器人数量相符的ESP8266 硬体架设 为了机器人美观与牢固性,此专案利用86Duino的CrossBar的特异功能, 将UART Port切换到相对应的脚位上,使ESP8266能直接插在SPI PORT上, 首先介绍一般ESP8266的接法及使用: 一般我们可以利用杜邦线将ESP8266与86Duino连接, 但这样连接的话既不美观也不牢固。 如果各位想和魔人一样使用此特异功能,那必须先做出一个ESP8266转SPI插槽的转接座。 材料为: 两颗母座2×5 ROHS 一条cable 多一条cable线的用意是要让ESP8266接到3.3v的电源。 对照过后本魔认为将SPIDI改TX、SPICS改RX会比较好施工。 由于只需要TX、RX、GND,所以转接头只需焊3Pins,而3.3v直接焊cable线。 完成后建议在中间灌入热熔胶,固定并防止短路。 结束后就可以将ESP8266接在SPI插槽上了! 环境设定 ROS的安装与建设可以参考ROS官方网站 程式解说 首先来看整体的控制架构(HOST端): 使用irrKlang函式库来播放音乐, 将音乐分段后将字串指令传送给机器人端, 当然,指令若是分得越细就可以使同步的频率提高。 而在主程式中,使用了一个迴圈来等待命令的输入。 在此可以看到我设定了许多不同的按键,用来测试不同的动作,而在按下数字2时将会进入同步播放的模式。 而RTmode开启后会使迴圈不断进入同步状态,迴圈内将会判断音乐时间轴以决定要送出相对的动作指令给机器人们。 机器人端则是使用86ME来编排每段的动作, 在Github中可以找到此专案在86ME上的设定及动作档案。 编辑完动作档后选择ESP8266来接收ROSHOST的指令, […]
专案起源 功能说明 准备材料 硬体架设 环境设定 程式解说 成果展示 相关连结 专案起源 此专案源起自妖怪舞专案时魔人整理办公室外空间时,老大见状说:「这块空间做成公园种种花草似乎不错。」 魔人无心的附和了一句:「那我们可以做个自动浇水的系统耶!」 老大思考了一下说:「这真是个好主意!」 随后魔人就被指派为此专案的负责人。 智能盆栽浇水宝(以下简称栽宝ZaiBo),ZaiBo 是一个在 86Duino Zeo上使用 L86duntu作业系统的工具程式,使用 USB WiFi 网卡做一个IOT系统。 功能说明 ZaiBo分为两种模式: 第一种为完整版,使用USB Display提供触控功能、自动浇水并且有远端监控等功能。 第二种为精简版,精简版虽然没有自动浇水功能,但它可以提醒使用者浇水,并且採用TFT LCD做为简易的萤幕,而网站功能皆相同。 ZaiBo除了把原始码公开以外,也将建构教学也一併公开,任何人都可以自由使用、修改、散佈。 — 自动浇水 — 使用者可以依据不同品种的盆栽来设定土壤湿度低于多少才浇水。 — 即时检视 — 使用者可以在ZaiBo上的触控萤幕进行互动。 — 远端监控 — 使用者可以开启ZaiBo网站进行即时监控,支援即时影像与资料显示,也可以使用网站功能进行远端控制。 — 提醒通知 — 使用者可以设定土壤湿度过低时寄信提醒使用者浇水,也可以开启自动浇水模式,并设定水桶水量不足时可以寄信提醒使用者补水。 — 记录图表 — ZaiBo也有记录功能,使用者可以在网站上看到过往的图表资料。 准备材料 86Duino Zero MicroSD 卡 USB Wifi […]
描述 由 RobovieMaker2 产生的 .ini 动作设定档裡,载入指定的伺服机偏移量微调值。 语法 myoffset.load(filename, offset_name) 参数 myoffset:ServoOffsetVstone 型别的物件。 filename:由 RobovieMaker2 所产生的 .ini 动作设定档名称。注意:此函式只会到 SD 卡的根目录下寻找指定档案,假如您的 86Duino 没有插入 SD 卡,或者 SD 卡中没有指定档案,则载入会失败。 offset_name:RobovieMaker2 动作设定档中的偏移量微调值(Offset)名称(可在 RobovieMaker2 中查询取得)。 回传 true:档案载入成功。 false:档案载入失败。 范例 See also - offsets[] - save() 函式库参考主页面 The text of the 86Duino reference is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. […]
描述 将 offsets[] 阵列的内容储存为可被 ServoFrame 载入的伺服机偏移量微调值档案。 语法 myoffset.save(filename) 参数 myoffset:ServoOffsetVstone 型别的物件。 filename:指定的档案名称。注意:档案会储存至 SD 卡的根目录下,假如您的 86Duino 没有插入 SD 卡,则储存会失败。 回传 true:档案储存成功。 false:档案储存失败。 范例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #include <Servo86.h> ServoOffsetVstone myoffset; void setup() { myoffset.offsets[0] = -200; // 设定伺服机偏移量微调数值 myoffset.offsets[1] = 50; myoffset.offsets[2] = […]
描述 将 Offset 偏移量列表分别指定给各伺服机。 语法 servooffsetvstone.setOffsets() servooffsetvstone.setOffsets(servo1) servooffsetvstone.setOffsets(servo1, servo2) servooffsetvstone.setOffsets(servo1, servo2, … , servo45) 参数 servooffsetvstone:ServoOffsetVstone 型别的变数。 servo1 ~ servo45:Servo 型别的变数。 回传 无 范例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 #include <Servo86.h> Servo myservo0; Servo myservo1; Servo myservo2; ServoOffsetVstone myoffset; void setup() { myservo0.attach(9); myservo1.attach(11); […]
描述 储存使用者自订的机器人偏移量。每个 Servo 偏移量的范围为 -256 ~ 256,单位为 us。 此阵列中存放所有 Servo 的偏移量,其值可由使用者自行指定,阵列中第一个元素值,代表第一 channel 的 Servo 偏移量,第二个元素值代表第二 channel 的 Servo 偏移量,依此类推。 您可以呼叫 attach() 来指定 offsets[] 对应到的 86Duino 脚位(见下面范例)。 语法 servooffsetvstone.offsets[channel] 参数 servooffsetvstone:ServoOffsetVstone 型别的变数。 channel:范围:0 ~ 44,其值代表第 n channel 的 Servo。 假如您是使用 load() 读取 Vstone Offset 档案,那么 channel 数将会固定是 30 组,第 0 至第 29 组 channel 的 Offset […]
描述 初始化 ServoOffsetVstone 类别。 ServoOffsetVstone 是继承于 ServoOffset 类别,能从 RobovieMaker2 动作编辑器产生的动作设定档里载入偏移量微调值。 语法 ServoOffsetVstone myoffset ServoOffsetVstone myoffset(filename, offset_name) 参数 filename:由 RobovieMaker2 所产生的 .ini 动作设定档名称。 offset_name:RobovieMaker2 动作设定档中的偏移量微调值(Offset)名称(可在 RobovieMaker2 中查询取得)。 如果有输入以上两个参数,则 ServoOffsetVstone 在初始化类别时,会自动从该档案载入偏移量微调值做为初始值。请注意,您必须将档案放在 SD 卡根目录下;假如您的 86Duino 没有置入 SD 卡,或者 SD 卡内不包含动作档案,则档案载入会失败。 范例 See also - offsets[] - setOffsets() 函式库参考主页面 The text of the 86Duino reference is licensed under a […]