我想介绍一下我的开放式通用平台的项目,该平台适用于家用机器人(割草机,吸尘器等)。 该项目仍在组装和编写软件的过程中,希望能提供有用的意见和建议。

最近,我结识了Ardumower项目(
有关他的文章 ),并获得了很多有趣的经验。 但是,不幸的是,该机器人具有许多不同的局限性,因此我的“智能家居”客户赞助了一个全新的,功能更强大的机器人项目,该机器人可以很好地应对割草和其他各种任务(例如,有一个想法给客人在家喝酒:))。 该项目正在开发为一个通用且可扩展的平台,并带有开放式电路和可编写自己的软件选项的SDK。
机器人的主要元素是带有32位ATSAM3X8E处理器的电路板,与Arduino Due中使用的相同,它使您可以使用简单且熟悉的开发环境,并且由于存在大量为该平台编写程序的人,还消除了许多技术问题。 由于微控制器端口数量众多,您几乎可以将任何东西连接到板上。 主板规格:
由12至30伏特供电,一个内置的电池充电器可提供高达5安培的电流,甚至可以在运行期间从太阳能电池进行充电。
广泛使用的Polulu Dual MC33926收集器电机控制器有两个座椅,能够控制多达四个电机(两种版本-车轮上有两个电机,第二个控制器控制割草电机;或车轮上有单独通道的四个电机)。 电机连接器的导线用于连接里程表。
步进电机控制器的尺寸(例如,用于改变割草高度的驱动器)。
连接器,用于安装Orange Pi Zero(以支持厘米级精度的RTK GPS和某些外部复杂控制算法),并能够通过此微型计算机更新固件。
6 PPM信号输出,用于控制无刷电机和伺服。
6个用于HC-SR04声纳的端口,2个用于碰撞传感器的端口(例如带有气动传感器的减震器保险杠),2个电容式草皮传感器,2个红外模拟距离传感器输入,4个有线周边传感器输入,2个热敏电阻连接器受控制风扇,蜂鸣器和三个LED(20和70 mA)的端口。 当然,可以使用许多端口来连接其他传感器,但有一定的限制。
微控制器支持的几乎所有外部端口也都连接到连接器:
3个串行端口连接器,两个带有9个连接器的I2C总线(其中一个通过5伏和3伏设备的连接器进行缓冲),2个SPI,CAN总线(不带物理收发器),USB,两个单独的DAC(仅带入连接器)在那里,您可以在那里播放音乐或类似的音乐)。
一个附加的5伏2安培开关调节器,带有六个用于外部设备的连接器。 好吧,一个带闩锁的继电器,用于紧急关闭电池,以防万一您未到达充电站时电池过放电。 自然地,电压和电流消耗由微控制器控制(部分通过集成的多通道ADC,部分通过附加的MAX11617EE)。
在空闲模式(电动机驱动器未激活)下,电流消耗为130-140毫安。
方案(为了方便起见,将所有内容都放在一张纸上):

在焊接电路板的过程中,我发现以下事实:有些元件太小,无法用吹风机进行手动焊接,并且某些元件可能会过热(例如充电单元中的二极管),因此可能会有一些细微的变化。
用于编写机器人固件的SDK的开发已经在进行中,借助它的帮助,已经为所有外围设备和传感器提供了一组类别,几乎可以从底层完全脱离硬件管理。 例如,一段使机器人向北旋转的代码将看起来像这样(这些示例已经生效,尽管没有进行一些过载检查等):
course = 0.0; imuSens.setCourse(course); motWheel.rollCourse((navThing *) &imuSens, 9000);
并沿着有线周边到达工作站,抬起割草机:
mow.setHeight(0); perSens.setTracking(true); motWheel.moveCourse((navThing *) &perSens, 120000);
不幸的是,我还不能自己设计SDK,还没有编写很多东西(例如支持Decawave DW1000 RFID标签和任何辅助传感器的代码)。 但是我可以说所有低级功能都可以正常工作,不久之后我就可以将其放在github上。
预告片: