展示了2015年2支队伍的参与情况以及葡萄牙消防比赛的一些策略。 硬件组件 德州仪器EK-TM4C123GXL TM4C Tiva LaunchPad 其中一个团队使用的MCU - 您只需要1个项目 × 1 STM32 Nucleo STM32F072RB Nucleo板 其中一个团队使用的MCU - 您只需要1个项目 × 1 DFRobot TCS3200 - DF机器人板 × 1 HC-SR04声纳 × 3 Pololu微型电动机H 100:1 × 2 Pololu 42m轮(一对) × 1 5V稳压板 × 1 来自pololu的DRV883板 × 1 跳线(通用) × 1 按钮(信号通用) × 1 Lipo电池2S(使用nanotech 850mAh) × 1 DFRobot火焰传感器公猪 × 1 用于Cheerson quadcopter的微型直流电机 × 1 Cheerson的推动者 × 1 Mosfet到驱动器风扇电机 × 1 膨胀PVC(约50cm x 50cm会做) × 1 1米螺丝(切割至4x20cm) × 1 Pololu 1“施法者 × 2 介绍 路易斯电子项目 站内搜索 免责声明:这更像是一个展示,其目的更多的是引导人们参与此类竞赛。如何制作一个机器人不是一步一步的指南(也许将来我会做一个)。 介绍团队 所以首先,如果你期待一个人形机器人,有点像机器人,那种类型的机器人四处扑救,那么我现在可以告诉你,你会失望的。 这是在葡萄牙举行的一场基于三一学院比赛的小型比赛。科英布拉大学的机器人俱乐部参加了2支队伍。 第一个由3个成员组成,我正在教他使用TM4C启动板。第二个是由董事会成员组成的,以填补由于考试而不得不退出的团队,我们决定在几天内制作机器人(字面意思)。第二个是使用STM32。 我选择了STM32而不是另一个Tiva因为我已经帮助了EquipaT软件,包括我为他们在比赛中使用的一些库。我担心评委或其他参赛者会打电话给那个不被允许的副本......好吧......为什么不尝试一下我要开始研究的新事物呢? 目标简短摘要 比赛非常简单。有一层房子的模拟。有4种竞技场可能性(随机选择),机器人必须在竞技场中导航,找到一根蜡烛并以某种方式将其吹灭。房间的白色线条通常是黑色的地板,标志着门口,但一些色彩缤纷的地毯会迫使你使用颜色传感器(而不是一些二进制白/黑)。还会有一些其他障碍和一些额外的“挑战”。 首先,“设备” 机器人MCU板是一个TM4C123启动板,ARM-M4F运行速度为80Mhz。该团队使用Tivaware库和CCS对电路板进行编程。 用于导航 我们选择了2个HC-SR04。 用于感应白线 我们使用了TCS3200 / TCS230。 对于火焰传感器 我们得到了一个UV tron,但遗憾的是它没有工作,因此使用了带DF-Robot的近红外光电晶体管的电路板。 底盘 基于圆形pololu底盘,约12厘米。不幸的是我发现它有点脆弱有这么多的孔+它没有任何好的方法来添加TCS3200因此我们不仅制作了PVC的2个上层“地板”而且还制作了底层的。 汽车: 在pololu chasis套件之后,我们使用了pololu的100:1(高功率)微电机和DRV8833电机驱动器(真正方便的反向保护和所有)。我们使用的风扇是从一些易趣部件中即兴创作的,我们打印出支持它。事实证明,它的尺寸非常强大!我相信它是那些非常小的四轴(可以放在手中)的粉丝。 我对TCS3200特别满意,它实际上是第一个可靠地识别所有其他颜色的白色传感器(其余我没有尝试,不需要)。我使用了一种使用RGB坐标(0-255)的算法来确定颜色是否为中性并且证明它非常可靠(并且可以在RGB传感器之间移植)! 我测试了一个带有Energia的TCS34725并喜欢它,虽然TCS3200似乎能够站在更远的地方 - 也尝试过arduino但是让颜色识别算法在它上面工作很痛苦(最后我做了,看看吧。我特别不喜欢i2c(可能还没有),所以我没有使用它,因为TCS3200工作得很好。 我希望改进光电晶体管电路。我不喜欢用普通电阻器+光电晶体管配置来校准电阻器是如何必要的。因此,我尝试使用555定时器来获得取决于电流的正脉冲。 导航可能会更好,我和团队都缺乏可以帮助很多的控制类和导航类,但简单的“如果”和没有反馈的PWM控制就足够了。即使他们有所有的考试,他们还是试图让机器人继续前进。 董事会团队“CybertronicsTeam” 除了我之外,没有人参加过这个比赛,只有一个人参加过任何比赛,所以尽管这是“董事会团队”,但在这些比赛中并不是特别有经验。尽管如此,我们接受了挑战。我非常喜欢低杠杆编程工作我决定使用STM32F0。我们有一块STM32F072RBNucleo板,所以我们使用了它。我为Tiva团队制作了一些API,我试图用抽象的一面和“驱动程序”来制作它们,所以移植API非常简单!传感器和执行器只需要定时器和GPIO,因此更简单!很快就完成了它,这是我第一个使用STM32的项目(除了简单的例子),并且非常喜欢使用标准的外围库。 我们使用了几乎与Tiva团队相同的部件,基本上只有MCU改变了。 使用TCS3200进行一些早期测试 嗯,这很有趣,考虑到我没想到参加这个比赛,它进展顺利,获得第五名,唯一失败的是火焰传感器。它不可靠,所以它需要更多的时间,我没有(2天建设+编程和1天制作“司机”)。 更具体的信息 - 守则 现在逻辑如何运作很简单,比赛挑战并不是很复杂。虽然,我们已经实现了一些中断和特殊硬件功能的策略,但是使用Arduino软件无法实现,至少使用默认库。 代码刚分为3个主要部分。导航走廊,搜索房间,并在发现火灾时扑灭火灾 导航走廊 现在这基本上是导航代码的运行循环。机器人将根据测量的距离(远离墙壁,靠近等)更新电机速度,并始终检查地板的颜色。当检测到白线并进入房间搜索时,这将结束。 但如果它检查新的距离是否可用,那么第一个距离是什么?pan>那么靠近硬件工作的好处是你可以轻松利用你的硬件和中断。 “后台任务” 嗯,这不是操作系统,所以我们不能说这是多任务处理。但它有点在某种程度上。 使用的距离传感器我们是HC-SR04,几乎是SRF04。这些传感器需要10us(至少10us)脉冲才能开始读数,然后使用可变宽度的高脉冲返回距离读数 - 因此您需要测量脉冲宽度以获得距离。 pan>现在,如果您使用的是Arduino/ Energia,使用SRF04 / HC-SR04的最常用方法是: 触发引脚高电平 使用delayMicroseconds函数延迟10us。 触发引脚为低电平 使用pulsein功能等待并测量脉冲 这意味着你一次只能读1个声纳(虽然我承认同时发射很多声音可能会有问题)每项措施可能需要100uS到18mS!如果没有检测到物体,则为36mS!那么在这种情况下,距离通常很小,但我确实有时会得到大约6ms或更长,因为1米的读数和奇怪的有时错误。实际上,由于长距离或错误很多次而导致长时间不一致的延迟很常见。请注意,触发器和回波脉冲之间有几毫秒的时间。 现在大部分时间都可以,但我想利用颜色传感器快速读数,永远不会错过一条线+我希望将来增加恒定的火焰扫描。 除此之外,你应该只让传感器每50ms发射一次,这是我发现获得更高精度并且没有获得胭脂回声的一致读数的最短时间。使用millis也可以在不使用延迟的情况下在arduino上实现,但为什么要使用? 所以解决方案? 产生一个周期为50ms,有效占空比为10us的PWM脉冲同时触发两个声纳,每50mS无故障。没有处理器干预。 使用定时器时间捕获输入捕获每个回波 - 每个声纳的定时器将测量脉冲的宽度 每次PWM周期结束时,产生一个中断以将测量的距离保存在变量中,并将标志设置为可用的新距离。 有了这个,我会每隔50ms就能得到一些措施,只需要最少的处 有了这个,我能够以小于1毫米的间隔获得颜色读数,即使机器人处于该速度,这意味着很可能有更多的任务,如行进距离+陀螺仪和加速度计,也可能是持续的火焰扫描。 很好地认为它不是该方法最有用的应用程序但是我打算使用更新的传感器来提供更好的读数,但速度要慢得多,所以这在那里会更重要。 搜索房间 这是以一种非常简单的方式完成的 - 无论如何都没有时间让它变得有点复杂。 检测到线后很简单。机器人只是“一路”向左转,所以它会向房间的最左边看,然后向右走一小步,直到他一直向右。在每一步中,他都会从光电晶体管获得读数。 现在,如果他发现了火焰,他会把它拿出来,如果他不这样做,他会将其余部分转向右边并退出房间。 机器人没有考虑出路。在转向出口后,我只是向前走了一步,希望他越过这条线,然后再次希望当他启动导航代码时,他会正确找到墙。不幸的是,时间非常短暂。 其中一个可以帮助很多搜索蜡烛的是编码器,所以我每次都可以一直转动,因为机器人不会总是一样。那或者将小火焰传感器安装在伺服系统上,这样机器人就不必移动了。 扑灭火灾 嗯,这也不是那么复杂。 在进行搜索蜡烛的步骤时,机器人将记录传感器输出最高的步骤。有了它,它会将步数转向左边以与蜡烛对齐(没有编码器,它不是那么完美)。 他会前进一点,再次扫描并再次对齐,直到传感器输出超过某个阈值,告诉它离蜡烛足够近。在那里,它会打开风扇并长时间摆动,直到确定地放出蜡烛。 那就是那个。 在未来,我已经有了一些改进的想法,但我必须测试它们。我肯定需要得到一个更好的火焰传感器,并且考虑为颜色传感器和红外线滤波器添加定制3D打印机盒或切换到TCS34725但我不喜欢它在获得良好效果方面有多慢读:/。编码器也会很好,但不是优先考虑的问题。 让我们看看接下来会发生什么 这是使用hackster导入工具从此页面复制的。我对一些可怜的语法和短语进行了一些快速修改(当我写这篇文章时,我们的情况甚至更糟),我希望它清晰可辨。 |
【天才设计】华为天才少年稚晖君自制电脑配件——硬萌机器人
游名科技:分享几张以前设计的机器人底盘图片
使用G071的无线式NDT探伤车入选研究生机器人创新设计总决赛
工业机器人——工业4.0的核心装备
PIC单片机在机器人的控制方面的设计
开源基于STM32F303的机器人双电机无感FOC驱动参考设计
带有Viper和ST Nucleo的机器人手臂
儿童机器人教学:机器人建筑工程第1部分
资源管理器和Mapper机器人
【DIY】使用STM32+Android实现的智能家政机器人