【Arduino 动手做】MPU6050 32x8 矩阵上的交互式滚动游戏
如何在 32 x 8 LED 矩阵模块上制作有趣的互动游戏,通过移动设备进行控制。这次我将向你展示如何在一个 32 x 8 的 LED 矩阵上制作一个有趣的互动游戏,该游戏通过移动设备进行控制。在设备进行特定移动时,MPU6050 传感器会向微控制器发送信号,微控制器会根据该信息在屏幕上执行指定的操作。
实际上,该传感器代表着所谓的“空中控制器”,我们可以在现代电视遥控器中找到它。该项目已发布在 Benjamin Balogh 的 GiHub 页面上(https://github.com/benibalogh/LEDMatrix-Games ),您可以在其中找到原始代码。源代码是在支持 Arduino 的 Visual Studio(即 Visual Micro)中编写的。
遗憾的是,编译并上传原始代码到 Arduino 后,设备无法处理来自 MPU6050 的数据,只能滚动显示“Wall Scroller”文本。我多次尝试联系代码作者,但均未成功。经过一段时间的研究,我稍作修改,最终成功将其适配。此外,我没有使用 Visual Micro,而是将其编译到标准的 Arduino IDE 中。
为了正确编译代码,您需要从包含所有必需库的指定文件夹中打开代码。需要强调的是,如果您之前在 Arduino IDE 中安装过任何库,请将其删除。我还在代码中添加了一些简单的音调,这些音调不会干扰游戏玩法,并使游戏更加有趣。
【Arduino 动手做】MPU6050 32x8 矩阵上的交互式滚动游戏
该设备构造极其简单,仅包含几个组件:- Arduino 微控制器
- MPU6050陀螺仪+加速度计传感器模块
- 蜂鸣器
- 带有 MAX7219 驱动器的 32x8 LED 矩阵模块
- 电池,可选,例如我的情况,一块 3.7 伏锂电池,带充电器和升压模块。当然,你也可以使用普通的 9V 电池或外部电源。
- 和两个开关
【Arduino 动手做】MPU6050 32x8 矩阵上的交互式滚动游戏
上传代码后,我们需要进行一些设置。根据传感器的安装位置,我们需要通过更改以下代码行中的值来进行校准。constexpr float INIT_PITCH = 弧度(175.0f);
constexpr float MENU_BACK_ROLL = 弧度(-90.0f);
constexpr float MENU_ENTER_ROLL = 弧度(-155.0f)
constexpr auto TILT_ANGLE = 145;
constexpr float MENU_NAVIGATION_PITCH = 弧度(TILT_ANGLE + 30);
角度可以有正值也可以有负值
开机后,会立即出现一个滚动的文字,其中包含游戏名称。向左倾斜设备即可浏览菜单。要激活某个选项,请向下倾斜设备。向上倾斜设备即可返回菜单。要开始玩游戏,在“游戏”菜单中,请向下倾斜设备,然后向左倾斜。现在,我们通过左右移动来玩游戏,尽量不要撞到墙壁。每通过一个环节,就会获得一定数量的积分。经过一段时间后,移动速度会增加。当我们撞到墙壁时,会发出游戏结束的信号并显示结果。向上倾斜设备即可再次返回主菜单。
需要说明的是,该电源由一块 3.7V 锂电池、一块用于给电池充电的充电板以及一个将电压从 3.7V 升压至 5V 的升压模块组成。电源原理图如下图所示。
最后,将该装置安装在由PVC板制成的合适盒子中,并用彩色壁纸覆盖。
【Arduino 动手做】MPU6050 32x8 矩阵上的交互式滚动游戏
项目代码(下载)【Arduino 动手做】MPU6050 32x8 矩阵上的交互式滚动游戏
附录【Arduino 动手做】MPU6050 32x8 矩阵上的交互式滚动游戏
项目链接:https://www.hackster.io/mircemk/arduino-mpu6050-interactive-scrolling-game-on-32x8-matrix-4a4f27
项目作者:北马其顿 米尔塞姆克(Mirko Pavleski)
项目视频 :https://www.youtube.com/watch?v=bm5lKUUrow0
项目代码:https://hacksterio.s3.amazonaws.com/uploads/attachments/1529892/Wall_Scroller_CODE_FINAL_with_Sound.zip
项目参考:https://github.com/benibalogh/LEDMatrix-Games
页:
[1]