ev3 编程中各程序块之间的关联

28人阅读 评论(0) 收藏 举报
分类:

在特殊场合的 ev3 模型中, 可能会用到不止一个 brick
(官方将之称为程序块).
程序块之间可以通过两种方式连接: 有线和无线. 有线是指
USB 线, 无线是指 wifi 或 蓝牙. 这两种试是相互排斥的.

USB 连接

通过 USB 线将多个程序块连接在一起的方式, 官方称为 “菊链”, 最多可以将
4 个程序块连接在一起. 在官方文档中, 对 “菊链” 的描述如下:

通过菊链可以使用 EV3 USB 电缆将 EV3
程序块连接在一起. 随后可以使用链中的第一个 EV3 程序块控制电机, 并读取菊链 EV3
程序块的传感器. 可以有多达四个 EV3 程序块形成菊链.

在使用方式上, 一般将第一个程序块当作主控器, 其它程序块作为被控制一方

比如一个当作有线遥控器, 控制其它程序块的运行. 这种情况下,
只要在作为主控器的程序块上布置软件即可, 被控制的主控器不需要布置程序,
也就不需要启动任何程序. 在操控时, 启动主控器上的程序, 对主控器进行操作,
从而给受控制的程序块发指令, 由受控制方具体驱动电机和传感器.

通过 “菊链” 模式将多个程序块连接在一起时, 比如连接方式为

A-->B-->C-->D

每个程序块在连接体系具有 “层” 级的概念. 在上述连接中,
总共分为 4 层. A 为第一层, B 为第二层, C 为第三层, D 为第四层. 运行于
A 的程序通过指定 “层”, 可以控制 B, C, D.

在编写程序时, 打开 “菊链” 模式, 传感器和电机的图标上的标题栏将出现层级的编辑框,
从而允许选择控制哪一层的电机或获取哪一层的传感器的输入.

无线连接

这里只描述蓝牙连接方式.

通过蓝牙方式连接在一起的程序块, 各程序块之间没有主从关系, 也没有 “层” 的概念,
各程序块之间通过 “消息” 进行通信. 在官方文档中, 对消息的描述为

消息传递模块用于在 EV3 程序块之间发送蓝牙消息. 要发送或接收消息,
必须先通过程序块蓝牙菜单或通过蓝牙连接模块连接 EV3 程序块.

消息以三个组件为特征

  1. 在其之间传递消息的程序块
  2. 标识消息的消息标题
  3. “消息”值. 这可能是文本, 数字或逻辑

通过指定程序块, 可以指定消息的接收方 (由哪个程序块接收); 通过标题,
可以将消息限定在某个消息组; 最后才是消息值,
不同标题具有相同消息值的消息属于两条不同的消息.

通过蓝牙方式连接, 最多可以连接 7 个程序块. 通过消息机制,
可以搭建非常复杂的模型, 可以编写非常复杂的程序.

其它

通过使用发线, 通过 USB 连接时, 受控的程序块对指令的执行感觉不到延迟;
而通过蓝牙连接时, 消息在传递时会有较大的延迟, 对于对电机进行精细控制时,
会出现断断续续的现象, 也许是我的使用方式有问题吧 (-^-).

由于会看本文的都是用过 EV3 的人, 就不贴图了!

查看评论

9x下通过执行文件名获得进程ID的方法

注:pe.szExeFile有时候是全路经文件名,有时候只是文件名,原因有待考究,或者请哪位高手指教DWORD GetProcessIdFromName(LPCTSTR name){ PROCESSE...
  • Smile_Tiger
  • Smile_Tiger
  • 2001-01-08 17:10:00
  • 982

Hacking EV3系列之六:iOS使用Direct Command 控制EV3

在上一篇文章中,我们已经实现了iOS通过BTstack给EV3发送Message! 但仅仅发送Message显然不是我们的目标! 我们要控制EV3的动作! 这需要依靠EV3协议中的Direct Co...
  • songrotek
  • songrotek
  • 2014-03-02 13:50:54
  • 6693

【iOS与EV3混合机器人编程系列之三】编写EV3 Port Viewer 应用监测EV3端口数据

在前两篇文章中,我们对iOS与EV3混合机器人编程做了一个基本的设想,并且介绍了要完成项目所需的软硬件准备和知识准备。那么在今天这一篇文章中,我们将直接真正开始项目实践。==第一个项目: EV3 Po...
  • songrotek
  • songrotek
  • 2014-07-13 14:18:00
  • 6056

【iOS与EV3混合机器人编程系列之一】iOS要干嘛?EV3可以更酷!

乐高Mindstorm EV3智能机器人(以下简称EV3)自从在2013年的CES(Consumer Electronics Show美国消费电子展)上展出之后,就吸引了全球广大机器人爱好者的眼球!E...
  • songrotek
  • songrotek
  • 2014-07-10 11:43:38
  • 16512

学习EV3的JAVA编程(step 1)

Part1:安装 不管电脑支持32/64我们安装的所有软件都需要32位的。eclipse ,只需要”eclipse ide for java developer”对于只使用leJOS 就够了。乐高的...
  • corner_rx
  • corner_rx
  • 2018-01-17 16:20:53
  • 158

安装LEGO软件遇到的问题

前段时间买回来的乐高机器人EV3,一直没有对它进行编程,只是女儿组装它,因此没有在PC上安装软件。昨天星期六,女儿组好一个模型之后,需要对它编程,因而需要在PC上安装编程的软件,这时才从乐高网站上下载...
  • caimouse
  • caimouse
  • 2015-04-19 16:50:27
  • 5021

【iOS与EV3混合机器人编程系列之六】iOS_WiFi_EV3_Library 剖析之发送命令给EV3

在上一篇文章中,我们已经知道了如何通过WiFi将iOS设备和EV3连接起来,那么下一步的工作就是从iOS设备中发送命令给EV3并接收EV3返回的数据。这也是本篇文章将告诉大家的。首先要明确的一点是本开...
  • songrotek
  • songrotek
  • 2014-07-20 12:58:32
  • 6380

Hacking EV3系列之一:自编iOS app控制EV3之资料收集与分析

EV3自从去年发布之后, 因为配备了ARM处理器,底层又是Linux,还支持Bluetooth和WiFi, 已经吸引了大量爱好者在Hacking!我也算其中之一吧,就是晚了点。 从今天网上搜集的信息...
  • songrotek
  • songrotek
  • 2014-03-01 17:17:39
  • 5873

Lego EV3魔方机器人工程图及程序

  • 2018年01月25日 13:49
  • 1.84MB
  • 下载

Hacking EV3系列之七:iPhone 手势无线控制LEGO EV3 Gyro Boy 机器人

视频链接: 点击打开链接 说明:使用Gyro Boy源程序修改加上蓝牙控制信号。手机端使用陀螺仪计算来实现手势操作。手机向前倾则加速,向后则减速。向左左拐,向右右拐。加减速视频中不是很...
  • songrotek
  • songrotek
  • 2014-03-22 16:07:45
  • 5658
    个人资料
    等级:
    访问量: 234
    积分: 191
    排名: 92万+
    文章分类
    文章存档