探险家和映射器机器人将是一个带有四个轮子的机器人,它将在一个房间里进行演变。 介绍 探险家和映射器机器人将是一个带有四个轮子的机器人,它将在一个房间里进行演变。由于一些超声波测距模块和AHRS,它将需要一些位置,然后发送和/或记录它们。通过该数据,我们可以绘制房间和物体的形状。我将使用Nucleo板,并且可能添加硬件抽象层以支持机器人中的Arduino板。作为绘图应用程序,我将使用带有屏幕的计算机或Raspberry或STM32F4板。当然,一切都将用Ada制作。 链接 在GitHub中添加项目:https ://github.com/Levraichacal/EMR1 我建立了一个AdaDriversLibrary的分支,添加了对NucleoF411RE的支持。你可以在http://github.com/Levraichacal/Ada_Drivers_Library找到它。我还为这个分支添加了mpu6050运动传感器。 在EMR1上,我删除了未使用的驱动程序,就像我在AdaDriversLibrary中使用的驱动程序一样 我添加了common和blinky项目,以确保构建器正常工作:link。 由于我从不在Ada中使用多任务,而且还使用ravenscar规范,我做了一个小项目,有四个任务,以不同的速度切换一些LED(1,2,3,4秒)。这是该项目的链接2 - 任务测试。我将使用任务: 从MPU6050获取数据 从HMC5883L获取数据 从六个HC-SR04获取数据 计算AHRS 驱动电机 发送数据。 一些额外的东西将是: 从其他2个MPU6050获取数据 计算每个欧拉的角度 驱动伺服电机 从另外两个HC-SR04获取数据 因为我需要一个指南针来装帽,我选择了霍尼韦尔的HMC5883L。所以我写了HMC5883L包来驱动它。它位于以下链接:HMC5883L驱动程序。 要关注我的项目并添加更改,我将所有内容都放在我的网站上。 我没有时间在截止日期前完成我的项目:宝贝,搬家和上班都用我所有的空闲时间。我将继续它,当我将有空闲时间(可能下周)并在我的网站和我的GitHub上发布所有内容。它的应用程序使用不同的传感器进行地图和扫描,以便在军事领域或在家庭或地震,海啸等安全漏洞等气候灾难后进行检测。 计划 这是我想要遵循的计划。 6 对于机器人: 1.编写NucleoF411RE的驱动程序。(好的,谢谢svd2ada) 2.使用LED测试端口。(好) 3.在NucleoF411RE上用ravenscar尊重测试任务。(好) 4.为MPU6050编写驱动程序。(好) 5.编写HMC5883L的驱动程序。(好) 6.获取并发送具有两个不同任务的HMC5883L数据。(进行中) 7.获取并发送具有两个不同任务的MPU6050数据 - 发送将与其他传感器共用。(进行中) 8.用任务编写AHRS。(进行中) 9.写下电机驱动器。(进行中) 10.写下HC-SR04的驱动程序。(尚未开始,但先前在Ada中使用Arduino制作) 11.使用HC-SR04定位机器人并控制其运动: 从10厘米进一步向30厘米远 向左转,从10厘米到50厘米再往前走 左转并重新开始扫描 12.获取所有数据,并将其发送到每个站点。目标是通过六个HC-SR04测量机器人的位置和不同的距离。不同HC-SR04的位置是已知的,坐标将由接收器计算。(额外) 13.为罗盘(HMC5883L),IMU(MPU6050),超声波传感器(六个HC-SR04)添加校准模式。 14.将两个HC-SR04添加到平台上,由两个伺服电机控制,用于3D绘图。 15.添加控制模式以手动引导接收器部件。 16.添加其他传感器:摄像头,气体/氧气检测,烟雾探测,放射性传感器,金属探测,地雷探测。 17.支持STM和Arduino Due的其他主板。 对于接收者: 1.接收数据并打印。(进行中) 2.计算坐标并将其打印在屏幕上。 3.绘制表示屏幕上坐标的点。(额外) 4.添加连接菜单。 5.为每个需要校准的传感器添加触摸。 6.在屏幕上添加缩放以放大和缩小地图。 7.添加坐标的3D表示。 8.添加手动模式以控制和使用Disco1-F469的加速度计来控制运动。 架构 架构如下。 在机器人上: 每个传感器的信号量,用于保护数据的读写。它将保持安全并避免AHRS计算出现问题或将数据发送到接收器。 所以它将在那些任务上: 1.以25 Hz的频率获取HMC5883L数据 2.以25 Hz的频率获取MPU6050数据 3.以25 Hz计算AHRS 4.以10 HZ发送数据 我将使用通用PWM用于HC-SR04和中断信息的返回。 在接收器上: 收到的数据一旦到达就会中断。程序将在屏幕上绘制数据。它将使用连接模式,校准和自动/手动模式。 * OPEN:一切都受到GPL3许可的保护。如前所述,所有内容都存储在我的GitHub上。我使用了AdaCore的GPS IDE。 协作:一切都在网站上解释,代码存储在GitHub上。我也会在AdaCore GitHub上提交驱动程序。每个人都可以自由重用我的代码。 可靠:我使用ravenscar配置文件遵循实时规则并保持系统安全。我在将所有代码上传到GitHub之前对其进行评论以便可读。 发明内容:我不知道像我这样的机器人是否已经在Ada中编码,但是对我来说,这是一种在Ada中编码并使用Ravenscar配置文件和多任务处理的方法。而且,开始在STM芯片和Ada(我最喜欢的语言)上编码(但我目前还没有在工作中使用它)。 相关文件---
|
【天才设计】华为天才少年稚晖君自制电脑配件——硬萌机器人
游名科技:分享几张以前设计的机器人底盘图片
使用G071的无线式NDT探伤车入选研究生机器人创新设计总决赛
工业机器人——工业4.0的核心装备
PIC单片机在机器人的控制方面的设计
开源基于STM32F303的机器人双电机无感FOC驱动参考设计
带有Viper和ST Nucleo的机器人手臂
儿童机器人教学:机器人建筑工程第1部分
消防机器人2015年
【DIY】使用STM32+Android实现的智能家政机器人