|
4| 0
|
[K10项目分享] 行空板K10移植FC模拟器_字数字数字数字数字数字数字数... |
|
本帖最后由 唏哩递OPC 于 2026-7-24 12:15 编辑 我是一个软件工程师。对硬件开发几乎没有经验。然而,现在AI能力越来越强,生产越来越快,我的精力也被大量地节省。 AI时代,程序员开始有精力研究别的领域了。 在之前一次蘑菇云开放夜中,我第一次接触到了行空板K10。第一次体会AI在嵌入式开发领域的能力。其便捷程度令我惊叹。在那个晚上回到家,我立马又开始了FC模拟器的移植工作。 传统的嵌入式开发,我了解过一点,知道一些基本的思路。但由于工作方向的原因,一直没有深入探索这个领域。 在我的理解中,嵌入式就是操作单片机,单片机的操作归根结底就是控制引脚的01信号。对于不同的开发板,不同的元器件对引脚的接入方法不尽相同。所以每一块开发板的核心——单片机的文档是共通的,但开发板的原理图需要每个板对应一份文档。 曾经我们手搓代码的时候,这些细节都需要程序员亲自把握。然而在AI时代,程序员需要掌握一些简单的线索:1.单片机编程需要操作引脚的01。2.开发板要有原理图文档。 把这些线索告诉AI,然后具体的工作让AI去思考怎么完成就行。对于第二点,AI识别图片可能还不太行。所以我通常的做法是,这些开发板的文档里除了原理图,还有示例程序。把示例程序丢给AI,他就能理解哪个引脚在代码里用什么来表示的。 接下来,我就来捋一下FC模拟器在K10开发板上移植的思路。大致分四步: 1. 安装skill。 2. 把开源的模拟器项目丢给AI。 3. 运行并描述遇到的问题。 4. 补充外设。 得益于Rocket老师的skill,万事开头难的环境部署过程也能一句话搞定了。如何安装编译工具,如何创建项目。细节什么的不用管,AI懂就行了。 用这个提示词安装skill:帮我安装platformIO的环境,并根据提供的链接安装skill,www.gitee.com/rocketscn/unihiker-k10-skills 安装完skill之后,可以看到智能体里出现了unihiker-k10-platformio这个技能。用这个技能生成一个k10的hello world,并让AI自动烧录到板子上。全程需要手动操作的也就是把数据线从电脑插到开发板了。 接下来就要去找现成的开源FC模拟器项目。项目不能随便乱找,不能找windows的模拟器,不能找安卓的模拟器。要找针对ESP32-S3的模拟器。相同的cpu型号,移植到K10开发板是最靠谱的。所谓移植要做的工作,在我理解也就是,不同的开发板,单片机的引脚接的外设不一样。这方面需要根据不同开发板的实际情况适配引脚。 开源项目我用的是这个:https://github.com/ducalex/retro-go。游戏rom的话,可以到这里下载:https://fcpic.nesbbs.com/GameDownload.asp?gameid=1389 所以这一步就是使用unihiker-k10-platformio的skill,发送提示词:帮我把这个项目移植到k10开发板:https://github.com/ducalex/retro-go。移植完成之后自动烧录。把xxx.nes(游戏rom文件地址)一起烧录到开发板,让模拟器执行这个文件。 直到这一步,我们都没费多少脑细胞。感觉大脑的沟壑都快平了。我们做的也就是:1.复制skill的提示词。2.开发板插到电脑上。3.复制移植的提示词。 做完以上步骤(AI做完的)以后,我们可以怀着激动的心情启动开发板了。当然移植的过程不会那么顺利。我在移植的时候就经历过黑屏,只有声音,而且声音很卡顿。这个时候应该怎么办呢?其实也很简单。把你看到的现象描述给AI就行了。把我们前面说到的黑屏,只有声音,声音很卡顿,告诉AI。AI会自行检查一遍代码,尝试修改。修改完一轮如果还有问题,我们可以进一步收集线索。我的实践经验中比较靠谱的方式是,让AI编写log代码,在开发板运行的时候打log。再把log贴给AI,让他自己分析。AI会根据你描述的问题和log信息自动进行精准修复。每修复一轮,运行,发现问题,描述问题,贴log。不断循环,直到问题全部解决。 做完上一步,我们的FC模拟器就能顺利运行了。但由于K10硬件限制,我们的输入按键有限。可以使用重力感应,实现上下左右的操控。使用开发板的AB键映射FC的AB键。再使用光线传感器作为start按钮。select按钮不常用的话我们就不适配。这样的话可以勉强进行游玩。但为了更好的操作体验,我还是接入了不少的外设。包括蓝牙HID手柄、蓝牙APP、手搓矩阵键盘、AD keyboard。每一种接入方式也算是对技术的验证。在这里需要注意的是,开发板只支持 BLE 蓝牙。如果手柄只支持传统蓝牙的话,那么这个手柄是接入不了的。 到这一步,我们的FC模拟器就能有比较良好的体验了。这是我在小红书的帖子,拍摄的是蓝牙手柄操作游戏:https://www.xiaohongshu.com/discovery/item/6a4e5038000000001003f93d?source=webshare&xhsshare=pc_web&xsec_token=ABaFWGO_AlF8QjB-eUFs72u4EF4iKiikDeaeFHYotWYMA=&xsec_source=pc_share 项目我已经开源:https://gitcode.com/Xelocity/K10_FC。不同外设的适配方式在readme里面都有描述。包括蓝牙APP,那是另外一个安卓项目。大家也可以把那个项目自行编译,装在自己的手机上。 最后总结一下。感觉自己也没做什么,啥也不懂。 不过不重要。AI懂就行。 |
沪公网安备31011502402448© 2013-2026 Comsenz Inc. Powered by Discuz! X3.4 Licensed