只需一步,快速开始
热门: 51单片机 | 24小时必答区 | 单片机教程 | 单片机DIY制作 | STM32 | Cortex M3 | 模数电子 | 电子DIY制作 | 音响/功放 | 拆机乐园 | Arduino | 嵌入式OS | 程序设计
完整的Word格式文档51黑下载地址:
平衡小车.rar (14.29 MB, 下载次数: 49) 2018-9-27 17:19 上传 点击文件名下载附件 实验目的 通过基于32位单片机的两轮车平衡系统大型实验,使学生能综合应用“微机原理”、“计算机控制技术”、“单片机的原理及应用”,“电子技术”以及“自动控制理论”等课程的基础知识。初步掌握单片机控制系统的硬件设计、控制器算法设计及应用程序设计,以及硬软件调试和控制系统调试。为毕业设计及今后计算机控制系统设计开发打下良好基础。实验要求 设计基于单片机的两轮平衡车控制器,用于控制两轮小车的直立平衡,具体要求如下 :控制两轮平衡车保持动态站立平衡倾角≤15°时具有良好的抗干扰性 3、与上位机进行通信,通过上位机实现动态调参和姿态数据的传输,将姿态数据绘制成曲线。实验设备 TM4C1294单片机或STM32单片机两轮车外围检测、驱动模块等微型电子计算机 系统硬件设计 硬件总体设计 系统包括上位机(台式电脑)和下位机(单片机两轮平衡车控制系统)两部分。上位机用于显示小车的实时姿态及传送控制参数和指令给下位机。下位机由控制器模块、传感器模块、显示模块、电机驱动模块、蓝牙串口模块等组成,硬件组成框图如下图。 图1 两轮平衡车系统硬件组成控制器采用TM4C1294或STM32单片机,陀螺仪及加速度计采用MPU-6050三轴运动处理传感器,电机编码器采用AB相光电编码器,显示模块采用OLED液晶显示屏,电机驱动模块采用L298N电机驱动器,蓝牙模块采用HC-05模块。在控制过程中,陀螺仪及加速度计测量小车的姿态信息,编码器测量小车的速度信息,控制器根据控制算法计算出相应的脉宽调制PWM信号,通过控制直流电机的转矩来保持平衡,同时通过蓝牙模块将小车的实时状态信息传送至上位机并可接受上位传送的指令。2.主要模块硬件电路(1)单片机最小系统a)基于TM4C1294单片机选用TM4C1294核心板,TM4C1294 微处理器是Cortex-M4 系列单片机中一种,并采用TI的核心板,如图2。核心板将芯片端口信号引致插针,方便实验选取连接。实验系统引脚连接图如图3。图2 TM4C1294核心板 图3 TM4C1294最小系统电路图 b)基于STM32单片机控制器采用STM32F103RCT6单片机,该控制器是一种基于 Cortex M3 内核的高性能 MCU,运行时钟最高为 72 MHz,运算速度高达 1. 25 DMIPS/MHz,片上64 kB Flash ROM、20 kB RAM,内含 7个定时器,可输出多路 PWM 信号又可配置成增量型编码器接口 ,尤其适合于车轮测速传感器输出的 AB 相脉冲信号的处理。核心板实物如图4,实验系统电路连线如图5。图4 STM32核心板 图5 STM32F103RCT6最小系统电路图 (2)系统电源选用智能小车专用12V锂电池为系统供电,该电池参数:11.1V/ 3000mAh/ 5C。电池输出端接至电机驱动模块L298N,为其提供工作电压,并利用该模块中5V稳压电路输出的+5V电压为其它的模块供电,将L298N模块的+5V输出连到单片机最小系统板,经最小系统板的3.3V稳压电路输出3.3V,供传感模块、蓝牙模块、显示模块等其它模块电路供电。 图6 系统供电框图(3)传感器模块选择MPU6050模块作为小车姿态检测。该模块采用InvenSense公司的 MPU6050 芯片作为核心,该芯片内部整合了 3 轴陀螺仪和 3 轴加速度传感器,并可利用自带的数字运动处理器(DMP: Digital Motion Processor)硬件加速引擎,通过主 IIC 接口,向应用端输出姿态解算后的数据。有了DMP,我们可以使用 InvenSense 公司提供的运动处理资料库,非常方便的实现姿态解算,降低了运动处理运算对操作系统的负荷,同时大大降低了开发难度。MPU6050模块实物如图7,MPU6050模块电路如图8。图7 MPU6050模块实物图图8 MPU6050模块测量电路图从图8可以看出,模块自带了3.3V超低压差稳压芯片,给MPU6050供电,因此外部供电可以选择:3.3V/ 5V都可以。模块通过P1排针与外部连接,引出了 VCC、GND、IIC_SDA、IIC_SCL、MPU_INT 和 MPU_AD0 等信号,其中,IIC_SDA 和 IIC_SCL 带了 4.7K上拉电阻,外部可以不用再加上拉电阻了,另外MPU_AD0 自带了10K下拉电阻,当AD0悬空时,默认IIC 地址为(0X68)。各引脚的详细描述如表1所示。表1 MPU6050 六轴传感器模块引脚说明(4)电机驱动模块实验系统采用L298N驱动模块,L298N是ST公司生产的一种高电压、大电流电机驱动芯片。该芯片采用15脚封装。主要特点是:工作电压高,最高工作电压可达46V;输出电流大,瞬间峰值电流可达3A,持续工作电流为2A;额定功率25W。内含两个H桥的高电压大电流全桥式驱动器,可以用来驱动直流电动机和步进电动机、继电器线圈等感性负载;采用标准逻辑电平信号控制;具有两个使能控制端,在不受输入信号影响的情况下允许或禁止器件工作有一个逻辑电源输入端,使内部逻辑电路部分在低电压下工作。使用L298N芯片可以驱动两台直流电机。功率部分的供电电压范围是2.5-48V,逻辑部分5V供电。一般情况下,功率部分的电压应大于6V否则芯片可能不能正常工作。L298N驱动模块实物如图9。模块电路如图10。图9 L298N驱动模块实物图10 L298N驱动模块电路图如图模块内部含7805稳压芯片,供L298N的Vss逻辑电压+5V,IN1~IN4分别为电机1和2的逻辑控制端, IN1~IN4接至单片机,由单片机控制,经L298N后输出两路电机控制电压,OUT1、OUT2和OUT3、OUT4。表2 L298N逻辑功能表IN1IN2ENA电机状态╳╳0停止001制动011正转101反转111制动 In3,In4的逻辑图与表2相同。由表2可知当ENA为高电平,输入电平为一高一低,电机正或反转。同为低或高电平电机刹停。其中IN1、IN2控制电机M1;IN3、IN4控制电机M2。调速就是改变高电平的占空比。(5)速度检测电路使用的是固定在电机轴上的霍尔编码器。霍尔编码器是一种通过磁电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器。霍尔编码器是由霍尔码盘和霍尔元件组成。霍尔码盘是在一定直径的圆板上等分地布置有不同的磁极。霍尔码盘与电动机同轴,电动机旋转时,霍尔元件检测输出若干脉冲信号,为判断转向,一般输出两组存在一定相位差的方波信号。图11 霍尔编码器工作原理示意图实际使用的小车上是一款增量式输出的霍尔编码器。编码器有 AB 相输出,所以不仅可以测速,还可以辨别转向。根据下图的接线说明可以看到,我们只需给编码器电源5V 供电,在电机转动的时候即可通过 AB 相输出方波信号。编码器自带了上拉电阻,所以无需外部上拉,可以直接连接到单片机 IO 读取。在实验系统中,只检测了一路脉冲信号,通过它的频率测量得到电机的转速。图12 霍尔编码器实物图(6)OLED显示模块显示模块用于显示系统角度、PID参数等信息,采用0.96 寸 OLED 显示屏,分辨率为 128*64, 多种接口方式:IIC 接口方式。共四根引出线:1. GND 电源地;2. VCC 电源正(3~5.5V);3. SCL OLED 的 D0 脚,在 IIC 通信中为时钟管脚;4. SDA OLED 的 D1 脚,在 IIC 通信中为数据管脚。模块实物图如图13。图13 OLED显示模块实物图五、系统软件设计1. 控制原理(1)直立控制两轮小车平衡控制是通过负反馈来实现的,控制器算法采用PD控制,维持小车在直立位置保持平衡。直立控制控制原理框图如图14。 (2)速度控制实验要求小车的控制目标是直立平衡,并不要求行驶,似乎不需要速度控制,但是实际上小车的平衡是动态的平衡,在调整姿态的同时会产生位移,因此加上速度控制环,有利于小车的平衡和抗扰动。速度控制原理框图如图15。图15 两轮车控制原理框图2. 陀螺仪漂移和加速度传感器数据的预处理车体倾角测量由陀螺仪和加速度传感器实现,单独使用陀螺仪或加速度传感器都无法完成倾角的测量。由于陀螺仪低频漂移的影响,积分后低频扰动会产生较大误差;加速度计解算的姿态角会受到平衡车运行中机体高频振动的影响, 输出角度中携带较大分量的高频干扰。 二者在频域上具有互补特性,采用互补滤波器对这两种传感器数据融合,可提高姿态角度测量的精度和动态响应的性能。偏移角度数字融合滤波算法模型如图15所示。其数字形式为为第n次滤波后的角度;为第n-1次滤波后的角度;a为高通滤波系数;为陀螺仪的角速度值;dt为采样时间;b为低通滤波系数;为加速度计的值。其中a,b满足a+b=1。图16 数字融合滤波算法模型3. 软件流程图两轮平衡小车软件设计包括主程序设计和各个模块的子程序设计。实现了如下功能:1)控制功能:通过传感器测量小车的偏移角度、角速度、运行速度来进行PID运算,实现小车的动态平衡;2)人机接口:包括两个按键KEY0、KEY1,串口模块和显示模块,其中KEY1按下小车停止控制,KEY0按下小车正常工作(这部分功能只在STM32系统上实现);串口模块实现实时姿态数据的传输和控制指令的发送,显示模块实时显示小车的姿态数据。(1)主程序程序控制周期为10ms,在这10ms内完成姿态数据的测量以及显示,主程序流程图如图3所示。图17 主程序流程图(2)角度测量子程序小车的偏移角度、角速度通过加速度计和陀螺仪测量。采用MPU6050芯片,角速度值用陀螺仪直接进行测量,角度值采用加速度计和陀螺仪进行数字互补滤波后读取。程序框图如图18。 MPU6050与单片机的通信采用IIC通信协议。其器件地址和寄存器地址及配置如下所述。器件地址:0xD0电源管理寄存器地址:0x6C 典型值:0x00陀螺仪配置寄存器地址:0x1B 典型值:0x18陀螺仪采样分频寄存器地址:0x19 典型值:0x07加速度计配置寄存器地址:0x1C 典型值:0x01配置寄存器地址:0x1A 典型值:0x06陀螺仪x轴数据地址(高位在前,低位在后):0x43,0x44 y轴地址:0x45,0x46 Z轴地址:0x47,0x48加速度计x轴数据地址(高位在前,低位在后):0x3B,0x3C Y轴地址:0x3D,0x3E Z轴地址:0x3F,0x40 (3)速度测量子程序小车的速度测量采用光电编码器来测量,通过10ms内脉冲的数量来反映小车的运行速度。速度测量可选取定时器设置为编码器模式,首先读取定时器当前计数值,延时10ms后再次读取,通过两次读取的差值来计算小车的运行速度。其具体程序流程图如图19所示。(4)PID控制算法由于机械器件的约束和积分作用,实际控制过程中会出现积分饱和,导致偏移角度超调量较大,极易使小车失控。故对小车速度环的控制算法进行改进,采用遇限削弱积分法改进后的算法流程图如图20所示。 (5)人机接口程序 人机接口软件设计主要包括OLED显示器,按键,串口模块与上位机通信软件的设计。按键控制小车的控制通断,KEY1键按下后小车停止控制,电机停转;KEY0键按下后小车正常运行。显示输出子程序在每次控制后将小车的姿态信息通过蓝牙传送给上位机。 与上位机通信的子程序根据上位机的数据格式进行数据传输,采用USART2串口与蓝牙HC-05连接,推荐的通信参数为波特率:9600,数据位:8,校验位:0,停止位:1。数据的格式如下所述。其每个数据为float型,先将每个float型数据转换为ASCII码,然后根据数据格传送给上位机,同理,接受的上位机的数据也为ASCII码,需将其转为float型。 上位机每次发送的数据都是四个,因此两者发送的数据格式一致,其格式如图21所示。温度控制实验平台上位机只绘制温度曲线,其接受的数据格式如图22所示,两轮平衡车上位机绘制偏移角度和行驶速度曲线,其接受的数据格式如图23所示。源程序如usart.c文件所示。图21 上位机传送的数据格式图22上位机接受的数据格式图23 上位机接受的数据格式 OLED显示器采用IIC通信,其源程序如oled.c文件所示。按键中断采用外部中断,设置为上拉输入,按下后为低电平。其源程序如boad.cexti.c文件所示。4. 上位机使用说明 上位机可使用USART转串口或蓝牙进行数据传输。使用蓝牙时,应先将蓝牙与电脑完成配对后方可开启上位机,否则无法打开串口。 下位机给上位机传输数据时,每次传输的数据时间间隔应大于100ms。 建议打开串口前先设置好曲线的参数,采样周期为两次数据传输的时间间隔;曲线下限值为曲线的最小值,上限值为曲线的最大值。上位机传输四个参数时,参数不能为空,必须四个参数都有数据。
通过基于32位单片机的两轮车平衡系统大型实验,使学生能综合应用“微机原理”、“计算机控制技术”、“单片机的原理及应用”,“电子技术”以及“自动控制理论”等课程的基础知识。初步掌握单片机控制系统的硬件设计、控制器算法设计及应用程序设计,以及硬软件调试和控制系统调试。为毕业设计及今后计算机控制系统设计开发打下良好基础。
设计基于单片机的两轮平衡车控制器,用于控制两轮小车的直立平衡,具体要求如下 :
3、与上位机进行通信,通过上位机实现动态调参和姿态数据的传输,将姿态数据绘制成曲线。
系统包括上位机(台式电脑)和下位机(单片机两轮平衡车控制系统)两部分。上位机用于显示小车的实时姿态及传送控制参数和指令给下位机。下位机由控制器模块、传感器模块、显示模块、电机驱动模块、蓝牙串口模块等组成,硬件组成框图如下图。
图1 两轮平衡车系统硬件组成
控制器采用TM4C1294或STM32单片机,陀螺仪及加速度计采用MPU-6050三轴运动处理传感器,电机编码器采用AB相光电编码器,显示模块采用OLED液晶显示屏,电机驱动模块采用L298N电机驱动器,蓝牙模块采用HC-05模块。在控制过程中,陀螺仪及加速度计测量小车的姿态信息,编码器测量小车的速度信息,控制器根据控制算法计算出相应的脉宽调制PWM信号,通过控制直流电机的转矩来保持平衡,同时通过蓝牙模块将小车的实时状态信息传送至上位机并可接受上位传送的指令。
2.主要模块硬件电路
(1)单片机最小系统
a)基于TM4C1294单片机
选用TM4C1294核心板,TM4C1294 微处理器是Cortex-M4 系列单片机中一种,并采用TI的核心板,如图2。核心板将芯片端口信号引致插针,方便实验选取连接。实验系统引脚连接图如图3。
控制器采用STM32F103RCT6单片机,该控制器是一种基于 Cortex M3 内核的高性能 MCU,运行时钟最高为 72 MHz,运算速度高达 1. 25 DMIPS/MHz,片上64 kB Flash ROM、20 kB RAM,内含 7个定时器,可输出多路 PWM 信号又可配置成增量型编码器接口 ,尤其适合于车轮测速传感器输出的 AB 相脉冲信号的处理。核心板实物如图4,实验系统电路连线如图5。
(2)系统电源
选用智能小车专用12V锂电池为系统供电,该电池参数:11.1V/ 3000mAh/ 5C。电池输出端接至电机驱动模块L298N,为其提供工作电压,并利用该模块中5V稳压电路输出的+5V电压为其它的模块供电,将L298N模块的+5V输出连到单片机最小系统板,经最小系统板的3.3V稳压电路输出3.3V,供传感模块、蓝牙模块、显示模块等其它模块电路供电。
图6 系统供电框图
选择MPU6050模块作为小车姿态检测。该模块采用InvenSense公司的 MPU6050 芯片作为核心,该芯片内部整合了 3 轴陀螺仪和 3 轴加速度传感器,并可利用自带的数字运动处理器(DMP: Digital Motion Processor)硬件加速引擎,通过主 IIC 接口,向应用端输出姿态解算后的数据。有了DMP,我们可以使用 InvenSense 公司提供的运动处理资料库,非常方便的实现姿态解算,降低了运动处理运算对操作系统的负荷,同时大大降低了开发难度。MPU6050模块实物如图7,MPU6050模块电路如图8。
从图8可以看出,模块自带了3.3V超低压差稳压芯片,给MPU6050供电,因此外部供电可以选择:3.3V/ 5V都可以。模块通过P1排针与外部连接,引出了 VCC、GND、IIC_SDA、IIC_SCL、MPU_INT 和 MPU_AD0 等信号,其中,IIC_SDA 和 IIC_SCL 带了 4.7K上拉电阻,外部可以不用再加上拉电阻了,另外MPU_AD0 自带了10K下拉电阻,当AD0悬空时,默认IIC 地址为(0X68)。各引脚的详细描述如表1所示。
表1 MPU6050 六轴传感器模块引脚说明
(4)电机驱动模块
实验系统采用L298N驱动模块,L298N是ST公司生产的一种高电压、大电流电机驱动芯片。该芯片采用15脚封装。主要特点是:工作电压高,最高工作电压可达46V;输出电流大,瞬间峰值电流可达3A,持续工作电流为2A;额定功率25W。内含两个H桥的高电压大电流全桥式驱动器,可以用来驱动直流电动机和步进电动机、继电器线圈等感性负载;采用标准逻辑电平信号控制;具有两个使能控制端,在不受输入信号影响的情况下允许或禁止器件工作有一个逻辑电源输入端,使内部逻辑电路部分在低电压下工作。使用L298N芯片可以驱动两台直流电机。功率部分的供电电压范围是2.5-48V,逻辑部分5V供电。一般情况下,功率部分的电压应大于6V否则芯片可能不能正常工作。L298N驱动模块实物如图9。模块电路如图10。
如图模块内部含7805稳压芯片,供L298N的Vss逻辑电压+5V,IN1~IN4分别为电机1和2的逻辑控制端, IN1~IN4接至单片机,由单片机控制,经L298N后输出两路电机控制电压,OUT1、OUT2和OUT3、OUT4。
表2 L298N逻辑功能表
IN1
IN2
ENA
电机状态
╳
0
停止
1
制动
正转
反转
In3,In4的逻辑图与表2相同。由表2可知当ENA为高电平,输入电平为一高一低,电机正或反转。同为低或高电平电机刹停。其中IN1、IN2控制电机M1;IN3、IN4控制电机M2。调速就是改变高电平的占空比。
(5)速度检测电路
使用的是固定在电机轴上的霍尔编码器。霍尔编码器是一种通过磁电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器。霍尔编码器是由霍尔码盘和霍尔元件组成。霍尔码盘是在一定直径的圆板上等分地布置有不同的磁极。霍尔码盘与电动机同轴,电动机旋转时,霍尔元件检测输出若干脉冲信号,为判断转向,一般输出两组存在一定相位差的方波信号。
图11 霍尔编码器工作原理示意图
实际使用的小车上是一款增量式输出的霍尔编码器。编码器有 AB 相输出,所以不仅可以测速,还可以辨别转向。根据下图的接线说明可以看到,我们只需给编码器电源5V 供电,在电机转动的时候即可通过 AB 相输出方波信号。编码器自带了上拉电阻,所以无需外部上拉,可以直接连接到单片机 IO 读取。在实验系统中,只检测了一路脉冲信号,通过它的频率测量得到电机的转速。
图12 霍尔编码器实物图
(6)OLED显示模块
显示模块用于显示系统角度、PID参数等信息,采用0.96 寸 OLED 显示屏,分辨率为 128*64, 多种接口方式:IIC 接口方式。共四根引出线:1. GND 电源地;2. VCC 电源正(3~5.5V);3. SCL OLED 的 D0 脚,在 IIC 通信中为时钟管脚;4. SDA OLED 的 D1 脚,在 IIC 通信中为数据管脚。模块实物图如图13。
图13 OLED显示模块实物图
五、系统软件设计
1. 控制原理
(1)直立控制
两轮小车平衡控制是通过负反馈来实现的,控制器算法采用PD控制,维持小车在直立位置保持平衡。直立控制控制原理框图如图14。
(2)速度控制
实验要求小车的控制目标是直立平衡,并不要求行驶,似乎不需要速度控制,但是实际上小车的平衡是动态的平衡,在调整姿态的同时会产生位移,因此加上速度控制环,有利于小车的平衡和抗扰动。速度控制原理框图如图15。
图15 两轮车控制原理框图
2. 陀螺仪漂移和加速度传感器数据的预处理
车体倾角测量由陀螺仪和加速度传感器实现,单独使用陀螺仪或加速度传感器都无法完成倾角的测量。由于陀螺仪低频漂移的影响,积分后低频扰动会产生较大误差;加速度计解算的姿态角会受到平衡车运行中机体高频振动的影响, 输出角度中携带较大分量的高频干扰。 二者在频域上具有互补特性,采用互补滤波器对这两种传感器数据融合,可提高姿态角度测量的精度和动态响应的性能。偏移角度数字融合滤波算法模型如图15所示。其数字形式为
为第n次滤波后的角度;为第n-1次滤波后的角度;a为高通滤波系数;为陀螺仪的角速度值;dt为采样时间;b为低通滤波系数;为加速度计的值。其中a,b满足a+b=1。
图16 数字融合滤波算法模型
3. 软件流程图
两轮平衡小车软件设计包括主程序设计和各个模块的子程序设计。实现了如下功能:1)控制功能:通过传感器测量小车的偏移角度、角速度、运行速度来进行PID运算,实现小车的动态平衡;2)人机接口:包括两个按键KEY0、KEY1,串口模块和显示模块,其中KEY1按下小车停止控制,KEY0按下小车正常工作(这部分功能只在STM32系统上实现);串口模块实现实时姿态数据的传输和控制指令的发送,显示模块实时显示小车的姿态数据。
(1)主程序
程序控制周期为10ms,在这10ms内完成姿态数据的测量以及显示,主程序流程图如图3所示。
图17 主程序流程图
(2)角度测量子程序
小车的偏移角度、角速度通过加速度计和陀螺仪测量。采用MPU6050芯片,角速度值用陀螺仪直接进行测量,角度值采用加速度计和陀螺仪进行数字互补滤波后读取。程序框图如图18。
MPU6050与单片机的通信采用IIC通信协议。其器件地址和寄存器地址及配置如下所述。
器件地址:0xD0
电源管理寄存器地址:0x6C 典型值:0x00
陀螺仪配置寄存器地址:0x1B 典型值:0x18
陀螺仪采样分频寄存器地址:0x19 典型值:0x07
加速度计配置寄存器地址:0x1C 典型值:0x01
配置寄存器地址:0x1A 典型值:0x06
陀螺仪x轴数据地址(高位在前,低位在后):0x43,0x44
y轴地址:0x45,0x46
Z轴地址:0x47,0x48
加速度计x轴数据地址(高位在前,低位在后):0x3B,0x3C
Y轴地址:0x3D,0x3E
Z轴地址:0x3F,0x40
(3)速度测量子程序
小车的速度测量采用光电编码器来测量,通过10ms内脉冲的数量来反映小车的运行速度。速度测量可选取定时器设置为编码器模式,首先读取定时器当前计数值,延时10ms后再次读取,通过两次读取的差值来计算小车的运行速度。其具体程序流程图如图19所示。
(4)PID控制算法
由于机械器件的约束和积分作用,实际控制过程中会出现积分饱和,导致偏移角度超调量较大,极易使小车失控。故对小车速度环的控制算法进行改进,采用遇限削弱积分法改进后的算法流程图如图20所示。
(5)人机接口程序
人机接口软件设计主要包括OLED显示器,按键,串口模块与上位机通信软件的设计。按键控制小车的控制通断,KEY1键按下后小车停止控制,电机停转;KEY0键按下后小车正常运行。显示输出子程序在每次控制后将小车的姿态信息通过蓝牙传送给上位机。
与上位机通信的子程序根据上位机的数据格式进行数据传输,采用USART2串口与蓝牙HC-05连接,推荐的通信参数为波特率:9600,数据位:8,校验位:0,停止位:1。数据的格式如下所述。其每个数据为float型,先将每个float型数据转换为ASCII码,然后根据数据格传送给上位机,同理,接受的上位机的数据也为ASCII码,需将其转为float型。
上位机每次发送的数据都是四个,因此两者发送的数据格式一致,其格式如图21所示。温度控制实验平台上位机只绘制温度曲线,其接受的数据格式如图22所示,两轮平衡车上位机绘制偏移角度和行驶速度曲线,其接受的数据格式如图23所示。源程序如usart.c文件所示。
图21 上位机传送的数据格式
图22上位机接受的数据格式
图23 上位机接受的数据格式
OLED显示器采用IIC通信,其源程序如oled.c文件所示。按键中断采用外部中断,设置为上拉输入,按下后为低电平。其源程序如boad.cexti.c文件所示。
4. 上位机使用说明
上位机可使用USART转串口或蓝牙进行数据传输。使用蓝牙时,应先将蓝牙与电脑完成配对后方可开启上位机,否则无法打开串口。
下位机给上位机传输数据时,每次传输的数据时间间隔应大于100ms。
建议打开串口前先设置好曲线的参数,采样周期为两次数据传输的时间间隔;曲线下限值为曲线的最小值,上限值为曲线的最大值。
上位机传输四个参数时,参数不能为空,必须四个参数都有数据。
查看全部评分
使用道具 举报
本版积分规则 发表回复 回帖后跳转到最后一页
手机版|小黑屋|51黑电子论坛 | 管理员QQ:125739409;技术交流QQ群281945664
Powered by 单片机教程网