精华内容
下载资源
问答
  • 文中设计了一种基于线性CCD图像传感器的两轮自平衡智能小车。该通过加速度计测量小车倾角和陀螺仪测量的倾角速度,两个数据融合得到的姿态,进而控制其自身平衡,通过线性CCD检测赛道的信息实现行走及转向.经...
  • 文中以第七届"飞思卡尔"杯大学生智能车竞赛为背景,以飞思卡尔MC9S12XS128单片机为核心,设计了一种自平衡巡线智能车系统。本设计基于倒立摆的动力学模型,经过卡尔曼滤波算法对陀螺仪和加速度计的输出信号进行处理...
  • 针对市场上已有的平衡车功能单调,应用范围小,小车倒地后很难自动恢复直立,结构复杂,用户体验差等问题,文中设计了基于μcos-Ⅲ实时操作控制系统的两轮平衡智能车。为了改善这些问题,文中采用了一种μcos-Ⅲ实时...
  • 全国大学生飞思卡尔智能车竞赛与时俱进,第七届电磁组小车首次采用了两轮小车,模拟两轮自平衡电动智能车的运行机理。在此基础上,第八届光电组小车再次采用两轮小车作为控制系统的载体。小车设计内容涵盖了控制、...
  • 智能自平衡两轮电动是典型的非线性系统,智能自平衡两轮电动是一种两轮式左右并行布置结构的自平衡系统,要在各种状态下保持动态平衡。采用超声波、陀螺仪传感器及其他传感器实现增稳系统。智能自平衡两轮电动...
  • 直立智能车平衡车)毕业论文

    千次阅读 2019-06-30 12:10:37
    直立智能车设计 摘 要 随着微电子控制技术的发展和人们对出行工具的日益增长的需求,一款简单易操作、容易携带、清洁无污染的两轮自平衡车开始走进大众的视野,但这种小型代步工具仍可能存在一定的不稳定性和...

     

     

    直立智能车设计

     

    摘  要

     

    随着微电子控制技术的发展和人们对出行工具的日益增长的需求,一款简单易操作、容易携带、清洁无污染的两轮自平衡车开始走进大众的视野,但这种小型代步工具仍可能存在一定的不稳定性和安全隐患,本次课题主要通过在实验室制作一款简易的自平衡小车,通过手机蓝牙控制,以此模拟真实的使用者驾驶体验,在模拟实验中提升平衡车的稳定性,解决可能出现的实际问题。最终通过改造自平衡小车系统,实现基本的状态控制,并为以后其用到其它复杂的环境中提供一些实验参考。

    本次毕业设计所做的直立智能车可以在不需要人为干预的情况下通过PID等算法保持长时间的平衡状态,同时可以通过相应的蓝牙控制APP进行控制,控制运动状态包括前进、后退、左转、右转和停止,带有进行转弯提示的蜂鸣器和进行运动状态指示的LED灯。

     

    关键词:平衡车;蓝牙;PID;STM32

     

    Vertical intelligent vehicle design

     ABSTRACT

     

    With the development of microelectronics control technology and people's growing  demand for travel tools, a simple and easy to operate, easy to carry, clean pollution-freetwo wheels of the balance of the car began to come into the mind of the public, but   this small transport is there may be some instability and potential safety hazard, this   topic mainly by making a simple balance car by mobile phone bluetooth control in thelaboratory, in order to simulate real user driving experience, enhance the stability of thebalance of the car in simulation experiment, solving actual problems that may occur

    finally, the basic state control is realized by reforming the self-balancing trolley system, and some experimental references are provided for its use in other complex           environments.

    This upright smart car of graduate design can be in the case of don't need human  intervention by PID algorithm to maintain equilibrium state for a long period of time, at the same time can be controlled by the corresponding bluetooth APP procedure control,including forward, backward, left, right and stop, with the buzzer that indicates a turn and indicator lights indicating the status.

     

    Key wordsBalance carBluetoothPIDSTM32

    目  录

     

    1  绪论..................................................... 1

    1.1  课题背景................................................ 1

    1.2  国内外研究情况.......................................... 1

    1.3  研究意义................................................ 1

    2  系统总体方案设计......................................... 3

    2.1  设计主要工作及基本要求................................... 3

    2.2  方案论证与选择.......................................... 3

    2.3 系统框图分析............................................ 5

    2.4 系统总体方案设计........................................ 5

    3  系统的硬件设计及系统流程................................ 7

    3.1 单片机控制电路.......................................... 7

    3.2 电源模块电路............................................ 8

    3.3 电机驱动模块电路........................................ 8

    3.4 其它外设................................................ 9

    4  系统的软件设计及系统流程............................... 13

    4.1 下位机程序............................................. 13

    4.2 上位机程序............................................. 16

    5  开发中遇到的问题和成果图............................... 19

    5.1 硬件上的问题和解决方法.................................. 19

    5.2 下位机开发中的问题和解决方法............................ 20

    5.3 上位机开发中的问题和解决方法............................ 21

    6  结论.................................................... 23

    7  总结.................................................... 24

    参考文献................................................... 25

    致  谢................................................... 26

    附  录................................................... 27

    1  绪论

    随着我国轨道交通和道路交通建设的越来越完善,人们可供选择的出行方式更加多样化,作为一款新型代步工具的平衡车开始走进人们的视野。相较于其它交通工具,直立平衡车体积小巧、绿色环保、响应迅速、运动灵活,逐渐受到人们的青睐。除了作为交通工具,直立智能车上的控制算法和结构同样可以移植到其它类型的机器人身上,作为新型机器人的驱动机构,可以在更加狭小空的间里远程执行特殊任务。设计以倒立摆原理为核心,设计出一款可以长时间保持平衡的迷你直立智能车,通过模拟用户真实驾驶体验,为今后载人平衡车的发展提供一些借鉴意义。

    1.1  课题背景

    直立智能车作为一款交通工具,其制作过程需要的知识横跨了包括传感器、力学、控制算法、滤波算法、通信技术和计算机技术等的众多学科。其控制方案作为机器人控制领域的一个分支有着较为广泛的应用前景,逐渐成为国内外众高校院所的研究热点。由于智能车是一个集姿态解算、行为控制、事件处理于一体的综合复杂系统[1],因此其发展水平甚至可以作为一个国家科技发展水平的参考依据。

    1.2  国内外研究情况

    1986年,日本东京电信大学自动化系的山藤一雄教授设计了一个两轮车模型,为了保证重心在上面,将芯片和电机放在模型上面,通过陀螺仪进行姿态检测和电机控制,制造出最简单的直立智能车模型。2002年,美国赛格威公司推出了第一款真正意义上可以自主平衡的直立两轮代步车。近年来,随着传感器技术和能源动力技术的发展,控制理论的成熟,美国、日本、瑞士等国的平衡车研究得到了迅速发展,并且迅速推出了商业化产品。

    国内方面,得益于技术和人才引进以及响应的资金支持,我国的智能车虽然起步较晚,但两轮智能车方面的研究也取得了一定成果。高校方面,西安电子科技大学研究出来可以自平衡的两轮机器人[2];商业方面,中国的纳恩博平衡车公司在2015年收购了知名品牌Segway公司。相信随着国家对高新技术的大力支持和群众对新鲜事物接受能力的提升,作为新兴科技产物之一的平衡车在我国一定可以得到快速良性的发展。

    1.3  研究意义

    智能车控制算法方面的研究内容,不仅仅是用在智能车上面,同样可以广泛的用在其它机器人控制或无人控制领域;智能车的使用大大减少了燃油的使用,对提升环境质量大有好处;其体积小巧,携带方便,可以有效较少大城市里交通阻塞拥挤的问题,方便市民出行;在大型商场、餐厅、地下车库或者某些大型赛事的安保现场,其响应迅速的特点得到了最大应用。

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    2  系统总体方案设计

    2.1  设计主要工作及基本要求

    本次课程设计的主要任务是通过设计软硬件以及相应蓝牙控制APK程序,远程控制两轮小车实现各种自平衡运动,运动状态包括前进、后退、左转、右转,同时带有进行转弯提示的蜂鸣器和进行运动状态指示的LED灯。

    主要工作包括:主芯片、驱动芯片、稳压芯片、蜂鸣器以及其它元器件的选型;原理图PCB的绘制;元器件检测和焊接;手机APP的编写;蓝牙通信调试;编码器测速算法编写; 滤波算法编写;串级PID算法编写及相应参数调试;状态指示灯和蜂鸣器等其它外设的程序调用;直立车组装和整体调试。

      基本要求:

    1. 直立智能车可以保持长时间的自平衡
    2. 手机软件可以和智能车进行双向通信
    3. 直立智能车可以前进、后退、左转、右转、停车
    4. 状态变化时有蜂鸣器提示和LED灯提示

    2.2  方案论证与选择

    1.   关于滤波算法
    1. 方案一: 卡尔曼滤波,可以在有大量干扰的情况下,从已知测量方差的存在噪声的数据中预测估算出系统的最优状态[3],利用卡尔曼滤波可以从MPU6050的原始数据中得到一组接近真值、较为准确的智能车姿态数据。
    2. 方案二: 经典数字滤波器,主要包括低通、高通、带通滤波器,互补滤波器属于带通滤波器的变种。计算角度时,一般通过角加速度和角速度两种方式计算得到角度,因为两种角度的得出方式不同,在融合原始数据时需要一个融合系数[4]。在将两种方式得到的角度进行互补滤波后即可得到一个反应迅速、角度跟踪较为准确的姿态数据。

    在进行两种方案的对比选择中,发现MPU6050芯片内部自带运动数据处理运算单元(DMP),通过DMP可以直接输出芯片的姿态角,包括俯仰角、偏航角和滚转角,而俯仰角即芯片所在平面与水平面的夹角,也就是上文提到的角度值。这样,通过使用MPU6050的DMP既可以得到一个较为准确的角度值,又可以减轻微处理器的运算负担,但为了使最后的数据更接近真值,在速度控制上仍然使用了低通滤波算法。最后采用的方案是在方案二的基础上调用了MPU6050的DMP,虽然程序上要移植大量的MPU6050的固件库,但数据更加准确。

    1. 关于控制算法

    控制算法采用的是久经工业现场考验的PID算法[5],其控制算法较为简单但控制性能比较可靠稳定、鲁棒性较强、参数整定的方案较为成熟并且无需建立数学模型,因此为了实现智能车的自主平衡,控制算法采用的是PID算法,涉及到直立PID、速度PID和转向PID[6]。

    1. 关于测速算法
    1. 方案一:位置差分法(即M法),测量规定时间内齿轮转过的角度值
    2. 方案二:定角测时法(即T法),测量齿轮转过固定角度所用的时间

    M法的程序编写简单,虽然测量低速脉冲时可能会有一些误差,但是测量高速时平稳性和精度都较高;T法一般是测量两个脉冲之间的时间间隔确定被测速度,适合测量低速情况,但车轮转一圈会产生几十上百个脉冲,使用T法不太方便,采用方案一。

    1. 关于下位机开发工具
    1. 方案一:使用德国Keil公司的Keil MDK-ARM
    2. 方案二:使用IAR Systems的IAR Embedded Workbench

    KEIL和IAR都是针对各种嵌入式处理器的软件开发工具,主要用来编译程序。两者相比KEIL不支持层叠文件夹,而IAR不仅支持层叠,而且编译器高度优化,即编译速度要比KEIL快,但是IAR生成的工程文件用其它版本IAR打开会出现一些错误,即存在版本不兼容问题,而KEIL不存在这种问题,考虑到下位机程序以后迭代过程中会出现版本间移植的情况,并且STM32 CubeMX软件的使用者大多数使用MDK-ARM-V5,学习资料较为丰富,因此选用方案一。

    1. 关于库函数
    1. 方案一:使用标准库函数开发
    2. 方案二:使用hal库函数开发

    意法半导体集团(ST)为开发者提供的开发库除了上面两种,还有LL库,但因为目前支持的芯片类型太少而舍弃。标准库较hal库出现的更早,两者互不兼容但结构和接口调用方式都类似;虽然标准库使用者更多,但HAL(Hardware Abstraction Layer)面向硬件抽象层,搭配ST公司新推的STM32 CubeMX图像化代码编辑生成软件,可以很大程度的方便开发者,实现了最大跨度的不同产品间的可移植性,并且带有一套用户友好的API函数接口。虽然初期阶段,HAL仍然存在一些小问题,但出于渴望学习新工具新技术的探索精神,智能车所有的下位机程序开发都是基于hal库函数。

    1. 关于上位机开发工具
    1. 方案一:使用Qt Company公司的Qt Creator
    2. 方案二:使用谷歌的Android Studio

    Qt Creator相对于比较主流的集成开发工具Android Studio,Qt Creator显得比较小众,而且在一些复杂的操作上Qt Creator可能存在不稳定性,但是对于本次课程设计而言并没有涉及到复杂的操作,一款轻量级、易上手的软件开发工具足够实现功能,而且Qt Creator可以跨平台,即开发出的软件稍加改动即可运行在Windows、Mac OS、Android甚至Linux等平台上[7],减轻了以后上位机移植的工作量,故选用方案一。

    2.3 系统框图分析

    系统框图如下图所示,本智能车电路板采用7.2V镍铬电池,通过电压转换模块中的2个元器件将7.2V转换为2种电压,分别给电路板上的其它芯片供电;主芯片和姿态检测传感器MPU6050进行I2C通信,获得当前的智能车倾角,为下一步的调整智能车角度提供数据支持;主芯片通过对编码器数据的正交解码实时检测当前小车真实速度,为控制智能车速度提供数据支持;通过下载接口向主芯片下载程序;主芯片和蓝牙模块进行双向通信,蓝牙模块和手机程序双向通信,进行数据交换,主芯片接收到手机指令后通过PWM信号控制电机转动,继而进行直立智能车的姿态调整;同时也可在进行状态控制时有相应的蜂鸣器和led灯指示,软件看门狗时刻保证程序正常运行。

    图2-1  系统框图

     

    2.4 系统总体方案设计

        1. 芯片选型方面

    主芯片:因为和MPU6050通信过程中要移植其固件库,而库函数内容较多,单片机的ROM,考虑到以后可能要加的外设,单片机的引脚数,故放弃了类似51单片机的小单片机;考虑开发周期,使用ARM架构的单片机;本智能车电路板虽然用镍铬电池供电,但只是用来实验模拟,2000mAH的镍铬电池完全够用,放弃了一般用在低功耗或超低功耗的场合的MSP430;而随着智能互联终端成为国内外研究的热点后,基于STM32的应用方案也越来越成熟[8]。所以最终选用市场上较为主流的STM32单片机。

    驱动芯片:选用的是驱动电流达43A的大电流集成芯片BTN7960,内部集成的驱动Ic具有逻辑电平输入功能,因此主芯片可以直接给驱动芯片PWM信号即可控制电机转动,不过因为是半桥驱动芯片,所以需要两片芯片控制一个电机。实测过程中,电机全速运转消耗电流不超过500mA,驱动能力完全够用,并且其控制简单,电路成熟,性能稳定[9],所以选择BTN7960驱动芯片。

        1. 电源方面

    7.2V给智能车电路板供电后,被两个稳压电路转换为两种电压,其中两颗LDO分别是将7.2V降到5V的LM2596和将5V降到3.3V的AMS117_3.3。LM2596是TI生产的可输出3A电流稳压降压芯片,输入电压可达37V,外围器件较少,其输出的5V电压给智能车电路板上的蜂鸣器、蓝牙、MPU6050和其它一些外设供电;AMS117_3.3是一种正向低压降稳压器,输出电流为1A,智能车电路板用的是3.3V固定输出版本,精度为1%,输出电压给主芯片STM32F103、74lvc245、霍尔编码器和LED灯等的其它外设。

        1. 下载方面

    STM32的下载方式主要有两种,ISP下载(串口下载)、JLINK下载和STLINK下载。串口下载不可以在线仿真,会对后期的软硬件调试造成不便,故舍弃;JLINK下载方式和STLINK下载方式都支持仿真调试且支持市面上的大部分ARM内核芯片,不同的是主流的JLINK下载工具有20个引脚,而STLINK只需4个引脚,出于对智能车电路板体积不易过大和要安装调试方便的考虑,选择使用STLINK下载工具对主芯片进行程序下载和后期仿真调试。

        1. 通信方面

    在早期物联网应用中,出于对嵌入式系统安全的考虑,设备之间的连接大多采用有线方式,但随着技术的发展和设备安装位置的增多,无线传输被应用的更加广泛,其中蓝牙模块化繁为简,只需一个接受模块和一个发送模块即可实现数据无线透传[10],因此智能车通过一个蓝牙模块和手机app进行通信。

     

    3  系统的硬件设计及系统流程

    3.1 单片机控制电路

    ARM公司推出的 Cortex-M 系列微处理器是市场上较为主流的芯片,经多方比较,本实验平台选择 STM32F103C8T6作为核心芯片,该芯片是新一代 Cortex-M3内核的微处理器,具有 72 MHz 主频、20K字节SRAM、128K字节闪存,提供两个12位adc(16通道),三个通用16位定时器加上一个PWM定时器,多达两个I2Cs和SPIs,三个usart[11],一个USB,一个CAN, 2个看门狗定时器, CRC计算单元,7通道DMA控制器。而且有官方提供的专门的开发库,操作调试更加方便简单[12] 。外围电路模块部分围绕主芯片设计,主要组成及功能如下:

    晶振电路:智能车电路板采用的是高速晶振电路,晶振起振为单片机提供时钟信号流。

    复位电路:采用自动复位电路,上电后单片机自动复位,复位之后单片机程序重新运行。

    启动方式设置电路:通过配置STM32的BOOT0和BOOT1引脚设置单片机的启动模式,即从哪个区域启动单片机,本实验板主芯片从主闪存存储器区域启动。

    具体电路参见下图

    图3-1  单片机控制电路

     

    3.2 电源模块电路

    图3-2  电源模块电路

     

    3.3 电机驱动模块电路

    因为主芯片引脚驱动电流太小,且直接控制驱动芯片容易被反相电流损坏引脚,所以在主芯片和驱动芯片之间加了一个三态输出的八路总线收发器74LVC245,进行驱动隔离,如下图。

    图3-3  74LVC245电路

     

    主芯片输出的PWM信号在经过隔离芯片后,到达BTN7960的逻辑信号输入引脚,进行驱动芯片输出电压的调整,通过给两个驱动芯片发送不同的PWM信号,保证电机之间出现规定的电压差,即可控制电机进行不同程度的正反转,如下图所示为驱动智能车一个电机的电路图。为了防止芯片损坏或其它异常情况导致电路输出一个特别大的电压,进而烧毁电机,在电机两端加了一个压敏电阻,当电机间电压超过12V时,压敏电阻吸收多余的电流,进行电压钳位保证电机不被烧坏。

    图3-4  电机驱动电路

     

    3.4 其它外设

    1. 蜂鸣器:使用的5V有源蜂鸣器,通电就响,控制方便。如图,蜂鸣器正端接5V,负极接一个NPN三极管,三极管基极通过一个电阻接到主芯片引脚上,当引脚置为高电平时,三极管导通,蜂鸣器工作,反之,蜂鸣器不工作。

    图3-5   蜂鸣器电路

     

    1. MPU6050模块接口:MPU6050没有单独做电路,直接用的是GY-521三轴加速度电子陀螺仪,不过该模块并未添加任何多余的电路,单片机和其通信得到的就是MPU6050的原始数据。单片机和MPU6050通过I2C方式进行通信,如下图所示,四根接口线分别为电源、地、数据线和时钟线。

    图3-6  MPU6050接口

     

    1. LED指示灯:如下图所示,为智能车电路板上的前后左右四个方向上的指示灯,分布在电路板四个角上,1k电阻起限流作用,如果LED灯不太亮,可以替换为小阻值电阻。

    图3-7  LED指示灯电路

     

    1. 下载接口:如图所示,下载接口的四根线分别是给主芯片供电的电源和地,和单片机进行通信的SWCLK和SWDIO。

    图3-8  下载电路

     

    1. 测速接口:电机测速采用的是霍尔编码器,可以将角位移转换为一串数字脉冲输出。当齿轮转过一圈编码器A相会输出固定的脉冲数,编码器B相输出转向,编码器AB相接到到单片机引脚上,单片机对信号进行捕获然后正交解码,通过M法,即计算固定时间内接收到的脉冲数可以换算出速度。如下图所示,四根接口线分别为编码器供电电源、地、编码器A相和B相。

    图3-9  测速接口

     

    1. 蓝牙接口:蓝牙模块选用的是主从一体的HC05蓝牙串口模块,蓝牙参数、单片机串口参数和手机程序蓝牙接收参数都是9600bits/s、停止位1位、无校验位,单片机通过串口2和蓝牙模块进行通信,蓝牙将单片机指令以TTL电平发送到手机上,数据反相传输同样类似。如下图,蓝牙模块采用5V供电,模块RX引脚接TX2,TX引脚接RX2。

    图3-10  蓝牙接口

     

    1. 避障接口:当光电传感器模块遇到障碍物时会输出一个高电平,将其输出引脚接到下图接口上,单片机检测到高电平,进行避障处理。

    图3-11  避障接口

     

    1. 舵机控制接口:采用的9g舵机SG90属于模拟舵机,5V供电后,有PWM信号即可控制舵机转向。

    图3-12  舵机控制接口

     

    智能车电路板通过添加合适的电阻、电容、电感、二极管、保险丝等元器件,进行滤波、去耦、防大电流等操作,同时消除一些小概率干扰[13] 。同时在设计电路板过程中除了进行抗干扰方面的处理,在焊接元器件过程中也对焊接位置、焊接温度和焊接材料进行了严格把控[14],在根源上杜绝了电路板可能出现的安全隐患。

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    4  系统的软件设计及系统流程

    4.1 下位机程序

    下位机使用的编译开发工具是Keil Software公司的Keil μVision5 IDE;开发语言是C语言;搭配的开发工具是可以和Keil μVision5 IDE关联到一起的图形化配置工具STM32CubeMX;使用的库函数是HAL库函数;程序从主闪存存储器区域启动;下载工具是STLINK。

    程序中对STM32进行的主要操作:和MPU6050进行I2C通信获知当前姿态;通过PWM控制电机转动;检测当前电机转速;控制蜂鸣器和LED等的GPIO;软件看门狗;和蓝牙双向通信。

    4.1.1 下位机程序流程图

    程序首先系统初始化,系统初始化包括时钟初始化、GPIO初始化、I2C初始化、定时器初始化、正交解码初始化、串口初始化、MPU6050及其DMP初始化、看门狗初始化和PID参数初始化,以上程序在while(1)之前,开机后只顺序执行一次,在下面流程图中用系统初始化统一代称。

    所有的控制都在一个外部中断程序里面进行处理,此外部中断由MPU6050触发。因为设置的DMP中数据每隔10ms更新一次,所以配置MPU6050模块的中断输出引脚每隔5ms进行一次电平转换,当单片机捕获到该引脚的下降沿时进行数据处理,保证数据的准确性和处理的及时性。

    中断内部的处理步骤参见下图中的读取倾角到驱动电机,蓝牙接收后的相应处理包括前进、后退、左转、右转、蜂鸣器提示和LED指示等。

    图4-1  下位机程序流程图

     

    4.1.2 算法介绍

    1. 低通滤波器算法:Encoder_Least =(speed_left+speed_right)-0;      

                    Encoder *= 0.8;                              

                    Encoder += Encoder_Least*0.2;                

    上式中Encoder_Least是最新速度偏差; 第2、3个程序可以理解为Y(n)=αX(n)+(1-α)Y(n-1),其中X(n)等同于Encoder_Least,代表本次采样值;Y(n-1)等同于Encoder,代表上次滤波输出值;α是滤波系数,在上式中是0.2。

    1. 一阶互补滤波算法:g_fAngle = 0.02 * Angle_ax + (0.98) * (g_fAngle + GY * dt); 

    上式中左边的g_fAngle为实际得到的角度;Angle_ax为角加速度换算后的角度值,因为角加速度受车体震荡等因素会产生高频噪声,所以对其进行低通滤波,滤除高频信号,因此融合系数较小;右边的g_fAngle可以理解为上一次的角度;GY是角速度,dt是时间,GY *计算dt时间段内通过的角度,通过对角度的不断积分得到一个较为准确的角度,可信度和融合系数较大,有点类似高通滤波。

    1. PID算法:balance=CarAngle.Kp*Bias+CarAngle.Kd*Gyro;                  

              Velocity=Encoder*CarSpeed.Kp+Encoder_Integral*CarSpeed.Ki;       

              Turn = -Turn_Target * Kp - gyro * Kd;                             

    上面第1个程序是直立PD算法,即角度环控制算法,属于位置PD算法[15]。通过此算法可以实现智能车短时间的直立平衡状态,其中Bias是小车偏离水平面的角度,数值为0时即与地面平行;Gyro是角速度值,通过调节Kd可以减缓小车震荡;具体调节步骤如图4-2,当小车向前倾倒时,车轮跟随小车前进的方向,使其有一个向后的力,反之亦然,调参数时的最好现象是小车对角度变化反应敏感且没有震荡。

    图4-2  直立小车运动模型

     

    第2个程序是速度PI控制,Encoder是经过低通滤波输出的当前速度值,因为速度控制和直立控制输出值是要加到一起的,低通滤波可以减缓速度差值对直立控制的干扰;Encoder_Integral是对速度的积分,即位移,积分控制的是速度的静差,对Encoder_Integra的限幅就是对速度的限幅;直立环和速度环一起调试,即可实现小车的长时间直立[16],直立环是负反馈,速度环是正反馈,即小车因为直立环原因向一个方向加速时,速度环的作用是产生一个同方向更快的速度。

    第3个程序是转向PD算法,Turn_Target是转向速度值,数值较大时转向速度块,反之慢,数值大小和转向前小车的速度有关,即小车的旋转速度可以跟随实时速度,增加小车的适应性;gyro是角速度值,gyro * Kd可以减小小车转向时的震荡;据体控制方法就是将小车的左轮PWM输出值减去转向PD输出值,小车的右轮PWM输出值加上转向PD输出值,利用小车车轮的差速进行转向。

    4.2 上位机程序

    上位机开发工具使用的是由Qt Company在1991年开发的跨平台的图形界面应用程序开发框架- Qt Creator;软件功能是进行开关蓝牙、蓝牙状态检测、搜寻和配对连接等,最主要的是通过蓝牙模块和单片机进行无线数据透传。

    4.2.1 上位机程序流程图

    系统初始化包括创建动画、设置动画、动画自适应、启动动画;设置定时器;设置滚屏显示的字符、颜色、显示时间、滚屏方向;设置蓝牙UUID码、分配socket内存、限定套接字协议;设置显示背景的大小、位置、透明度;编写按键信号对应的槽函数和其它回调函数。

      初始化之后的操作如图所示。

    图4-3  上位机程序流程图

     

    4.2.2  上位机功能介绍

    本上位机使用应用程序开发框架Qt Creator开发,在用其自带的界面设计器进行页面设计之后,在代码管理编辑页面进行C语言的程序编写、逻辑实现。在调试过程中进行了图形化调试,即程序和页面相关联之后进行全方位调试。在debug模式对程序进行实时观察跟踪,定位到问题并对其解决或者修改相应配置后,在最后实验阶段进行实际应用,效果良好。

    使用Qt Creator进行开发,首先进行编译环境的搭建,主要步骤为:(1) 选择合适的编译器;2) 配置环境变量;(3) 选择Qt文件系统的编译器;(4) 选择库文件,因为本课程设计的上位机是在Windows系统下开发Android软件,所以需要交叉编译器[17]。主要功能如下:

    1. 扫描刷新附近的蓝牙设备
    2. 将蓝牙设备显示在手机上
    3. 进行控制时左上角显示有按键按下指示

    4.2.3  上位机使用说明

      首次打开软件时,按照手机提示打开蓝牙,之后app会自动搜索周围的蓝牙设备,并显示在屏幕上,如果有新设备,可以点击页面下方的刷新按键,如果已经配对过的设备手机会高亮显示,双击设备即可进行连接,如图4-4。这时打开蓝牙按键会显示“正在连接…”,连接失败会显示连接失败,连接成功会自动进入440ms的小车启动动画,动画上面滚动显示“启动中…”,如图4-5。

      动画播放完毕,进入控制页面,如图4-6,按下某个按键会发送相应的指令,例如按下“上”,发送0x31、0x32,按下“下”,发送0x33、0x34,按下同时左上角变成小红点,松开手恢复原样。可以发送的指令有上、下、左、右、停车和蜂鸣器,按下右上角的蓝牙图标,APP页面跳转到蓝牙连接页面。

    上位机每进行一次指令更新,蜂鸣器会响一下,前进时前面两个led灯点亮,后退时后面两个led灯点亮,左转时左面两个灯点亮,右转时右面两个灯点亮,响一下蜂鸣器,点击一下停止按键,小车停止所有指示灯点亮,并且当前指示灯状态全部反转,蜂鸣器开始长响,再次点击一次,蜂鸣器停止发出发出声音,当前所有指示灯状态再次反转。图4-7是本软件的图标,软件名称叫“中控台”。

     

     

    图4-4  蓝牙连接图                    图4-5  开机动画图

     

    图4-6  蓝牙控制                           图4-7  软件图标      

    开发中遇到的问题和成果图

    5.1 硬件上的问题和解决方法

    1. 由于驱动芯片是从其它电路板上吹下来的,导致第一次温度没控制好把芯片吹坏
    2. 手工焊接STM32F103C8T6时,引脚间间距只有0.5mm,把引脚焊短接;为了避免出现引脚间再因滚进锡球而短路,将主芯片用透明胶带粘起来
    3. 固定孔的直径设置成2.54mm,固定用的塑料螺柱买的是3mm的,只能用胶棒固定
    4. 指示灯的亮度偏暗,因为选用的限流电阻过大
    5. PID调参时,长时间的高频大幅抖动将芯片烧坏
    6. 蜂鸣器不太响,是因为上面的贴纸没有揭下来
    7. 先给主芯片供电,再给驱动芯片供电,否则供电主芯片初始化的时候容易出现轮子乱转的情况

    下图是电路板PCB图,在Altium Designer软件中先画出原理图,再把原理图转换为PCB,通过把PCB中杂乱的元器件布局并进行电气连接后即为下图。

    图5-1  电路板PCB图

     

    5.2 下位机开发中的问题和解决方法

    1. 蓝牙不能进行数据收发:蓝牙模块的默认波特率是115200bits/s,和单片机不一样,要用AT指令将其设置成一样
    2. 有时候接收不到MPU6050的外部中断:外部中断被其它中断打断了,将对应的外部中断的优先级放到第一位
    3. 小车完全倒地时还会瞎转:判断MPU6050倾角是否超出正负25度,超出后就不进行控制
    4.  PID调节有直立环、速度环、转向环,调试时要直立环和速度环一起调,否则不能保持直立
    5. I2C地址的通信地址和MPU6050的某个引脚是否接地有关,默认悬空是0X68
    6. 速度发生迟滞:速度要限幅,否则当变量超调的时候容易出现速度降不下来或者升不上去的情况
    7. 小车总是向一个方向跑偏:程序上设置的机械中值和MPU6050的实际安装位置有差别。
    8. 在STM32cubeMX中uart2的tx引脚模式默认只有PP(复用推挽)一种,要改成OD(开漏)模式,可以直接在源程序里面改
    9. STM32cubemx HAL的硬件I2C有一个BUG,就是要把__HAL_RCC_I2C2_CLK_ENABLE()这句时钟初始化代码放到GPIO初始化之后。
    10. 修改STM32cubemxUSER生成的程序,内容要写在 “CODE BEGIN x”和“CODE END x”之间,否则下次再次生成后自己的程序会消失

    下图为PCB电路图经过工厂加工并焊接上元器件的成品图,通电并将相应的线路连接正确后即可使用。

      图5-2  电路板实物图

     

    5.3 上位机开发中的问题和解决方法

    1. 无法添加背景图:listWidget添加背景图,必须先设置成透明
    2. 手机扫描不到蓝牙:Android 6.0以上设备扫描Ble设备前要开启位置权限
    3. 无法显示不规则图标:使用专门的图标按钮
    4. 兼容性不太好,初次打开软件时会出现android detected problems with API compatibility Android ,原因是手机系统升级到Android 9.0以后谷歌后台限制了开发者调用非官方公开API,这个问题因为手机系统更新导致出现的比较晚,尚未解决,但是点击确定后不影响使用

    下图为整车实物图,蓝牙在上方,指示灯在四个角上,电池在电路板正下方并用铜柱和电路板隔开,防止因为电池散热导致小车电路板出现问题,为了保证传感器的稳定,直接用胶封在小车下方,接线插头自带防呆设计不用担心插反,带卡锁不用担心脱落。

    图5-3  平衡车整车实物图

     

     

    参考文献

    [1]  林枫,蔡延光.双轮自平衡车的双闭环式PID控制系统设计与实现[J].工业控制计算机,2017,30(06):73-75.

    [2]  刘永鹏. 基于STM32的智能平衡车设计[J].科技经济导刊,2018,26(30):39.

    [3]  刘二林,姜香菊.基于卡尔曼滤波的两轮自平衡车姿态检测[J].自动化与仪器仪表,2015(02):52-54.

    [4]  夏国清,陈华珍,甄文劲.基于互补滤波的两轮机器人运动控制系统设计[J].自动化技术与应用,2018,37(10):72-78.

    [5]  王耀辉,强天伟.PID控制原理简析[J].洁净与空调技术,2013(03):79-82.

    [6]  严冬.基于PID控制算法的自主平衡小车的设计[J].科技视界,2018(33):14-15.

    [7]  赵北庚.Windows系统下Qt图形界面集成开发环境搭建[J].科技经济导刊,2016(09):20.

    [8] Sizu Hou, Shengming Wu, Fengying Kong, Xiaoling Cui,Xuan Zhang.  Design andrealization of family  intelligent interactive terminal based on STM32[C].  IEEE. 2012.06.

    [9]  杨明辉,孙猛猛,张玉炳等.BTN7960直流伺服电动机驱动板的设计[J].科技展望,2015,25(18):110.

    [10]  曹树伟,杨雪.智能家居手机蓝牙开关控制电路设计与实现[J].赤峰学院学报(自然科学版),2019,35(01):25-27.

    [11]  李帅男.基于STM32控制的双轮自平衡小车的设计[J]. 现代工业经济和信 化,2018,8(13):34-35.

    [12]  王磊,宁欣.基于STM32的两轮自平衡小车控制系统设计[J].山东工业技术,2018(13):54.

    [13]  凌林玉.印制电路板的抗干扰性设计[J].电子测试,2017(09):93-94.

    [14]  阴涛.对PCB双面板手工焊接缺陷的探讨[J].科技创新与应用,2018(28):114-115.

    [15]  KE LIN,TING LEI HUANG,PIN LIU.Designof the smart car comtrol system based on adaptive PID algorithm[C]. Proceedings of 2011 InternationalConference on Intelligent Computing an Integrated Systems(ICISS2011), Guilin University of Electronic Technology IEEE Beijing Section,2011.

    [16]  袁鑫宏,王兴.基于MPU6050六轴传感器的平衡车姿态检测及控制方案[J].信息与电脑(理论版),2018(23):103-104.

    [17]  赵良好,王澜,戴贤春等.搭建基于Qt的嵌入式开发平台[J].铁道通信信号,2018,54(02):37-40.

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    6  结论

    在硬件方完成了对主芯片的控制、对电机的驱动和速度检测、平衡车角度方面的检测、和控制相关电压的稳压输出;硬件程序用到了PID控制算法和滤波算法,以及其它用到的PWM控制、串口接收发送、时钟管理、I2C通信、引脚配置、定时器和外部中断等的相关程序;手机程序方面通过编写相应的蓝牙控制apk程序,实现了远程连接平衡车蓝牙,对其进行简单的方向控制和电路板上一些相应模块的控制(比如转向灯和蜂鸣器)。

    本次毕业设计通过软硬件设计以及编写相应蓝牙控制apk程序,实现了控制两轮小车的各种自平衡运动,包括前进、后退、左转、右转和停车,同时可以通过蜂鸣器进行转弯提示和通过LED灯进行运动状态指示。通过简单的实验测试了在不同载重、不同电压、不同路段下小车的运动状态,载重过大会导致重心上移,相应的PID参数需要调节;电压过低时,小车的的电机无法被充分驱动,导致响应不及时甚至无法直立;路段越差,速度积分的误差会越来越大,导致可以平衡的时间变短。

    设计的最大优点是程序的移植性较强,下位机开发用的基于CUBE的HAL库,因此只要是ST公司的芯片,只需要在图形化配置页面更改一下参数和对应引脚即可移植完毕;同样的上位机APP如果需要运行在linux、 Windows等其它平台,只需要在Qt软件上更改编译输出的环境即可完成。

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    7  总结

    技术的快速发展导致了学科之间的深度融合,为直立智能车的这一新型事物的诞生提供了理论基础。随着直立智能车走进人们的生活,其应用场景也越来越多,相信随着物联网时代和“无人”时代的到来,直立智能车上搭载的传感器和处理的数据量会呈指数级增长,人机交互变得简单且高效,功能会更强大。

    本次毕业设计所做的直立智能车实现了基本的自主平衡和手机近程操控功能,附加的一些外设也能让使用者的驾驶浸入感更强。但仍然存在一些问题,比如需要前后稍微摆动一下才能保持平衡,而且平衡后也不是完全的静止,还有就是手机APP存在一些不兼容的问题。这些问题仍需寻求解决方法,同时以后会竭力将智能车改进的更加智能化,紧跟时代技术发展的步伐,向更高层次迈进。

     

     

     

     

    展开全文
  • 智能电动平衡踏板轮毂电机绕线机定子绕线机设备(1)设备功能和特征本机型专为智能平衡车轮毂电机绕线而设计,采用双工位绕线设计。可设定自动绕线、多线径绕线、自动分度、自动跨槽、绕线速度等参数设定,人机界面...

    智能电动平衡踏板车轮毂电机绕线机定子绕线机设备 

    804274f0e30518823f9c984e007db311.png

    f223248bd3dd2230a9c06bd21614b202.png

    (1)设备功能和特征

    本机型专为智能平衡车轮毂电机绕线而设计,

    采用双工位绕线设计。

    可设定自动绕线、多线径绕线、自动分度、自动跨槽、绕线速度等参数设定,

    人机界面具有故障诊断、产量计存。

    整机采用伺服电机控制系统实现产品绕制;

    设备具有远程诊断功能。

    操作简单、生产效率高、降低人工成本。

    e81dcbf2a4c56180173cd27bb667368b.png

    (2)应用范围

    此绕线机机型用于轮毂电机定子线圈绕线,无刷定子和外转子线圈绕线,适用于电动汽车、智能平衡车、电瓶车、电动摩托车、新能源汽车等。 

    048e3bca0a89a6a2a8c743dc9ebf802d.png

    (3)设备参数

    产品名称:全自动智能平衡车轮毂电机定子绕线机

    适用线径:0.2~1.3mm

    定子内径:10~100mm

    定子外径:80-310mm

    定子叠厚:10-50mm

    最大转速:500RPM

    绕线根数:1~8

    电源:三厢380V 50HZ,单相220V 50HZ

    气源压力:0.4-0.7 MPA

    总功率:<7KW

    重量:约750KG

    外形尺寸:1100x1000x1700mm

    c3c12e284220b844ec08f33abb699c53.png

    展开全文
  • 智能车种类众多,其中两轮平衡车特别受到了工程师的喜爱,整理了8个两轮平衡车的资料,一起看看这个小可爱吧。1、基于ARM-STM32的两轮自平衡小车小车直立和方向控制任务都是直接通过控制小车两个电机完成的。假设...

    智能车种类众多,其中两轮平衡车特别受到了工程师的喜爱,整理了8个两轮平衡车的资料,一起看看这个小可爱吧。

    1、基于ARM-STM32的两轮自平衡小车
    小车直立和方向控制任务都是直接通过控制小车两个电机完成的。假设小车电机可以虚拟地拆解成两个不同功能的驱动电机,它们同轴相连,分别控制小车的直立平衡、左右方向。在实际控制中,是将控制小车直立和方向的控制信号叠加在一起加载电机上,只要电机处于线性状态就可以同时完成上面两个任务。小车的速度是通过调节小车倾角来完成的。小车不同的倾角会引起小车的加减速,从而达到对于速度的控制。

    3b7fdefc29dbe65fbd398d83705a7326.png

    https://www.cirmall.com/circuit/1007

    2、模块化迷你两轮平衡小车
    很多人对平衡车的相关技术很有兴趣,但是在实际搭建平衡车或者购买套件时会发现其实成本很高,动辄需要300~400的价钱,而且搭建出来的东西块头很大,做好后的存放是个问题...
    针对这些问题,我们专门设计了一款非常小巧的平衡小车,这个平衡小车在实现了平衡的前提下做到了非常小的尺寸以及高度的模块化设计,其整体尺寸仅为8cm*4cm*4cm;其模块化设计做到了将传感器,电机驱动器,红外遥控接收器,以及马达和电池都是可以拆卸的模块。
    其次就是关于代码和资料方面,源代码全部由我们自行设计与实现,因此可以提供非常详细的代码注释。电路设计,pcb设计也是原创。如果需要,可以在此基础上进行二次开发。

    b5e2f453b5091bfd2bbae6b60a1fdd7d.png

    https://www.cirmall.com/circuit/5106

    3、基于STM32的两轮自平衡小车(硬件+软件+设计说明等)
    本小车主控采用STM32F103ZET6,驱动模块为L298N,采用直流减速电机配高精度码盘测速,三层PID嵌套算法,MPU6050姿态传感器,内含两种自平衡算法,可使用红外遥控,可用无线NRF24L01以及蓝牙控制。
    附件内容包括全套程序,原理图和PCB以及主要的材料采购清单等。

    229bf667164bb326fd60d5862e49d525.png

    https://www.cirmall.com/circuit/2119

    4、两轮平衡小车集成化主控板原理图+PCB+程序源码
    主控芯片是STM32F103C8T6,电机驱动是TB6612,姿态芯片是MPU6050,板载蓝牙2.0模块,电源用的LM2596-5V和AMS117-3.3两个芯片构成,串口用的CH340,留出所有IO口,有NRF2401、CCD摄像头、超声波和OLED接口。串口1和串口3都有留出IO口。
    可以改成寻迹小车和各种多功能的小车。
    这是两轮平衡小车的主控板,所有模块集成到一个板子上,有电源,驱动,OLED,MPOU6050,蓝牙,串口。
    可直接给工厂打样,焊接好后下载相应源码即可运行。

    32585d9e6ce03a47e70e5bec0f375718.png

    https://www.cirmall.com/circuit/5895

    5、基于STM32和MPU6050和NRF24L01的两轮自平衡小车全套资料
    基于STM32单片机和MPU6050传感器和NRF24L01无线的两轮自平衡小车全套资料。小车采用BTS7960电机驱动,性能稳定,不怕烧坏。在小车向前走时立刻向后随意遥控都不会倒,可以高速转圈。小车采用MPU6050的DMP库函数直接返回各个参数。有各个部分的测试程序,容易看懂。串口示波器有我写的详细的安装教程,通过串口可以实时显示四路波形。用陀螺仪测试函数可以直接返回MPU6050的各参数的波形图,方便观察调试。有PID调试参考视频。这是非常完善的教程。

    21e67af8958149ed673e31c444aaf1af.png

    https://www.cirmall.com/circuit/1939

    6、体感控制两轮自平衡小车的设计
    该两轮自平衡小车主要由两部分组成,分别是上位机体感识别的部分和下位机两轮自平衡部分。主要是使用微软的Kinect摄像头,这个摄像头可以输出景深图像,骨骼数据以及RGB数据。所谓的景深数据就是可以反应图像深度的数据,简单来说就是有这个数据可以得到视场范围内每一个点的三维坐标,然后根据这个三维坐标做图像处理得到骨骼数据。图像处理非常复杂,由微软提供,RGB数据我没有处理,直接显示了,然后做了一个简单的动作识别,基于空间点坐标和点之间向量,计算阀值,然后用WIFI传输数据,WIFI使用亚信提供的WIFI转串口方案,虽然我花了半个月时间看计算机网络,看TCP/IP协议,也没用看懂,到最后也没用用上。

    1491e8e5f301a67f31a9afdcc2dfd0fa.png

    https://www.cirmall.com/circuit/1522

    7、【毕业设计(论文)】体感控制的两轮平衡小车,全部制作资料开源分享
    体感控制两轮自平衡小车原理:使用微软的Kinect摄像头,这个摄像头可以输出景深图像,骨骼数据,和RGB数据。景深数据就是,可以反应图像深度的数据,简单来讲就是由这个数据可以得到视场范围内每一个点的3维坐标,然后根据这个三维坐标做图像处理得到骨骼数据,图像处理非常复杂,由微软提供。
    下位机用陀螺仪和三轴加速度采样信号,用一个凯尔曼滤波做了一个数据融合,计算出角度和角加速度,然后就是几个PI调节器做的一个3闭环,姿态,速度,位置,实现细节在论文里面有。凯尔曼滤波用的是别人的代码,这个是一个自适应的算法,参数神马的都不需要改动,只要求单片机速度就可以了,M051的确是快。

    efb394576330b8574098b4b3a4e73d59.png

    https://www.cirmall.com/circuit/5032

    8、毕设完整资料开源:基于STM32打造的两轮直立自平衡小车
    STM32F103VET6主控芯片;两个microusb口,第一个是MCU的串口1,可作为普通的串口收发数据,通过调节板上BOOT选项,也可将其作为ISP下载程序接口;第二个是SWD硬件仿真接口;蓝牙模块,与MCU的串口2连接;WIFI模块,与MCU的串口3相连;一块1.3寸IIC协议的液晶接口;超声波接口;双电机驱动;六轴陀螺仪;电池电压检测;4个用于调试的LED;4个独立式按键;一组4P的拨码开关;有源蜂鸣器;两个6P带AB相编码器的电机接口。

    f46fcefb0d2558c3dcc7e5653b45afba.png

    https://www.cirmall.com/circuit/10116

    展开全文
  • 智能车种类众多,其中两轮平衡车特别受到了工程师的喜爱,整理了8个两轮平衡车的资料,一起看看这个小可爱吧。1、基于ARM-STM32的两轮自平衡小车小车直立和方向控制任务都是直接通过控制小车两个电机完成的。假设...

    智能车种类众多,其中两轮平衡车特别受到了工程师的喜爱,整理了8个两轮平衡车的资料,一起看看这个小可爱吧。

    1、基于ARM-STM32的两轮自平衡小车
    小车直立和方向控制任务都是直接通过控制小车两个电机完成的。假设小车电机可以虚拟地拆解成两个不同功能的驱动电机,它们同轴相连,分别控制小车的直立平衡、左右方向。在实际控制中,是将控制小车直立和方向的控制信号叠加在一起加载电机上,只要电机处于线性状态就可以同时完成上面两个任务。小车的速度是通过调节小车倾角来完成的。小车不同的倾角会引起小车的加减速,从而达到对于速度的控制。

    cb9d20130339767289c5cae912786221.png

    https://www.cirmall.com/circuit/1007

    2、模块化迷你两轮平衡小车
    很多人对平衡车的相关技术很有兴趣,但是在实际搭建平衡车或者购买套件时会发现其实成本很高,动辄需要300~400的价钱,而且搭建出来的东西块头很大,做好后的存放是个问题...
    针对这些问题,我们专门设计了一款非常小巧的平衡小车,这个平衡小车在实现了平衡的前提下做到了非常小的尺寸以及高度的模块化设计,其整体尺寸仅为8cm*4cm*4cm;其模块化设计做到了将传感器,电机驱动器,红外遥控接收器,以及马达和电池都是可以拆卸的模块。
    其次就是关于代码和资料方面,源代码全部由我们自行设计与实现,因此可以提供非常详细的代码注释。电路设计,pcb设计也是原创。如果需要,可以在此基础上进行二次开发。

    d8abcf63d7249d244f43da04a4413079.png

    https://www.cirmall.com/circuit/5106

    3、基于STM32的两轮自平衡小车(硬件+软件+设计说明等)
    本小车主控采用STM32F103ZET6,驱动模块为L298N,采用直流减速电机配高精度码盘测速,三层PID嵌套算法,MPU6050姿态传感器,内含两种自平衡算法,可使用红外遥控,可用无线NRF24L01以及蓝牙控制。
    附件内容包括全套程序,原理图和PCB以及主要的材料采购清单等。

    5f0428d4156a868a548887838841bed7.png

    https://www.cirmall.com/circuit/2119

    4、两轮平衡小车集成化主控板原理图+PCB+程序源码
    主控芯片是STM32F103C8T6,电机驱动是TB6612,姿态芯片是MPU6050,板载蓝牙2.0模块,电源用的LM2596-5V和AMS117-3.3两个芯片构成,串口用的CH340,留出所有IO口,有NRF2401、CCD摄像头、超声波和OLED接口。串口1和串口3都有留出IO口。
    可以改成寻迹小车和各种多功能的小车。
    这是两轮平衡小车的主控板,所有模块集成到一个板子上,有电源,驱动,OLED,MPOU6050,蓝牙,串口。
    可直接给工厂打样,焊接好后下载相应源码即可运行。

    7871431fd424a42af5f9db182d79c9c1.png

    https://www.cirmall.com/circuit/5895

    5、基于STM32和MPU6050和NRF24L01的两轮自平衡小车全套资料
    基于STM32单片机和MPU6050传感器和NRF24L01无线的两轮自平衡小车全套资料。小车采用BTS7960电机驱动,性能稳定,不怕烧坏。在小车向前走时立刻向后随意遥控都不会倒,可以高速转圈。小车采用MPU6050的DMP库函数直接返回各个参数。有各个部分的测试程序,容易看懂。串口示波器有我写的详细的安装教程,通过串口可以实时显示四路波形。用陀螺仪测试函数可以直接返回MPU6050的各参数的波形图,方便观察调试。有PID调试参考视频。这是非常完善的教程。

    92a6662c2c6f7f8ee35d5c7f204885ee.png

    https://www.cirmall.com/circuit/1939

    6、体感控制两轮自平衡小车的设计
    该两轮自平衡小车主要由两部分组成,分别是上位机体感识别的部分和下位机两轮自平衡部分。主要是使用微软的Kinect摄像头,这个摄像头可以输出景深图像,骨骼数据以及RGB数据。所谓的景深数据就是可以反应图像深度的数据,简单来说就是有这个数据可以得到视场范围内每一个点的三维坐标,然后根据这个三维坐标做图像处理得到骨骼数据。图像处理非常复杂,由微软提供,RGB数据我没有处理,直接显示了,然后做了一个简单的动作识别,基于空间点坐标和点之间向量,计算阀值,然后用WIFI传输数据,WIFI使用亚信提供的WIFI转串口方案,虽然我花了半个月时间看计算机网络,看TCP/IP协议,也没用看懂,到最后也没用用上。

    1d74dfcd09e04e38d857721bac90dafd.png

    https://www.cirmall.com/circuit/1522

    7、【毕业设计(论文)】体感控制的两轮平衡小车,全部制作资料开源分享
    体感控制两轮自平衡小车原理:使用微软的Kinect摄像头,这个摄像头可以输出景深图像,骨骼数据,和RGB数据。景深数据就是,可以反应图像深度的数据,简单来讲就是由这个数据可以得到视场范围内每一个点的3维坐标,然后根据这个三维坐标做图像处理得到骨骼数据,图像处理非常复杂,由微软提供。
    下位机用陀螺仪和三轴加速度采样信号,用一个凯尔曼滤波做了一个数据融合,计算出角度和角加速度,然后就是几个PI调节器做的一个3闭环,姿态,速度,位置,实现细节在论文里面有。凯尔曼滤波用的是别人的代码,这个是一个自适应的算法,参数神马的都不需要改动,只要求单片机速度就可以了,M051的确是快。

    c2c3b68cc4cd1ba2a92fdfd32a050c56.png

    https://www.cirmall.com/circuit/5032

    8、毕设完整资料开源:基于STM32打造的两轮直立自平衡小车
    STM32F103VET6主控芯片;两个microusb口,第一个是MCU的串口1,可作为普通的串口收发数据,通过调节板上BOOT选项,也可将其作为ISP下载程序接口;第二个是SWD硬件仿真接口;蓝牙模块,与MCU的串口2连接;WIFI模块,与MCU的串口3相连;一块1.3寸IIC协议的液晶接口;超声波接口;双电机驱动;六轴陀螺仪;电池电压检测;4个用于调试的LED;4个独立式按键;一组4P的拨码开关;有源蜂鸣器;两个6P带AB相编码器的电机接口。

    74022dc6c5f3b48fc5c83f9615c5c4bd.png

    https://www.cirmall.com/circuit/10116

    展开全文
  • 因为一门叫做“智能系统设计”的课程,我们团队做了好几个礼拜的自平衡小车,由于是第一次做这种嵌入式开发,用的又是完全不熟悉的开发板和开发环境,确实是犯了好多的错误不过也成长了很多! 特别感谢CSDN,有很多...
  • 随着科学技术日新月异的发展,人工智能...本设计实际就是一个基于单片机的智能平衡系统。采用单片机AT89C51和AT89C2051作为小汽车的控制和检测核心,实现小汽车自动寻找平衡状态、时间显示、自动寻迹、声光报警等功能。
  • 智能车种类众多,其中两轮平衡车特别受到了工程师的喜爱,整理了8个两轮平衡车的资料,一起看看这个小可爱吧。 1、基于ARM-STM32的两轮自平衡小车 小车直立和方向控制任务都是直接通过控制小车两个电机完成的。假设...
  • 智能小车资料源码大全

    万次阅读 多人点赞 2018-10-22 11:06:50
    今天给大家分享一下智能小车的资料,包括制作流程、原理图设计和源码等,不下于...智能车系统解决方案;STM32两轮自平衡小车资料;STM32两轮自平衡小车系统毕设;自平衡小车控制(stc12+mpu6050程序);寻迹实验小车...
  • 探索者号智能自平衡车 http://www.makeru.com.cn/course/details/2961?s=69821 (1) 在元器件的布局方面,应该把相互有关的元件尽量放得靠近一些,例如,时钟发生器、晶振、CPU的时钟输入端都易产生噪声,在放置的...
  • 论文依托国家自然科学基金重大研究计划项目(90920305)“无人驾驶车辆智能测试环境研究与开发”和中央高校基金创新团队项目(CHD2011TD006)“基于视觉信息的无人驾驶智能车辆关键技术研究”对无人驾驶汽车环境信息提取...
  • 本聚合技术帖介绍了Arduino基础知识,并通过十...1、NANO~~东半球最小的自平衡机器人之前做过一个小小的自平衡机器人蛋黄(有兴趣的同学可以自行百度),深受大家喜爱,各种求资料求教程求种子(误)的络绎不绝然而,...
  • 简单易懂 劈-I-D(1)

    2020-04-15 09:56:35
    对于刚刚初学智能车的小伙伴来说,PID可谓是一个很大拦路虎,当然,网上也有很多很多资料,但是资料虽多,但大多杂乱无章,让各位小伙伴们都抓不住重点,真的令人好头痛!下面,我就用通俗,易于理解的方式介绍一下...
  • 清晰明了 劈-I-D(2)

    2020-04-13 16:46:13
    对于刚刚初学智能车的小伙伴来说,PID可谓是一个很大拦路虎,当然,网上也有很多很多资料,但是资料虽多,但大多杂乱无章,让各位小伙伴们都抓不住重点,真的令人好头痛!下面,我就用通俗,易于理解的方式介绍一下...
  • 着重阐述了该系统的硬件实现和软件设计。本系统完成对各种参数的测量、管理和自动保护,完成几十种命令参数的计算,并通过SMBus总线同HOST等交换。实际使用证明本系统结构简单,功能完善、可靠,运行稳定,可用于...
  • Python入门经典(2K超清)

    千人学习 2020-09-21 14:23:43
    作者赠语--与其被人工智能代替,不如主动学习编程,设计机器为自己服务   课程背景 我在多次python培训时,对学员讲解编程对人生具有重大影响。曾经大学毕业时也迷茫过,不知道以后要干嘛。面对招聘会上密密...
  • 5.4.2 发光物体加运动光源的实现 135 5.4.3 mysurfaceview.java详解 137 5.5 面法向量与点平均法向量 143 5.5.1 面法向量的应用 143 5.5.2 点平均法向量的应用 145 5.6 本章小结 146 第6章 为伊消得人憔悴—...
  • 其中有些内容整理互联网,如有侵权,请联系,我将及时处理。 个人微信公众号 dotzhang:一名不羁的学僧,我的世界不只有学术。一条迷途的咸鱼,正在游向属于它的天地! 赞助和支持 这些内容都是我花了不少...
  • 2015 年,利用杆子的太阳影子定位(球面天 文学与地球物理学)2016 年,系泊系统的设计(力平衡与力矩平衡) 。所以天知 道 2017 年 A 题会出什么样奇怪的问题。这本书有助于大家对于物理在工程上的 应用有一定的...
  • LoadMaster装箱大师装柜软件托在自由设计版的基础上增加了一种或多种规格货物在托盘/栈板上的优化配载模块,还可以一次性计算纸箱装托盘/栈板再装集装箱的两阶段装载,对应有计算生成托盘/栈板的相关规则,3D图简明...
  • 通过特殊设计的全局均值池化操作(global average pooling)和特征融合构造金字塔池化模块 (Pyramid Pooling Module),来融合图像中不同区域的上下文信息。 Cityscapes Mean IoU=77.34% DeepLabv3+ 通过 encoder-...
  • 千里马酒店前台管理系统V7使用手册

    热门讨论 2011-06-16 14:09:38
    所有录入界面、报表格式、工作视图、功能菜单均支持用户自定义,保证了系统有最大限度的适应性,满足不同酒店的具体需求。数据处理充分利用SQL DBMS的索引技术,保证了在业务繁忙时段和数据量较大时仍然具有快速的...
  • 16.1.2 安全性和可用性之间的平衡 16.1.3 安全监视 16.1.4 基本方法 16.2 识别所面临的威胁 16.2.1 访问或修改敏感数据 16.2.2 数据丢失或破坏 16.2.3 拒绝服务 16.2.4 恶意代码注入 16.2.5 服务器被攻破 16.3了解与...
  • 如何快速失败

    2020-02-01 17:14:17
    其中的很多道理,对于现在正在做毕业设计,准备参加智能车竞赛,包括平时在课程学习的同学都有启发。 失败实际上不用等到最后,只要平时具有以下十三中习惯中的一点,实际上在过程中就已经失败了。 1 找 为自己...

空空如也

空空如也

1 2
收藏数 29
精华内容 11
关键字:

自平衡智能车设计