资料介绍
描述
从为今年的科学项目制作原创作品的意愿开始,我们齐心协力,对现有的LEGO Mindostorms 机器人 MR.B3AM进行了审查设计。与该设计不同,尽管我们的 LEGO EV3 DNA 扫描仪所做的不仅仅是“咀嚼”一块单色砖来说明它的长度,我们的扫描一系列 8 2×2 砖,可以是红色、绿色、蓝色和黄色,将这个序列与如果序列与神话生物的序列匹配,则返回内部数据库并报告。一个项目怎么样!
我们试图解决什么
基本思想非常简单。DNA有四种组合:
- 在
- 助教
- CG
- GC
LEGO EV3 Mindstorms 套装中的颜色传感器可以检测 8 种颜色,其中包括蓝色、绿色、黄色和红色。我们为每个组合分配了一种颜色:
- AT - 蓝色
- 助教 - 绿色
- CG - 黄色
- GC - 红色
由于我们无法构建太长的序列,我们决定将自己限制在 8 个 2x2 的砖块上,这为我们的生物提供了大量的组合。
我儿子认为它们都是神话生物,他想出了 10 个序列:
Alicorn
Chupacabra
Dragon
Gargoyle
Minotaur
Nessie (Loch Ness monster)
Pegasus
Phoenix
Unicorn
Yeti
每种颜色都与一个数字相关联,当需要将信息存储在变量中时,该数字非常方便。当时的序列是:
Alicorn 43255542
Chupacabra 44355232
Dragon 33345422
Gargoyle 43542532
Minotaur 55432224
Nessie (Loch Ness monster) 33225243
Pegasus 35242255
Phoenix 22244535
Unicorn 44352432
Yeti 43255235
构建机器人
现在我们有了我们的样品,我们必须构建机器人并在此过程中对其进行修改,以接受比 MR.B3AM 更大的棒。不得不说,一个人可以用 1x1 和 1xN 底板制造棒,但这些和平很少发生,我们不想等待 Bricklink 运送我们需要的所有东西,更不用说花时间寻找它们了.
正如您可以从下面的照片中看到的那样,与最初的 Mr.B3AM 设计相比,我们的设计略高,4 个齿轮间距更宽。
其余部分没有太大变化,实际上电机和 EV3 积木已按照原始说明安装。
不幸的是,我们没有记录构建过程中所需的更改,但其他人应该不太难弄清楚。
编码
在机械、电子和软件之间保持适当的平衡总是很困难。在某些平台上比其他平台更多。遗憾的是,对于 LEGO EV3,电子方面不可用,因为该平台并没有真正提供任何方法来轻松扩展定制电路,我认为这是一种耻辱,尤其是在 Arduino、ESP 和 Raspberry Pi 的时代。在我们的例子中,由于构建是 MR.B3AM 的模型,因此重点肯定是代码。
我们没有从中获得灵感的是 MR.B3AM 的代码,因为我们最初认为我们知道得更好:) 我们没有:(
视觉平台非常直观,这是我儿子大部分时间都在做的事情。
在第一部分,他的任务是开发主程序,负责将 DNA 棒移动到颜色传感器前,依次检索 2x2 砖块的颜色,说出颜色并显示,存储每种颜色在数字数组名称样本上,重复该过程 8 次并弹出棒。
第二部分要复杂得多,至少对我来说是这样 :) 使用从第一部分收集的样本,他应该使用我的自定义块Find_Sample_DB它返回野兽的名称或未找到以防序列是未知的。然后,他将输出输入到一个开关块中,该开关块播放动物的噪音并显示它的名字。未找到任何内容时,播放错误并显示未知。
在幕后,一系列非平凡的定制块让我有时后悔开始这个项目。例如,数组是一种以不寻常的方式处理的东西,我不得不花一些时间来了解如何使用它们。一旦我完成了阵列比较块,就可以知道我们收集的样本实际上是否与我们的神话生物之一相同。这里的困难是将我在“普通”书面语言中学到的东西分块呈现出来。
在我看来,块失败的地方是,在某些时候你可以很容易地失去情节,特别是如果 GUI 决定重新路由各种电线 OMG!这是一个更复杂的自定义块的情况,我从“DB”文件中读取已知样本并进入临时数组。
DB 只是一个长文本文件,我在其中一个接一个地写下每只野兽的编号。在 8 的倍数中,我可以从一个到另一个,这就是我所做的,因为读取文件块在每次读取后将索引移动到下一个元素。
4
4
3
5
2
4
3
2
3
5
前八个 (0..7) 是独角兽,然后是飞马座 (8, 9),依此类推。
因此,您打开文件并在关闭它之前,尽管最终您必须关闭它,但要对文件中的第 6 个数字说您调用读取文件块 6 次。
这就是File To Array所做的,因此它不会错过第一个序列 我创建了一个特殊的开关,如果指定的偏移量为 0,它什么也不做
该块实际上期望输入数据库文件的名称,一个数字 N 指示从哪里开始寻找 DNA 序列和我们收集的样本。它返回一个数组,代表我们文件中第 N 个野兽的 DNA。
使用这两个自定义块,我可以创建最后三分之一,它需要作为输入文件的名称和收集的样本返回一个字符串,该字符串是未找到的野兽的名称。
如果文件已被读取超过其末尾,则File To Array块将返回 0,这意味着寻找神话野兽的任务最终没有找到。两个红色块和相邻的开关处理这种情况,如果不是我们到达文件末尾的情况,开关告诉我们我们仍然可以并且正在搜索。
第一次进入这个块时,我们从头开始读取数据库文件,我们得到第一个已知序列,恰好是独角兽,然后我们将它与我们收集的样本进行比较。
如果它们是匹配的,那么我们找到了!如果不是,我们将File_Offset变量增加 8 并通过在循环开始处返回来移动到下一个已知序列。
当我们找到样本时,或者如果我们在没有匹配的情况下遍历整个 DB 文件,我们会中断Sample_in_DB循环。退出循环后,我们以数字方式计算匹配的序列并使用开关返回正确的 DNA 序列。例如,如果我们的变量File_Offset是 24,那么我们知道第 3 个生物是匹配的,我们返回一个字符串为 Dragon。返回一个刺痛而不是一个数值让我儿子的事情变得更容易,所以虽然不是最好的方法,但它对我们的需求是有效的。
最后的想法
这是一段很棒的旅程,我和我的儿子在这个平台上学到了很多东西,这个平台既强大又有趣。看看 EV3 如何与MicroPython和Scratch一起工作将会很有趣,以便能够对比和比较每个平台的优缺点,这些平台显然具有不同的年龄目标,但仍然可以提供一些重叠的范围。
我希望传感器和配件不要那么贵,我们喜欢乐高,但这个平台的成本并不能帮助休闲爱好者或不那么富有的人负担得起。在我们的案例中,我认为我们不会轻易冒险购买陀螺仪、超声波传感器或电池组。
平台不开放以方便扩展的事实有点打击,我的意思是乐高毕竟是一块砖上的砖,我知道有保护品牌的愿望和需要,但我我不是封闭系统的忠实拥护者,我认为它们是有限的,而且主要是有限的。
总而言之,这很有趣,如果你碰巧有一辆 EV3,你当然应该花时间探索它的可能性。这个平台已经存在了很长一段时间,也许一个新的平台很快就会出现,事实上我看到其中有很多在 eBay 上出售,所以也许现在是投资的好时机一。
- LEGO EV3 Baby Yoda-Alexa控制的EV3机器人
- 由Mindstorms EV3和Alexa提供支持的LEGO Target Practice
- 由Alexa控制的Lego Mindstorms EV3机器人
- 如何让Lego Ev3机器人与BluPants一起工作
- 3D扫描仪的构建
- 英特尔爱迪生WiFi扫描仪开源分享
- 使用LEGO MINDSTORMS EV3 Amazon Alexa构建的Shelly解决方案
- Alexa EV3糖果机开源分享
- 基特扫描仪开源分享
- DAVID 3D激光扫描仪的中文使用说明书免费下载 11次下载
- 扫描仪电路图 13次下载
- 扫描仪开关电源电路 0次下载
- TL(TL2)型光幕扫描仪
- 基于USB接口的彩色扫描仪的优化设计
- 生物芯片扫描仪设计
- 大幅扫描仪扫描地图怎么操作 746次阅读
- 何为电磁干扰(EMI)扫描仪,哪里需要它? 472次阅读
- 如何选择电磁干扰(EMI)扫描仪,看看这几点 579次阅读
- 3D三维扫描仪的光学测量技术知识 583次阅读
- 工业级gom三维扫描仪的工作原理 981次阅读
- 多功能安全扫描仪工具介绍 831次阅读
- 利用GT511C3指纹传感器模块的指纹扫描仪设计 1101次阅读
- 工业和医疗市场通过无线充电实现真正的无线条码扫描仪 1198次阅读
- 扫描仪驱动的安装步骤 1.6w次阅读
- 扫描仪使用注意事项 3904次阅读
- 自制手机电影扫描仪教程 6516次阅读
- 高拍仪和扫描仪有何区别_高拍仪和扫描仪哪个好 1.8w次阅读
- 三维扫描仪的工作原理 1.8w次阅读
- 三维扫描仪使用方法及操作技巧 2.2w次阅读
- 三维扫描仪的应用 6054次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多