FPGA之旅

以FPGA为主导,分享一些FPGA知识,同时还会介绍51,32,arm linux编程语言,Qt等其他知识。

还在用按键? 快来试试双轴遥感按键吧!!!

0
阅读(467)

一. 前言

在控制物体移动方面,像控制智能小车、平衡车、四轴飞控,双轴遥感按键远比按键要实用,而且引脚少,程序编写简单,是时候该放弃对按键的使用了,来看看双轴遥感按键吧!


二. 双轴遥感按键简介

双轴,可以输出X,Y两个方向上的电压值表示当前遥感所处的位置。按键,可以按下,具有按键的功能,看到这里是不是觉得它功能强大!!!。

每个轴共有三个引脚,分别是VCC,GND和信号引脚。所以说,它一共用六个引脚,外加按键的四个引脚。

VCC可以接3.3-5V。信号引脚输出的电压为0-VCC。遥感处于中间位置的时候,两个轴输出的电压为VCC/2。以X轴为例,如果遥感在最右边,那么输出为0V,在最左边,那么输出为VCC。

是不是觉得采集它的数据很容易,通过STM32内部的ADC就可以很轻松的采集到了,(#^.^#)。

image.png

二. 双轴遥感信号采集

采集部分我打算略写,一共两个通道,X,Y,使用ADC采集,ADC的配置基本上是通用的。采集到的值理论上为0-4096。


三. 双轴遥感信号校准

由于实际上采集到的信号不为0-4096,这里需要有一个校准的操作。也就是采集多次各个方向上的遥感数据,然后取平均。X轴的最左边为例,这里采集了400次。同时对模拟量进行一个判断,在最左边的就要,否则舍弃。 

image.png

四. 双轴遥感信号归一化

这里将X,Y两轴的信号全部归一化到0-100区间内,至于为什么归一化到这个区间内,是为了方便计算遥感的角度值。具体做法如下

  1.  获取原始数据

  2. 计算原始数据到对应两边界的距离

  3. 将计算得到的结果扩大100倍(避免小数),除以区间范围

  4. 左边 加 (100 - 右边)除以2得到最终结

代码体现如下,Y轴也是如此。

image.png

五. 计算双轴遥感的角度

计算出来的角度分布如下图所示。

image.png

先来想一下如何将遥感数据对应起这些角度来。不妨先看看遥感数据的特点。

180°,X轴对应为0,0°,X轴对应100。如果只考虑半个圆0-180°。是不是可以用 180*X,然后用18000 - 180*X,最后除以一个100就ok啦!然后再看Y轴,如果Y轴输出小于50。那么整体度数加个180,就可以完美和上图对应起来啦。

代码实现如下

image.png


原文链接:https://mp.weixin.qq.com/s/81ThQsfr1yAyJEs0ikLGAg

微信截图_20220708161426.png

电子技术应用专栏作家  FPGA之旅