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

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

3天内不再提示

怎样使用加速度计和RF收发器对的手势控制流动站

454398 来源:网络整理 作者:网络整理 2019-12-11 11:36 次阅读

步骤1:收集物品

《表样式=“ border-collapse:折叠;”》 •Arduino Nano x1 •加速度计(ADXL335) x1 •5V直流电机+车轮 每个x2 •牛车轮* x1 •L293D电机驱动器+ 16针IC插座 每个x1 •434 MHz射频发送器 x1 • 434 MHz射频接收器 x1 •HT-12E编码器IC + 18针IC插座 每个x1 •HT-12D解码器IC + 18针IC插座t 每个x1 •LM7805稳压器 x1 •按钮开关 x2 •红色LED + 330O电阻器 每个x2 •黄色LED + 330O电阻器 每个x1 •绿色LED + 330O电阻器(可选) 每个x4 •51kO和1MO电阻器 每个x1 •10µF径向电容器 x2 电池,电池连接器,USB电缆,跳线,母接头,2针螺丝端子PCB,机箱和常用的焊接配件

如果您想知道为什么我们为什么要使用事实是,射频发射器和接收器模块只有4个数据引脚,这意味着我们只能驱动2个电机,因此使用牛轮来支撑结构。但是,如果您觉得四轮摩托看起来更酷一点,请放心,这是可以解决的!在这种情况下,只需从列表中刮出牛轮,添加另一对5V DC电机,每个电机都带一个轮,,并注意在步骤3结束时讨论的简单技巧。/p》

最后,对于勇敢的人来说,可以在设计中进行其他一些小的修改,其中包括对您自己的Arduino进行设计。前往下一步的“奖金”部分,亲自看看。您还需要一些额外的电源: ATmega328P , 28pin IC插座, 16Mhz晶体振荡器,两个 22pF陶瓷电容,另一个 7805稳压器,另外两个10μF径向电容和10kΩ,680Ω,330Ω电阻,是的,减去Arduino !

步骤2:连接变送器

我们将把项目分解为两个组成部分:发射器和接收器电路。发射器由一个加速度计,一个Arduino和一个射频发射器模块以及一个HT-12E编码器IC组成,所有模块均按照所附的原理图进行接线。

如前所述,该加速度计用于识别我们的加速度计。手势。我们将使用三轴加速度计(基本上是三个单轴加速度计)来满足我们的需求。它可以用来测量所有三个维度上的加速度,并且您可能已经猜到了,它不会产生一个,而是相对于三个轴(x,y和z)的三个模拟值的集合。实际上,我们只需要沿x和y轴加速,因为我们只能沿四个方向驱动流动站:向前或向后(即,沿y轴)和向左或向右(即,沿x轴)。如果要构建无人机,我们将需要z轴,以便我们也可以通过手势控制它的上升或下降。在任何情况下,加速度计产生的这些模拟值都必须转换为数字信号,以便能够驱动电动机。 Arduino负责解决这一问题,Arduino也将这些信号转换后通过RF发送器模块发送到流动站。

RF发送器只有一项工作: 将天线3处的“串行”数据发送到天线1处。提倡使用 HT-12E ,这是一种12位并行/串行数据编码器,它可以从Arduino在AD8至AD11行收集多达4位并行数据,从而使我们能够为多达24 = 16种不同的I/O组合腾出空间,而不是RF发射器上的单个数据引脚。从编码器上的A0到A7线提取的其余8位构成地址字节,这有助于将RF发送器与相应的RF接收器配对。然后将这12位组合在一起并进行序列化,然后传递到RF发送器的数据引脚,后者再将ASK将数据调制到434MHz载波上,并通过天线在引脚1处发射出去。

从概念上讲,任何以434Mhz监听的RF接收器都应该能够拦截,解调和解码该数据。但是,HT-12E和HT-12D对应地址线(12位串行到并行数据解码器)上的地址线允许我们通过路由数据来使射频收发器对唯一。仅与目标接收者进行通信,从而限制了与所有其他接收器的通信。我们要做的就是在两个前端上完全相同地配置地址线。例如,由于我们已将HT-12E的所有地址线都接地,因此必须在接收端对HT-12D进行同样的处理,否则流动站将无法接收信号。 通过这种方式,我们还可以通过在每个接收器的HT-12D上相同地配置地址线,用单个发射器电路控制多个流动站。或者,我们可以戴上两副手套,每只手套上都贴有包含不同地址线配置的发射器电路(例如,一根接地,所有地址线都接地,另一根接地的线都保持高电平,或者一根接地的线,而其余七根保持着。高,另一条接地两根线,而其余六根保持高电平,或它们的任何其他组合),每根转向操纵多个相同构造的漫游车。

组装电路时要注意的一件事是 Rosc的值。 HT-12E在引脚15和16之间有一个内部振荡器电路,可通过在这些引脚之间连接一个称为Rosc的电阻来使能该振荡器。实际上,为 Rosc选择的值确定了振荡器频率,该频率可以根据电源电压而变化。为Rosc选择合适的值对于HT-12E的功能至关重要!理想情况下,HT-12E的振荡器频率应为HT-12D振荡器频率的1/50倍。因此,由于我们使用5V电压工作,因此我们分别为HT-12E和HT-12D电路选择1MΩ和51kΩ电阻作为Rosc。如果您打算在不同的电源电压下操作电路,请参考随附的HT-12E数据表的“振荡器频率与电源电压”图第11页,以确定确切的振荡器频率和电阻。

此外,作为附带说明,我们将使用母头(与IC插座具有类似目的)来插入加速度计,RF发射器和电路中的Arduino,而不是直接将它们焊接到PCB上。目的是为了适应组件的可重用性。假设您已经设计了一段时间,因为您已经设计好了手势控制的流动站,而现在它正坐在那里,一半被灰尘覆盖,位于奖杯架的顶部,您偶然发现了另一个利用加速度计功能的出色指导。所以你会怎么做?您只需将其从流动站中拉出,然后推入新电路即可。无需召唤“亚马逊”为您带来新的机会:-p

奖金:放弃Arduino,但不要!

以防万一,感觉有点冒险,尤其是如果您认为将这种设计精美的奇迹(当然是Arduino)花费在我们这样的琐碎任务上有点过头了,请耐心等待一段时间;

我们的目标是制造Arduino(实际上是Arduino的大脑;是的,我在谈论ATmega IC!)。团队的永久成员。 将ATmega编程为一次又一次地运行一个草图,以便它可以作为电路的永久部分,就像HT-12E一样,它只是一个IC,只坐在那里,做应该做的事。

无论如何,要继续进行此升级,只需按照所附的第二个原理图修改电路即可。在这里,我们只需用ATmega的IC插座替换Arduino的母接头,在IC的复位引脚(引脚1)上添加一个10K上拉电阻,并在引脚9和10之间使用外部时钟将其泵浦不幸的是,如果我们放弃了Arduino,我们也将其内置的电压调节器也放开了;因此,我们还必须在此处复制我们用于接收器的LM7805电路。此外,我们还利用分压器来为加速度计供电所需的3.3V电压。

现在,唯一要注意的就是对ATmega进行编程以完成其工作。不过,您必须等到第4步。因此,请继续关注…

步骤3:而且,接收器

接收器由一个射频接收器模块,一个HT-12D解码器IC和一对在L293D电机驱动器的帮助下运行的直流电机组成,所有电机均按照随附的原理图进行接线。

RF接收器的唯一工作是解调载波(通过其在引脚1处的天线接收),并在引脚7处呈现获取的“串行”数据被 HT-12D 拾取并反序列化。现在,假设HT-12D上的地址线(A0至A7)与HT-12E的地址线相同,则通过数据线提取数据的4个并行位并通过 HT-12D上的(D8到D11),连接到电动机驱动器,电动机驱动器又将这些信号解释为驱动电动机。

再次,请注意四川‘竹根即可。 HT-12D在引脚15和16之间也有一个内部振荡器电路,该电路通过在这些引脚之间连接一个称为Rosc的电阻器来使能。实际上,为 Rosc选择的值确定了振荡器频率,该频率可以根据电源电压而变化。为Rosc选择合适的值对于HT-12D的功能至关重要!理想情况下,HT-12D的振荡器频率应为HT-12E振荡器频率的50倍。因此,由于我们工作在5V电压下,因此我们为HT-12E和HT-12D选择了1MΩ和51kΩ电阻作为Rosc。电路。如果您打算在不同的电源电压下操作电路,请参考随附的HT-12D数据表的“振荡器频率与电源电压”图第5页,以确定确切的振荡器频率和电阻。

还可以,不要忘记RF接收器的母头。

可选地,可以通过330Ω限流器连接LED电阻连接到HT-12D的4个数据引脚中的每一个,以便帮助确定在该引脚上接收的位。如果接收到的位为高电平(1),则LED会点亮;如果接收到的位为低电平(0),则LED会变暗。另外,也可以将单个LED绑在HT-12D的VT引脚上(同样通过330Ω限流电阻),如果有效传输,该指示灯会亮起。

现在,如果您正在寻找我在第一步中提到的电动机的骇客,这太容易了! 只需将第二组中的两个电动机并联连接即可。之所以如此,是因为每组中的电动机(左侧的前部和后部电动机,右侧的前部和后部电动机)绝不会反向驱动。也就是说,为了使流动站向右转,必须同时向前驱动左侧的前部和后部电动机,并且必须向后驱动右侧的前部和后部电动机。同样,要使流动站向左转,必须同时向左驱动左侧的前部和后部电动机,并且必须向前驱动右侧的前部和后部电动机。因此,将同一对电压馈入一组中的两个电机是安全的。而且,解决该问题的方法是简单地将它们并联起来。

步骤4:进入代码

要做的只是使流动站启动并运行。是的,您猜对了! (我希望您做到了)我们仍然必须将加速度计的读数转换为电机驱动器可以解释为能够驱动电机的形式。如果您认为由于加速度计的读数是模拟的,并且电动机驱动器期望数字信号,那么我们将必须实现某种ADC,这不是技术上的要求,但这就是我们要做的。并且它非常简单。

我们知道加速度计沿线性轴测量重力加速度,并且该加速度表示为在地面和电源电压之间波动的电压水平,我们的微控制器读取该电压水平输入的模拟值在0到1023之间变化。但是,由于我们将加速度计的工作电压设为3.3V,因此我们建议将10位ADC(集成在Arduino上的ATmeaga中)的模拟参考值设置为3.3 V 即可。它只会使事情更容易理解;不过,即使我们不这样做,对于我们的小实验也无济于事(我们只需要稍微调整一下代码)。但是,为此,我们只需将Arduino上的AREF引脚(ATmega上的引脚21)连接到3.3V,并通过调用 analogReference(EXTERNAL) 来表示代码中的这一更改。

现在,当我们将加速度计放平并模拟读取沿x和y轴的加速度时(记住吗?我们只需要这两个轴),我们得到的值约为511(即0到1023之间的一半),即只是说沿这些轴的加速度为0。与其深入研究事实的细节,不如将其想象为图形上的x和y轴,如图所示,值511表示原点,值0和1023表示端点。调整加速度计的方向,使其针脚指向下方并靠近您,否则您可能会反转/互换轴。这意味着,如果将加速度计向右倾斜,则应沿x轴读取大于511的值,如果将加速度计向左倾斜,则应沿x轴读取小于511的值。 x轴上。同样,如果将加速度计向前倾斜,则应沿y轴读取大于511的值,如果向后倾斜加速度计,则应沿y轴读取小于511的值。这就是我们在代码中推断流动站应驶入的方向的方式。但这也意味着我们必须保持加速度计真正稳定并平行于平面对齐,才能沿511方向读取511。以便将流动站停在两个轴上。为了稍微简化此任务,我们如图所示定义了一些形成边界的阈值,以便只要x和y读数在范围之内,流动站就保持静止,而且我们可以肯定知道流动站一旦超过阈值,必须将其设置为运动状态。

例如,如果y轴读数为543,我们知道加速度计是向前倾斜的,因此我们必须使流动站向前。我们通过将引脚D2和D4设置为高电平并将引脚D3和D5设置为低电平来实现此目的。现在,由于这些引脚直接连接到HT-12E,因此信号被串行化并发射到RF发射器,仅被位于流动站上的RF接收器捕获,借助于HT-12D,该信号反序列化并将它们传递给L293D,L293D依次解释这些信号并驱动电动机前进。

您可能想要更改这些阈值,以便校准灵敏度。一种简单的方法是将加速度计连接到Arduino,然后运行一个草图,将x和y读数吐到串行监视器上。现在,只需稍微移动一下加速度计,浏览一下读数并确定阈值即可。

就这样!将代码上传到您的Arduino并享受!!或者,也许不是很快:-( 如果您没有跳过奖金部分,将代码上传到ATmega将会意味着更多工作。您有两种选择:

选项A: 使用USB到串行设备(例如FTDI FT232基本分线板),只需将TTL接头连接线连接到ATmega上的相应引脚即可。根据下面的映射:

突破板上的针脚微控制器上的针脚

DTR/GRNRST/复位(引脚1)通过0.1µF电容

RxTx(Pin 3)

TxRx(Pin 2)

Vcc+ 5v输出

CTS(未使用)

GndGround

现在,将USB电缆的一端插入分线板,另一端插入PC并按通常的方式上载代码:启动Arduino IDE,选择一个合适的串行端口,设置

选项B: 如果周围有人躺在地板上,请使用UNO 。只需将您的ATmega插入UNO,按通常的方式上载代码,将IC拔出,然后将其推回到发送器电路中即可。像馅饼一样简单!

这两个选项都应该起作用,前提是您足够聪明,可以先烧掉引导加载程序,然后再使用ATmega,或者如果您更聪明地购买,首先安装了引导程序的ATmega。如果没有,请按照此处概述的步骤进行操作。

Andddd,我们正式完成!我希望您喜欢这个冗长的指导。现在,继续进行,如果还没有完成,请完成构建您的流动站,试一会儿,然后再返回以对下面的评论部分进行大量查询和/或建设性的批评。

责任编辑:wv

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

    关注

    1

    文章

    72

    浏览量

    24316
  • 加速度计
    +关注

    关注

    6

    文章

    660

    浏览量

    45406
收藏 人收藏

    评论

    相关推荐

    加速度计的输出都是数字信号,那么它的带宽,截止频率这些参数是什么意思?

    加速度计的输出都是数字信号,那么它的带宽,截止频率这些参数是什么意思?
    发表于 04-02 07:34

    ADXL001系列加速度计怎么设置成想要的合适带宽呢?

    ADXL001系列加速度计怎么设置成我想要的合适带宽呢?输出端外接无源RC低通滤波可以吗?
    发表于 12-29 08:13

    ADXL1001加速度计没有输出的原因?

    RT9058转换为5V为加速度计供电。 现有3种猜测: 1、由于我们是手工焊的ADXL1001,怀疑芯片没有焊好 2、RT9058输出电压为5V~5.2V,怀疑比较接近ADXL1001的输入电压上限5.25V导致传感不工作 3、传感
    发表于 12-29 07:05

    两轴加速度计和三轴加速度计的使用区别?

    有个问题请教一下:在静态测量的情况下,两轴的加速度计在测得X、Y轴上的加速度后,是不是就可以根据这两个值和重力加速度g算出Z轴方向的加速度,这样的话XYZ三个方向的角度也可以推导出来。
    发表于 12-29 06:06

    采集到的ADIS16477-2的imu数据,测试陀螺、加速度计的漂移非常大怎么解决?

    是不是没有设置滤波的带宽原因,后面我再试一下。 陀螺漂移都大于40度/小时了, 加速度计的漂移大于1e-4g了。 与技术文档相差很多呀?是不是要根据温度进行补偿呀?不知道怎么解决? 麻烦专家指点一下。谢谢!
    发表于 12-28 07:25

    请问ADXL1004加速度计背面引脚的材料是什么?

    我想问下ADXL1004加速度计背面引脚的材料是什么?我想从背面引线出来,需要知道引脚的材料来确定引线的材料
    发表于 12-28 06:25

    ADXL362加速度计的SPI接口可以不用处理将其转换为CAN信号发出吗?

    您好,我想问一下ADXL362加速度计的SPI接口可以不用处理将其转换为CAN信号发出吗? 比如用集成的模块将SPI接口输出信号转换为CAN信号,还是必须用开发板中间做一个收发转接才可以。 期待您的回复,谢谢!
    发表于 12-27 07:37

    adxl356加速度计输出10g正常吗?

    adxl356加速度计输出10g,正常吗,分辨率80mv/g?
    发表于 12-27 06:50

    mems加速度计的量程是指什么

    Mems加速度计(Micro Electro Mechanical Systems Accelerometer)是一种微型化的加速度传感器,可以测量物体在三个轴向上的加速度,并且广泛地应用于许多领域
    的头像 发表于 12-15 10:21 596次阅读

    如何利用3轴加速度计计算Z方向的角度?

    现在想利用3轴加速度计计算Z方向的角度,但是网上都说需要磁力,请教有没有一位大神知道在没有磁力的情况下如何计算Z方向角度
    发表于 10-30 07:05

    一种低g三轴加速度计的倾斜检测理论和倾斜角测量方法

    该应用笔记介绍了一种低g三轴加速度计的倾斜检测理论和倾斜角测量方法。一般来说,这里描述的程序也可以应用于三轴模拟或数字加速度计,这取决于它们各自的规格。
    发表于 09-13 07:11

    如何为水下泵监测选择理想的加速度计

    水下泵监测理想的加速度计关键标准配备水下泵时,需要从加速度计制造商处了解的关键标准是该传感器是否满足以下标准:密封加速度计在水下应用中,强烈建议使用密封加速度计。这些
    的头像 发表于 08-14 09:46 415次阅读
    如何为水下泵监测选择理想的<b class='flag-5'>加速度计</b>

    关于LIS2HH12TR读加速度计的问题求解

    会造成一定的温飘,温飘也会导致加速度值的变化; 3。角度是怎样计算的?最好是从加速度计的原始数据着手分析,看看测试过程中,什么数据发生了变化。
    发表于 08-07 14:45

    NHS3100SENSORDB加速度计原始数据如何提取?

    ,我可以记录温度、湿度,并感知一些倾斜信息。 然而,这并不是我所期望的。我想测量用于测量俯仰角和滚动角的加速度计的输出。有没有一种方法可以让我使用 JTAG(LPC-Link 2)与电路板通信,在
    发表于 05-06 06:20

    什么是防水加速度计

    美格信在常规IEPE型加速度计基础上,按照100深度IP68级标准要求,研制出型号为ACC 1826单轴防水加速度计与ACC 1836三轴防水加速度计,两款型号为传感器和线缆一体式结构,通过了IP
    的头像 发表于 04-27 15:11 505次阅读
    什么是防水<b class='flag-5'>加速度计</b>