赞
踩
3.STM32单片机的使用
ST(意法半导体)公司出的STM32系列单片机,目前在工业智能家居等行业应用比较广泛,也是大学生相对比较容易上手的,但是也是有很多很多的注意点,需要很长的时间去研究各种的应用。
所需软件:STM32使用过程中,使用多种软件,编译器常用的是MDK 5(KEIL4也行),编译器自带下载功能,串口助手可以任意选择一家的,下载器使用ST-link或jlink,最简单的下载模式是SW模式,只需要四根线,GND,VCC,SWDIO,SWCLK。程序下载有两种方式,一种是用MDK5下载,可以在线调试,另一种是使用串口下载,不能在线调试,但是需要通过改变boot0,boot1电平来选择下载模式。
STM32的功能强大,在无人机上用到的功能只是它的一部分
(1)PWM输出
电机调速经常使用PWM来实现,通过改变PWM波形的占空比可以改变电机大的转速,在无人机上使用PWM也是同样的道理,但是不同的是,如果需要自己制作电调则需要学习更多关于无刷电机的知识。
STM32内部有很多时钟,名称一般简称为TIM,分类有普通时钟,高级时钟等,在四旋翼无人机上,我们需要STM32能够产生四路占空比可调的pwm我使用的是TIM2。
只知道如何输出PWM还不能让无刷电机动起来,因为一般厂家的电调都会做上启动机制,以免误启动造成螺旋桨伤人事故。具体的型号可能有差别,我也忘记我们的具体步骤了,大概的意思是上来之后先给电调一个最高的占空比,听到滴一声后再给最低的占空比,滴滴两声后启动就完成了,然后若在输给pwm,无刷电机就会动起来了。具体步骤不是很准确,但是可以为初学者提供一个借鉴,不要忽略有这回事。
(2)I2C
I2C是单片机等嵌入式设备中常用的通信方式,许多的传感器数据都是通过I2c的形式输出到单片机,因此需要掌握I2C相关的基础知识,在无人机中,陀螺仪传感器(如MPU6050)就是通过I2C输出数据,信号线只需要一个SDA与SCL,但是注意陀螺仪要与stm32共地。I2C的原理可以不是很懂,也不用记得很清楚,只需要会移植相关的程序就行。
(3)PWM输入捕获
当时我大一做的时候就是卡在了这个环节,但是使用的还是K60单片机,个人认为是最难的一个。遥控器发过来的信号表现形式是pwm波形,占空比的大小代表了摇杆各个活动方向的位置,或者说油门大小、左转角度等等
使用的还是单片机上的TIM,使用时钟捕获PWM,使用定时器进行计时,上升沿开始计时,下降沿结束计时就能得到占空比。到最后也不需算出真正的百分之几,只需要这4个变量能够根据摇杆的角度变化而变化。范围根据需要进行放缩
(4)SPI(12864显示屏)
进行设备调试时需要看某些数据的变化,使用KEIL可以实现,但是不能抱着电脑跟着跑,有对应的调试设备更好,将12864显示屏移植到程序当中是个不错的选择
至此无人机上必须的几个单片机功能已介绍完,其他的功能可以视情况添加,但是这四个模块是必须要有的
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。