自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 收藏
  • 关注

原创 单片机手搓掌上游戏机(二十三)—esp32运行简单街机模拟器软硬件准备

首先说明这个模拟器仅可以模拟6个早期街机游戏,吃豆人、大金刚、1942之类的,后期的,在那混合着烟味和发霉的味道里的游戏厅,让充满着对知识渴望,兜比脸还干净的少年流连忘返,回家挨了无数次传统武术修理终不悔的那些经典游戏,一个都没有。需要一块esp32 devkit的开发板,如果使用S3需要对程序进行修改,因为S3只有I2S但取消了DAC的功能,声音需要外接模块解码放大。,我用2.0.9-cn这个版本是可以的,至于3.3.4什么的,一大堆红色错误,好不容易改完了,还跑不起来。下面就是rom的下载和转换了。

2025-12-06 12:37:09 770

原创 在官网免费申请的CH32V307VCT6开发板,移植马里奥和tank大战

使用st7789,spi+dma,主频144。Mhz,还是有点卡顿,没有声音。

2025-12-05 15:16:14 131

原创 在官网免费申请的CH32V307VCT6开发板和芯片,15元快递费

256k的flash,64k的ram,有线网络接口,100个脚,暂时想不到用来干啥。在官网免费申请的CH32V307VCT6开发板和芯片。

2025-12-03 22:38:41 317

原创 单片机手搓掌上游戏机(二十二)—pico运行doom之固件和rom上传

把根目录下build/src/doom_tiny.uf2文件复制到这个u盘,开发板就自动重启,但没有任何显示。还需要上传doom1.whx,找到安装环境目录下的picotool文件夹,将这两个文件拷贝到编译的根目录下。按住pico的boot键,将数据线插入电脑usb,会出现一个优盘。拔下数据线,按住开发板boot键,再插入usb。在地址栏输入cmd,进入命令行模式。pico断电重启,开始doom!

2025-12-03 22:20:16 811 1

原创 单片机手搓掌上游戏机(二十一)—pico运行doom之修改编译

把lcd版本覆盖过来后,对编译include和link的文件进行了简化,才能用,只能用pico-sdk-1.5.1,不能用最新版的,这种开源的软件就这个样了。这里加一句,链接到pico_audio_i2s,作者不知道怎么回事,用了i2s却没有include进来,导致无法编译,我找了好久原因,就没想到高手留下这么一个简单的错误。这个pico-doom的作品本来是输出到vga显示器上的,但是作者是在linux下弄出来的,我把它下载到windows下有些奇奇怪怪的错误,始终无法纠正。

2025-12-03 21:53:22 481

原创 单片机手搓掌上游戏机(二十)—pico运行doom之编译环境

那个doom_tiny_st7789.uf2你刷进去一试,不光屏幕显示超小,还显示不正常,所以,喜欢折腾的,重新编译一下吧。正如我上一篇所说,那个doom_tiny_ili9341.uf2文件,刷入pico,上传doom1.whx文件就可以了。找到pico-examples.zip文件,路径如下,需要根据你安装路径自行调整一下下,把它解压到当前文件夹。首先,还是编译环境的准备。找到pico-extras文件夹,记下路径,待会儿有用。需要多做一步的是,找到安装目录下的。pico-sdk文件夹,记下路径。

2025-12-03 21:08:57 229

原创 单片机手搓掌上游戏机(十九)—pico运行doom之硬件连接

ili9341 或st7789 lcd,需要说明,作者编译了这两个版本,在目录的uf2文件夹里,但st7789的那个显示不正常。把doom的rom刷进去,就可以正常玩了,很简单,但是st7789显示反色、反向,我们要修改后重新编译。doom作为一个3D游戏,历史悠久,是好多人3D游戏的启蒙,我不是,我第一个玩的是三角洲部队。连接好之后,按照前面讲的方法,把ili9341的.uf2刷进去。原来输出到vga显示器上的doom项目改为输出到lcd。按键的连接,方法和前面的一样,io变一下。再用picotool。

2025-12-03 10:08:30 517 1

原创 单片机手搓掌上游戏机(十八)—pico运行fc模拟器之更大屏幕

而我手头有2.8寸,320x240的lcd,主控也是st7789,我琢磨了一下,把屏幕横过来,恢复nes的256x240分辨率,可以变大很多。把lcd地址范围改为256x240,水平扫描从(256-240)/2到(256-240)/2+256-1。注释166行,改为167行,把图像缓存数组行像素改为256个。注释880行,改为881行,将行缓存数量改为256个。注释382行,改为383行,把lcd置横屏。把lcd地址范围改为320x240;重新build一下,上传。修改main.cpp。

2025-11-29 13:50:30 336

原创 单片机手搓掌上游戏机(十七)—pico运行fc模拟器之rom上传

fc游戏机是一代人美好的童年,至今还怀念,如果你真正了解它的话,理念在当时真是很先进,6502的处理器,仅1.8Mhz,2kb的ram,一块做cpu,一块最ppu,一块做apu,在cpu的统一调度下协同工作,也就是我们今天的cpu,显卡和声卡,外置rom可插拔,从几十k到几百k的游戏好玩有趣。用pico模拟的原因是因为它是双核的,相对可获得较快的运行速度。我测试了7百多k的Rom也可以流畅运行。正常使用需要安装一下驱动 ,在文件目录下的drive文件夹下。此系列完成,玩的开心!

2025-11-29 12:07:10 317

原创 单片机手搓掌上游戏机(十六)—pico运行fc模拟器之程序修改烧录

还是这个文件,384行,把颜色反转关闭,国产的st7789大概率都有这个问题,Arduino的库也有这样的。其实没多大作用,我孤陋寡闻,还没见过屏幕撕裂,所以在hardware.cpp里,105、106两行注释掉。首先是那个VSYNC,也就是8引脚的一个输入信号,我能买到的st7789上都没有这个引脚,看了一下代码。这时候会发现新的问题,按键不起作用,它这个按键程序写的挺高级,我都看不懂。按上一篇文章,build一下,上传,程序就跑起来了,颜色古里古怪的。在build,上传,会出现一个打飞机的测试游戏。

2025-11-29 11:37:23 915

原创 单片机手搓掌上游戏机(十五)—pico运行fc模拟器之编译环境

pico是arm内核的单片机,基本的还是gcc、make那些东西,另外有自己的pico-sdk和必须使用cmake生成makefile,当然也可以用msbuild或ninja代替make。流程无非是按照pico-sdk的说明把需要的工具链下载,然后设置环境变量,用vs code之类的ide编辑修改。详见pico-sdk说明书。汉化一下更方便,看到英文总是要转成中文,才能出现具体的形象,等于把中文又抽象了一次,累的慌。装完之后是一个独立的vscode,和你原来装的vscode没关系,别装到同一个目录就行了。

2025-11-29 10:20:38 325

原创 单片机手搓掌上游戏机(十四)—pico运行fc模拟器之电路连接

第一个就是VSYNC,我查了整个某宝,也见不到一块有这个引脚的lcd,我一度怀疑是不是有某个特殊芯片提供了这一个功能,我看到“tear”的注解后,觉得忽略它试试,因为我手头有好多块spi的lcd也没见过屏幕显示撕裂,软件改改吧,后面会说到。ble引脚最好直接接vcc先,因为系统默认从ramsave里读取,新刷的程序是0,就是黑屏,解决这个问题,困扰了我至少半个小时。spi接口的连接,除了vcc和gnd,就是mosi(sda),sck(scl),dc,cs,ble。声音就按这个接,勉强还算可以了。

2025-11-28 23:20:16 696

原创 单片机手搓掌上游戏机(十三)—pico运行fc模拟器之硬件准备

屏幕选择st7789,240x240的就可以,nes的分辨率是256x240,左右各有8个像素不显示,不影响玩耍,如果用320x240的也可以,有些浪费了,我也修改了一个这种版本,不过看起来没啥区别。pico开发板使用rp2040处理器,双核,默认133mhz频率,可以超频到250MHZ,264k的ram,板载2M的flash。邮票空设计可以很好的贴合在电路板上,我们下面要做的模拟器大小不到2M,但上传游戏的个数受限。有16M的flash,价格也是10块大概,就是adc的引脚有些特别。你也可以用5轴导航。

2025-11-28 12:11:24 437

原创 单片机手搓掌上游戏机(十二)—esp8266运行gameboy模拟器之编译上传

Arduino ide的安装和esp8266的安装参见网上的教程,不再赘述。主要是mcu类型,FS稍小一些,不然程序存不下,还有主频设置为160M。帧间隔我改成0了,快了点,原来是12000,你可以自己调整。音频这里我改成160,原来是80,声音慢的阴森森的。然后在例程里找个编译上传一下,正常显示就好了。程序里打开游戏的注释,可以选择不同的游戏编译。安装TFT_eSPI库,网上也大把的教程。打开文件夹里的ino文件,设置一下环境。研究一下这些组合键,能够调整调色板啥的。或者到我的gitee下载。

2025-11-21 21:52:25 541

原创 单片机手搓掌上游戏机(十一)—esp8266运行gameboy模拟器之硬件连接

上一篇文章说到,控制按键有八个,单片机的io口数量不够,有一个叫PIN_ESC的按键连到了D8也就是15号接口,实际上是不工作的,15号接口通过一个10k电阻下拉接地了。第二是喇叭的声音变小,因为10k的电阻起到分流作用。最后就是,我们虽然用的是彩屏,但gameboy实际上是单色的游戏机,我们只用了彩屏的大小,颜色的话就是黑白和液晶绿最顺眼。扬声器我用的是8欧姆5w的,阻抗匹配这块我不懂,随便找的,你也可以加一级放大器,匹配一下,不过在这么一个采样率的情况下,加个输出电容就行了,都是鬼哭狼嚎。

2025-11-21 17:44:14 1482 4

原创 单片机手搓掌上游戏机(十)—esp8266运行gameboy模拟器之硬件准备

1.尽量使用esp8266上的gpio做控制按键,取消键盘扩展芯片,不够的采用adc读取分压电路代替,需要注意的是需要组合使用的按键不能同在adc接口,因为esp8266的adc接口只有一个。espboy使用了esp8266作为处理器,使用了I2c芯片扩展了gpio,用来操控gameboy,因为esp8266的io能正常使用的少的可怜。2.使用160x128的lcd,因为gameboy的分辨率为160x144,虽然有16行不能显示,但不影响游戏的玩法,看起来舒服多了。取消了亮度控制芯片,直接接电源。

2025-11-19 22:45:28 487

原创 单片机手搓掌上游戏机(九)—移植arduboy到py32f003之编译上传

虽说py32Duino麻烦多多,不过修修补补还能用,用原版的Arduino中间程序编译出的结果是齐整很多,速度明显提升。硬件连接是这样的。oled各引脚和按键: 蜂鸣器: 由于搞不清arduino的编译原理,只要arduboy2的库文件和游戏文件不在一个文件,出现编译通过但上传后不显示的问题,所以我一股脑把他们放在一起,工作的很好。移植修改过程,满眼泪。。。。。去我的GITEE直接下载解压缩吧,还是https://gitee.com/BernardSun/py32_arduboy_games 按上一篇文章打

2025-11-13 17:17:05 369

原创 单片机手搓掌上游戏机(八)—移植arduboy到py32f003之软件安装

Arduboy是一个爱好者在Arduino环境下编写的作品,stm32a-arduboy作者在gcc下重现的arduino平台的各个函数,并且有一些bug,那么反过来说,移植的话在Arduino平台的效果应该是好一点的。需要说明的是,在添加开发板环节,应该使用海外用户这个地址,国内的地址似乎没了,gitbub还是需要watt tool之类的工具。普冉的单片机竟然有一个PY32Duino,支持Arduino,在便宜的情况下,不出意外的话是有很多意外的。没错,就是把对的改成错的,就对了!

2025-11-13 17:08:36 413

原创 单片机手搓掌上游戏机(七)—移植arduboy到py32f003硬件准备

一块便宜开发板就成了,接下来的arduboy移植实验都是基于这块“便宜开发板”,烧录工具就是常见的cmsis-dap,便宜又稳定。ch340也可以,就是每次烧录都要让boot0接gnd,运行时要断开,麻烦了点。第一个缺点是只有sop封装的,没有dip直插的,当然还有一些问题,但是不到一块钱32位arm内核单片机,我可以包容所有缺点。普冉单片机,正如它的拼音缩写,其主要优势就是便宜,我用的这款性能如下表。但重点是便宜,真(三个字)便宜,某宝20片包邮。还有一些排针,抹上足够的焊油,稍微加工一下。

2025-11-11 07:32:09 163

原创 单片机手搓掌上游戏机(六)---使用stm32f103f8t6制作arduboy游戏机之0.96寸ssd1306oled适配

正如上文所说,ssd1306是不显示的,原因是作者用了另外的一种lcd,初始化代码恰好能驱动sh1106,而不能驱动ssd1306。需要说明的是每个游戏都可以显示主界面,但不是每个都能玩,也许linux下编译会有所不同,我没试过,那个命令行跟摸黑走路一样,捉急人。然后重复上一篇的make APP_ARDUBREAKOUT=1或者啥的,ssd1306就应该亮了。但是还有些瑕疵,屏幕左边会有一道亮线闪来闪去的,看上去很low。第73行 把0X20,0X00改成0X20,0X02;重新make一下,烧录,完成!

2025-11-10 10:07:00 322

原创 单片机手搓掌上游戏机(五)---使用stm32f103f8t6制作arduboy游戏机之固件烧写

根据系统版本选择: 64位系统:下载并安装 vc_redist.x64.exe 和 vc_redist.x86.exe。把stlink连接开发板,不要告诉我你不知道这是什么东西,插入电脑,应该会自动安装驱动,实在没有的话,网上找找。1.打开stm32 arduboy文件夹-build文件夹,选择结尾是.hex那个文件。如果你用的是sh1106的1.3寸oled的话,现在应该是可以正常显示,play游戏了。特别是vc_redist.x86.exe似乎才是解决问题的真正方法。安装完成后,重启电脑。

2025-11-10 10:06:36 370

原创 单片机手搓掌上游戏机(四)---使用stm32f103f8t6制作arduboy游戏机之固件编译

到作者网站上去downlaod zip https://github.com/lambda-zhang/Arduboy2_stm32。在examples文件夹下其他小游戏的编译方法在作者主页上有介绍。输入 make APP_ARDUBREAKOUT=1 回车。在这个文件夹上右键-Open git bash here。如果一切顺利,第一个arduboy小游戏就编译成功了。打开文件夹,看到有的makefile的文件那个文件夹。

2025-11-09 06:23:03 202

原创 单片机手搓掌上游戏机(三)---使用stm32f103f8t6制作arduboy游戏机之编译环境

打开mingw64目录的bin文件夹,复制-粘贴mingw32-make.exe,将副本改为make.exe。原作者的编译环境实在linux下进行的,在他的github上有说明,win10更为亲切一些。在桌面选择 此电脑-右键-属性-高级系统设置-环境变量-系统变量-path-新建-浏览。分别建立mingw和arm-none-eabi-gcc的环境变量。我的是这个,普通的windows下的安装下一步下一步。任意打开一个文件夹,地址栏输入cmd,回车。也是普通的解压缩到某盘某目录。普通的解压缩到某盘某目录。

2025-11-09 06:22:33 283

原创 单片机手搓掌上游戏机(二)---使用stm32f103f8t6制作arduboy游戏机之硬件连接

国内的一个大仙儿把arduino平台的atmega32u4单片机arduboy2游戏机移植到了stm32f103上,链接https://github.com/lambda-zhang/Arduboy2_stm32。按键和单片机的连接,四个引脚按对角线的两个,一个接gnd,另一个接对应的gpio准没错,其它两个不用管。有+符号的那一端接3.3v引脚,另一个接上图中的gpio。先接一个就行了,没声音换另一个gpio接口。蜂鸣器要使用无源蜂鸣器,有源的也有声音,不过杂七杂八的。相信玩过单片机的都有这个。

2025-11-08 11:26:49 382

原创 单片机手搓掌上游戏机(一)---目录

虽趣舍万殊,静躁不同,当其欣于所遇,暂得于己,快然自足,不知老之将至。及其所之既倦,情随事迁,感慨系之矣。向之所欣,俯仰之间,已为陈迹,犹不能不以之兴怀。8.用esp32制作retro-go多种游戏模拟器,包括nes、sfc等等吧。5.用树莓派pico(rp2040)制作nes模拟器游戏机。1.用stm32f103f8t6制作arduboy游戏机。6.用树莓派pico(rp2040)运行doom游戏。3.用esp8266制作arduboy游戏合集。4.用esp8266制作gameboy游戏机。

2025-11-08 11:22:38 216

原创 YD-RP2040@250MHZ,1.8TFT刷到每秒34帧,有高人老师指导一下怎么进一步提高。

YD-RP2040@250MHZ,1.8TFT刷到每秒34帧,有高人老师指导一下怎么进一步提高。

2024-10-02 23:29:59 331

原创 esp8266 硬件spi驱动1.8TFT 目前刷到16帧每秒

esp8266 硬件spi驱动1.8TFT 目前刷到16帧每秒。

2024-10-02 08:15:46 408

原创 stc8h8k64@30MHZ, ssd1306oled 暂时调整到的最高刷新率

stc8h8k64使用30MHZ, ssd1306oled 暂时调整到的最高刷新率.

2024-09-23 16:50:47 440

原创 STM32G030F6P6 软件IIC 优化到流畅画面poppyplaytime双手伸长的测试动画

【代码】STM32G030F6P6 软件IIC 优化到流畅画面poppyplaytime双手伸长的测试动画。

2024-09-22 16:35:00 520

原创 EASYX 一个测试用的BUTTON 类

【代码】EASYX 一个测试用的BUTTON 类。自己保存

2024-09-20 23:43:23 198

原创 STM32G030F6P6 SSD1306 OLED 画点和绘制图片代码

STM32可以实现游戏动画的画点和绘制图片代码。

2024-09-18 22:34:08 357

原创 STC8H的写I2C几个函数

为了方便使用对STC8H写I2C的功能仿照stm32组合了一下。

2024-08-23 09:36:00 384

原创 Arduino 四相八步 步进电机驱动

淘宝上买那种便宜的步进电机加驱动板,Arduino下载的stepper库是四步的,不会转,只好自己写了。4096步正好是一周。

2024-08-06 21:35:47 344

原创 点灯科技blinker通过esp8266远程控制美的空调开关的Arduino代码

美的空调代码臭又长,不好弄。由于路由器绑定网卡MAC,使用了set_mac函数更新了esp8266的mac地址,不需要的话setup了注释掉,auth,路由器名字密码改成自己的就行。冷热开机更换button里的sendRaw函数内容即可。

2024-08-06 11:02:28 880

原创 Arduino L293D电机驱动模块四轮驱动程序

Arduino L293D电机驱动模块的库下载了好几个,学不会,研究了一下74HC595和L293D的连接方式,DIY了一个。PWM没写,旋转方向不对的话,调换电机两根接线。

2024-08-06 10:51:11 883

原创 STM32F103C8T6的LCD1602转IIC模块程序

【代码】STM32F103C8T6的LCD1602转IIC模块程序。

2024-08-04 19:37:20 447

原创 89C51使用74HC595三线控制LCD1602

【代码】89C51使用74HC595三线控制LCD1602。

2024-08-04 17:55:50 462 2

原创 STC8H的LCD1602转IIC模块程序

STC8H8K64U调试通过,延时1ms必不可少,I2C地址是0x4e,不同批次可能不同,详情参见PCF8574集成电路。

2024-08-04 17:46:48 390

原创 STC8H8K64U 四肢行走的小机器

MAIN.C :PWM设置及主函数。

2024-07-24 10:18:17 362 2

原创 STC8H PWMA 四个P极控制四个舵机

和STM32类似的都是。

2024-07-19 22:59:38 354

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除