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
    +关注

    关注

    188

    文章

    6469

    浏览量

    186968
收藏 人收藏

    评论

    相关推荐

    中科驭数凭借在DPU芯片领域的研发创新获评北京市企业技术中心创建单位

    近日北京市经济和信息化局公布了2024年度北京市市级企业技术中心新创建名单,中科驭数凭借在DPU芯片领域的研发创新投入、技术积累及知识产权成果等获评为北京市市级企业技术中心创建单位。 企业技术中心
    的头像 发表于 12-17 18:34 416次阅读

    如何处理机智云移动应用的删除问题

    ,删除操作可能会导致系统出现不稳定或不一致的状态。因此,如果用户觉得当前的应用不再适用,或者想要重新开始,可以采取其他措施。首先,用户可以选择重新创建一个新的应用
    的头像 发表于 10-23 08:04 186次阅读
    如何处理机智云移动应用的删除问题

    【xG24 Matter开发套件试用体验】power specification电源规格参数配置

    在线检测到有新的软件版本需要升级更新, 按着提示,点击:“update all\", 等待升级完成后,打开project 菜单选项,新创建一个工程,导入例程。 进入Power Specification界面, 查看源代码和头文件,可以按照自己的需求修改配置和填写代码, 实现实时监控和检测。
    发表于 08-20 09:30

    怎样Arduino测试锂电池容量

    本文详细介绍了如何用Arduino测量锂电池的容量。并附有电路图和Arduino的程序代码。
    的头像 发表于 07-30 09:14 865次阅读
    <b class='flag-5'>怎样</b>用<b class='flag-5'>Arduino</b>测试锂电池容量

    Arduino放回了一个空的schetch,重新打开了程序不断重启的原因?

    . 我用arduino重新加载,就像照片2一样,但它总是以相同的方式重新启动。 我将代码切成两半,重新加载,它有效。 我恢复原始代码,加载它,它有效。 我将相同的程序与加载器放回原处
    发表于 07-10 07:22

    通过menuconfig对潘多拉这块板子打开板载wifi之后,就无法重新创建项目了,怎么解决?

    当我通过menuconfig对潘多拉这块板子打开板载wifi之后,就无法重新创建项目了(pkgs更新过了,用的是GitHub上下载的5.0的版本)
    发表于 07-09 07:34

    rtt studio终端无法打印字符串是怎么回事?

    求助:rtt studio新创建的项目使用自带终端可以打印字符串,但是将字符串输出语句注释掉再改回来终端就无法打印了,并且msh也未显示也无法使用输入,使用其他的串口调试助手看到了rtt的界面以及打印的字符串
    发表于 07-05 07:29

    ESP32使用Arduino启用蓝牙后编译固件过大,怎样缩减大小呢?

    ESP32使用Arduino启用蓝牙后编译固件过大,怎样缩减大小,日志级别已经最低了,分区不能动,已经是1.9M的OTA分区配置了,怎样还能缩减大小,蓝牙功能能否裁剪
    发表于 06-28 11:27

    使用idf.py命令方式编译,怎样才能编译arduino的库,并且在项目中可调用?

    ESP-IDF添加arduino作为component的方式创建工程,sketch.cpp中的arduino代码经测试可以正确执行。 工程中需要使用arduno的simpleFOC库,并且
    发表于 06-13 06:56

    求助,在esp-idf中使用arduino作为组件后怎样使用arduino的库?

    在esp-idf中使用arduino作为组件后怎样使用arduino的库,例如我此时需要使用arduino的第三方库blinker,怎样使用
    发表于 06-12 07:21

    鸿蒙ArkTS声明式开发:跨平台支持列表【显隐控制】 通用属性

    控制当前组件显示或隐藏。注意,即使组件处于隐藏状态,在页面刷新时仍存在重新创建过程,因此当对性能有严格要求时建议使用[条件渲染]代替。 默认值:Visibility.Visible 从API version 9开始,该接口支持在ArkTS卡片中使用。
    的头像 发表于 06-03 14:46 587次阅读
    鸿蒙ArkTS声明式开发:跨平台支持列表【显隐控制】 通用属性

    如何使用Arduino设置热敏电阻来创建温度计

    在本教程中,我们将指导您如何使用Arduino设置热敏电阻以创建基本温度计。提供的原理图、试验板图和示例代码将使热敏电阻工作变得简单明了。
    的头像 发表于 02-11 10:37 2491次阅读
    如何使用<b class='flag-5'>Arduino</b>设置热敏电阻来<b class='flag-5'>创建</b>温度计

    使用自定义BSP的空项目出现Modus工具箱编译错误的原因?

    Mac OS 发行版下的 ModuStool 盒子里。 正如我在论坛上读到的那样,在Modus Toolbox中重新创建包含所有3个项目的OTA应用程序是另一个挑战,但到目前为止,我想让一个简单
    发表于 01-23 06:32

    西门子博途示例:设置优化块访问

    默认情况下,为 S7 - 1200/1500 的所有新创建的块启用优化块访问。可为 OB、FB 和全局DB设置块访问。对于背景DB,设置来自各自的 FB。 如果将块从 S7- 300/400 控制器移植到 S7- 1200/1500 ,块访问不会自动复位设置。
    的头像 发表于 01-15 10:41 5688次阅读
    西门子博途示例:设置优化块访问

    3D扫描+游戏,带你还原“真实”的虚拟赛车体验!

    近年来,赛车类游戏都致力于为玩家带来更加沉浸式的游戏体验:通过创建高精细度的3D模型,结合先进的物理引擎和逼真的动态天气系统,模拟最真实的驾驶动态。 随着游戏市场竞争加剧,如何在最短时
    的头像 发表于 01-10 11:02 459次阅读
    3D扫描+<b class='flag-5'>游戏</b>,带你还原“真实”的虚拟赛车体验!