当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]我决定自己动手制作一个机器人,从Freenove ESP32四轮驱动汽车套件(货号:FNK0053)开始。我将其命名为Nova,取自Freenove以及拉丁语“nova”(意为“新”)。我想拥有一只全新的宠物。

我决定自己动手制作一个机器人,从Freenove ESP32四轮驱动汽车套件(货号:FNK0053)开始。我将其命名为Nova,取自Freenove以及拉丁语“nova”(意为“新”)。我想拥有一只全新的宠物。

本文将介绍第一步:让Nova能够自主在房间内四处走动,并在过程中显得生动活泼。

Nova目前的功能:

- 自行行走:它会停下,头朝前、左、右扫视,选择一个方向,然后以随机1到3秒的速度前进,接着再次停下并重新观察。

- 观察警觉:当行驶途中前方出现物体时,它会立即停止,眼睛会睁大。

- 探索环境:如果前方仍有障碍物,它会倒退一小段距离,左右检查,然后转向空旷的一侧。

- 解决卡顿问题如果它撞到看不见的物体,眼睛会显示一个“?”号,然后后退并转向。

- 闪烁时动作平稳,不会突然 jerk。

硬件与原装套件不同

1. 颈部安装眼睛和距离传感器

套件的说明书没有说明如何同时使用LED矩阵和超声波传感器,而原装线缆只能连接其中一种。我希望在云台头上同时使用两者:用LED矩阵作为“眼睛”,用超声波传感器来测量Nova所向的任何位置的距离。

LED矩阵保留了套件的原装线缆。

超声波传感器使用自制的4针线缆:长约150毫米,两端均采用AMP MODU兼容的接口,线路直接连接(两端VCC、Trig、Echo、GND的顺序相同)。该线缆插入汽车板上标有超声波传感器的接头。

在通电前,请检查传感器和电路板上的引脚标识。交换VCC和GND可能会损坏传感器。此配置在我自己的设备中有效,但并非官方文档中记载的配置方式。

2. 使用镍氢电池代替18650电池

套件要求使用两个18650锂电池。我使用了六个镍氢可充电AA电池:标称电压约7.2V,接近两个18650电池的7.4V。

通过一对XT30连接器和AWG16导线,电池盒可以轻松拆卸。母头连接到电池盒上,公头则焊接在电路板上的电池支架端子上。电路板的电源开关仍然正常工作。

仅使用镍氢可充电电池。六个碱性AA电池能提供更高的电压。

首次连接前,请用万用表检查极性。

AWG16导线较粗,我的15W铁丝电阻不够强,建议使用30W或更粗的导线。

我的电池盒导线较细(可能是AWG24或更细),目前尚未更换,但建议使用AWG18或更粗的导线。

软件的组织结构

所有功能均为非阻塞式(无delay()函数),并分为三层:

•hal/:唯一与硬件交互的部分(电机、舵机、传感器、LED)。

•core/:包含传感器读数、障碍物判断、安全层以及仲裁器。

•behaviors/:每个行为对应一个文件。每个行为报告其优先级,仲裁器只执行优先级最高的那个行为。这就是“注意”中断“漫游”的方式。

几条规则让整个过程看起来不像机器:先用眼睛观察,再看脖子,最后看身体。不要突然开始。而且绝不能只相信一次距离读数:头部必须保持静止,多个读数必须一致。

所有调优参数(速度、时间、距离)都存储在一个文件中,即 config.h。

我如何使用 Claude Code 构建项目

我管理一个软件团队,多年来自己很少亲自编写代码。对于这个项目,我制定了一条规则:让 Claude Code 写尽可能多的代码,而由我自己决定 Nova 应该做什么。

使这一方法成功的关键是文档,而非提示:

- 一份规则文件(CLAUDE.md),包含项目目标、硬件布局、设计原则和编码规范;

- 一份行为目录(docs/catalog.md):共26种行为,每种行为都有ID、难度等级和依赖关系。目前已构建了7种;

- 每个请求对应一种行为。首先为每个行为提供简短的规格说明(docs/specs/),然后编写代码;

- 一份交接说明(docs/handoff.md),每次会话开始前都会被阅读:当前状态、正在进行的工作以及下一步计划;

- 决策日志和测量日志,确保调优参数来自机器人实际测试结果,而非猜测。

- 只有在我说“上传”时,才会将内容上传到机器人。

所有这些文件都存放在仓库中。它们是日语写成的,但结构清晰易懂。

构建与上传

该项目使用 PlatformIO 构建。先克隆仓库,将其作为 PlatformIO 项目打开,然后执行以下操作:

README 中包含了详细信息,包括 Arduino IDE 的使用说明(未经测试)。

限制与后续计划

•墙壁以较浅的角度倾斜。当角度小于约 30° 时,超声波传感器无法接收到来自墙壁的回声,因此 Nova 还可以继续沿其表面滑行。之后“脱困”行为会自动处理这种情况。

•转向角度。该套件采用开环控制电机,因此 Nova 无法准确判断实际旋转角度。接下来,我将添加一个陀螺仪(LSM6DSV16X)来测量这一角度。

•更多功能。之后,我会逐步添加从目录中提取的宠物类行为:在选择路径前四处观察、察觉被捡起时的状态、出现嗜睡等行为。

本文编译自hackster.io

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
关闭