内容介绍
项目备注
内容介绍
基于树莓派RP2040实现俄罗斯方块游戏移植
- 项目内容
基于树莓派RP2040的嵌入式系统学习平台,可以通过C/C++以及MicroPython编程来学习嵌入式系统的工作原理和应用。可以实现的功能有:
游戏开始时播放音乐
按下按键开始游戏
通过按键控制方块的移动和旋转
消除方块得分发生改变
方块占满屏幕游戏结束
- 软硬件介绍
软件:Thonny —— 一个面向初学者的 Python IDE Thonny 由爱沙尼亚的 Tartu 大学开发,它采用了不同的方法,因为它的调试器是专为学习和教学编程而设计的。
基于树莓派RP2040的嵌入式系统学习平台,可以通过C/C++以及MicroPython编程来学习嵌入式系统的工作原理和应用。
硬件:采用树莓派Pico核心芯片RP2040:
双核Arm Cortex M0+内核,可以运行到133MH
264KB内存
性能强大、高度灵活的可编程IO可用于高速数字接口片内温度传感器、并支持外部4路模拟信号输入,内部ADC采样率高达500Ksps、12位精度
支持MicroPython、C、C++编程
- 流程框图
- 部分代码解析
- 初始化,参数接口配置
-
song= '0 E5 2 14;4 B4 2 14;6 C5 2 14;8 D5 2 14;10 E5 1 14;11 D5 1 14;12 C5 2 14;14 B4 2 14;16 A4 2 14;20 A4 2 14;22 C5 2 14;24 E5 2 14;28 D5 2 14;30 C5 2 14' st7789_res=0 st7789_dc=1 disp_width=240 disp_height=240 spi_sck=machine.Pin(2) spi_tx=machine.Pin(3) spi0=machine.SPI(0,baudrate=900000000,phase=1,polarity=1,sck=spi_sck,mosi=spi_tx) display=st7789.ST7789(spi0,disp_width,disp_width, reset=machine.Pin(st7789_res,machine.Pin.OUT), dc=machine.Pin(st7789_dc,machine.Pin.OUT), xstart=0,ystart=0,rotation=0) xAxis=ADC(Pin(28)) yAxis=ADC(Pin(29)) display.fill(st7789.BLACK) buttonB=Pin(5,Pin.IN,Pin.PULL_UP) buttonA=Pin(6,Pin.IN,Pin.PULL_UP)
- 设置不同类型方块
-
boxo=[[1,1],[1,1]] boxz_1=[[1,1,0],[0,1,1],[0,0,0]] boxz_2=[[0,1,1],[1,1,0],[0,0,0]] box7_1=[[1,1,0],[0,1,0],[0,1,0]] box7_2=[[0,1,1],[0,1,0],[0,1,0]] boxt=[[0,1,0],[1,1,1],[0,0,0]] boxi=[[0,0,0,0,0],[0,0,0,0,0],[1,1,1,1,0],[0,0,0,0,0],[0,0,0,0,0]] boxes=[boxo,boxz_1,boxz_2,box7_1,box7_2,boxt,boxi] color=[0xFFE0,0x867f,0x7ef,0xfb08]
- 功能函数
-
def up(): leave() clockwise() if checkvalid()==False: counter_clockwise() enter() def down(): global box_row leave() box_row+=1 if checkvalid()==False: box_row-=1 enter() def left(): global box_column leave() box_column-=1 if checkvalid()==False: box_column-=1 enter() def right(): global box_column leave() box_column+=1 if checkvalid()==False: box_column-=1 enter()
- 游戏循环
-
def game(): global gameover,song mysong =music(song,pins=[Pin(23)]) while True: playmusic(mysong,400) xValue=xAxis.read_u16() yValue=yAxis.read_u16() f=4 if buttonB.value()==0: up() print("up") elif xValue in range(50000,70000): down() print("down") elif yValue in range(0,10000): left() print("left") elif yValue in range(50000,70000): right() print("right") else: print("stop")
- 成果截图
开始界面:
游戏界面:
图块旋转移动:
得分:
游戏结束:
- 项目总结
通过本次活动,我对micropython有了进一步的了解,对thonny的使用也更加熟练,编码能力也有所提升,感到收获颇多
软硬件
元器件
附件下载
代码.zip
团队介绍
中央民族大学 阎倩
(与黄彦宇同学交流沟通完成)
评论
0 / 100
查看更多
猜你喜欢
基于树莓派rp2040实现俄罗斯方块游戏基于树莓派rp2040实现俄罗斯方块游戏的移植,运用Thonny进行编程,采用树莓派Pico核心芯片RP2040。
hhhYY
1778
寒假在家一起练-基于树莓派rp2040实现复古游戏《俄罗斯方块》移植1.编写(移植)《俄罗斯方块》游戏的运行逻辑;
2.依托Arduino提供的TFT_eSPI库编写LCD屏幕显示界面;
3.编写《俄罗斯方块》游戏的背景音乐;
4.依托RP2040游戏机平台进行软硬件逻辑结合;
bird
1757
基于树莓派rp2040实现单板接小球游戏移植基于rp2040实现复古游戏移植,实现移植,用过按键和四向摇杆进行控制。
hum2037
1232