0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Arduino蓝牙手套第一部分—基础

李继明 来源:DevicePlus 作者:DevicePlus 2023-03-01 17:45 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

这篇文章来源于DevicePlus.com英语网站的翻译稿。

入门篇:Arduino蓝牙手套第一部分-基础

poYBAGPzEvKAa97vAAlOhBPNfKs611.png

本项目的目的是开发一种能够检测出操作员的手和手指方位的设备,以实现机器人的控制。我们将介绍有关电阻和分压器的基础知识。另外,我们还将了解如何通过 I2C 总线从陀螺仪和加速度计获取测量值,以及如何建立 Arduino–PC蓝牙连接。该设备在集成到 Arduino蓝牙手套中之后将会发挥出它的作用。

硬件

• Arduino UNO

• 面包板

• 电位计 0-10kOhm

• 电阻 10 kOhm

• IMU 传感器

• 电线

• Arduino 无线扩展板

• Xbee USB 适配器

• Bluetooth Bee

• PC 蓝牙适配器

• USB A-B 数据线

• 微型 USB 数据线

软件

• Arduino IDE 1.6.7

LabVIEW

工具

万用表

poYBAGPzEvOAZoaSAAEFfJw1NTk154.png

图1: Arduino蓝牙手套项目的基本示意图

基于Arduino的采集系统配置在用户的每只手上。Arduino开发板通过测量每个电位计的电阻来获取手指弯曲(手指弯折)的信息。在处理了来自惯性测量单元(IMU)的数据后,可以识别出用户手的方位,该单元包括陀螺仪和加速度计。电池和无线数据传输模式使基于 Arduino的采集系统可用作一个可穿戴智能手套。例如,它可以用作手动控制机器人手臂的通用输入设备。

旋转测量

当旋转从手指传递到电位器手柄时,可以通过测量每个电位计的电阻来识别手指的弯曲。可使用分压器来测量电位计电阻。如果想要降低电压并获得某些固定值,可以在电路中使用分压器,由两个或多个电阻组成。

pYYBAGPzEvWAbWwEAAAe35sDxGA258.png

图2:分压器电路图

V 是来自Arduino 5V电源的电压; I 是 流经电路的电流; R1是具有固定电阻值的电阻; R2 是具有可变电阻的电位计; V1和V2是电压表。

电压在电阻R1和R2处均产生压降。V1和V2之和为V的值。根据欧姆定律:

poYBAGPzEveAM8lEAAEHoIq8i-4689.png

用Arduino模拟输入代替V2电压表,以测量电位计的电阻。

poYBAGPzEvqAHARYAAG7J-L2Amc421.png

图3:分压器电路示意图

pYYBAGPzEv2AN9KBAAXRNzr6IHY398.png

图4:安装在面包板上的分压器电路

int sensorValue;
void setup()
{
  Serial.begin(9600);// initialize serial communication at 9600 bits per second
}

void loop()
{
  sensorValue = analogRead(A0);// read the input on analog pin 0
  Serial.println(sensorValue);// print out the value you read
  delay(100);        // delay in between reads for stability
}

定向测量

惯性测量单元(IMU)是一种可以测量人体比力和角速度的电子设备。通过对角速度的连续积分,我们可以获得安装有IMU传感器的物体的当前方向。

得益于MEMS技术,IMU传感器开始流行并被广泛使用。大多数MEMS IMU传感器利用 I2C协议作为将测量结果发送到控制器的主要方式。

您必须为芯片提供电源(V和G),并将数据和时钟引脚(D和C)连接到相应的数字引脚(SDA和SCL),如图5所示:

pYYBAGPzEv-AQstEAAIuLMBD7k0100.png

图5:IMU传感器连接

poYBAGPzEwSAEHk9AAghOpvUQBE745.png

图6:连接到Arduino开发板的IMU传感器

通常,来自不同制造商的IMU传感器都会具有相同的结构,即所有的MEMS芯片都连接到 I2C 总线。因此,要从陀螺仪、加速度计和磁力计获取测量值,您将仅使用这两个引脚。

我们这里使用的IMU传感器包含 STMicroelectronics芯片( L3G4200D和 LIS331DLH )。如果您使用包含不同MEMS芯片的IMU传感器,可以更改源代码中的地址使其工作。

现在,让我们进行测试程序吧!

您需要下载安装 IMU 库 (点击Github上的“View Raw”来下载 IMU_Sensor.zip )。

将.ZIP Library 添加到 Arduino IDE( Sketch >> Include Library >> Add .ZIP Library…)

pYYBAGPzEweAQgesAAJ3obpghTg387.png

图7: Arduino IDE上添加.ZIP Library

您将会在 Arduino libraries文件夹中看到 IMU_Sensor库(图8)。现在,我们将使用“#include ”测试IMU传感器。

pYYBAGPzEwmAeT84AAHXcxebNTM865.png

图8:Arduino libraries文件夹中出现的 IMU_Sensor库

#include  // Library for I²C
#include  // Library for working with IMU modules

Gyroscope gyro; // Create an object to work with Gyroscope

Accelerometer accel; // Create an object to work with Accelerometer

void setup ()
{
Serial.begin (9600); // Open the serial port

Serial.println ("Begin init ..."); // Display a message on the beginning of the initialization

gyro.begin (); // Initialize the gyroscope
accel.begin (); // Initialization of accelerometers
Serial.println ("Init completed"); // Display a message about the successful initialization

Serial.println ("GyroscopetttAccelerometer");
}

void loop ()
{
Serial.print (gyro.readX_DegPerSec ()); // Output angular velocity around the axis X
Serial.print ("t");
Serial.print (gyro.readY_DegPerSec ()); // Output of the angular velocity around the Y axis
Serial.print ("t");
Serial.print (gyro.readZ_DegPerSec ()); // Output of the angular velocity about the Z axis
Serial.print ("tt");

Serial.print (accel.readX_G ()); // Output of the direction and magnitude of acceleration along the X axis
Serial.print ("t");
Serial.print (accel.readY_G ()); // Output of the direction and magnitude of acceleration along the Y-axis
Serial.print ("t");
Serial.print (accel.readZ_G ()); // Output of the direction and magnitude of acceleration along the Z axis
Serial.print ("tt");

Serial.println ("");
delay (300);
}

poYBAGPzEwuASnLjAANaX37AvVI783.png

图9:IMU传感器输出

无线数据传输

可以使用 Bluetooth Bee(无线蓝牙BT模块)来建立无线连接。 Bluetooth Bee模块带有板载天线。它的作用就像一个透明串行端口,可与各种蓝牙适配器和蓝牙手机配合使用。

为了检查蓝牙模块配置,请将开关置于AT模式。当模块处于AT模式时,用户或主机微控制器可以通过经串行端口发送预定义的AT指令来对其进行配置。在AT模式下,您可以从BT模块获取服务数据并更改某些设置(名称,波特率,奇偶校验和停止位)。

pYYBAGPzEw2AFNB5AALtDDXWstM327.png

图10:开关置于AT模式的 Bluetooth Bee

将BT模块和 Xbee适配器堆叠在一起,然后通过微型USB电缆将 Xbee适配器连接到PC。LED灯必须处于打开状态。

poYBAGPzEw-AOL8kAAOoVE_VjmU948.png

图11: Bluetooth Bee 放置于 Xbee适配器上

启动Arduino IDE,从 Tools >> Serial Port菜单中选择与 Xbee适配器对应的COM端口。

打开 Arduino的串行监视器( Tools >> Serial Monitor或者Ctrl+Shift+M )。如果COM端口没有正常显示,请安装 Xbee USB适配器驱动程序。从相应的选项栏中选择“Both NL & CR”、“38400”来更改PC的串行设置,以读取来自 Xbee适配器的信息,或写入需要输入到 Xbee 适配器中的信息。

发送“AT”并接收到“OK”。

poYBAGPzExGAKReGAAFFH0HG1OU176.png

发送“AT+UART?”并接收串行设置,如“9600,0,0”。

pYYBAGPzExKAB8_SAAEcMdeCS5s713.png

如果您接收到的串行设置不是“9600,0,0”,那么发送“AT+UART=9600,0,0”指令并接收到“OK”。

poYBAGPzExSANUqdAAFLb-RFh9U587.png

关闭串行监视器,断开 Xbee适配器与微型 USB数据线和BT模块的连接。不要忘记向左旋转开关来关闭AT模式。

将 Bluetooth Bee放置在 Arduino无线扩展板上,将 Arduino与USB A-B数据线连接,如图12所示。

pYYBAGPzExiAMlTaAAYCdZ1WGqc831.png

图12:在 Arduino无线扩展板上的 Bluetooth Bee

完成此步骤后,您将可以使用默认的“我的蓝牙设备”窗口找到您的 Bluetooth Bee。将您的 Bluetooth Bee与默认密码“1234”配对。请注意连接到您的设备的是哪个COM端口,在下一步草图中选择该COM端口。

这是用于测试蓝牙连接的 Arduino草图。(请注意,当将 Bluetooth Bee 安装到 Arduino无线扩展板上时,您将无法启用草图)。

#define LED 13 
int pause = 0;    // variable to store sent value
 
void setup() 
{ 
  pinMode(LED, OUTPUT); 
  Serial.begin(9600);  // open the serial port
} 
 
void loop() 
{ 
  if (Serial.available() > 0) {
    // read incoming serial data:
    String inStr = Serial.readString();
    Serial.println("Get Message:"+inStr);
    pause = inStr.toInt();
    }
  
  digitalWrite(LED, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(pause);              // wait for a second
  digitalWrite(LED, LOW);    // turn the LED off by making the voltage LOW
  delay(pause);              // wait for a second
}

poYBAGPzExqAbWeNAADwY7xUDiU221.png

图13:测试 Bluetooth Bee连接

如果您有任何意见或疑问,请在 Google + 上给我们留言。请在该主页继续关注我们,我们将会尽快发布更多资讯。

审核编辑黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 蓝牙
    +关注

    关注

    119

    文章

    6221

    浏览量

    177501
  • Arduino
    +关注

    关注

    190

    文章

    6514

    浏览量

    195921
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    提高篇——C语言核心技术(中文版)

    该资料是“C编程语言”和“C语言链接库”的完整参考手册。这本书的目的是提供本方便、可靠的手册,辅助日常的编程工作。本书描述C语言的所有元素,并介绍它们的用法。 资料分成三部分第一部分使用相当
    发表于 06-13 16:39

    TI大学计划-电源篇

    本手册将分为以下几部分介绍信号链和电源相关的知识及 TI 产品在大学生创新活动中的应用: 第一部分:运算放大器的原理和设计; 第二部分:数据转换器的原理和设计; 第三部分:线性电源和开
    发表于 05-19 15:33

    如何用 Raspberry Pi 500 搭建家庭录音室?

    是时候安装并配置家庭录音室中高质量音频制作所需的软件了。这是来自《树莓派官方杂志》系列教程的第三部分,也是最后一部分。若想阅读整个系列教程,请先回顾第一部分(关于录音空间设置),再阅读第二部分
    的头像 发表于 05-18 08:33 1211次阅读
    如何用 Raspberry Pi 500 搭建家庭录音室?

    实用电子电路设计(全6本)—— 数字系统设计

    由于资料内存过大,分开上传,有需要的朋友可以去主页搜索下载哦~ 本文内容主要分为两部分第一部分是以数字技术的思维方法作为主体论述; 第二部分是从实践角度出发,对数字技术实际应用方法进行详细介绍
    发表于 05-15 15:25

    LTC6563输入端采用AC耦合时,信号的一部分有效值会因饱和而截断怎么解决?

    手册中的电路,其中RB选用3K欧姆电阻、CAC选用100nf电容: 在实际测试中遇到了这样的情况: 此时的OFFSET为0V.我的输入光电流是正弦形式,但输出的正弦波有一部分被截掉了,若为了显示完整
    发表于 04-24 08:03

    瑞为技术牵头制定的国家标准《信息技术 可扩展的生物特征识别数据交换格式 第1部分:框架》正式发布

    图像、步态图像等模态)也同发布。 至此,瑞为已累计牵头及参与的国家/行业标准近30项,其中已发布实施的国家标准16项。 作为《信息技术 可扩展的生物特征识别数据交换格式》系列标准的第一部分,《第1部分:框架》具有举足轻重
    的头像 发表于 04-22 18:05 788次阅读

    python入门圣经-高清电子书(建议下载)

    此资料内容是本针对所有层次的Python 读者而作的Python 入门电子书。 全书部分第一部分介绍用Python 编程所必须了解的基本概念,包括matplotlib、NumP
    发表于 04-10 16:53

    使用DLP9000在切换不同的灰度图时,会出现一部分的延迟以后才可以完整的显示图像,为什么?

    您好,我使用DLP9000显示灰度图像时,在切换不同的灰度图时,会出现一部分的延迟以后才可以完整的显示图像。比如每张8bit灰度图120hz,持续2s,在2s的初始阶段会出现不完整的图像,之后才会
    发表于 02-25 06:37

    DLPR350能否使用ROI功能,投一部分光?

    请问各位大哥,DLPR350能否使用ROI功能,投一部分光。
    发表于 02-24 07:49

    DLPC3478固件加载只有前面一部分是怎么回事?

    我们现在自己研发的DLPC378+DLPA2005+DLP3010板子,Flash型号和TIDA-080003 参考设计上的样 W25Q32JVSSIQ。现在用示波器测试到固件只加载了一部分
    发表于 02-21 07:57

    松下MPS媒体制作平台 第十一篇:深入探索自动跟踪插件(第二部分)

    使用之前,请在网页上确认PC(个人电脑)的必要配置。 关于MPS媒体制作平台的Auto Tracking(自动跟踪)插件我们共制作了两部分的教程,本期是第二部分。您可以参阅第一部分
    的头像 发表于 02-19 10:31 893次阅读
    松下MPS媒体制作平台 第十一篇:深入探索自动跟踪插件(第二<b class='flag-5'>部分</b>)

    松下MPS媒体制作平台之自动跟踪插件(第一部分)

      欢迎大家观看松下操作教程 MPS媒体制作平台 第十篇:Auto Tracking(自动跟踪)插件 Auto Tracking(自动跟踪)插件是款基于人体检测和面部识别的高精度跟踪技术精确捕捉
    的头像 发表于 02-08 11:15 1067次阅读
    松下MPS媒体制作平台之自动跟踪插件(<b class='flag-5'>第一部分</b>)

    I2C接口的DAC8571输出不正常是什么原因?

    和SDATA如下图: 首先是次发送完整波形 然后是第一部分,包括地址与控制字节,是正确的 然后是第二部分,即高位字节 最后是低位字节 可以看到应该是正确的波形。 谢谢!
    发表于 01-17 08:34

    视觉AI之旅:起探索 FiftyOne ——第二部分 入门指南

    /journey-into-visual-ai-exploring-fiftyone-together-part-ii-getting-started-14cca5adfcd3     ,前言 上次我们介绍了《视觉AI之旅:起探索 FiftyOne——
    的头像 发表于 12-24 17:00 707次阅读
    视觉AI之旅:<b class='flag-5'>一</b>起探索 FiftyOne ——第二<b class='flag-5'>部分</b>  入门指南

    DAC348X EVM的I路输出电路,画圈的那一部分有什么作用?0L电感L40有什么作用?

    下图是DAC348X EVM的I路输出电路,画圈的那一部分有什么作用?0L电感L40有什么作用?T11是1:1传输线变压器,这个有什么用?
    发表于 12-20 08:46