电磁组智能车简介
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Freescale Smart Car
电磁组智能车
2013 Dec.
11th
catalog
电磁组小车运行原理 控制方法 硬件介绍 编译环境
一、电磁组小车运行原理
1.车模通过感应由赛道中心导线产生的交变磁场进行路径检测
2.要让小车自己沿着赛道跑就要让小车能通过传感器的信号自动的识别当前所 处的位置,以及距离赛道中心的大概距离。我们通过制作传感器来采集模拟信 号,然后传给单片机,然后编程来实现小车位置的判别以及控制小车采取相应 动作。
Hello Tomorrow!
Thanks
2、控制方法
PID控制算法: 测量关心的变量,与期望值相比较,用这个误差纠正调节 控制系统的响应。主要用了偏差控制:采集、计算偏差, 修正偏差,以使控制量趋近于目标值。
磁PID算法:
Байду номын сангаас
为了控制舵机打角
速度PID算法: 为了控制电机速度的恒定
系统框图
三、硬件介 绍 1.电磁传感器(即电感)
2.光电编码器
3.电机
4.舵机
5.车模
6.主控芯片电路板
四、编译环境
1、16位单片机所用编译软件:CodeWarrior
2、32位单片机所用编译软件:IAR
/*****************************************/ Volume serial number is 706C-C11E EXTI.H #ifndef _EXTI_H_ #define _EXTI_H_
/************************************* *******************************/ /*! * \brief Kinetis Identify * \return None * typedef enum exti_cfg * This is primarly a reporting function that { displays information zero_down = 0x08u, //低电平触发,内部下 拉 * about the specific CPU to the default rising_down = 0x09u, //上升沿触发,内部下 terminal including: 拉 * - Kinetis family falling_down = 0x0Au, //下降沿触发,内部下 * - package 拉 * - die revision either_down = 0x0Bu, Projects //跳变沿触发,内部下 Programs * - P-flash size 拉 * - Ram size one_down = 0x0Cu, //高电平触发,内部下 */ 拉 |void cpu_identify (void) //用最高位标志上拉和下拉 |{ zero_up = 0x88u, //低电平触发,内部上拉 | /* Determine the Kinetis family */ rising_up = 0x89u, //上升沿触发,内部上拉 | switch((SIM_SDID & falling_up = 0x8Au, //下降沿触发,内部上拉 SIM_SDID_FAMID(0x7))>>SIM_SDID_FAMID_S either_up = 0x8Bu, //跳变沿触发,内部上拉 one_up = 0x8Cu //高电平触发,内部上拉 HIFT) | { +----} exti_cfg; | case 0x0: void exti_init(PORTx, uint8 n, exti_cfg); | printf("\nK10-");
电磁组智能车
2013 Dec.
11th
catalog
电磁组小车运行原理 控制方法 硬件介绍 编译环境
一、电磁组小车运行原理
1.车模通过感应由赛道中心导线产生的交变磁场进行路径检测
2.要让小车自己沿着赛道跑就要让小车能通过传感器的信号自动的识别当前所 处的位置,以及距离赛道中心的大概距离。我们通过制作传感器来采集模拟信 号,然后传给单片机,然后编程来实现小车位置的判别以及控制小车采取相应 动作。
Hello Tomorrow!
Thanks
2、控制方法
PID控制算法: 测量关心的变量,与期望值相比较,用这个误差纠正调节 控制系统的响应。主要用了偏差控制:采集、计算偏差, 修正偏差,以使控制量趋近于目标值。
磁PID算法:
Байду номын сангаас
为了控制舵机打角
速度PID算法: 为了控制电机速度的恒定
系统框图
三、硬件介 绍 1.电磁传感器(即电感)
2.光电编码器
3.电机
4.舵机
5.车模
6.主控芯片电路板
四、编译环境
1、16位单片机所用编译软件:CodeWarrior
2、32位单片机所用编译软件:IAR
/*****************************************/ Volume serial number is 706C-C11E EXTI.H #ifndef _EXTI_H_ #define _EXTI_H_
/************************************* *******************************/ /*! * \brief Kinetis Identify * \return None * typedef enum exti_cfg * This is primarly a reporting function that { displays information zero_down = 0x08u, //低电平触发,内部下 拉 * about the specific CPU to the default rising_down = 0x09u, //上升沿触发,内部下 terminal including: 拉 * - Kinetis family falling_down = 0x0Au, //下降沿触发,内部下 * - package 拉 * - die revision either_down = 0x0Bu, Projects //跳变沿触发,内部下 Programs * - P-flash size 拉 * - Ram size one_down = 0x0Cu, //高电平触发,内部下 */ 拉 |void cpu_identify (void) //用最高位标志上拉和下拉 |{ zero_up = 0x88u, //低电平触发,内部上拉 | /* Determine the Kinetis family */ rising_up = 0x89u, //上升沿触发,内部上拉 | switch((SIM_SDID & falling_up = 0x8Au, //下降沿触发,内部上拉 SIM_SDID_FAMID(0x7))>>SIM_SDID_FAMID_S either_up = 0x8Bu, //跳变沿触发,内部上拉 one_up = 0x8Cu //高电平触发,内部上拉 HIFT) | { +----} exti_cfg; | case 0x0: void exti_init(PORTx, uint8 n, exti_cfg); | printf("\nK10-");