如何基于 Arduino 设计创客产品

市面上约有数百种资源专门面向“创客”,这些人希望学习如何构建设备,以此感知并响应周围环境。事实证明,对于非工程师和工程师而言,这是一种创造性的亚文化——倡导每个人都参与学习、相互指导,融入这个由电子产品、控制系统、微型计算机、传感器和致动器构成的世界。想要涉足这个世界,最简单的方法之一是使用创客代表 Arduino 推出的入门套件。
Arduino 的微控制器板及其相关软件在其开源硬件和软件社区推广销售。这些电子电路板具有微控制器,支持随机存取存储器 (RAM)、只读存储器 (ROM) 和集成电路 (IC),形成开源电子原型开发平台。这些平台包含所有必需的组件,可供完成一系列具有完善文档说明的创客项目。
本文作者(一名工程师)基于个人经验对 Arduino 入门套件作了相关介绍。

Arduino 入门套件

Arduino 入门套件包含启动和运行 15 个项目所需的所有组件(图 1)。
Arduino 入门套件图片图 1:Arduino 入门套件结合 Arduino UNO 微控制器板与一系列电子元器件,并随附一本 171 页的“Arduino Projects Book”(《Arduino 项目手册》),为用户开启互动电子产品世界的大门。(图片来源:Arduino)
该入门套件使用常用的 Arduino UNO 微控制器板,该板基于 Microchip Technology 的 ATmega328P 微控制器 IC(图 2)。
Arduino UNO 板图片图 2:Arduino UNO 板包含支持 ATmega328P 微控制器所需的所有元件。(图片来源:Arduino,Digi-Key Electronics 注释)
UNO 板具有 14 个数字输入/输出引脚,其中 6 个支持脉冲宽度调制 (PWM) 以控制 LED 亮度和音量。此外,还有 6 个模拟输入由逐次逼近型模数转换器 (ADC) 提供支持;该转换器具有 10 位分辨率,全分辨率下的转换速率为 15 kS/s。内置时钟具有独立的 16 MHz 石英晶体。为便于连接计算机,还提供 USB 端口。用户既可以选择由 USB 端口供电,也可通过板载电源插孔供电,该电路板可自动选择电源。
虽然 UNO 的板载引导程序可用于正常编程,但也可通过旁路绕过,从而可通过在线串行编程 (ICSP) 接口对微控制器进行编程。最后,UNO 板具有复位按钮,必要时可以轻松恢复默认状态。
ATmega328P 处理器是一款低功耗 8 位微控制器,采用增强型精简指令集计算机 (RISC) 架构(图 3)。RISC 架构使用单时钟周期指令,因而执行吞吐率相当高。
Microchip 的 ATmega328P 8 位微控制器功能框图图 3:Arduino UNO 使用的 8 位 ATmega328P 微控制器功能框图。该电路板基于 RISC 架构,使用单周期指令,执行速度快。(图片来源:Microchip Technology)
ATmega328P 的板载存储器采用非易失性存储器区块形式,包括 32 KB 的闪存程序存储器,1 KB 的电可擦除可编程只读存储器 (EEPROM),以及 2 KB 的静态随机存取存储器 (SRAM)。Arduino UNO 的 ATmega328 可通过引导程序预编程,让用户可以直接上传新代码,无需使用外部硬件编程器。引导程序占用 500 字节闪存程序存储器。该芯片包含多个串行数据接口,包括通用异步接收器发送器 (UART)、串行外设接口 (SPI) 和双线接口,即内部集成电路 (I2C) 总线。
Arduino 入门套件有五种不同的语言版本。该套件包含 Arduino UNO 微控制器板和构建 15 个不同项目所需的所有组件。171 页的 Arduino Projects Book 可指导用户完成这些项目。这本书介绍了使用 Arduino UNO 作为所有项目核心所需的硬件和软件元素。

清晰解释设备和术语

初涉电子和编程世界时,初学者经常遇到的问题之一就是对相关设备和术语不熟悉。Arduino Projects Book 一书开篇就介绍了套件中的各种元器件,包括 134 种电子元器件以及 Arduino UNO 板,从而解决了这一问题。在这一章节中,展示了每种元器件的图片,并分别描述了器件功能。该章节的末尾列出了各种元器件的原理图符号。
由于初学者可能还不熟悉电子原型开发板或试验板,因此该手册用一个章节详细说明了如何在随附的试验板上以无焊接方式连接组件。该章节以图示描绘了试验板的导电条,并说明了电源总线的运行方式。用户若是首次使用套件中的原型开发板,就能以此消除困惑。
Projects Book 介绍了一般元器件后,简要概述了 UNO 板的布局,其中着重介绍了电路板的接口、指示器和交互式开关。该章节中列举的硬件术语表涵盖了后续章节中使用的术语。
下一章节介绍了在 Windows、Mac 或 Linux 操作系统中设置 Arduino 软件的基本方法。使用的主要软件是 Arduino 集成开发环境 (IDE),可以从 Arduino 网站下载。IDE 软件环境中创建的可执行代码可直接加载至 Arduino UNO 板。

着手构建项目

加载 IDE 软件后,该手册介绍了通过 USB 连接建立主机与 UNO 板通信的具体步骤。此外,如果遇到任何困难,该手册也提供了 Arduino 故障排除和 IDE 参考章节的相关参考链接。此时,用户就可以开始构建项目了。
针对每个项目,手册中都详细说明了如何选择所需的元器件(每个项目都专门以图示列出各组件)以及如何在原型开发板上连接各组件。例如,项目 02 称作“太空船界面”,连接一个开关和三个 LED,创建“控制面板”,按下开关即可确定触发哪个 LED。该手册中的每个项目说明中都提供了完成该项目所需的预计用时 - 这个项目为 45 分钟。项目 02 的“组件列表”包括一个按钮开关、三个 LED、三个 220 Ω 电阻和一个 10 kΩ 电阻。在原型开发试验板上,可使用已剥皮的预截断跨接线来连接电路。该章节特地使用一页的篇幅,指导初学者如何识别电阻的颜色代码,以便将来独立构建项目时使用。
电路接线与 Projects Book 插图,如图 4 所示。Project Book 显示了实物接线图和原理图。通过比较两张图片,用户可快速学习原理图符号的含义以及如何连接各组件。
Projects Book 的接线说明图片(点击放大)图 4:Projects Book 的接线说明和原型开发板与 UNO 板的实际接线。相关说明以实物图和原理图两种形式呈现。(图片来源:Digi-Key Electronics)
软件是构建该项目的最后阶段。Arduino UNO 板的 ATmega328P 等微控制器使用的编程指令较为低级,即机器代码。机器代码本质上是用于控制内部硬件的一系列二进制数。但是,机器代码无需手动编写。系统使用高级语言编程,然后分几步转换为微控制器可处理的二进制命令,从而显著简化编程过程。如前所述,用于执行该操作的工具是 Arduino 集成 IDE。
项目 02 对软件代码作了进一步说明,Arduino 将其称作“草图”。其中详细介绍草图的每个必需步骤,解释编码语句将执行的操作(图 5)。
Arduino IDE 程序编辑器中的项目 02 程序或“草图”图片图 5:Arduino IDE 程序编辑器中的项目 02 程序或“草图”。(图片来源:Digi-Key Electronics)
用户可以手动输入代码,也可以从“File”(文件)下拉菜单下载代码(图 6)。
Arduino IDE 中提供所有项目的草图图片图 6:Arduino IDE 中提供了所有项目的草图。用户可以选择相应草图或手动输入代码(若需要)。(图片来源:Digi-Key Electronics)
输入代码后,可以在 IDE 界面中的“Sketch”(草图)下拉菜单,使用“Verify/Compile”(验证/编译)进行编译。编译器将检查代码的语法及其他错误。编译完成后,IDE 界面将有所指示,此时即可将代码加载到 UNO 板的闪存程序存储器中。加载功能也可从“Sketch”(草图)下拉菜单启动。UNO 板编程完毕后,绿色 LED 点亮。按下按钮开关,绿色 LED 熄灭,红色 LED 闪烁。
以上步骤虽简单却隐含了大量编程技巧,如汇编、链接和加载,将高级命令转译为二进制代码以运行微控制器。随着时间和经验的累积,初学者将获得这些知识,但此时无需多虑,尽管享受个中乐趣。
此时,Projects Book 提出一些问题,让用户思考如何修改程序,并邀请用户使用草图测试程序。随着用户参照手册实践的项目增多,电路和程序的复杂性也相应增加,从而使用户累积更多经验,扩大知识面。

总结

凭借开源原型开发平台、各种电子元器件和易用型软件,Arduino 入门套件拥有工程师和非工程师初涉电子创客世界所需的所有工具。

用户喜欢...

Arduino 环境中的 FPGA:使用 Alorium 的 Snō 模块支持预配置和定制 IP

当固件在微控制器或微处理器上的运行速度过慢时,现场可编程门阵列 (FPGA) 可解决实时嵌入式设计的硬件问题。同时,FPGA 还具有外设灵活性。然而,要使用 FPGA,设计工程师就需要学习全新的...


用于ARDUINO平台的单电池充电器和带升压的电量计

包括MAX77818电池管理PMIC(仅限充电器)和MAX17201MAX17201 ModelGauge m5电量计,用于演示Maxim的电池管理技术。该主板采用Arduino Uno R3平台。MAX77818升压电路可以在断开电源的同时为Arduino和MAXREFDES96#供...


通过 Arduino MKR Vidor 4000 快速轻松地应用 FPGA

许多设计人员迟早都会发现,微控制器或微处理器上运行的固件可能会变得太慢。现场可编程门阵列 (FPGA) 为此提供了一种可编程方法,以硬件速度来解决高速、实时、嵌入式设计问题。然而,...


使用Arduino MKR Vidor 4000快速轻松地应用FPGA

正如许多设计人员迟早会发现的那样,在微控制器或微处理器上运行的固件可能会变得太慢。这就是现场可编程门阵列(FPGA)提供可编程方式,以硬件速度解决高速,实时,嵌入式设计问题。...


面向 Arduino 的 MicroZed 载卡套件

面向 Arduino 的 MicroZed 载卡套件是一款多用评估平台,有助于: - 纳入 Arduino 兼容型扩展“保护罩”上提供的功能性 - 将应用的子集(即处理器任务)交由超低功耗微控制器完成 - 通过 LP 微控...


时代的变革需要创新者——具备神经网络记忆,实现深度学习的开源Arduino 101体验

提到Arduino,相信大部分工程师不会陌生。目前所说的Arduino,不应该简单的理解为单一的硬件开发板,还应包括广泛生...


Inel Curie神助攻——DFROBOT重磅推出年度最佳创客板Curie Nano

时间回到2015年CES展上,当时Intel向全世界宣告了进军物联网以及可穿戴领域的决心,推出了一款高度集成的模块——...


三界大融合:AXIOM完美融合Arduino,ARM及FPGA

历时两年时间,AXIOM板卡终于面世了。AXIOM在开始之初,主要由欧洲七家不同的企业单位支持。其中有三所研究机构/高校:锡耶纳大学,巴塞罗那超级计算中心和Fourth,四家科技公司:SECo,...


开始 Arduino 项目前需要知道的 10 件事

您见过别人使用 Arduino 板,看起来十分有趣,自己也跃跃欲试。您订购好了 Arduino 板、跳线、电源、一些 LED 以及配件套件。但是,为确保您在使用过程中同样感受到乐趣,您需要记住一些注意...


超低价格Spartan-6板卡推荐(兼容Arduino)

低成本,价值69.97$兼容Arduino的 Spartan-6 FPGA板卡将可编程逻辑融入到流行的嵌入式平台 作者:Steve Leibson, 赛灵思战略营销与业务规划总监 售价69.97$,兼容Arduino的Hackday Spartan-6 FPGA Shield将FPGA融...


定制自己的摄像机控制器? Blackmagic 3G-SDI Arduino扩展板帮你实现

Blackmagic是一家领先的创意视频领导者,公司的宗旨是拍摄更高质量的视频,让后期制作和电视产业变得更有富有创意,推出了多款工业级摄像机以及视频处理软件。上周在拉斯维加斯举办的...


以Arduino之名—NuMaker UNO开发板评测

Arduino为什么会这么火?套用一句话来说,成功的产品都是相似的,失败的产品则各有各的失败。 Arduino无疑是成功的...



名门之后Intel Galileo评估板评测

就在不久前刚刚落幕的2014CES上,可穿戴设备无疑成为了今年的主角,据统计,在类似可穿戴设备、物联网等移动领域,基于ARM内核的产品占据了大半江山,然而,在这种形势下,堪称性能为...


从繁至简,颠覆传统设计的云端开发——极具性价比的STM32F401 Nucleo开发板评测

曾听一位前辈说过,在电子产业,原地踏步或是前行缓慢,实则是在退步,非常危险。如今看来,确实如此,摩托罗拉、诺基亚移动等都成了生动的例子。而作为更新周期较快的嵌入式半导体...


与Arduino“本是同根”——Atmel ATmega328P-XMINI开发板评测

用“海纳百川”来形容市场确实有一定的道理,即使如今ARM Cortex-M系列的微控制器生态圈遍布全球,但是在差异化的...