文章目录
前段时间买了个 0.96 寸 80x160 的 LCD 屏幕,想要做一个模拟辉光管的时钟。
这第一步就用上了 AI,用 ChatGPT 生成了辉光管效果数字的图片,然后按数字裁切成 0-9 十张图,生成对应的图片 RGB565 格式数据,测试了一下,效果还不错。
视频
然后我就在想,那这个时钟的固件,是不是也可以用 AI 来生成呢?AI 现在已经验证了写一些前端项目相当高效,在嵌入式开发领域,是不是也可以有同样的能力,至少可以完成一个简单的项目?
刚好 Manus 开放注册了,我就拿它来尝试一下看看效果怎么样。
功能需求
为了防止项目失败,先把功能定义得简单一点,就是通过 ESP32 控制 6 个 LCD 来显示上面裁切生成的数字图片,并且需要提供 API 更新图片、AP 配置能力。
提示词
这里为了让生成的项目更可控,提示词中明确了工程框架为 PlatformIO,引脚使用宏定义等能力,
请使用 platformio + arduino 框架帮我写一个 esp32-s3 固件,实现以下功能:
- 控制 6 个 st7735 驱动的 lcd 屏幕,分辨率为 80x160,颜色配置为 rgb565
- st7735 使用 adafruit_st7735 库,spi 请使用硬件 spi
- 6 个屏幕的 scl sda dc rst cs blk 引脚都使用宏定义
- 使用 ntp 获取时间,并使用本地的 10 个图片数据数组来显示
- 创建一个 webserver,提供一个 api 用来接收 6 张图片,并保存在本地 spiffs 中,用来在 6 个屏幕上分别显示,数据直接使用二进制,每个图片按顺序拼接
- 提供 wifi ssid password 配置能力,在开机后不能连接到 wifi 时,进入 wifi ap 模式,由用户连接到 wifi ap 进行网络信息配置
- 提供三个按钮检测能力,能检测短按、长按、双击,对应事件处理代码先留空
- 请确保代码是可以编译的
生成工程
要让 Manus 生成一个 ESP32 项目代码固件比较简单,直接把上面的功能需求全丢给它就行了,它会去分析需求、生成每一步要做的事,然后按步完成。
经过 10 分钟,Manus 就完成了整个项目的编写,并且将所有项目代码打包成了 zip 来提供给用户下载。
不过下载之后才发现,Manus 忽略了提示词中“请确保代码是可以编译的”,解压出来的工程代码并不能直接编译,工程中引用的头文件、使用的库什么的都有问题,不得不再让它继续优化。
这样 Manus 就会真实地去创建一个开发环境,并且尝试使用工具链去将整个工程编译出来,在编译过程中碰到的编译错误,也可以直接去解决。
又经过 8 分钟,Manus 完成了所有编译错误的修复,给出了最终的项目代码。
项目代码
把 Manus 生成的工程代码下载下来,解压之后拖到 Visual Studio Code 中打开,大概看了下,整体结构还是比较规整的,模块划分清晰,代码也比较容易理解。
屏幕引脚的定义也是和预期一样,通过头文件宏的方式,这样在实际使用时,可以根据原理图和 PCB 设计灵活地改动。
虽然已经提示了使用硬件 SPI,但是 LCDManager 中初始化 Adafruit_ST7735 对象是,还是没有引用 SPIClass,导致最终实际上操作 LCD 还是使用了软件模拟 SPI。
生成的界面
在 Manus 生成固件代码过程中,也同时生成了 Wi-Fi 配置和图片上传界面的 HTML 代码,这块也没有额外说明,看看生成的样式效果也还凑合 😃。
Wi-Fi 配置界面
图片上传界面
存在的问题
虽然 Manus 生成的整个项目能编译,不过还是有一些问题存在,有些是在提项目需求的时候没有注意,有些是实现时没有完成目标。
- platformio.ini 中指定了 lib_ldf_mode = deep+ 导致编译有问题,需要删除
- LCDManager 没有使用硬件 SPI
- 实现了图片上传但是没有实现图片读取
- 图片上传和 Wi-Fi 配置的 WebServer 分别创建了实例,导致其中一个不可用
- 没有明确 6 个 LCD 需要根据 秒 来更新,导致默认更新间隔是 1 分钟
- 没有明确时区,默认用了 +1 时区来计算当地时间
其他问题不太大,稍微改一下基本上就能用了。
总结
要查看 Manus 生成项目的过程,可以通过下面这个链接来查看生成过程:
https://manus.im/share/1UbUKQ1xnsNXFC9EEK2TAY?replay=1
使用 Manus 生成这样一个简单需求的固件代码感觉还是蛮流畅的,虽然有一些小问题,如果本身了解嵌入式开发的话,解决起来问题不大,但是如果完全不知道嵌入式开发,可能就需要反复和 Manus 进行对话了。
另外这样一份代码生成的工作,消耗了 409 积分,如果从会员价格占比角度考虑,相当于花费了 $1.7,可能也不算便宜?
如果也想尝试一下使用 Manus 来玩嵌入式开发的话,可以使用我的邀请链接,可以各获得 500 积分:
https://manus.im/invitation/HRRUMLO0QL03A
也可以直接点击 阅读全文 跳转到 Manus 注册页面。
0 条评论。