飞思卡尔智能车电磁组资料
第九届飞思卡尔智能车竞赛材料清单V3.0

本材料表一共有9页,每个宝贝后面都附带有链接第九届飞思卡尔智能车竞赛光电组材料表(XS128)序号名称单价(元)数量总计(元)链接1MC9S12XS128最小系统(16位)78.75178.75详情2BDM下载器(集成USB转串口)52.5152.5详情3线性CCD模块1201120详情4偏振片15115详情5线性CCD安装支架48148详情6碳素杆(10mm*8mm*500mm)12112详情7舵机支架40140详情8舵机转向舵盘39.6139.6详情9BTN7971电机驱动(4合1)1261126详情10BTN7971驱动芯片17.29469.16详情11LM2940电源芯片428详情12LM2940元件包0.320.6详情13200线编码器(单相)128.11128.1详情14编码器支架12112详情15编码器齿轮(B车)15.2115.2详情16OLED显示屏34.3134.3详情17第9届飞思卡尔竞赛指定B车模详情总计第九届飞思卡尔智能车竞赛光电组材料表(K60)序号名称单价(元)数量总计(元)链接1MK60DN512ZVLL10最小系统(32位)110.71110.7详情2OSJTAG下载器(集成USB转串口)84184详情3线性CCD模块1201120详情4偏振片15115详情5线性CCD安装支架48148详情6碳素杆(10mm*8mm*500mm)12112详情7舵机支架40140详情8舵机转向舵盘39.6139.6详情9BTN7971电机驱动(4合1)1261126详情10BTN7971驱动芯片17.29469.16详情11LM1117-3.3电源芯片428详情12LM1117-3.3元件包0.320.6详情13LM2940电源芯片428详情14LM2940元件包0.320.6详情15200线编码器(单相)128.11128.1详情16编码器支架12112详情17编码器齿轮(B车)15.2115.2详情18OLED显示屏34.3134.3详情19第9届飞思卡尔竞赛指定B车模详情总计第九届飞思卡尔智能车竞赛光电组材料表(MCF52255)序号名称单价(元)数量总计(元)链接1MCF52255最小系统(32位)110.71110.7详情2BDM下载器84184详情3线性CCD模块1201120详情4偏振片15115详情5线性CCD安装支架48148详情6碳素杆(10mm*8mm*500mm)12112详情7舵机支架40140详情8舵机转向舵盘39.6139.6详情9BTN7971电机驱动(4合1)1261126详情10BTN7971驱动芯片17.29469.16详情11LM1117-3.3电源芯片428详情12LM1117-3.3元件包0.320.6详情13LM2940电源芯片428详情14LM2940元件包0.320.6详情15200线编码器(单相)128.11128.1详情16编码器支架12112详情17编码器齿轮(B车)15.2115.2详情18OLED显示屏34.3134.3详情19第9届飞思卡尔竞赛指定B车模详情总计711.1元第九届飞思卡尔智能车竞赛摄像头组材料表(XS128)序号名称单价(元)数量总计(元)链接1MC9S12XS128最小系统(16位)78.75178.75详情2BDM下载器(集成USB转串口)52.5152.5详情3摄像头模块OV76201201120详情4偏振片15115详情5摄像头安装支架48148详情6碳素杆(10mm*8mm*500mm)12112详情7MMA7361加速度传感器模块(三轴)21121详情8ENC-03MB陀螺仪模块(双轴)75175详情9BTN7971电机驱动(4合1)1261126详情10BTN7971驱动芯片17.29469.16详情11LM2940电源芯片428详情12LM2940元件包0.320.6详情13200线编码器(双相)147.251147.25详情14编码器支架12112详情15编码器齿轮(D车)15.2115.2详情16OLED显示屏34.3134.3详情17第9届飞思卡尔竞赛指定D车模详情18第9届飞思卡尔竞赛指定E车模详情总计765.6元第九届飞思卡尔智能车竞赛摄像头组材料表(K60)序号名称单价(元)数量总计(元)链接1MK60DN512ZVLL10最小系统(32位)110.71110.7详情2OSJTAG下载器(集成USB转串口)84184详情3摄像头模块OV76201201120详情4偏振片15115详情5摄像头安装支架48148详情6碳素杆(10mm*8mm*500mm)12112详情7MMA7361加速度传感器模块(三轴)21121详情8ENC-03MB陀螺仪模块(双轴)75175详情9BTN7971电机驱动(4合1)1261126详情10BTN7971驱动芯片17.29469.16详情11LM1117-3.3电源芯片428详情12LM1117-3.3元件包0.320.6详情13LM2940电源芯片428详情14LM2940元件包0.320.6详情15200线编码器(双相)147.251147.25详情16编码器支架12112详情17编码器齿轮(D车)15.2115.2详情18OLED显示屏34.3134.3详情19第9届飞思卡尔竞赛指定D车模详情20第9届飞思卡尔竞赛指定E车模详情总计829.05元第九届飞思卡尔智能车竞赛摄像头组材料表(MCF52255)序号名称单价(元)数量总计(元)链接1MCF52255最小系统(32位)110.71110.7详情2BDM下载器84184详情3摄像头模块OV76201201120详情4偏振片15115详情5摄像头安装支架48148详情6碳素杆(10mm*8mm*500mm)12112详情7MMA7361加速度传感器模块(三轴)21121详情8ENC-03MB陀螺仪模块(双轴)75175详情9BTN7971电机驱动(4合1)1261126详情10BTN7971驱动芯片17.29469.16详情11LM1117-3.3电源芯片428详情12LM1117-3.3元件包0.320.6详情13LM2940电源芯片428详情14LM2940元件包0.320.6详情15200线编码器(双相)147.251147.25详情16编码器支架12112详情17编码器齿轮(D车)15.2115.2详情18OLED显示屏34.3134.3详情19第9届飞思卡尔竞赛指定D车模详情20第9届飞思卡尔竞赛指定E车模详情总计序号名称单价(元)数量总计(元)链接1MC9S12XS128最小系统(16位)78.75178.75详情2BDM下载器(集成USB转串口)52.5152.5详情310mH工字电感0.82016详情4 6.8nf电容0.2204详情5LM386运算放大器3412详情6NE5532运算放大器 3.5414详情7干簧管 2.525详情80.3mm漆包线(50米长)15115详情9碳素杆(5cm*3cm*1000mm)10.8110.8详情10碳素杆(6cm*4cm*1000mm)12224详情11碳素杆三通件(垂直) 4.829.6详情12碳素杆三通件(倾斜) 4.829.6详情13舵机支架40140详情14舵机转向舵盘39.6139.6详情15BTN7971电机驱动(4合1)1261126详情16LM2940电源芯片428详情17LM2940元件包0.320.6详情18200线编码器(双相)149.582299.16详情19编码器支架12112详情20编码器齿轮(D车)15.2115.2详情21OLED显示屏34.3134.3详情22第9届飞思卡尔竞赛指定C车模详情总计序号名称单价(元)数量总计(元)链接1MK60DN512ZVLL10最小系统(32位)110.71110.7详情2OSJTAG下载器(集成USB转串口)84184详情310mH工字电感0.82016详情4 6.8nf电容0.2204详情5LM386运算放大器3412详情6NE5532运算放大器 3.5414详情7干簧管 2.525详情80.3mm漆包线(50米长)15115详情9碳素杆(5cm*3cm*1000mm)10.8110.8详情10碳素杆(6cm*4cm*1000mm)12224详情11碳素杆三通件(垂直) 4.829.6详情12碳素杆三通件(倾斜) 4.829.6详情13舵机支架40140详情14舵机转向舵盘39.6139.6详情15BTN7971电机驱动(4合1)1261126详情16BTN7971驱动芯片17.29469.16详情17LM1117-3.3电源芯片428详情18LM1117-3.3元件包0.320.6详情19LM2940电源芯片428详情20LM2940元件包0.320.6详情21200线编码器(双相)149.582299.16详情22编码器支架12112详情23编码器齿轮(D车)15.2115.2详情24OLED显示屏34.3134.3详情25第9届飞思卡尔竞赛指定C车模详情总计第九届飞思卡尔智能车竞赛电磁组材料表(MCF52255)序号名称单价(元)数量总计(元)链接1MCF52255最小系统(32位)110.71110.7详情2BDM下载器84184详情310mH工字电感0.82016详情4 6.8nf电容0.2204详情5LM386运算放大器3412详情6NE5532运算放大器 3.5414详情7干簧管 2.525详情80.3mm漆包线(50米长)15115详情9碳素杆(5cm*3cm*1000mm)10.8110.8详情10碳素杆(6cm*4cm*1000mm)12224详情11碳素杆三通件(垂直) 4.829.6详情12碳素杆三通件(倾斜) 4.829.6详情13舵机支架40140详情14舵机转向舵盘39.6139.6详情15BTN7971电机驱动(4合1)1261126详情16BTN7971驱动芯片17.29469.16详情17LM1117-3.3电源芯片428详情18LM1117-3.3元件包0.320.6详情19LM2940电源芯片428详情20LM2940元件包0.320.6详情21200线编码器(双相)149.582299.16详情22编码器支架12112详情23编码器齿轮(C车)15.2115.2详情24OLED显示屏34.3134.3详情25第9届飞思卡尔竞赛指定C车模详情总计。
基于飞思卡尔芯片电磁引导智能车设计

基于飞思卡尔芯片的电磁引导智能车设计飞思卡尔智能车竞赛是由教育部高等自动化专业教学指导分委员会主办的全国大学生智能汽车竞赛。
所使用的车模是一款带有差速器的后轮驱动模型车,由组委会统一提供。
比赛跑道为表面白色,中心有0.1 mm~0.3mm直径的连续漆泡线作为引导线,其中漆泡线通有100ma交流电流。
比赛规则限定了跑道宽度50cm和拐角最小半径50cm。
飞思卡尔智能车竞赛一、硬件设计1.电磁传感器对于电磁组来说,传感器的选择是尤为重要的,最原始的办法用线圈产生磁场的办法去切割跑到上的磁场来检测道路信息,开始因为线圈的缠绕是有要求的,电感的大小也是有要求的,漆泡线的粗细也是有要求的,基于上面的问题,我们实验没有成功。
后来,围绕传感器做了很多的实验,做了两个传感器:一个是用三极管做放大的,另一个是用运放做放大的,但结果用运放成本高,运放要双电源而且一般的放大器频带窄满足不了要求,所以选择用三极管做放大。
在距离导线50mm的上方放置垂直于导线的10mh 电感,为了能够更加准确测量感应电容式的电压,还需要将上述感应电压进一步放大,一般情况下将电压峰峰值放大到1v~5v左右,就可以进行幅度检测,所以需要放大电路具有100倍左右的电压增益(40db)。
最简单的设计,可以只是用一阶共射三极管放大电路就可以满足要求。
2.速度传感器车模的驱动力来源于一个直流电动机,为了能很好地控制车模的速度,我们引入了闭环控制系统,这就需要车体能实时地或者尽可能快地了解到速度变化,从而对驱动的电压电流进行调整,尽可能快地达到设定速度并且稳定在设定速度上。
从往届的参赛队伍经验得知,使用一个增量编码器能很好地解决以上问题,终选择了欧姆龙的180线增量型光电编码器。
这款编码器为2相输出。
在实际的测试中,让单片机每10ms返回一次传感器的值,当车模在1米/秒左右速度时能返回60~70多个脉冲,当大于2.5米能返回170多个脉冲,反复测试反馈准确,稳定。
飞思卡尔智能车 电磁组 技术报告

//#define K10
//#define Kp 1;//PID的//#define Kd 1;
#include <hidef.h>
#include <stdio.h>
#include <math.h>
#include <MC9S12XS128.h>
3.1.3
考虑到适当增加力臂来提高舵机的灵敏度和为了赛车布局的的紧凑,采取了如图3.2所示的安装方法。
图3.2舵机安装结构
3.1.4
采用接插件与焊接结合的方式连接传感器、主控板、编码器、电机驱动电路、电机、赛道起始检测等单元,既考虑可靠性,又兼顾结构调整与安装的便利性。具体安装结构如图3.3所示,
图3.3主控板安装结构
[6]卓晴.基于磁场检测的寻线小车传感器布局研究[J].清华大学.2009
[7]杨延玲.载流直导线的电磁场特性分析[J].山东师范大学.2007
[8]王毅敏.马丽英等.一种改进的数字PID控制算法及其在励磁系统中的应用电网技术[J].1998
[9]高金源,夏洁.计算机控制系统[M].清华大学出版社.2007
本校积极组队参加第六届“飞思卡尔”杯全国大学生智能汽车竞赛。从2010年底着手准备,历时半年多,经过不断试验设计,最终设计出较为完整的智能赛车。在赛区比赛中获得了较好的综合性能和成绩。
在本次比赛中,采用大赛组委会统一提供的竞赛车模,采用飞思卡尔16位微控制器MC9S12XS128作为核心控制单元,构思控制方案及系统设计,进行包括机械结构的调整与优化,硬件的设计与组装、软件控制算法的编写与改进等过程(小车上的具体方案模块有传感器信号采集处理、控制算法及执行、动力电机驱动、转向舵机控制等)从而实现小车智能化的识别道路,最终实现智能化竞速。
飞思卡尔电磁组

智能车简介
飞思卡尔智能车大赛分三种赛组:
摄像头组
光电组
电磁组
调试视频
调试视频
电磁组原理概述
车模直立行走比赛是要求仿照两轮自平衡电动车的行进模式,让车模以两
个后轮 驱动进行直立行走。 在电磁组比赛中,利用 车模双后轮驱动的特点,实现两轮自平衡行走。相 对于传统的四轮行走的车 模竞赛模式,车模直立行走在硬件设计、控制软件开发 以及现场调试等方面提出了更高 的要求。
原理篇
原理篇
• 1.路径检测 • 2.直立控制 • 3.算法设计
• 路径检测的整体思路流程:
• 磁场感应 选频 放大 检波 A/D采集(单片机萨法尔定律可求得通电的导线周 围空间上某一定点的磁场强度。
• 再由法拉利定律和楞次定律可得处在该点处磁感线圈的感应 电动势大小
算法设计
• 在车模控制中的直立、速度和方向控制三个环节中,都使用 了比例微分(PD)控制,这三种控制算法的输出量最终通过 叠加通过电机运动来完成。 • (1)车模直立控制:使用车模倾角的PD(比例、微分)控 制;
• (2)车模速度控制:使用PD(比例、微分)控制; • (3)车模方向控制:使用PD(比例、微分)控制。
单 管 共 射 交 流 放 大 电 路
检波电路
• 测量放大后的感应电动势的幅值E可以有多种方法。最简单的 方法就是使用二极管检波电路将交变的电压信号检波形成直 流信号,然后再通过单片机的AD采集获得正比于感应电压幅 值的数值。
A/D输入
单片机
检测部分的系统框图
直立行走的原理
• 车模直立行走比赛是要求仿照两轮自平衡电动车的行进模式, 让车模以两个后轮驱动进行直立行走。
车模控制任务分解图
• 三个分解后的任务各自独立进行控制。由于最终都是对同一 个控制对象(车模的电机)进行控制,所以它们之间存在着 耦合。这三个任务中保持车模平衡是关键。由于车模同时受 到三种控制的影响,从车模平衡控制的角度来看,其它两个 控制就成为它的干扰。因此对车模速度、方向的控制应该尽 量保持平滑,以减少对于平衡控制的干扰
飞思卡尔-电磁组

第十届“飞思卡尔”杯全国大学生智能汽车竞赛技术报告学校:常熟理工学院队伍名称:物电电磁二队参赛队员:梅亚军、沈锦杰、黄志鹏、张峰带队老师:徐健、顾涵关于技术报告和研究论文使用授权的说明本人完全了解第十届“飞思卡尔”杯全国大学生智能汽车竞赛关保留、使用技术报告和研究论文的规定,即:参赛作品著作权归参赛者本人,比赛组委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会出版论文集中。
参赛队员签名:带队教师签名:日期:摘要本文介绍了常熟理工学院物电电磁二队电磁车的成果。
智能车的硬件平台采用带MK60DN256Vll10处理器,软件平台为IAR Embedded Workbench开发环境,车模采用大赛组委会统一提供的两辆B型车模。
文中介绍了智能车机械结构调整,传感器电路设计,舵机、电机控制算法以及起跑线的检测等。
车模以MK60DN256Vll10单片机为控制核心,以安装在车体前的工字电感作为循迹传感器,采用干簧管检测起跑线,以欧姆龙编码器检测速度信息。
车模系统的简单工作原理是MK60DN256Vll10单片机通过AD口采集电感检测的拟量,并通过算法处理,然后返回值用于舵机控制,根据编码器返回值进行电机的闭环控制。
通过串口,借用蓝牙等工具进行舵机PD参数,电机PID的调节,以及整定传感器参数的整合处理,再通过数字红外进行两车之间联系,保持车距。
关键字:机械结构、电磁寻线、舵机PD控制、电机PID控制目录第一章总体方案设计------------------------------------------------------------------- 7第二章智能车机械结构调整与优化----------------------------------------------------- 92.1主销内倾 --------------------------------------------------------------------- 92.2主销后倾 ------------------------------------------------------------------- 102.3外倾角 --------------------------------------------------------------------- 112.4车轮安装示意图如下:---------------------------------------------- 122.5舵机的安装----------------------------------------------------------------- 122.6舵机安装示意图如下: ----------------------------------------------------- 132.7 小结------------------------------------------------------------------------ 13 第三章电路设计说明---------------------------------------------------------------- 133.1 电源模块 ------------------------------------------------------------------- 133.2 传感器模块 ----------------------------------------------------------------- 143.3 电机模块 ------------------------------------------------------------------- 153.4 舵机模块 ------------------------------------------------------------------- 153.5 最小系统板设计 ------------------------------------------------------------ 153.6 系统主板设计--------------------------------------------------------------- 153.7 小结------------------------------------------------------------------------ 16 第四章智能车控制软件设计说明 ----------------------------------------------------- 174.1 软件设计总体框架 ---------------------------------------------------------- 174.2 电机PID控制 -------------------------------------------------------------- 174.3 舵机的控制----------------------------------------------------------------- 204.4 传感器数据的处理 ---------------------------------------------------------- 214.5 小结------------------------------------------------------------------------ 21 第五章开发工具、制作、安装、调试过程说明 --------------------------------------- 215.1软件编译环境--------------------------------------------------------------- 225.2显示模块 ------------------------------------------------------------------- 225.3蓝牙调试模块 -------------------------------------------------------------- 225.4上位机调试----------------------------------------------------------------- 235.5本章小结 ------------------------------------------------------------------- 23 模型车的主要技术参数说明 ----------------------------------------------------------- 23 结论 ---------------------------------------------------------------------------------- 24 参考文献 ----------------------------------------------------------------------------- 26 附录A:程序源代码 ------------------------------------------------------------------ 26引言智能车辆是一个集环境感知、规划决策、多等级辅助驾驶等功能于一体的综合系统,它集中运用了计算机、现代传感、信息融合、通讯、人工智能及自动控制等技术,是典型的高新技术综合体。
第五届飞思卡尔智能车大赛华中科技大学电磁组技术报告

第五届飞思卡尔杯全国大学生智能汽车竞赛技 术 报 告学校:华中科技大学队伍名称:华中科技大学五队参赛队员:方华启张江汉诸金良带队教师:何顶新罗惠关于技术报告和研究论文使用授权的说明本人完全了解第五届全国大学生“飞思卡尔”杯智能汽车竞赛关保留、使用技术报告和研究论文的规定,即:参赛作品著作权归参赛者本人,比赛组委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会出版论文集中。
参赛队员签名:带队教师签名:日期:目录第1章引言 (1)1.1 概述 (1)1.2 全文安排 (2)第2章电路设计 (3)2.1 电路系统框图 (3)2.2 电源部分 (4)2.3 电机驱动部分 (5)2.4 电磁传感器 (6)第3章机械设计 (8)3.1 车体结构和主要参数及其调整 (8)3.2 舵机的固定 (10)3.3 传感器的固定 (11)3.4 编码器的固定 (11)第4章软件设计 (12)4.1 程序整体框架 (12)4.2 前台系统 (13)4.3 后台系统 (13)4.4 软件详细设计 (14)第5章调试 (15)第6章全文总结 (16)6.1 智能车主要技术参数 (16)6.2 不足与改进 (16)6.3 致谢与总结 (17)I参考文献 (18)附录A 源代码 (18)II第1章引言第1章引言教育部为了加强大学生实践、创新能力和团队精神的培养,在已举办全国大学生数学建模、电子设计、机械设计、结构设计等4大竞赛的基础上,委托教育部高等学校自动化专业教学指导分委员会主办每年一度的全国大学生智能汽车竞赛(教高司函[2005]201号文)[1]。
为响应教育部的号召,本校积极组队参加第五届“飞思卡尔”杯全国大学生智能汽车竞赛。
从2009 年12 月开始着手进行准备,历时近8 个月,经过设计理念的不断进步,制作精度的不断提高,经历 2 代智能车硬件平台及相关算法的改进,最终设计出一套完整的智能车开发、调试平台。
电磁组_飞思卡尔

小车代码源程序RouteTest.c#include <hidef.h> /* common defines and macros */#include <MC9S12XS128.h> /* derivative information */#include "main.h"#define uint unsigned intuint AD0,AD1,AD2,AD3,AD4,AD5,AD6,AD7,AD8,AD9,ADFULL=0; uint A0=0,A1=0,MAXTEMP0,MINTEMP0,MAXTEMP1,MINTEMP1; uint A2=0,A3=0,MAXTEMP2,MINTEMP2,MAXTEMP3,MINTEMP3; uint A4=0,A5=0,MAXTEMP4,MINTEMP4,MAXTEMP5,MINTEMP5; uint A6=0,A7=0,MAXTEMP6,MINTEMP6,MAXTEMP7,MINTEMP7; uint A8=0,A9=0,MAXTEMP8,MINTEMP8,MAXTEMP9,MINTEMP9;void RouteTest(void){while(!ATD0STAT2_CCF0); //判断通道0是否转换完成AD0=ATD0DR0;if(A0==0){MAXTEMP0=AD0;MINTEMP0=AD0;}else{if(MAXTEMP0<AD0) MAXTEMP0=AD0;if(MINTEMP0>AD0) MINTEMP0=AD0;}A0++;if(A0==LENGTH) {MAXTEMP0=MAXTEMP0-MINTEMP0;}while(!ATD0STAT2_CCF1); //判断通道1是否转换完成 AD1=ATD0DR1;if(A1==0){MAXTEMP1=AD1;MINTEMP1=AD1;}else{if(MAXTEMP1<AD1) MAXTEMP1=AD1;if(MINTEMP1>AD1) MINTEMP1=AD1;}A1++;if(A1==LENGTH) {A1=0;MAXTEMP1=MAXTEMP1-MINTEMP1;}while(!ATD0STAT2_CCF2); //判断通道2是否转换完成 AD2=ATD0DR2;if(A2==0){MAXTEMP2=AD2;MINTEMP2=AD2;}else{if(MAXTEMP2<AD2) MAXTEMP2=AD2;if(MINTEMP2>AD2) MINTEMP2=AD2;}if(A2==LENGTH) {A2=0;MAXTEMP2=MAXTEMP2-MINTEMP2;}while(!ATD0STAT2_CCF3); //判断通道3是否转换完成 AD3=ATD0DR3;if(A3==0){MAXTEMP3=AD3;MINTEMP3=AD3;}else{if(MAXTEMP3<AD3) MAXTEMP3=AD3;if(MINTEMP3>AD3) MINTEMP3=AD3;}A3++;if(A3==LENGTH) {A3=0;MAXTEMP3=MAXTEMP3-MINTEMP3;}while(!ATD0STAT2_CCF4); //判断通道4是否转换完成 AD4=ATD0DR4;if(A4==0){MAXTEMP4=AD4;MINTEMP4=AD4;}else{if(MAXTEMP4<AD4) MAXTEMP4=AD4;if(MINTEMP4>AD4) MINTEMP4=AD4;}A4++;if(A4==LENGTH) {A4=0;MAXTEMP4=MAXTEMP4-MINTEMP4;}while(!ATD0STAT2_CCF5); //判断通道5是否转换完成 AD5=ATD0DR5;if(A5==0){MAXTEMP5=AD5;MINTEMP5=AD5;}else{if(MAXTEMP5<AD5) MAXTEMP5=AD5;if(MINTEMP5>AD5) MINTEMP5=AD5;}A5++;if(A5==LENGTH) {A5=0;MAXTEMP5=MAXTEMP5-MINTEMP5;}while(!ATD0STAT2_CCF6); //判断通道6是否转换完成 AD6=ATD0DR6;if(A6==0){MAXTEMP6=AD6;}else{if(MAXTEMP6<AD6) MAXTEMP6=AD6;if(MINTEMP6>AD6) MINTEMP6=AD6;}A6++;if(A6==LENGTH) {A6=0;MAXTEMP6=MAXTEMP6-MINTEMP6;}while(!ATD0STAT2_CCF7); //判断通道7是否转换完成 AD7=ATD0DR7;if(A7==0){MAXTEMP7=AD7;MINTEMP7=AD7;}else{if(MAXTEMP7<AD7) MAXTEMP7=AD7;if(MINTEMP7>AD7) MINTEMP7=AD7;}A7++;if(A7==LENGTH) {A7=0;MAXTEMP7=MAXTEMP7-MINTEMP7;}while(!ATD0STAT2_CCF8); //判断通道8是否转换完成if(A8==0){MAXTEMP8=AD8;MINTEMP8=AD8;}else{if(MAXTEMP8<AD8) MAXTEMP8=AD8;if(MINTEMP8>AD8) MINTEMP8=AD8;}A8++;if(A8==LENGTH) {A8=0;MAXTEMP8=MAXTEMP8-MINTEMP8;}while(!ATD0STAT2_CCF9); //判断通道9是否转换完成 AD9=ATD0DR9;if(A9==0){MAXTEMP9=AD9;MINTEMP9=AD9;}else{if(MAXTEMP9<AD9) MAXTEMP9=AD9;if(MINTEMP9>AD9) MINTEMP9=AD9;}A9++;if(A9==LENGTH) {A9=0;MAXTEMP9=MAXTEMP9-MINTEMP9;}ADFULL=ADFULL+1;}CarControl.c#include <hidef.h> /* common defines and macros */ #include <MC9S12XS128.h> /* derivative information */ #include "SetPwm.h"#include "main.h"#include "RouteTest.h"#define uint unsigned int#define uchar unsigned char#define value01L -43#define value23L -94#define value45L -90#define value67L -120#define value89L -60#define value01R 43#define value23R 90#define value45R 110#define value67R 130#define value89R 60//#define bentspeed 45//#define dirspeed 45#define valueDL -220#define valueDR 220uint SPEED;//小车速度int CARREL01=0,CARREL23=0,CARREL45=0,CARREL67=0,CARREL89=0; //小车偏移量int ERROR=4050,D_ERROR=0,LASTERROR=4050,E_ERROR=4050,ERRORREL=0; int speedrel=0;uint setspeed=60,realspeed=0;void Delay10us(uint m) //延时10us{uint u;for(;m>0;m--)for(u=0;u<38;u++);}void CarControl(void){//采样100个数据if(ADFULL==LENGTH) {ADFULL=0;//***********************************************CARREL01=MAXTEMP0-MAXTEMP1;CARREL23=MAXTEMP2-MAXTEMP3;CARREL45=MAXTEMP4-MAXTEMP5;CARREL67=MAXTEMP6-MAXTEMP7;CARREL89=MAXTEMP8-MAXTEMP9;if(CARREL01>value01R)//01右转处理{ERROR=4050+CARREL01-value01R;if(ERROR>=4100)ERROR=4100;setspeed=dirspeed;}if(CARREL23>value23R)//23右转处理{ERROR=4100+2*(CARREL23-value23R);if(ERROR>=4264)ERROR=4264;setspeed=dirspeed;}if(CARREL45>value45R)//45右转处理{ERROR=4264+6*(CARREL45-value45R);if(ERROR>=4411)ERROR=4411;setspeed=40;}if(CARREL67>value67R)//67右转处理{ERROR=4411+6*(CARREL67-value67R);if(ERROR>=4600)ERROR=4600;setspeed=bentspeed;}//以上是右转弯处理//******************************************************************* ******//以下是左转弯处理if(CARREL01<value01L)//01{ERROR=4050+CARREL01-value01L;if(ERROR<=4000)ERROR=4000;setspeed=dirspeed;}if(CARREL23<value23L)//23{ERROR=4000+3*(CARREL23-value23L);if(ERROR<=3886)ERROR=3886;setspeed=dirspeed;}if(CARREL45<value45L)//45{ERROR=3886+4*(CARREL45-value45L);if(ERROR<=3794)ERROR=3794;setspeed=(dirspeed+bentspeed)/2;}if(CARREL67<value67L){ERROR=3794+8*(CARREL67-value67L);if(ERROR<=3600)ERROR=3600;setspeed=bentspeed;}D_ERROR=D_ERROR+ERROR-LASTERROR; //误差累积计算 if(D_ERROR>valueDR || D_ERROR<valueDL ) {ERRORREL=D_ERROR;}LASTERROR=ERROR; //保存前一次误差E_ERROR=ERROR+ERRORREL; //叠加误差累计值if(E_ERROR>4600) E_ERROR=4600;if(E_ERROR<3600) E_ERROR=3600;PWMDTY23=E_ERROR;ERRORREL=0;//PWMDTY01=bentspeed;//**************速度控制*************************realspeed=(xishu+1)*speed;speedrel=setspeed-realspeed;if(speedflag==0){if(speedrel<=-10 && (E_ERROR>4400 ||E_ERROR<3800)){PWMDTY45=90; //反转迅速减速PWMDTY01=0;}else{PWMDTY45=0;PWMDTY01=setspeed;}}else{PWMDTY01=setspeed;PWMDTY45=0;}}}Main.c#include <hidef.h> /* common defines and macros */#include <MC9S12XS128.h> /* derivative information */#include "RouteTest.h"#include "CarControl.h"#include "SetPwm.h"#define uint unsigned int#define uchar unsigned char//#define dirspeed 60uint STOPCAR=0,speed,speedsum=0,xishu=0,flag=0,jishi=0; uint bentspeed=0,dirspeed=0;uint speedflag=0;void Delay10(uint m) //延时10us{uint u;for(;m>0;m--)for(u=0;u<38;u++);}void Delay(int k) //延时k*1ms{int u;for(;k>0;k--)for(u=0;u<3998;u++);}//总线时钟设置void setbusclock(void){SYNR = 0x02;REFDV = 0x01;while (!(CRGFLG&0x08));CLKSEL =0x80;}/*****************************************************功能:时基中断初始化,实现5ms中断500us进行一次测速。
飞思卡尔智能车电磁组分区算法介绍

飞思卡尔智能车电磁组分区算法介绍写在之前的话:1、⽬前我是⼀名在校学⽣,这也是我第⼀次写博客,不周之处,请多谅解;2、此算法并⾮原创,借鉴⾃⼭东德州学院第⼋届⽩杨队(PS:个⼈看法,对于⼀些⼈把别⼈的开源东西改头换⾯⼀下就说是⾃⼰的原创⾏为⼗分鄙视);3、对于此算法的理解和说明并⾮纸上谈兵,算法已经被我运⽤到了⼩车⽐赛中并取得好的成绩(具体就不多说了,⽐赛时车莫名其妙坏了,⽐赛前调试的速度绝对能进国赛,⽐较遗憾),总之这算法是我尝试过的最好的算法;4、这⼀次所介绍的只是路径算法和⼀些知识普及,后⾯有时间会介绍其余部分算法及许多好的思路(舵机电机控制思路(不只是简单的PID),双车策略);5、希望对于这⽅⾯有涉及的⼈能与我联系并交流或指出不⾜之处。
---------------------------------------------------------------分割线-----------------------------------------------------------------------------⼀、没有这⽅⾯了解的可以看看 飞思卡尔智能车分为三组:摄像头、光电、电磁,我做的是电磁车,三种车队区别在于传感器的不同,所以获得路径信息的⽅法也不⼀样,摄像头和光电识别的是赛道上的⿊线(⽩底赛道),⽽电磁车则是检测埋在赛道下的通⼊100mh电流的漆包线,摄像头和光电采⽤的是摄像头和ccd作为传感器,电磁则是⽤电感放在漆包线周围,则电感上就会产⽣感应电动势,且感应电动势的⼤⼩于通过线圈回路的磁通量成正⽐,⼜因为漆包线周围的磁感应强度不同,因此不同位置的电感的感应电动势就不同,因此就可以去确定电感位置;因此在车⼦前⾯设置了50cm的前瞻,电感布局如下(怎么发不了图⽚):分为两排,前排3个,编号0,1,2(前期还加了两个竖直电感⽤来帮助过直⾓弯,后来改为了⼋字电感);后排2个,编号3,4;现在车⼦获得了不同位置的感应电动势的⼤⼩了,但这些值是不能处理的:1、感应电动势太微弱;2、是模拟信号,信号太微弱就放⼤它;这就涉及到模拟电路的知识了,就不多说了(因为要把这讲完到PCB绘制的篇幅就⾜够写另开⼀号专门写这些⽅⾯来(PS:题外话(我的题外话⽐较多)):放⼤部分外围你设计的再好也抵不过⼀个更好的芯⽚,有两个例⼦,⼀个是我⾃⼰的:之前⽤的是NE5532,但是效果不理想,加了好多什么滤波,补偿,都⽤上,没⽤,软件⾥处理后⾯再说,后来⼀狠⼼换了AD620,感觉像是春天来了,因为它是仪⽤放⼤器,还有就是贵。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电磁车循迹
1.赛道中央铺有通有交变电流的铜导线 2.交变电流(20HZ 100±20mA)会 在导线周围产生磁场 3.用电感(传感器)来检测磁场 从而 计算车距离赛道中心的偏差
u0 I B 2 r d t dB NAu0 dI E NA dt dx 2 r dx
S3S4 (S2 S1 ) S1S2 (S3 S4 ) D1 D2 H S3S4 (S2 S1 ) S1S2 (S3 S4 )
Y轴向电感
更好的前 瞻,遇到 十字弯容 易误判ຫໍສະໝຸດ 模糊PID控制Fd_n
编码器 模糊推理
de dt
error
PID调节器
Exp_n
电机
n
KP
KI
KD
PID调节器
舵机
第七届新规则
1.使用C车模 车模运行时只允许动力轮着地 车模直立行走 2.电磁组不用延时两秒起跑 不用自动停车无坡道 3.电磁组比赛另设跑道 跑道相对于光电 摄像头 简单
谢谢