描述
Arduino 探索印刷电路板
Arduino Esplora 是源自 Arduino Leonardo 的微控制器板。Esplora 与之前所有 Arduino 板的不同之处在于它提供了许多内置的、即用型的板载传感器用于交互。
它专为想要启动和运行 Arduino 而无需先了解
电子设备的人而设计。有关 Esplora 的分步介绍,请查看 Esplora 入门指南。 Esplora 具有板载声音和光输出以及多个输入传感器,包括操纵杆、滑块、温度传感器、加速度计、麦克风和光传感器。它还具有通过两个
tinkerkit 输入和输出连接器以及一个用于彩色 TFT LCD 屏幕的插座来扩展其功能的潜力。与 Leonardo 板一样,Esplora 使用具有 16 MHz 晶体振荡器和微型 USB 连接的 Atmega32U4 AVR 微控制器充当 USB 客户端设备,如鼠标或键盘。在板的左上角有一个重置按钮,您可以使用它来重新启动板。
L [黄色] 直接连接到微控制器,可通过引脚 13 访问
RX 和 TX [黄色] 表示正在通过 USB
通信发送或接收的数据
该板包含支持微控制器所需的一切;只需使用 USB 数据线将其连接到计算机即可开始使用。
记忆
ATmega32u4 有 32 KB(其中 4 KB 用于引导加载程序)。它还具有 2.5 KB 的 SRAM 和 1 KB 的 EEPROM(可以使用 EEPROM 库进行读写)。
输入和输出
Esplra 板的设计让人想起传统的游戏手柄设计,左侧有一个模拟操纵杆,右侧有四个按钮。Esplora 具有以下板载输入和输出:带中央按钮的模拟操纵杆两轴(X 和 Y)和一个中心按钮。
4 个按菱形图案排列的按钮。
靠近电路板底部的线性电位器滑块。
用于获取周围环境响度(幅度)的麦克风。
用于获取亮度的光传感器。
温度传感器读取环境温度
三轴加速度计测量电路板在三个轴(X、Y 和 Z)上与重力的关系
蜂鸣器可以产生方波。
RGB led 明亮的 LED,带有红色绿色和蓝色元素,用于颜色混合。
2 个 TinkerKit 输入,用于将 TinkerKit 传感器模块与 3 针连接器连接起来。
2 个 TinkerKit 输出,用于将 TinkerKit 执行器模块与 3 针连接器连接起来。
TFT 显示连接器连接器,用于可选的彩色 LCD 屏幕、SD 卡或其他使用 SPI 协议的设备。
为了利用可用传感器的总数,该板使用模拟多路复用器。这意味着微控制器的单个模拟输入在所有输入通道之间共享(3 轴加速度计除外)。四个额外的微控制器引脚选择读取哪个通道。
沟通
Leonardo the Esplora 有许多用于与计算机、另一个 Arduino 或其他微控制器通信的设施。ATmega32U4 通过 USB 提供串行 (CDC) 通信,并显示为计算机上软件的虚拟 com 端口。该芯片还可以用作全速 USB 2.0 设备,使用标准 USB COM 驱动程序。在 Windows 上,需要 .inf 文件。Arduino 软件包括一个串行监视器,它允许向 Arduino 板发送和从 Arduino 板发送简单的文本数据。当数据通过 USB 连接传输到计算机时,板上的 RX 和 TX LED 将闪烁。ATmega32U4 还支持 SPI 通信,可以通过 SPI 库访问。Esplora 可以显示为通用键盘和鼠标,并且可以使用键盘和鼠标库进行编程以控制这些输入设备。
编程
Esplora 可以使用 Arduino 软件(下载)进行编程。从“工具”>“板”菜单中选择“Arduino Esplora”。有关详细信息,请参阅入门页面。Arduino Esplora 上的 ATmega32U4 预烧了一个引导加载程序,允许您在不使用外部硬件编程器的情况下向其上传新代码。它使用 AVR109 协议进行通信。您还可以绕过引导加载程序并通过 ICSP(在线串行编程)接头对微控制器进行编程;有关详细信息,请参阅这些说明。为了方便为 Esplora 编写草图,有一个专用库,其中包含读取传感器和写入板载输出的方法。该库提供了提供预处理数据的高级方法,例如度数温度传感器的华氏度或摄氏度。
自动(软件)复位和引导加载程序启动
Esplora 不需要在上传之前物理按下重置按钮,而是设计为允许通过连接的计算机上运行的软件对其进行重置。当 Esplora 的虚拟 (CDC) 串行/COM 端口以 1200 波特打开然后关闭时触发复位。发生这种情况时,处理器将重置,断开与计算机的 USB 连接(意味着虚拟串行/COM 端口将消失)。处理器复位后,引导加载程序启动,保持活动状态约 8 秒。也可以通过按下 Esplora 上的重置按钮来启动引导加载程序。请注意,当电路板第一次上电时,它将直接跳转到用户草图(如果存在),而不是启动引导加载程序。因为 Esplora 处理重置它的方式 最好让 Arduino 软件在上传之前尝试启动重置,特别是如果您有在上传到其他板上之前按重置按钮的习惯。如果软件无法重置
开发板,您始终可以通过按下板上的重置按钮来启动引导加载程序。
代码
要将数据发送到您的计算机,您需要打开串行连接。使用 Serial.begin() 在 Esplora 上以 9600 波特打开串行端口。
要以鼠标方式开始通信,请调用 Mouse.begin()。这使得 Esplora 在您的计算机上显示为鼠标。
要读取操纵杆的位置,请调用 Esplora.readJoystickX() 和 Esplora.readJoystickY(),将值保存在变量中。这为每个轴提供了介于 -512 和 512 之间的值。当操纵杆居中时,X 和 Y 轴将报告 0。
操纵杆在按下时也可用作开关。要读取按钮,请调用 Esplora.readJoystickSwitch()。这将在按下时为您提供值 1,否则为 0。
要将值发送到串行监视器,请调用 Serial.print()。当 Esplora 已连接,并且串行监视器打开时,您应该开始看到如下报告的值:
操纵杆 X:0 操纵杆 Y:0 按钮:0 要获取适合移动鼠标的数字,请使用 map() 函数缩放操纵杆值,将这些数字保存到新变量中。
要实际移动光标,请调用 Mouse.move()。它需要三个参数,数字代表 x 轴、y 轴和鼠标滚轮上的移动量。此示例仅在 x 和 y 轴上移动鼠标,使用新映射的数字移动光标。
连接 Esplora 时,在 Arduino 软件中按 Shift-Command-M 打开串行监视器。当您移动操纵杆时,您会在光标在屏幕上移动时看到串行监视器中的值。
描述
从线性电位器读取值作为 10 位数字。这意味着它将 0 到 5 伏之间的输入电压映射为 0 到 1023 之间的整数值。这会产生读数之间的分辨率:5 伏 / 1024 单位或每单位 0.0049 伏 (4.9 mV)。
USB过流保护
Esplora 有一个可复位的多熔断器,可保护计算机的 USB 端口免受短路和过流的影响。尽管大多数计算机都提供自己的内部保护,但保险丝提供了额外的保护层。如果对 USB 端口施加超过 500 mA 的电流,保险丝将自动断开连接,直到短路或过载消除。
物理特性
Esplora
PCB 的最大长度和宽度分别为 6.5 和 2.4 英寸,USB 和 TinkerKit 连接器超出了后者的尺寸。四个螺丝孔使电路板可以连接到表面或外壳上。
读操纵杆开关()
读取操纵杆的按钮并在其状态为 0 或 1023 时返回。如果您更喜欢与 readButton() 函数更一致的东西,您可能希望使用 readJoystickButton() 代替。该函数的作用与此相同,但按下操纵杆按钮时返回 LOW,未按下时返回 HIGH。
句法
Esplora.readJoystickSwitch()
参数
没有任何
退货
按下时为 0,未按下时为 1023。
退货
int :所选轴上的读数值。加速度计在垂直于重力方向时返回零。当它在轴的两个方向之一加速时产生正值或负值。
例子
COPY1#include
2
3void setup()4{5 Serial.begin(9600);6}7
8void loop()9{10 int x_axis = Esplora.readAccelerometer(X_AXIS);11 int y_axis = Esplora.readAccelerometer(Y_AXIS);12 int z_axis = Esplora.readAccelerometer(Z_AXIS);13
14 Serial.print("x: ");15 Serial.print(x_axis);16 Serial.print(" y: ");17 Serial.print(y_axis);18 Serial.print(" z: ") ;19 Serial.println(z_axis);20
21 延迟(500);22}
读取按钮()
描述
读取按钮的状态并返回它是 HIGH 还是 LOW。
句法
Esplora.readButton(按钮)
参数
按钮:您想阅读的关联按钮。有效的论点是:
SWITCH_1 或 SWITCH_DOWN
SWITCH_2 或 SWITCH_LEFT
SWITCH_3 或 SWITCH_UP
SWITCH_4 或 SWITCH_RIGHT
JOYSTICK_DOWN = JOYSTICK_BASE
JOYSTICK_LEFT = JOYSTICK_BASE+1
JOYSTICK_UP = JOYSTICK_BASE+2
JOYSTICK_RIGHT = JOYSTICK_BASE+3
退货
按下时为低,未按下时为高。
例子
#include 2
3void setup(){}4
5void loop()6{7int button = Esplora.readButton(SWITCH_DOWN);8
9if(button == LOW)10 {11 Esplora.writeRed(255);12 }13else {14 Esplora.writeRed(0);15 }16}
读取操纵杆X()
描述
读取操纵杆 X 轴的位置。当操纵杆在中心时,它返回零。正值表示操纵杆向右移动,负值表示向左移动。
电路图+原理图