0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

怎样使用Arduino重新创建经典的Pong游戏

454398 来源:网络整理 作者:网络整理 2019-12-05 08:56 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Pong是有史以来第一个进入大众市场的视频游戏。 Atari 2600首次将“视频游戏”的概念带入了家庭,这是我们向这一历史瑰宝致敬的唯一权利。现在,您可以使用Arduino和一些常用组件重新体验(游戏邦注:有些无聊)。

我不会撒谎–您的女儿不太可能会放弃她的Nintendo DS,这不会给整个家庭带来数小时的乐趣–但这是一个很棒且容易的项目,可以改善Arduino编码。而且,如果您只是入门,请不要忘记查看我们的初学者Arduino指南。

我们将制作两个基本控制器,视频将通过标准的复合视频电缆输出到电视上

要将这个项目提高到一个新水平,您可以3D打印外壳。 YouTube用户PotentPrintables就是这么做的!

Arduino Pong的要求

470 欧姆电阻 x1

1k 欧姆电阻 x1

10k欧姆电位计(双可变电阻) x2

Arduino x1 (任何版本)

RCA 插入 x1 (如果您有一个以上的声音,也可以连接声音。对于视频来说,一个声音是最低限度的要求)

按钮开关 x1

10k 欧姆电阻 x1

怎样使用Arduino重新创建经典的Pong游戏

您还可以从此处下载TV Out Arduino库-获取最新版本的 TVoutBeta1.zip 。将所有生成的文件夹全部放入您的/arduino/libraries 目录,如果已打开Arduino IDE,请重新启动它。

测试电视输出

获取RCA塞住并剥去外层。收集屏蔽层,扭转并放在一侧。这是你的理由。中间应该是另一根带有塑料屏蔽的电缆–再次将其剥开,以便获得信号线。

同时焊接470欧姆和1k连接到RCA插头中心信号线的欧姆电阻–提供同步信号和实际视频信号,将其组合在一起以产生模拟视频输入。 470欧姆电阻应插入数字IO引脚D07,而1k欧姆电阻应接入D09引脚。

这些引脚由我们导入的库设置,因此您无法更改它们。

现在,您可以继续进行示例加载;您可以从Arduino GND引脚之一到RCA的屏蔽层(外部)。尽管同时提供了PAL和NTSC,但它与现代数字电视并没有真正的关系-尽管在英国,NTSC演示对我来说还是不错的。插入电视,即可获得漂亮的复古3D立方体。哦-是吗?我是。

测试模拟电位计输入

好,我们已经完成了电视输出,现在让我们开始吧与控制器。 “电位器”的接线不是那么关键–每个电位器应具有3个引脚,而中央的引脚几乎总是产生输出信号。将其连接到A0和A1(每个锅一个)。在其中一个侧面引脚上,不管哪个都可以,连接+ 5V电压。

在这里,我将它们都面对面放在单个面包板上,因为我只有短线。对于抛光产品,您需要使用一些旧的网络电缆来给您一些距离(以便您实际上可以坐在沙发上玩耍)。

接下来,加载Arduino随附的基本示例草图之一-模拟输入之一。此演示将根据A0上的输入来更快或更慢地闪烁车载LED

它不会测试其他A1电位器,但是如果您正确连接了A0,那么我将无法了解您如何在A1上犯错,所以我们假设一切都很好,继续前进。

添加启动开关

最后,我们将在D02上添加启动开关。有关如何执行此操作,请参考此处的接线图。在菜单中时,此开关将用于启动游戏。

傍代码

我们正在使用一些代码最初由 Lamonica 编写,由 duboisvb 修改为两个播放器,并由我自己更新为使用TV输出库的最新beta版本。您可以从此pastebin查看和下载代码。

这是一个很长但很简单的代码,不需要我做任何解释。像大多数游戏一样,它依赖于游戏状态(菜单,游戏内,游戏结束),并在循环的每次迭代中读取两个控制器和切换器的输入值。除此之外,还有绘制屏幕,球,球拍和游戏逻辑的方法。

请注意,代码包括音频也是输出:我找不到更多的RCA插头来测试这一点,但是如果有,请直接将信号引脚连接到D11,这样您就会得到一些令人愉悦的复古色调。

老实说,我不知道Arduino甚至不需要一些非常复杂的编码就可以制作电视节目。电视输出库非常容易。即使您不喜欢复古游戏,使用此基本电视输出也是将现有设备用作廉价显示器的一种好方法。您当然也可以输出颜色。

责任编辑:wv

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Arduino
    +关注

    关注

    191

    文章

    6533

    浏览量

    197647
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    学习如何使用S32K312时;编译新项目时遇到编译问题

    我刚刚搭建好开发环境,打算学习如何使用S32K312 安装 IDE、ADE 更新包、RTD 包后,我创建了一个简单的项目,遇到了以下编译问题。 将新创建的项目放在另一个同事的计算机(与我的开发环境相同)上并毫无问题地编译它。
    发表于 05-19 07:59

    如何创建独立于platform版本的应用

    可以创建与 platform 版本独立的应用:允许单独升级 platform,app 不重新编译、不升级,可直接兼容新版 platform,功能正常。
    的头像 发表于 04-28 09:28 314次阅读

    在Termux环境下实现康威生命游戏

    你想要在Termux环境下实现康威生命游戏,并专门展示经典的“滑翔机”模式,构建一个能持续运行的二维世界,同时需要完整的程序代码和调试说明。 一、实现思路康威生命游戏的核心是遵循4条规则:1. 活
    发表于 12-21 18:36

    NVMe高速传输之摆脱XDMA设计53:如何测试队列管理功能

    提交队列, 由于 NoP 逻辑加速引擎支持的最大 I/O 提交队列深度为 1023, 因此创建请求被拒绝, 返回错误值为 4, 表示创建深度错误, 用户应重新创建合理深度的队列。 图1 队列管理测试
    发表于 12-09 08:21

    经典射击游戏移植到芯科科技MG24 Matter开发板

    Silicon Labs(芯科科技)热衷于突破嵌入式系统的极限和创新。在先前成功将一款经典游戏-雷神之锤(Quake)移植到基于EFR32MG24无线SoC的Arduino Nano Matter
    的头像 发表于 11-30 10:46 1336次阅读
    将<b class='flag-5'>经典</b>射击<b class='flag-5'>游戏</b>移植到芯科科技MG24 Matter开发板

    服务器数据恢复—5盘RAID5中的4盘重建RAID5,RAID5数据恢复秘籍!

    解具体情况下,使用raid5阵列中没有掉线的4块硬盘重新创建了一组全新的RAID5阵列,并完成同步数据,导致原始5盘raid5阵列中的数据全部丢失。
    的头像 发表于 11-13 16:20 800次阅读
    服务器数据恢复—5盘RAID5中的4盘重建RAID5,RAID5数据恢复秘籍!

    使用w5500通信使用wiz包的时候,突然拔掉网线,如何释放网络资源?

    ,但是此时我调用closesocket并不能释放网络资源。最后导致,我再次检测网线接入,重新创建socket的时候无法通信,应该时网络资源没有完全释放。因为如果我时在拔掉网线之前closesocket
    发表于 10-11 09:01

    RT Thread Studio无法打开setting怎么解决?

    大家遇到过这个问题吗? 之前一直可以运行。今天重新创建文件后遇到setting 不能打开。 Traceback (most recent call last): File \"C
    发表于 09-23 07:13

    termux调试python猜数字游戏

    用termux做一个猜数字游戏 下面是在Termux中创建猜数字游戏的步骤及完整实现方案,结合Python实现(最适配Termux环境): ? 一、环境准备(Termux基础配置) 1.
    发表于 08-29 17:15

    【RA4L1-SENSOR】开发板开箱上电测试和开发环境搭建

    的。资料连接为:RA4L1。是一个Gitee链接,里面的例程也是非常丰富的,但是不知道为何用e2Studio软件进行编译会失败。不过有了方便的烧写程序的串口就可以自己重新创建工程,并复制例程的程序。资料里
    发表于 08-10 22:00

    如何用Arduino Nano/UNO R3开发板给另一个Arduino IDE不能下载的Arduino Nano/UNO R3开发板重新烧录引导程序bootlaoder

    本文介绍了如何用能够Arduino IDE下载的Arduino Nano/UNO R3开发板给另一个Arduino IDE不能下载的Arduino Nano/UNO R3开发板
    的头像 发表于 08-08 20:16 4083次阅读
    如何用<b class='flag-5'>Arduino</b> Nano/UNO R3开发板给另一个<b class='flag-5'>Arduino</b> IDE不能下载的<b class='flag-5'>Arduino</b> Nano/UNO R3开发板<b class='flag-5'>重新</b>烧录引导程序bootlaoder

    迅为RK3568开发板OpeHarmony学习开发手册1.1-内核移植优化

    在上一小节的内核移植过程中,我们重新创建了内核补丁文件。然而,对于频繁修改内核源代码进行开发的情况来说,每次都制作内核补丁并不是一种方便的方法。为了解决这个问题,本小节将介绍另一种方法。 上一小
    发表于 07-26 10:37

    【VisionFive 2单板计算机试用体验】2、打造复古游戏机(Batocera镜像+FBNeo虚拟机, 多款游戏ROM分享)

    。 进入All games,发现已经内置了一些开源免费的小游戏,但这些游戏已经不具备可玩性了。如下图: 这些游戏确实没啥好玩的,所以读者肯定想能不能安装一些小时候游戏厅里常玩的
    发表于 07-17 21:58

    STM32WLE5 PING_PONG例程里 SyncWord 同步字的长度和数值如何设置?在哪里设置?

    STM32WLE5PING_PONG例程里 SyncWord 同步字的长度和数值如何设置?在哪里设置?谢谢!
    发表于 07-10 08:22

    【HarmonyOS 5】鸿蒙中的UIAbility详解(三)

    :冷启动与热启动的Want数据处理 1. 冷启动(Cold Start) 应用首次启动或被系统完全终止后重新创建。 冷启动,应用会从onCreate函数中进入,通过want参数
    的头像 发表于 06-14 22:32 939次阅读