【DIY电子作品】基于小安派AiPi-Eye-S1的小霸王

[复制链接]
查看7459 | 回复51 | 2023-10-28 17:55:07 | 显示全部楼层 |阅读模式

本帖最后由 bzhou830 于 2023-10-30 10:16 编辑

本帖最后由 bzhou830 于 2023-10-28 18:04 编辑

1.作品展示

作品功能可见以下B站视频

00.png

外壳可以使用灰太狼大佬提供的外壳STL文件。在嘉立创三维猴上打印(外壳12元+快递6元)。 外壳从以下的帖子中获取: 模型分享]([http://bbs.ai-thinker.com/forum.php?mod=viewthread&tid=432&highlight=%E5%A3%B3%E4%BD%93&_dsign=252306d7](http://bbs.ai-thinker.com/forum.php?mod=viewthread&tid=432&highlight=%E5%A3%B3%E4%BD%93&_dsign=252306d7)))

2.作品说明

2.1 硬件部分

硬件上使用到了AiPi-Eye-S1开发板以及3.5寸 240*320像素的电容触摸屏,使用时可以使用USB Type-C线通过开发板上的Type-C接口为设备进行供电。也可以使用锂电池给板子供电,实测壳体的液晶屏和PCB之间的间距足够放下一个3.7v的锂电池。程序下载使用USB转TTL工具。 1.png

2.2 软件部分

  1. 开发环境 个人是在WSL ubuntu18.04环境下使用VSCode进行项目的开发,具体的环境搭建过程可参考帖子: 【轻松上手】1.小安派开箱及开发环境搭建)]([http://bbs.ai-thinker.com/forum.php?mod=viewthread&tid=41654&extra=&_dsign=8a8d133e](http://bbs.ai-thinker.com/forum.php?mod=viewthread&tid=41654&extra=&_dsign=8a8d133e)))

2.png

  1. ui设计 本项目直接使用了LCD的bsp驱动来进行UI的绘制。UI界面分为两层,底层是game的界面,上浮的一层显示的是game手柄的8个触摸按键。为了方便的确定触摸按键的位置,特地在solidworks中绘制了一个草图,用草图的尺寸来方便确定每个按键的屏幕像素坐标。

3.png

额外需要说明的是显示是使用的横向的坐标系,但是触摸驱动使用的是纵向的坐标系。他们的坐标原点是不一样的,需要进行坐标的变换。

4.png

5.png 程序设计思路

  1. 本项目程序直接使用官方SDK的example/hello案例上进行添加代码的,其整体的实现思路如下:

系统初始化 基于FreeRTOS创建两个任务 (1) button_task任务负责对触摸屏进行实时的读取; (2) main_task中对输入的game rom进行读取,然后解析并模拟6502的执行。整个game的核心就在这个任务中。在完成每一行的解码后,在这个task中会及时的去渲染屏幕中的对应行。

3. 使用说明

3.1 固件烧录

以下操作需要再环境配置完成后进行。

  1. 程序编译 在项目根目录下打开终端,输入make 6.png 如无错误,最终会显示以下内容 7.png

  2. 固件烧录 在终端中输入make flash COMX=COMxx 其中xx为实际连接的下载器的COM口号,如下图中COM口为39。 8.png

    烧录正常输出: 9.png

3.2 Rom替换

理论上这个项目的模拟器是支持所有不带多合一的rom的。而且由于模组的rom空间比较大,其实可以放下很多的game数据。当前预放了三个gamerom, 需要运行哪一个就去掉哪一个的注释,然后编译烧录。rom替换的具体方法可以参考:【轻松上手】小安派nes game rom替换 ]([http://bbs.ai-thinker.com/forum.php?mod=viewthread&tid=41768&_dsign=4e8e23bc](http://bbs.ai-thinker.com/forum.php?mod=viewthread&tid=41768&_dsign=4e8e23bc)))

10.png

4.其他说明

  1. 因为模拟器是我在多年前用C写的,方便调试该模拟器可以运行在Windows平台上,使用SDL显示画面。当然因为当时写模拟器的时候也没有考虑音频解码,所以game是没有声音的。后续有兴趣我们可以一起来讲更优秀的nofrendo模拟器移植过来,它是支持音频的。

    当前nofrendo的移植已经编译通过正在调试。

  2. 当前触摸屏太小了,所以操作起来不是很方便。所以也在考虑使用uniapp在手机端做一个基于wifi连接的手柄。

总结一下,小安派的性能是非常强大的。玩法也是随心所欲,欢迎一起加油,把小安派用到自己想要的地方。

image-20231028071204381.png

本帖被以下淘专辑推荐:

选择去发光,而不是被照亮
回复

使用道具 举报

bzhou830 | 2023-10-28 17:58:35 | 显示全部楼层
代码放在一楼

nes.zip

117.34 KB, 下载次数: 46

选择去发光,而不是被照亮
回复 支持 反对

使用道具 举报

妖猊 | 2023-10-28 17:56:35 | 显示全部楼层
插个眼给七哥看,证明我来过
回复 支持 反对

使用道具 举报

bzhou830 | 2023-10-28 17:59:49 | 显示全部楼层
妖猊 发表于 2023-10-28 17:56
插个眼给七哥看,证明我来过

这是自动的吗,这也太快了,我一口都没抢到
选择去发光,而不是被照亮
回复 支持 反对

使用道具 举报

WangChong | 2023-10-28 18:56:35 | 显示全部楼层
妖猊 发表于 2023-10-28 17:56
插个眼给七哥看,证明我来过

插个眼给七哥看,证明我来过
回复 支持 反对

使用道具 举报

bobochen | 2023-10-28 18:57:58 | 显示全部楼层
大佬厉害👍
回复 支持 反对

使用道具 举报

iiv | 2023-10-28 19:44:46 | 显示全部楼层
要我说还得是玛丽哥
回复 支持 反对

使用道具 举报

妖猊 | 2023-10-28 19:47:18 | 显示全部楼层
七哥说我菜,不愿意教我
回复 支持 反对

使用道具 举报

妖猊 | 2023-10-28 19:49:26 | 显示全部楼层
bzhou830 发表于 2023-10-28 17:59
这是自动的吗,这也太快了,我一口都没抢到

很明显不是自动
回复 支持 反对

使用道具 举报

bzhou830 | 2023-10-28 20:25:01 来自手机 | 显示全部楼层
妖猊 发表于 2023-10-28 19:49
很明显不是自动

手速可以啊
选择去发光,而不是被照亮
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则