Arduino 是一款价格不高、易于使用的电子平台。包括硬件和软件在内的整个平台是完全开源的,并且使用的是松散地基于 C/C++ 的语言。Arduino 是为希望尝试创建交互式物理对象的实践者、喜欢创造发明的人以及艺术家构建的。这个三部分系列将从基本的 Arduino 硬件开始,并使用它创建名为 “'Duino tag”的交互式激光游戏,玩家可以使用几乎从头开始构建的设备玩 tag 游戏。在构建基于 Arduino 的激光游戏的第 1 部分中,我们将构思作为 'Duino tag 的一部分的基本预备试验。
开始之前
无论您是 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。请从正规的网上经销商那里订购一个。要获得链接,请参阅 参考资料
arduino字符串转数组
USB A-B 线
这是类似于已经连接到打印机上的一根 USB 线。
基本的 5mm 红发光二极管(Light-Emitting DiodeLED
您可能已经有一个,或者可以在 Radio Shack 或者从网上经销商那里购买。
闪光灯
越亮越好。
Arudino 软件
要下载 Arudino 软件,请参阅 参考资料
Arduino 的安装和设置指南
要下载 Arduino 安装指南,请参阅 参考资料
构建基于 Arduino 的激光游戏,第 1 部分: 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 旨在提供一个简单的界面和一个将所有功能集于一身的包,同时尝试提供其他优点:
低成本
可以从头开始构建便宜的 Arduino 板,并且预组装的组件十分便宜。Arduino Diecimila 花费大约35 美元。
跨平台软件
获得适用于 Microsoft WindowsMac OS X Linux Arduino 软件。
简单的语言
Arduino 开发人员尝试使语言可以被初学者轻松掌握,但是对于高级用户足够灵活。
开放源码
Arduino 从上到下完全是开源的。如果需要构建或修改软件,您可以随意执行。此外,Arduino 的官方 Web 站点包含丰富的维基,其中的代码样例和示例都是免费共享的。
有大量可用的 Arduino 信息。最佳起点位于官方 Web 站点(请参阅 参考资料)。花一些时间阅读该站点中的优秀介绍性信息。
入门
要与 Arduino 硬件进行交互,您需要安装软件。下载适用于您的操作系统的软件并遵循相应的分布安装和设置指南(请参阅系统要求)。它们遵循相同的步骤:
1 解压缩软件
2 安装 Arduino USB 驱动程序
3 连接 Arduino
4 启动软件
5 上传示例
我们将不会详细介绍每个步骤,因为这些步骤将随着环境的不同而变化。让我们讨论一下软件和 Blink 示例。
注:按照 Arduino 的说法,独立的脚本和程序被称为 “sketches”
在启动软件并装入 Blink 示例后(根据入门指南中的说明),您应当会看到类似图 1 的内容。
这里简要介绍一下该界面,顶部按钮行将控制基本任务,如编译、创建和保存文件、将代码上传到Arduino 板中以及打开或关闭 Serial Monitor(稍后还有更多任务)。中间窗格包含 Blink 示例的所有代码,并且底部窗格将显示控制台输出、编译错误和序列消息(打开 Serial Monitor 时)。目前,让我们将精力放在中间的窗格上并讨论 Arduino 语言。
Arduino 语言基础知识
Arduino 语言是基于 C/C++ 的,并且如果您以前使用过这种语言,则应十分熟悉它的构造函数和特性。虽然完整回顾该语言不在本教程范围内,但是让我们剖析 Blink 示例并了解一点该语言的知识。如果您已经可以熟练使用代码,则这些内容可能有些过于简单,因此如果您愿意获取一本手册并进一步深入研究,请随意查阅更多语言参考(要获得更多语言参考,请参阅 参考资料)。
首先,查看大块注释。Arduino 语言中的注释是用两种样式编写的。
清单 1. 块样式
                             
*/
* Block Style like this
*/
也可以用内联样式编写。


清单 2. 内联样式
                             
// inline like this
接下来,注意声明一个变量:int ledPin = 13;
从这一行可立即看出 Arduino 语言中的行都是以分号为结尾的。此外,从中可以了解在 Arduino 语言中声明变量所需的几乎所有内容。语法为:声明变量类型,声明变量名,设置变量的初始值。除了整型之外,Arduino 语言还支持无符号的整型、布尔型、字符型、无符号的字符型、字节型、长型、无符号的长型、                                                                浮点型、双精度型、字符串型和数组型。在 Arduino 语言参考中查每种数据类型的详细信息,但是花一些时间了解一下数组类型。在声明数组时,清单 3 中所示的每种方法都是正确的。

清单 3. 声明数组的方法
                             
int fourlong[4];  // creates an empty array, 4 elements long
int nolength[] = {8,18,32,64};  // the compiler will figure out how long this array is
int setboth[4] = {8,18,32,64};  // This creates a 4 element array
                                // and sets the initial value
char someword[7] = "fizbin";  // You need to add one extra element for a null character
                                                 

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。