资料介绍
描述
我购买了一个 Arduino 101 用于 Arduino 兼容性以及内置蓝牙低功耗和 6 轴加速度计/陀螺仪等额外功能。我想用我的 Arduino 101 构建一个基于 Arduino 的远程控制流动站,但很难找到示例代码。我发现了许多使用蓝牙的 RC 漫游者示例,但没有一个使用蓝牙 LE。
将通信问题分解成小块,我需要:
- 确定如何创建一个可行的远程控制以将这些字节发送到流动站的状态机。
我确实解决了这两个问题。我很快发现我可以修改 CurieBLE 库中包含的 LED 和 CallbackLED 示例,以将一个字节传输到 Arduino 101,但很难找到可靠、易于使用的遥控器。经过大量的互联网搜索和一些工作后,我找到了一个新颖的解决方案,在此介绍。
第 1 步:通过 BLE 向 Arduino 101 发送字节
我在 Arduino 论坛上找到了这个基本通信挑战的答案:Arduino 论坛 > 产品 > Arduino 101。这是解释。
在名为 CallbackLED 的 Arduino 101 CurieBLE 示例中 - 定义了一个事件处理程序,以便在写入开关特性时调用。函数中的代码setup()
如下所示:
// assign event handlers for characteristic
switchChar.setEventHandler(BLEWritten, switchCharacteristicWritten);
在switchCharacteristicWritten
事件处理函数中,代码检查写入的值是零 (0x00) 还是其他值。如果非零,它将“打开”LED,如果为零,它将“关闭”LED。代码如下所示:
if (switchChar.value()) {
Serial.println("LED on"); digitalWrite(ledPin, HIGH);
else {
Serial.println("LED off"); digitalWrite(ledPin, LOW); }
要捕获写入的字节,只需将其保存到一个变量中,然后在串口监视器上打印出来,代码如下所示:
if (switchChar.value()) {
Serial.println("LED on");
digitalWrite(ledPin, HIGH);
char state = switchChar.value();
Serial.print("new value written: ");
Serial.println(state); }
else {
Serial.println("LED off");
digitalWrite(ledPin, LOW); }
我通过 Nordic Semiconductor 的 nRF Connect 应用程序编写角色来验证此功能是否有效,该应用程序在 Play Store 和 App Store 中均可用。
以下是安装应用程序后的详细步骤:
1.运行nRF Connect应用
2. 按右上角的“扫描”运行扫描仪 - 它通常会自动运行
3. 选择您的命名服务(在示例中它被命名为“LEDCB”)。
4. 按右侧的“连接”。
5. 选择未知服务(服务列表中的最后一个)。
6. 按右边的向上箭头。这会弹出一个写入值对话框。
7. 按“新值”,输入一个十六进制字节值,如 61 - 这是 ASCII 文本中的“a”。
8. 按右下角的“发送”,您的字节就被发送了。
按照这些步骤,我们成功地通过蓝牙 LE 将字节写入 Arduino 101。
第 2 步:创建蓝牙 LE 遥控器
我喜欢 nRF Connect 应用程序,但我找不到制作可用遥控器的方法。通过 nRF Connect 应用程序手动输入字节不会让我有效地控制流动站。为了试用其他 Arduino 101 示例,我下载了另一个名为 nRF 工具箱的 nRF 应用程序。在工具箱中,最后一个应用程序的名称为“UART”。UART 应用程序有九个用户可定义的按钮,可以配置为在按下按钮时发送命令。按右上角的“编辑”会使所有按钮变为橙色。触摸按钮会弹出一个对话框,将图标与按钮相关联,并定义按下时要发送的命令。
我有一部 Android 手机,可用图标与我的遥控器完美匹配。在 IOS 设备上,图标不太适合这种用法,但请选择您能记住的图标。我的流动站的运动控制基于使用以下配置的简单单字节代码(我使用了 Deba168 教程中用于“智能手机控制的 Arduino 流动站”的控制序列)。这是命令列表和相应的字符:
一个 - 向前
b - 左
c - 停止
d - 右
e - 反转
1 - 25% 的电机功率
2 - 50% 的电机功率
3 - 75% 的电机功率
4 - 100% 电机功率
当我第一次创建遥控器时,我输入了字符的 ASCII 值 - 这没有用。正确的命令是字母/数字本身,而不是它的 ASCII 值。当我输入所有九个图标和命令时,我按下“完成”。我完成的遥控器看起来像图片。
简单吧?还好没那么快。当我尝试将具有 CallbackLED 开关特性的 Arduino 101 BLE 服务连接到 UART 应用程序时,它会抱怨“该设备没有所需的服务”。我在 Nordic 和 UART 上进行了互联网搜索。我发现 UART 应用程序希望看到非常具体的服务 UUID 和特征。使用以下信息:https://www.nordicsemi.com/eng/Products/Nordic-mob ...。我将正确的服务名称、UUID 以及 Tx 和 Rx 特征集成到我的 Arduino 草图中,然后我进行了一些调整以解决该服务可以传输多个字符并因此提供指向第一个元素的指针这一事实一个数组并且它有效。
第 3 步:测试遥控器
Sketch 会将传输的字节发送到串行监视器,以验证 UART 应用程序上的每个按钮是否发送了所需的字节。
要使用遥控器,请按照下列步骤操作:
1.打开nRF工具箱
2. 选择串口应用
3. 按“连接”按钮,然后选择您的 BLE 服务的名称 - “BLE_ROV”。
该按钮现在应显示为“断开连接”。您现在已连接,每次按下按钮都会传输该按钮的命令。
注意:在使用旧 IOS 手机测试此草图时,我发现我宣传的本地名称“BLE_ROV”没有出现在要连接的列表中。相反,我看到类似“Arduino 101-xxxx”的内容,其中 xxxx 是 BLE 芯片 Mac 地址的最后 4 个十六进制数字 - 显示在 Arduino 101 板背面的小标签上。只需选择要连接的名称,一切都会正常。
这是我能找到的最简单的解决方案。当您按下遥控器上的每个键然后断开连接时,包含可供下载的 Arduino 草图以及串行监视器的图像。
我希望这是有用的。我将在稍后提供我建造的漫游者的完整说明。
- Project Kong:满足特殊需求的特殊漫游者
- Arduino101/tinyTILE BLE:配对太阳镜
- 带Arduino的红外遥控器
- 构建结合Azure Sphere安全性和FreeRTOS的漫游者
- 使用Zephyr RTOS的碳漫游者
- 基于Arduino UNO的带遥控器环境灯 0次下载
- arduino 101 BLE的短信提醒
- 自动驾驶和避障漫游者开源
- 使用Arduino遥控器降低收音机音量
- Alpha V1:开源Arduino基础遥控器
- 使用Arduino解码任何遥控器的红外遥控信号
- 户外漫游者开源项目
- DIY Arduino nRF24L01遥控器
- 风神遥控器正确拆卸方法步骤 15次下载
- 空调遥控器维修资料下载 18次下载
- 万能遥控器的设置和使用方法 1.2w次阅读
- 如何构建一个简单的基于红外的车门遥控器 1145次阅读
- 如何创建基于MAXQ的“学习”遥控器 922次阅读
- 遥控器的组成 9432次阅读
- fireflyAIO-3288J红外遥控器介绍 1617次阅读
- fireflyAIO-3288C主板红外遥控器简介 1567次阅读
- FireflyRK3128主板红外遥控器介绍 2055次阅读
- Firefly关于RK3288的红外遥控器简介 2557次阅读
- 沁恒股份蓝牙智能遥控器方案概述 4307次阅读
- 一文弄懂工业无线遥控器是什么 1.4w次阅读
- 无线遥控器常见的五个故障及处理办法 2.7w次阅读
- 带你了解遥控器的发展历史 1.6w次阅读
- 一文弄懂无线遥控器 8884次阅读
- 遥控器集成检测系统检测CAN总线遥控器操作过程简介 7039次阅读
- 简单实用的遥控器检测仪电路图 1.7w次阅读
下载排行
本周
- 1SL6341B USB3.2 Gen1X1 接口的的4口HUB
- 2.94 MB | 5次下载 | 免费
- 2使用CR6850C设计并制作12V5A开关电源
- 1.53 MB | 5次下载 | 2 积分
- 3设计院eplan 500多页项目图纸
- 21.43 MB | 3次下载 | 1 积分
- 4和芯润德USB3.0HUB芯片SL6341设计资料
- 2.58 MB | 2次下载 | 免费
- 5stm32sx1262资料大全
- 7.98 MB | 2次下载 | 免费
- 6放大器和位:数据转换器放大器选择简介
- 455.89KB | 1次下载 | 免费
- 7P6KE6.8A瞬态抑制二极管 DO-15封装 产品规格书
- 0.37 MB | 1次下载 | 免费
- 81.5KE8.2A 瞬态抑制二极管 DO-201AD封装规格书
- 0.30 MB | 1次下载 | 免费
本月
- 1新概念模拟电路第四册信号处理电路电子书免费下载
- 10.69 MB | 51次下载 | 免费
- 2SW6308V原理图设计指南
- 0.75 MB | 14次下载 | 1 积分
- 3SW6308V三口多协议升降压移动电源SOC中文手册
- 1.61 MB | 14次下载 | 1 积分
- 4800VA纯正弦波逆变器的参考设计
- 2.96MB | 13次下载 | 免费
- 5纯电动汽⻋的主要部件及⼯作原理
- 5.76 MB | 12次下载 | 5 积分
- 6GP328和GP88S对讲机的维修实列资料合集免费下载
- 0.03 MB | 10次下载 | 10 积分
- 7SW6308V寄存器手册
- 1.08 MB | 10次下载 | 1 积分
- 8Type-C VL160数据手册
- 0.92 MB | 9次下载 | 3 积分
总榜
- 1matlab软件下载入口
- 未知 | 935115次下载 | 10 积分
- 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
- 1.48MB | 420061次下载 | 10 积分
- 3Altium DXP2002下载入口
- 未知 | 233084次下载 | 10 积分
- 4电路仿真软件multisim 10.0免费下载
- 340992 | 191365次下载 | 10 积分
- 5十天学会AVR单片机与C语言视频教程 下载
- 158M | 183329次下载 | 10 积分
- 6labview8.5下载
- 未知 | 81581次下载 | 10 积分
- 7Keil工具MDK-Arm免费下载
- 0.02 MB | 73805次下载 | 10 积分
- 8LabVIEW 8.6下载
- 未知 | 65985次下载 | 10 积分
评论
查看更多