今年“寒假在家一起练”的第一个平台专为大一同学寒假学习嵌入式系统而设计,它是一款基于RP2040控制器、做成游戏机形状的平台,处理器功能强劲、灵活,编程语言可以使用MicroPython、C或C++,丰富的设计资源和案例可以让初学者非常快地做出各种有趣、创意的产品:
板上的资源:
基于树莓派RP2040
Arm Cortex M0+双核
240*240 彩色LCD
4向摇杆+2个按键
姿态传感器
蜂鸣器
红外接收管/发射管
支持MicoPython/C/C++
实物图片
内部功能框图
基于框图中的构成器件,同学们在寒假期间可以通过程序编写完成以下项目中的任何一款即可:
移植/设计一款游戏
利用板上的4向摇杆和2个按键制作一款“鼠标”
利用板上的红外接收器和红外发射管制作一个能自学习的红外遥控器
制作一款MCU/FPGA调试器
制作一款逻辑/总线分析仪
制作模拟电压表
制作一款利用姿态传感器的水平仪
制作多功能计算器,利用姿态传感器进行切换
搭配外设实现电赛中的任一题目
出于尺寸和形状的限制,在板上没有放置WS2812B彩色LED灯环,但可以通过板上的扩展管脚来连接。
搭配一个12个WS2812B制作的灯环
板上12个管脚的扩展端口可以支持2路模拟信号输入以及SPI、I2C外设等。模拟信号输入可以用来制作简易示波器、分析外围的模拟电路特性,用在电赛的很多题目上,其它的信号管脚可以用于做逻辑分析仪、协议分析仪、MCU/FPGA的调试器等。
为帮助大家更好地完成本平台中的第一个项目,特汇总几个用树莓派Pico/RP2040制作的游戏机的资源。
第一款 - Pimoroni的游戏机平台PIM559
该平台使用RP2040处理器,16MB的QSPI Flash,1.54寸的SPI LCD,这款LCD也正是我们这个平台上使用的同一个型号。
该平台提供了C++/MicroPython API以及参考案例
原理图开源并可以下载
该平台已经支持的一些游戏,下载相应的.UF2就可以变成相应的游戏机:
Super Square Bros.:一个有弹性的四边形平台。
Dots:创建两个或更多的链,并争取得到最大的分数
Rocks and Diamonds :经典的游戏躲避岩石和抓取钻石。
Geometry:用激光粉碎太空巨石,使其更小!
Rainbow Ascent:暗黑之魂的程序生成垂直跳跃谜题
Super Blit Kart :一个“模式7”为基础的赛车游戏。
与这款平台相关的资源交给同学们自己上网寻找。
第二款 - 用手势控制的Pong游戏:
参考链接:https://magpi.raspberrypi.com/articles/pico-pong
Github上的资源链接:https://github.com/nickbild/pico_pong
使用RP2040的PIO产生640*480@60Hz单色的VGA视频信号,数据存在显存中,通过DMA输出,Pico的时钟超频到258MHz。
使用了2对红外LED/红外光电晶体管做手势识别。
原理图
我们的板上有姿态传感器、四向遥感、按键,用这些作为控制输入,在LCD屏幕上显示,本案例中的代码可以借鉴。
参考链接:https://www.tomshardware.com/news/raspberry-pi-pico-pong-tiny-2040
Github上的MicroPython资源:https://github.com/gurgleapps/Pico-Pong
显示屏为128*64分辨率的SSD1306
如果同学们通过Google或Bing去搜索,会找到更多与RP2040制作游戏相关的项目案例,这些就留给参加“寒假在家一起练”的同学们自己去做了。一个半月的时间,可以充分调研、参考别人做的作品,在这个平台上“自己设计“制作出一款游戏来,在制作游戏的过程中,你不仅学会了编程,还会了解到很多与硬件相关的知识,比如总线、接口、IO,各种器件的工作原理等,这对同学们下个学期学习模拟电路/数字电路都非常有帮助,因为通过这个平台很多书本理论都有了应用的映射。
玩自己设计或移植的游戏会更有成就感,这个假期过得也就更值了。
当然除了这一款游戏机平台之外,还有其它4款平台,针对不同兴趣的同学,每个平台都有从简单到复杂的项目,完成任意一个项目,即可全额退款你购买板卡的费用。
用自己的劳动获得一款板卡,重要的是学到知识和技能,真正的“双赢!”
也欢迎同学们广而告之,让更多想利用寒假时间学习技能,对电子、软件编程感兴趣的同学们都来参与,“一起”学习、“一起”提升技能。
周末愉快!