OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6999|回复: 6

疯壳AI开源无人机ADC(摇杆控制)

[复制链接]

98

主题

124

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
437
金钱
437
注册时间
2017-2-27
在线时间
53 小时
发表于 2020-4-15 14:52:22 | 显示全部楼层 |阅读模式
一、摇杆1.1摇杆简介
摇杆由于符合人体工学、操作简单,广泛应用于各类的玩具中,例如遥控飞机、遥控小车等。如下图所示为摇杆模块的实物图。
图片1.jpg
1.2摇杆原理
摇杆的根本无非就是两个电位器,也就是常说的滑动变阻器,一个电位器对应摇杆的上下方向,而另一个电位器则对应左右方向。
摇杆的引脚一端接上电、一端接上地,另外一端就负责采集电压的变化值即可,判断摇杆是往哪个方向拨动。
二、ADC2.1 ADC简介
ADCAnalog-to-Digital Converter),模数转换器即A/D转换器,或简称ADC,通常是指一个将模拟信号转变为数字信号的电子元件。通常的模数转换器是将一个输入电压信号转换为一个输出的数字信号。由于数字信号本身不具有实际意义,仅仅表示一个相对大小。故任何一个模数转换器都需要一个参考模拟量作为转换的标准,比较常见的参考标准为最大的可转换信号大小。而输出的数字量则表示输入信号相对于参考信号的大小。
那么什么是模拟量、数字量呢?模拟量是指变量在一定范围连续变化的量;
数字量是物理量的一种,它们的变化在时间上是不连续的,总是发生在一系列离散的瞬间。这一类物理量叫做 数字量。如下图所示为数字量与模拟量的对比图。
图片2.jpg
那么把模拟信号准换成数字信号的过程就称为ADC模数转换。
模数转换器的种类很多,按工作原理的不同,可分成间接ADC和直接ADC。间接ADC是先将输入模拟电压转换成时间或频率,然后再把这些中间量转换成数字量,常用的有双积分型ADC。直接ADC则直接转换成数字量,常用的有并联比较型ADC和逐次逼近型ADC
并联比较型ADC:采用各量级同时并行比较,各位输出码也是同时并行产生,所以转换速度快。并联比较型ADC的缺点是成本高、功耗大。
逐次逼近型ADC:它产生一系列比较电压VR,但它是逐个产生比较电压,逐次与输入电压分别比较,以逐渐逼近的方式进行模数转换的。它比并联比较型ADC的转换速度慢,比双积ADC要快得多,属于中速ADC器件。
双积分型ADC:它先对输入采样电压和基准电压进行两次积分,获得与采样电压平均值成正比的时间间隔,同时用计数器对标准时钟脉冲计数。它的优点是抗干扰能力强,稳定性好;主要缺点是转换速度低
ADC常用的技术指标有:
(1)采样精度即分辨率,一般有8位、10位、12位、16位等;
2转换时间即每次采样所需的时间,表征 ADC 的转换速度,与 ADC 的时钟频率、采样周期、转换周期有关;
3工作电压需要注意 ADC 的工作电压范围、能否直接测量负电压等;
4ADC类型 如上面所提到的,ADC 有多种类型,不同类型的 ADC 有不同的性能极限
2.2 STM32ADC
STM 32拥有1~3ADC ,这些ADC可以独立使用,也可以使用双重模式(提高采样率)。STM 32ADC12位逐次逼近型的模拟数字转换器。它有18个通道,可测量16个外部和2个内部信号源。各通道的A / D转换可以单次、连续、扫描或间断模式执行。
ADC 的结果可以左对齐或右对齐方式存储在16位数据寄存器中。(因为在这里ADC12位的,还有四位没有用到,所以存在左/右对齐的方式)
STM32F103系列的ADC外部通道和引脚对应的关系,如下图所示。
通道
ADC1
ADC2
ADC3
通道0
PA0
PA0
PA0
通道1
PA1
PA1
PA1
通道2
PA2
PA2
PA2
通道3
PA3
PA3
PA3
通道4
PA4
PA4
PF6
通道5
PA5
PA5
PF7
通道6
PA6
PA6
PF8
通道7
PA7
PA7
PF9
通道8
PB0
PB0
PF10
通道9
PB1
PB1
通道10
PC0
PC0
PC0
通道11
PC1
PC1
PC1
通道12
PC2
PC2
PC2
通道13
PC3
PC3
PC3
通道14
PC4
PC4
通道15
PC5
PC5
通道16
温度传感器
通道17
内部参照电压
2.3 ADC寄存器
STM32ADC相关寄存器较多,这里只讲几个比较重要的寄存器。
1ADC_CR1:模数转换控制寄存器1,如下图所示:
图片3.jpg
其中RES[1:0]为分辨率设置位,等于00时设置ADC12位,等于01时设置ADC10位,10时设置ADC8位,11时设置ADC6位。
2ADC_CR2:模数转换控制寄存器2,如下图所示:
图片4.jpg
其中ALIGN为数据对齐位,为0数据右对齐,为1数据左对齐;CONT为连续转换设置位,为0单次转换,为1连续转换;ADONADC转换使能位,关闭ADC转换,为1开启ADC转换。
3ADC_DR:模数转换数据寄存器,规则序列寄存器中的AD转化结果都将被存在这个寄存器中,而注入寄存器的转换结果被存储在ADC_DR中,如下图所示:
图片5.jpg
其中DATA[15:0]中存放转换的数据。
2.4 ADC摇杆控制实验
本节实验的内容是使用遥控手柄上的左摇杆控制遥控手柄上的电源指示灯、cocobit编程模式指示灯、连接无人机指示灯以及紧急降落指示灯。
左摇杆往拨电亮电源指示灯、往下拨点亮cocobit编程指示灯、往左拨点亮紧急降落指示灯、往右拨点亮连接无人机指示灯。这里采用了ADC1多路通道规则DMA采集的方式。左摇杆的ADC接线原理图如下图所示。
图片6.jpg 图片7.jpg
实验中会用到LED,其配置可以参考遥控器开发基础教程《GPIO》一节。整体的编写代码的思路如下表所示:
代码思路
1
管脚配置
1、定义结构体;
2、使能时钟(ADC+GPIO时钟);
3、填充结构体;
4、装载结构体。
2
ADCDMA配置
1、定义结构体;
2、填充结构体;
3、装载结构体;
4、使能DMA。
3
ADC初始化配置
1、定义结构体;
2、复位ADC;
3、使能内部电压;
4、填充结构体;
5、装载结构体;
6、配置ADC时钟;
7、设置ADC规则转换通道;
8、使能ADC的DMA传输;
9、校准ADC;
10、使能软件触发ADC。
4
逻辑处理
1、获取ADC值、处理ADC值。
ADC的初始化代码如下。
图片8.jpg
图片9.jpg
图片10.jpg
ADC处理是在主循环中完成的,其代码如下图所示。
图片11.jpg
如下图所示,左摇杆往左拨,紧急降落指示灯亮起。
图片12.jpg

3.遥控器开发基础-【3】ADC(摇杆控制).pdf

984.94 KB, 下载次数: 42

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
79
金钱
79
注册时间
2020-5-12
在线时间
23 小时
发表于 2020-5-29 09:41:04 | 显示全部楼层
请问一下,能提高相应的源码参考一下吗
回复 支持 反对

使用道具 举报

98

主题

124

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
437
金钱
437
注册时间
2017-2-27
在线时间
53 小时
 楼主| 发表于 2020-5-29 15:51:44 | 显示全部楼层
我是真的菜 发表于 2020-5-29 09:41
请问一下,能提高相应的源码参考一下吗

需要的话可以加群获取资料哦457586268   
也可以搜索疯壳官网下载你想要的资料 或者直接拨打电话学习交流0755-86654359
回复 支持 反对

使用道具 举报

0

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
79
金钱
79
注册时间
2020-5-12
在线时间
23 小时
发表于 2020-5-30 08:30:34 | 显示全部楼层
好的,群已经添加了,你那边帮忙过一下,谢谢了
回复 支持 反对

使用道具 举报

0

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
79
金钱
79
注册时间
2020-5-12
在线时间
23 小时
发表于 2020-5-30 08:31:08 | 显示全部楼层

RE: 疯壳AI开源无人机ADC(摇杆控制)

好的,已添加了。
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
4
金钱
4
注册时间
2020-9-21
在线时间
0 小时
发表于 2020-9-21 15:48:04 | 显示全部楼层
666666666666666
回复 支持 反对

使用道具 举报

98

主题

124

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
437
金钱
437
注册时间
2017-2-27
在线时间
53 小时
 楼主| 发表于 2020-9-29 14:07:44 | 显示全部楼层

想要资料可以加群哦
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 16:46

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表