找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7913|回复: 0
收起左侧

嵌入式平衡小车系统设计说明书

[复制链接]
ID:223055 发表于 2017-8-12 21:48 | 显示全部楼层 |阅读模式
湖南省第十三届“中仁教育杯”大学生计算机程序设计竞赛
-----“牛耳教育杯”应用开发类竞赛(2017)
系统设计说明书
一. 摘要................................................................................................................................... 1
二. 功能需求说明书................................................................................................................ 1
2.1 特色概述............................................................................................................................. 1
2.2 背景分析............................................................................................................................. 2
2.3 市场分析............................................................................................................................. 2
三. 实现方案............................................................................................................................. 3
3.1 系统方案............................................................................................................................. 3
3.2 平衡原理............................................................................................................................. 3
3.2.1 信息采集................................................................................................................. 3
3.2.2 角度调整................................................................................................................. 4
3.2.3 测速......................................................................................................................... 5
3.2.4 转向控制................................................................................................................. 6
3.3 硬件框架.................................................................................................................. 7
3.3.1 结构框图............................................................................................................... 7
3.3.2 各模块组件引脚图.................................................................................................7
3.3.3 硬件组说明.............................................................................................................8
3.4 STM32 算法流程图...................................................................................................12
3.5 通信协议................................................................................................................. 12
3.5.1 小车数据协议.......................................................................................................12
3.5.2 APP 控制数据协议................................................................................................13
四. 软件界面设计......................................................................................................... 14
五. 总结........................................................................................................................ 14
六. 未来发展................................................................................................................. 15

一. 摘要

本次参赛作品是使用 STM32F103C8T6 主控模块配合 MPU6050 六轴传感器通 过驱动电路达到自我平衡的智能小车。蓝牙模块使小车能够受其他平台设备的远 程遥控,在工作模式下可以实现自平衡,通过手机端的 APP 可以实现小车蓝牙的 搜索、连接以及对平衡车作前进、后退、左(右)转和左(右)旋的控制操作。 在小车的运行过程中实时记录倾角、距离、轮速等数据,工作的过程中实现自我 微调,实时反馈等任务。

这些方案使得小车的控制不受地理位置的限制,人们可以使用热用的蓝牙 技术来实时化地操控小车的运作,在当今云技术发展迅速的浪潮下,使用云技术 与嵌入式技术的结合为将来机械智能化、自动化提供了极大的参考价值。


二. 功能需求说明书

2.1 特色概述 平衡车是信息化社会下的产物,本次参赛的智能平衡小车以便于操作的原

则为起点,以促进人们生活的便捷化为目的,实现了电脑端、手机端的远程操控。 在电脑端的键盘控制的基础上可以进一步使用游戏手柄进行控制,为家居娱乐提 供了发展点,可用于制作家居智能机器人以及儿童二轮自走遥控车。在手机端的 设计上,使用了当前人们主流使用通讯设备——蓝牙,来对设备进行操控。其衍 生发展可以将平衡车的模板加强为多轴飞行器,可应用于航空拍摄、取景,安装 其他模块插件又可以丰富其他功能,如:地形探索、天气监测、水质检测等。

在控制器方面,平衡车的电脑端、手机端的操控界面的友好设计将会给用 户带来更好的体验,信息的实时智能显示使得用户可以时刻了解到具体的参数信 息,能够发现小车在一些环境下工作的错误参数,可以实时地进行调整,纠正机 器的非正常因素。同时,在小车上也有相关的修补机制,用户不必对所有的信息 都需要了解,小车会自行检测是否有超出正常范围的参数并加以纠正,实现了设 备的智能化。


2.2 背景分析 随着计算机水平、信息技术水平、科技水平的不断提高,越来越多的智能

设备进入了人们的视野,在我们生活的社会环境中,已经有许多品牌的平衡代步 车面市,但国内的平衡车市场仍处于初步发展的状态对于市面上多数的平衡车而 言,只是简单实现了对捕捉人体体感来调整车的平衡,仅仅只是满足了用户的行 车需求,并不是很完善。而且不能够实现遥控功能,特别是远程的遥控,对于一 件产品而言功能显得单一,缺乏市场竞争力。而且平衡车对于环境的要求也比较 苛刻,并不能实现全天候,多地形的使用。对于用户来说有着诸多的不方便,在 不同环境下有着不同的潜在安全隐患。国内的平衡车开发仍处于初级阶段,在功 能的开发上仍有许多方向可以加以研究。

如今环境变暖,环境问题愈加突出,为了减轻环境负担,国家大力倡导绿色 低碳生活,人们出行也都是使用便捷的交通工具。因此,平衡车的出现则为人们 提供了一个新型的交通途径,小而巧的平衡车能够更加地方便于其他大型交通工 具,受交通拥堵的影响也就小得多。而遥控功能的实现可以使得人们不需要时刻 通过身体来调整车速和车的方向,是小车更加智能化,遥控也为将来的平衡车的 导航功能提供了一个参考价值。

2.3 市场分析 在过去的一年里,中国平衡车市场迎来了爆炸式的跃进。科技的发展带来了

设备的智能化,新智能设备相继推出,并且随着国内消费的不断增长,市面上对 于智能设备的购买力也逐步提升。在平衡车行业里,单平衡车的制造厂商就增至

500 多家,并且在平衡车的带动下,移动电源、微型信号设备的也有了进一步的 发展。同时,相当多的厂商加入平衡车的行业中参与发展和研究,其中以小米最 为亮眼。数据显示,2016 年全行业估算实现产值超 209 亿元人民币,可见平衡 车的市值还是很高的。在国家要求的城市智能化交通的建设要求也可以看出平衡 车作为潜在的新型绿色交通,既符合发展的需求,也顺应了市场的变化。在国内 生产的平衡车中绝大多数是用于向海外销售的,而不是向国内的客户提供,而相 较于 15 年的 138 亿元以及 14 年的 26 亿元来看,平衡车市场正处于飞速增长阶 段,市场含金量十足,国内市场具有相当大的潜力。


三. 实现方案

3.1 系统方案 实现一个完整平衡车的平衡系统,我们需要实现几个重要的功能块:

1) 外接传感器与 MPU6050 之间的数据处理;
2) PID 算法实现小车转向;
3) 蓝牙通讯;

4) 终端控制。 有了外接的传感器来和处理器进行协调,平衡车对于不同的工作情况能

作出不同的动作反应,例如:对于前方存在一个物体时,超声波组件可以通 过测算距离反馈给处理器,在碰撞到物体前停下来,避免碰撞带来的损失。 平衡车的防撞化功能能够很好的被应用于实际生活,给人们带来便捷。

蓝牙的通讯控制使平衡车突破了原有的控制体系,可以做到隔墙隔物遥 控,一对一的连接以及连接的配对密钥使得小车的控制更具有安全性。


3.2 平衡原理

3.2.1 信息采集 为了实现小车直立行走,需要采集如下信号:

(1)小车倾角速度陀螺仪信号,获得小车的倾角和角速度。
(2)小车电机转速脉冲信号,获得小车运动速度,进行速度控制。

(3)小车转动速度陀螺仪信号,获得小车转向角速度,进行方向控制。 小车多数情况下需要使用两者或两者以上的数据来叠加进行控制小车。

在小车控制中的直立、速度和方向控制三个环节中,都使用了PID控制,三 种控制算法的输出量最终都是通过叠加通过电机运动来完成的。

小车直立控制:
g_fAngleControlOut =              g_fCarAngle * g_fCarAngle_P + gyro[0] *
g_fCarAngle_D ;
小车速度控制:
g_fSpeedControlOutNew = (CAR_SPEED_SET - g_fCarSpeed)*g_fCarSpeed_P
+(CAR_POSITION_SET - g_fCarPosition) * g_fCarSpeed_I;
小车方向控制:
speednow=-speedtarget*3.4 -gyro[2]*0.0015 ;

3.2.2 角度调整 平衡车之所以能够控制前进、后退与保持原味,是由于小车的角度测算

反馈来实现的。对于小车而言(非惯性系,以车轮作为坐标原点)分析倒立 摆受力,它会受到额外的惯性力,该力与车轮的加速度方向相反,大小成正

比。这样倒立摆所受到的回复力为:
Fmg sinθ− macosθ≈ mgθ− mk

由于θ很小,所以进行了线性化。假设负反馈控制是车轮加速度 a 与偏 角θ成正比,比例为 k1。如果比例 k1>g,(g 是重力加速度)那么回复力的 方向便于位移方向相反了。

在此回复力作用下,小车便进行周期运动。在空气中运动的小车,由于 受到空气的阻尼力,小车最终会停止在垂直平衡位置。空气的阻尼力与小车 运动速度成正比,方向相反。阻尼力越大,小车越会尽快在垂直位置稳定下 来。而为了让小车能够尽快回到垂直位置稳定下来,还需要增加阻尼力。增 加的阻尼力与偏角的速度成正比,方向相反,因此公式 1 可改为:

Fmgθ− mk1θ− mk2θ'
进而可得出控制小车车轮加速度的算法:
a k1θ k2θ'

式中θ为小车角度,θ`为角速度,k1 k2 都是比例系数。 根据上述内容,建立速度的比例微分负反馈控制,根据基本控制理论讨

论小车通过闭环控制保持稳定的条件(这里需要对控制理论有基本了解)。 假设外力干扰引起车模产生角加速度 x(t)。沿着垂直于车模地盘方向进行 受力分析,可以得到车模倾角与车轮运动加速度以及外力干扰加速度 a(t) x(t)之间的运动方程。


1.009.jpg
小车的运动方程:
在角度反馈控制中,与角度成比例的控制量称为比例控制,与角速度成

比例的控制量称为微分控制(角速度是角度的微分)。 因此,上面系数k1,k2分别称为比例和微分控制参数。其中微分参数相当

于阻尼力,可以有效抑制车模震荡。通过微分抑制控制震荡的思想在速度和 方向的控制中也同样适用。

综上所述,控制车模直立稳定的条件如下:
(1)能够精确测量车模倾角θ的大小和角速度θ'的大小;

(2)可以控制车轮的加速度。 由于上述控制在实际情况下得到的结果是小车与地面不是严格垂直,而

是存在一个对应的倾角。所以,在重力的作用下小车会朝着一个方面加速前 进。所以为了保持小车的静止或者匀速运动,需要消除这个安装误差。这就 需要我们在实际小车制作过程中需要进行机械调整和软件参数设置。

另外,小车的速度控制也需要通过微端的软件来实现对速度的稳定。因 为在小车角度控制中出现的小车倾角偏差将会使得小车在倾斜的方向上产 生加速,这个结果可以用来进行小车的速度控制。小车平衡控制也是通过负 反馈来实现的,因为小车有两个轮子着地,车体只会在轮子滚动的方向上发 生倾斜。控制轮子转动,抵消在一个维度上倾斜的趋势便可以保持车体平衡 了。

3.2.3 测速 由于安装误差,传感器实际测量的角度与车模角度有偏差,小车实际不

是保持与地面垂直,而是存在一个倾角。在重力的作用下,小车就会朝倾斜

的方向加速前进。控制速度通过控制小车的倾角来实现小车平衡。 通过安装在电机输出轴上的光码盘来测量得到小车的车轮速度。如图所示。利用控制单片机的计数器测量在固定时间间隔内速度脉冲信号的个数可 以反映电机的转速。


1.021.jpg

给定小车直立控制的设定值,在角度控制调节下,小车将会自动维持在 一个角度。通过前面小车直立控制算法可以知道,小车倾角最终是跟踪重力 加速度 Z 轴的角度。因此小车的倾角给定值与重力加速度 Z 轴角度相减,最 终决定小车的倾角,将数据交给核心处理器来处理。

小车在原地停止时速度应该为 0。但是由于采用的是比例控制,如果此 时陀螺仪有漂移,或者加速度传感器安装有误差,最终小车倾角不会最终调 整到 0,小车会朝着倾斜的方向恒速运行下去。此时小车不会像没有速度控 制那样加速运行了,但是速度不会最终为0。为了消除这个误差,可以将小 车倾角设定量直接积分补偿在角度控制输出中,这样就会彻底消除速度控制 误差。由于加入了速度控制,它可以补偿陀螺仪和重力加速度的漂移和误差。 此时小车在控制启动的时候,需要保持小车的垂直状态。此时陀螺仪的积分 角度也初始化为 0。

3.2.4 转向控制 通过左右电机速度差驱动小车转向消除小车距离道路中心的偏差。通过

调整小车的方向,再加上车前行运动,可以逐步消除小车距离中心线的距离 差别。这个过程是一个积分过程,因此小车差动控制一般只需要进行简单的 比例控制就可以完成小车方向控制。但是由于小车本身安装有电池等比较重 的物体,具有很大的转动惯量,在调整过程中会出现小车转向过冲现象,如 果不加以抑制,会使得小车过度转向而倒下。根据前面角度和速度控制的经 验,为了消除小车方向控制中的过冲,需要增加微分控制。


3.3 硬件框架
3.3.1 结构框图

1.023.jpg

3.3.2 各模块组件引脚图
1.024.jpg
1.025.jpg 供电电路
1.026.jpg

1.027.jpg 超声波模块              蓝牙模块
1.028.jpg
驱动电路              MPU6050 陀螺仪
1.030.jpg
主控模块

3.3.3 硬件组说明 A.超声波模块:

1) 采用 IO 口 TRIG 触发测距,给至少 10us 的高电平信号;
2) 模块自动发送 8 个 40khz 的方波,自动检测是否有信号返回;

3) 有信号返回,通过 IO 口 ECHO 输出一个高电平,高电平持续的时 间就是超声波从发射到返回的时间。

4) 测试距离=(高电平时间*声速(340M/S))/2; 本模块一个控制口发一个 10US 以上的高电平,就可以在接收口等待

高电平输出.一有输出就可以开定时器计时,当此口变为低电平时就可以 读定时器的值,此时就为此次测距的时间,方可算出距离.如此不断的周 期测,即可以达到你移动测量的值。


工作参数:

初始化时将 trig 和 echo 端口都置低,首先向给 trig 发送至少 10 us 的高电平脉冲(模块自动向外发送 8 个 40K 的方波),然后等待,捕捉 echo 端输出上升沿,捕捉到上升沿的同时,打开定时器开始计时,再次 等待捕捉 echo 的下降沿,当捕捉到下降沿,读出计时器的时间,这就是 超声波在空气中运行的时间。

测试距离=(高电平时间*声速(340M/S))/2 据此就可以算出超声波到障碍物的距离了。 实物图:

1.034.jpg

B.蓝牙模块:

在 zs-040 模块上有 2 种 AT 模式——“迷你”AT 模式和“全”AT 模 式。一些命令只有在 pin34 为高电平时才起作用,当引脚 34为低电平时, 其他命令工作。

要在 zs-040 模块上激活 AT 模式,需要:
1.在打开模块电源时,按住小按钮开关关闭。
2.打开电源时,将引脚 34 设置为高电平(3.3v)。
3.在 zs-040 通电后关闭小按钮开关。
4.为 zs-040 供电后,将引脚 34 拉高。
进入 AT 模式,内置 AT 模式波特率为 38400。

若进入 AT 模式时将引脚 34 保持为高电平,则将启用允许使用所有 AT 命令的“全”AT 模式,使用用户定义的通信模式波特率也可以进入 “全”AT 模式。

如果让电源开启后引脚 34 恢复为低电平,则会启用“迷你”AT 模 式。

接线:

VCC -->              3.3V

GND -->              GND TX             -->              RX

RX              -->              TX 实物图:
1.038.jpg
C.驱动电路:
TB6612FNG 每通道输出最高 1.2 A 的连续驱动电流,启动峰值电流达2A/3.2 A(连续脉冲/单脉冲)。
在工作状态下,PWM 支持频率高达 100 kHz。而在待机状态下,着 片内低压检测电路与热停机保护电路两种机制。模块正常的工作温度在-20~85℃。
该模块共有 4 种电机控制的模式,分为正转、反转、制动和停止。
TB6612FNG 的主要引脚功能有:AINl/AIN2、BIN1/BIN2、PWMA/PWMB
(控制信号输入端)、AO1/A02、B01/B02(2 路电机控制输出端)、STBY
(正常工作/待机状态控制引脚)以及 VM(4.5~15 V)和 VCC(2.7~5.5 V)
(VM 和 VCC 分别为电机驱动电压输入和逻辑电平输入端)。

TB6612FNG 是基于 MOSFET 的 H 桥集成电路,其效率高于晶体管 H 桥 驱动器。相比 L293D 每通道平均 600 mA 的驱动电流和 1.2 A的脉冲峰值 电流,它的输出负载能力提高了一倍。

相比 L298N 的热耗性和外围二极管续流电路,它无需外加散热片, 外围电路简单,只需外接电源滤波电容就可以直接驱动电机,利于减小
系统尺寸。
实物图:
1.039.jpg

D.MPU6050:
以数字输出 6 轴或 9 轴的旋转矩阵、四元数、欧拉角格式的融合演 算数据。具有 131 LSBs/°/sec 敏感度与全格感测范围为±250、±500、
±1000 与±2000°/sec 的 3 轴角速度感测器(陀螺仪)。
可程式控制,且程式控制范围为±2g、±4g、±8g 和±16g 的 3 轴 加速器。 移除加速器与陀螺仪轴间敏感度,降低设定给予的影响与感测
器的飘移。 数字运动处理引擎可减少复杂的融合演算数据、感测器同步 化、姿势感应等的负荷。
运动处理数据库支持 Android、Linux 与 Windows 内建之运作时间偏 差与磁力感测器校正演算技术,免除了客户须另外进行校正的需求。 以
数位输出的温度传感器 以数位输入的同步引脚支援视频电子影相稳定 技术与 GPS 可程式控制的中断支援姿势识别、摇摄、画面放大缩小、滚
动、快速下降中断、high-G 中断、零动作感应、触击感应、摇动感应功 能。
VDD 供电电压为 2.5V±5%、3.0V±5%、3.3V±5%;VDDIO 为 1.8V± 5% 陀螺仪运作电流:5mA,陀螺仪待命电流:5μA;加速器运作电流:
350μA,加速器省电模式电流: 20μA@10Hz 高达 400kHz
快速模式的 I2C,或最高至 20MHz 的 SPI 串行主机接口内建频率产生器 在所有温度范围仅有±1%频率变化。
Type: Read/Write

Register
(hex)
Register
(Decimal)
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
1B
27
XG_ST
YG_ST
ZG_ST
FS_SEL[1;0]
-
-
-
1)XG_ST              设置此位,X 轴陀螺仪进行自我测试。
2)YG_ST              设置此位,Y 轴陀螺仪进行自我测试。
3)ZG_ST              设置此位,Z 轴陀螺仪进行自我测试。

4)FS_SEL              2 位无符号值。选择陀螺仪的量程。 实物图:

1.043.jpg

3.4 STM32 算法流程图

1.047.jpg 1.048.jpg

3.5 通信协议
四. 软件界面设计

蓝牙实现的平衡车遥控主要是利用了小车上蓝牙组件的物联网控制功 能,使得小车的控制上没有流量、延时的限制,能实时操控,只需要下载手 机 APP,就可以自如地通过蓝牙操控小车。相较于使用 WiFi 控制,蓝牙不需 要借助网络,可以在无网的环境下控制小车。

手机 APP 可以实现蓝牙开关对应的打开或关闭蓝牙。 在打开蓝牙后可识别对应的蓝牙建立连接,实现对小车的遥控。


1.055.jpg

五. 总结

生活总是在向着智能化、便捷化的方向发展着,在信息化的时代里,独轮自 平衡车符合这个趋势,顺应了时代的潮流,有着良好的发展前景。平衡车相对于 其他交通工具最独特的特点是节能环保,小巧轻便。废气、尾气的排放同样也给 国家带来了诸多的环境问题,雾霾、沙尘暴、热岛效应等等的环境问题的罪魁祸 首,最主要的就是工业废气和车辆尾气的大量排放。平衡车作为一个 0 排放的新 型交通工具必然是贴合绿色生活、绿色发展的理念,在市场上能有着独特的销售 优势。当今世界的另一个危机是能源危机,节能环保交通工具取代传统是必然趋 势,这也就给平衡车的发展提供了广阔的空间。

但是,在现如今的平衡车行业中,平衡车技术并不是很先进,平衡车仍存在 诸多问题,既有着安全因素所带来的危险性,也有着国家交通法规的限制,平衡 车在国内的发展仍处于起步状态,对于平衡车的发展来说有大的提升空间。

六. 未来发展

随着人类社会越来越智能化,智能家居、智能穿戴、智能办公逐渐普及,智 能电动平衡车也已经进入人们的日常生活。智能平衡车可谓是代步工具类中最新 的智能产品。智能类的产品总给人一种异常方便、简洁优雅的感觉,电动平衡车 也是如此。

事实上,电动平衡车最近两年在全世界、尤其是中国市场有着非同一般的发 展速度,但是现如今是一个智能化发展的时代,智能电视、智能汽车、智能手环、 智能手表等等一系列智能产品已经开始占据人们的生活,智能硬件已经成为这个 时代不可逆转的大趋势。电动平衡车作为新一代的可穿戴设备,必将被这股智能 潮流挟裹而去。

在如今的电动平衡车行业中,智能化必定是平衡车未来的发展浪头,毕竟它 是现在唯一一个智能化全电动而且有望很快全民化的代步工具。

电动平衡车成为智能硬件,已经是仅仅隔着一层纱。电动平衡车如果成长为 一款非常成熟完善的智能硬件,将有着许多独一无二的优势。它将在解决人们出 行问题的同时,利用在路上的时间完成对个人生活的私人定制,所以智能化将是 平衡小车的未来发展。

但目前平衡车仍有诸多的挑战,比如安全问题,交通法规问题,这些都可以 作为平衡车行业的产品设计考核来发展,这些既是困难也是挑战。

近年来雾霾的肆虐让人们更加关注环保出行,自行车太慢,电动摩托车太多, 而平衡车正好弥补了这个领域的空白。目前生产的平衡车是以清洁能源电能驱动 的,这将大大减少了碳排放。在关于平衡车的驱动能源的方面来看,现在世界上 清洁能源的不断推出使用使得平衡车能够以更多的姿态出现在我们的未来社会 中,平衡车的能源方面一样有着不小的发展价值。


单片机源程序如下:




  1. #include "mpu6050.h"
  2. #include "i2c_mpu6050.h"
  3. #include "motor.h"
  4. #include "upstandingcar.h"
  5. #include "SysTick.h"
  6. #include "led.h"
  7. #include "usart.h"
  8. #include "i2c.h"
  9. //#include "outputdata.h"
  10. #include "timer.h"
  11. #include "UltrasonicWave.h"
  12. //#include "stm32f10x_usart.h"

  13. float gyz;
  14. int acc;
  15. int acc1;

  16. //extern u8 newLineReceived = 0;

  17. int main(void)
  18. {        
  19.       
  20.         
  21.           SystemInit();                   //=====系统初始化
  22.         Timerx_Init(5000,7199);                                   //定时器TIM1
  23.         UltrasonicWave_Configuration();            //超声波初始化设置 IO口及中断设置                           

  24.         USART1_Config();                                                //串口1初始化 上位机
  25.         USART3_Config();                                                //串口3初始化 蓝牙与USART3公用相同IO口
  26.         
  27.         TIM2_PWM_Init();                                           //PWM输出初始化
  28.         MOTOR_GPIO_Config();                                  //电机IO口初始化
  29.           LED_GPIO_Config();
  30.         
  31. //   TIM3_External_Clock_CountingMode();           //左电机脉冲输出外部中断口PA7使用TIM3定时器用作为脉冲数计算
  32. //   TIM4_External_Clock_CountingMode();           //右电机脉冲输出外部中断口PB7使用TIM4定时器用作为脉冲数计算
  33.           TIM3_Encoder_Init();                       //编码器获取脉冲数 PA6 7
  34.           TIM4_Encoder_Init();                       //编码器获取脉冲数 PB6 7        
  35.         ////////////////////DMP/////////////////////////////////
  36.         i2cInit();                                                           //IIC初始化 用于挂靠在总线上的设备使用
  37.         delay_nms(10);                                                   //延时10ms
  38.         MPU6050_Init();                                                   //MPU6050 DMP陀螺仪初始化
  39.         
  40.         SysTick_Init();                                                  //SysTick函数初始化        
  41.         CarUpstandInit();                                          //小车直立参数初始化
  42.         SysTick->CTRL |=  SysTick_CTRL_ENABLE_Msk;         //使能总算法时钟

  43.         while (1)
  44.         {

  45. //                 GPIO_ResetBits(GPIOC, GPIO_Pin_13);
  46.                 MPU6050_Pose();                                                 //获取MPU6050角度状态
  47. //                 gy0=gyro[0];
  48. //                 UltrasonicWave_StartMeasure();           //调用超声波发送程序 给Trig脚 <10us 高电平                 
  49. //                 chaoshengbo();                               //计算超声波测距距离
  50. //              printf("%d",ucBluetoothValue);
  51. //                printf("\t");
  52. //                printf("%f",BST_fSpeedControlOutNew);
  53. //                printf("\t");
  54. //                printf("%f",BST_fCarAngle);
  55. //                printf("\t");
  56. //                 printf("%f",BST_fLeftMotorOut);
  57. //                printf("\t");
  58. //                printf("\n");
  59.                
  60.                 if (newLineReceived)
  61.                    {
  62.                         ProtocolCpyData();
  63.                         Protocol();
  64.                 }
  65.                 /*通过状态控制小车*/
  66.                 CarStateOut();
  67.                
  68.                 SendAutoUp();
  69.                
  70.                         
  71.          }
  72.                                                                      
  73. }

复制代码

所有资料51hei提供下载:

下面的网址里面里面包含了平衡车的stm32源码,安卓控制app,ppt演示文档,还有完整的设计论文
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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