Arduino智造 - arduino 的激光游戏
type: channel
link: https://arduino.ncnynl.com/tag/arduino-的激光游戏/
items: 构建基于 Arduino 的激光游戏，第 3 部分: 发射信号，命中目标
items: 构建基于 Arduino 的激光游戏，第 2 部分: 动手实践
items: 构建基于 Arduino 的激光游戏，第 1 部分: Arduino 基础知识

构建基于 Arduino 的激光游戏，第 3 部分: 发射信号，命中目标
type: item
date: 2016-04-20T07:20:00+00:00
description: 开始之前 无论您是 Arduino 新手还是经验丰富的构建者，此项目都有适合您的内容。没有比创建交互式物理对象更令人满意的事情了，因为在需要中断或者需要修改时，您知道所有部件的位置以及所有部件的工作原理。'Duino Tag 枪是适合独立完成或与朋友共同完成的优秀项目。要完成此项目，您至少应当基本了解电子学（您应当知道寄存器是什么，但是不必知道其中的深奥原理）并且了解编程（您应当知道循环和变量是什么，但是您不必解析 Big O Notation）。您可以勇敢地进行动手实践。 关于本系列 在本系列中，我们将使用 Arduino 技术来创建名为 'Duino Tag 的基本交互式激光游戏： 第 1 部分：了解一些 Arduino 基础知识，布置项目，并且做一个帮助您了解红外线工作原理的实验。 第 2 部分：构建和测试 'Duino Tag 枪的接收器部分，包括测试。 第 3 部分：构建发射器并完成 'Duino Tag 枪。 关于本教程 要继续学习本教程，您无需具有任何电子学工作经验，尽管使用电子元件的经验肯定对您有用。对于微控制器经验也是如此。如果您使用过微控制器，则有一定的优势，但是记住 Arduino 平台非常适合没有相应经验的人员。首先，您应当愿意拓展自己的技能。使用电子器件和微控制器会是一种有益的经验。大多数软件工程师没有机会为与物理世界交互的设备编写代码，而 Arduino 提供了使用交互式设备的低成本入口点。 本部分教程主要讨论如何构建 'Duino Tag 枪的发射器。实际的元件装配工作很少，不会花费太多时间。您将用一些时间来编写代码，处理游戏者的枪的所有触发需求。您将了解到构建裁判的枪还需要什么，并了解一些包装选项。本教程最后将提供一些不错的建议，供读者继续探索。 系统要求 对于本教程，您需要一些工具和设备。参见 第 1 和 2 部分 的列表，其中包括 Arduino 硬件和软件。以下是第 3 部分所需的基本配置。 红外线 LED J任何红外线 LED 都可以，但是 LED 越明亮，效果越好。 红外线传感器 撰写本系列时使用的是 TSOP2138YA 红外线传感器（也是 All Electronics 的产品）。 10,000 ohm 电阻 表面斑纹为棕色-黑色-橙色。 82 ohm 电阻 灰色-红色-黑色。 0.1uF 电容 您将需要一个 0.1uF 的电容。 开关 您需要一个单极瞬态开关。 电线 22 规格的实心线或绞线。 PVC 或其他硬管 只需很短的管子。 一个小型放大透镜（直径 3/4 英寸） 可以使用廉价的塑料制品，比如一些团体喜欢用的透镜。 您也可以通过一个工具包获得所有这些零件（参见 参考资料）。 当制作接收器原型时，实验电路板是个不错的方法，我们可以继续使用实验电路板构建 'Duino tag 枪的原型。您将需要将所有零件焊接在一起，才能使枪具有不错的外观。 在 第 2 部分 中，我们通过使用远程控制装置来帮助测试接收器，解决了对第二把枪的需求。在这里，我们需要另一把枪，或者至少需要另一个接收器。从相同的设备中试射和检测是不切实际的。（这虽然可能实现，但是如果拥有两把枪，或者有一些构建了自己的枪的朋友，将更容易实现预期功能）。 在深入讨论发射器之前，我们需要回顾一下接收器。 接收器和发射器准备工作 首先，您将调整接收器，预防不必要的远程干扰。然后，您将红外线发射器的元件组合在一起：红外线 LED 和按钮。 减少远程干扰 我们首先构建接收器，我们还未花太多时间来尝试防止人们欺骗。现在您将要确保接收器不会从远程控制装置挑选不相干的代码，比如您已用于测试的代码。有许多方式可用于解决此问题。在本教程中，我们将添加一个结束位，这与已经存在的开始位很相似，如果结束位出现异常，代码将中断执行。 1.设置 endBit 的阈值，使其大于 startBit，如清单 1 所示。 清单 1. 设置 endBit 的阈值，使其大于 startBit int startBit = 2000; // This pulse sets the threshold for a start bit int endBit = 3000; // This pulse sets the threshold for an end bit int one = 1000; // This pulse sets the threshold for 1 int zero = 400; // This pulse sets the threshold for 0 2.在 senseIR 函数中，声明一个附加变量来保存结束位。 清单 2. 声明附加变量来保存结束位 int who[4]; int what[4]; int end; 3.在读取 who…

构建基于 Arduino 的激光游戏，第 2 部分: 动手实践
type: item
date: 2016-04-20T06:51:00+00:00
description: 开始之前 无论您是 Arduino 新手还是经验丰富的构建者，此项目都有适合您的内容。没有比创建交互式物理对象更令人满意的事情了，因为在需要中断或者需要修改时，您知道所有部件的位置以及所有部件的工作原理。'Duino Tag 枪是适合独立完成或与朋友共同完成的优秀项目。要完成此项目，您至少应当基本了解电子学（您应当知道寄存器是什么，但是不必知道其中的深奥原理），并且了解编程（您应当知道循环和变量是什么，但是您不必解析 Big O Notation）。您可以勇敢地进行动手实践。 关于本系列 在本系列中，我们将使用 Arduino 技术来创建名为 'Duino Tag 的基本交互式激光游戏： 第 1 部分：Arduino 基础知识：了解一些 Arduino 基础知识，布置项目，并且做一个帮助您了解红外线工作原理的实验。 第 2 部分：构建和测试 'Duino Tag 枪的接收器部分，包括测试。 第 3 部分：构建发射器并完成 'Duino Tag 枪。 关于本教程 要继续学习本教程，您无需具有任何电子学工作经验，尽管具有使用电子元件的经验肯定会有帮助。对于微控制器经验也是如此。如果您使用过微控制器，则有一定的优势，但是记住 Arduino 平台非常适合没有相应经验的人员。首先，您应当愿意拓展自己的技能。使用电子器件和微控制器会是一种有益的经验。大多数软件工程师没有机会为与物理世界交互的设备编写代码，而 Arduino 提供了使用交互式设备的低成本入口点。 本教程主要讨论游戏的构建。在了解了 Arduino 的基本知识之后，本教程将用大部分篇幅讨论如何构建和测试 'Duino Tag 枪的接收器。您将编写很多代码。我们已经遇到了类似于 “鸡与蛋” 的问题：没有要传输的信号，我们就无法实际测试接收器，同样地，没有接收传输信号的接收器，我们也无法实际测试传输过程。幸运的是，有一个优秀的解决方案能够出色地解决这个问题。 系统要求 对于本教程，我们需要一些工具和设备。参见 教程：构建基于 Arduino 的激光游戏，第 1 部分：Arduino 基础知识 中的列表，其中包括 Arduino 硬件和软件。以下是需要的基本配置。 红外线 LED 任何红外线 LED 都可以，但是 LED 越明亮，效果越好。 红外线传感器 撰写本系列时使用的是 TSOP2138YA 红外线传感器（也是 All Electronics 的产品）。 100 ohm 电阻 这类电阻的表面斑纹为棕色-黑色-棕色。 0.1uF 电容 需要一个 0.1uF 的电容。 开关 需要一个单极瞬态开关。 压电（Piezo）元素 需要一个已焊接了导线的元素。 电线 22 规格的实心线或绞线。 还需要一种连接元件的方式，使用实验电路板或将焊接在一起都可以。 要解决 “鸡与蛋” 问题，需要使用一种通用的遥控装置或 Sony Electronics 提供的遥控装置。本系列中的示例使用来自 Sony 康宝 VHS/DVD 播放器的遥控装置，也使用来自分线盒的遥控装置成功进行了测试。 教程：构建基于 Arduino 的激光游戏，第 1 部分：Arduino 基础知识 已经提到，如果与正在构建自己的 'Duino Tag 枪的其他人合作，这个项目会更加有趣。如果有两把枪可供使用，测试工作将更加轻松。如果您决定独自工作，可以自己建立两把枪，这样会使第 2 和 3 部分的学习更加轻松。在第 3 部分中将所有部件结合起来时尤其如此。 现在，我们将重点放在制造并运行基本的接收器上。首先，您需要了解一下红外线传感器。 红外线传感器基础 市场上有许多类型的红外线 (IR) 传感器。我们选择 TSOP2138YA，因为它的成本低廉，而且很容易购买到。 传感器 传感器（如下所示）将照片传感器和一个前置放大器组合在一起。大多数这种类型的 IR 传感器将两种功能组合到一个元件中，这样会更加方便。传感器的外壳充当着 IR 过滤器。正如 教程：构建基于 Arduino 的激光游戏，第 1 部分：Arduino 基础知识 所讨论的，IR 到处都可以买到。这种传感器以及其他这类传感器的外壳可用于过滤掉背景 IR。该传感器使用 38 kHz 的载波频率。这是常用的 IR 频率，意味着我们的枪也需要以 38 kHz 的频率传输。这个传感器具有一个简单的 3 引脚接口： 1.引脚 1 在一个 38 kHz IR 信号被感知到时提供一个信号。 2.引脚 2 连接供应电压。 3.引脚 3 用于接地。 传感器的运行原理就是这么简单。 图 1. TSOP2138TA 传感器 现在连接一些元件，并使传感器运转起来。 连接传感器 以下指令假设您使用实验电路板来连接元件。如果进行焊接，可以根据需要调整指令。下图展示了一个微型实验电路板，它被附加…

构建基于 Arduino 的激光游戏，第 1 部分: Arduino 基础知识
type: item
date: 2016-04-20T05:04:00+00:00
description: 开始之前 无论您是 Arduino 新手还是经验丰富的构建者，此项目都有适合您的内容。没有比创建交互式物理对象更令人满意的事情了，因为在需要中断或者需要修改时，您知道所有部件的位置以及所有部件的工作原理。'Duino tag 枪是适合独立完成或与朋友共同完成的优秀项目。要完成此项目，您至少应当基本了解电子学（您应当知道寄存器是什么，但是不必知道其中的深奥原理）并且了解编程（您应当知道循环和变量是什么，但是您不必解析 Big O Notation）。您可以勇敢地进行动手实践。 关于本系列 在本系列中，我们将使用 Arduino 技术来创建名为 'Duino tag 的基本交互式激光游戏： 第 1 部分：了解一些 Arduino 基础知识，布置项目，并且做一个帮助您了解红外线工作原理的实验。 第 2 部分：构建和测试 'Duino tag 枪的接收器部分，包括测试。 第 3 部分：构建发送器并完成 'Duino tag 枪。 关于本教程 要继续学习本教程，您无需具有任何电子学工作经验，尽管使用电子元件的经验肯定对您有用。对于微控制器经验也是如此。如果您使用过微控制器，则有一定的优势，但是记住 Arduino 平台非常适合没有相应经验的人员。首先，您应当愿意拓展自己的技能。使用电子器件和微控制器会是一种有益的经验。大多数软件工程师没有机会为与物理世界交互的设备编写代码，而 Arduino 提供了使用交互式设备的低成本入口点。 本教程是 “构建基于 Arduino 的激光游戏” 三部分系列的第 1 部分，将主要介绍 Arduino 基础知识。我们将开始使用 Arduino，了解语言基础知识和 API。我们将为 'Duino tag 项目做准备，包括设计基础和整合部件列表。我们将了解如何在线订购部件、去哪里购买以及需要哪些部件。最后，使用一些采购的元件和一些基本测试代码，我们将演示控制枪械操作的基本原理。 系统要求 对于本教程，我们需要一些工具和设备： 具有 USB 端口的计算机 虽然从技术的角度来说并不合适（许多类型的 Arduino 硬件接口都是基于旧式串行端口的），但是本系列在撰写时假定您使用的是基于 USB 进行通信的模型。Arduino 软件可用于 Microsoft® Windows®、Mac OS X 和 Linux®（32 位和 AMD 64 位）。 Arduino Diecimila 这是本教程中使用的 Arduino 硬件的具体模型。您可以替换 Arduino Duemilanove。请从正规的网上经销商那里订购一个。要获得链接，请参阅 参考资料。 USB A-B 线 这是类似于已经连接到打印机上的一根 USB 线。 基本的 5mm 红色发光二极管（Light-Emitting Diode，LED） 您可能已经有一个，或者可以在 Radio Shack 或者从网上经销商那里购买。 闪光灯 越亮越好。 Arudino 软件 要下载 Arudino 软件，请参阅 参考资料。 Arduino 的安装和设置指南 要下载 Arduino 安装指南，请参阅 参考资料。 Arduino 简介 在本节中，我们将介绍 Arduino 硬件的基础知识、如何设置，并简单介绍如何编写软件。 Arduino 是什么？ 简言之，Arduino 板是一个微控制器 — 具有各种输入管脚和输出管脚的小型计算器。使用这些管脚，您可以创建无数交互式设备，包括像闪光灯一样简单的设备，以及通过各种输入创建使用伺服系统和引擎的复杂行为的复杂设备。第一个 Arduino 是 2005 年 1 月由米兰交互设计学院的两位教师 — David Cuartielles 和 Massimo Banzi — 创建的。要获得介绍 Arduino 开发人员的在线杂志文章，请参阅 参考资料。 Arduino 平台由两部分组成：硬件（包括微控制器、电路板等）和软件（编程接口和语言）。平台的两个部分都是开源的。如果需要，您可以下载 Arduino 的图表、购买需要的所有独立部件、切割电路板并从头开始制作一个电路板。有很多用于这一用途的各种项目（如 Freeduino）。图表和 CAD 文件已经在 Creative Commons Share-Alike 许可下发布。用于编写 Arduino 的软件也是开源的。它是用 Java™ 编程语言编写的并且是在 GPL（有一些已经在 LGPL 许可下发布的 C/C++ 微控制器库）下发布的。 有几个可用的微控制器平台，并且许多平台都实现相同的目的：易于编程、与微控制器进行交互、将所有内容封装到一个包中等等。同样地，Arduino 旨在提供一个简单的界面和一个将所有功能集于一身的包，同时尝试提供其他优点： 低成本 可以从头开始构建便宜的 Ard…