飞思卡尔平衡车设计(原理+必要代码)
飞思卡尔智能车dg128单片机控制程序代码

void AD_Init(void)
{
ATD0CTL2=0xC0; //AD模块上电, 快速清零, 无等待模式, 禁止外部触发, 中断禁止
ATD0CTL3=0x44; //每次转换8个序列, FIFO, Freeze模式下继续转
ATD0CTL4=0x02; //10位精度, 采样时间为2个AD时钟周期,ATDClock=4MHz
//设置舵机
PWMCTL_CON01=1; //使得通道0,1成为16位pwm
PWMPER0 =0x75;
PWMPER1 =0x30; //舵机的频率是: 24M/8/30000=100Hz,T=10ms
PWMDTY01=4500; // 对应为4500/30000的占空比,待调整
Infrared_detect();
data_handle();
motor_ctl();
steer_ctl();
}
}
void interrupt 26 MDC_ISR(void)
{
static unsigned int number_count=0; static unsigned int start=0; static
go=2;
if(begin>=150)
go=3;
}
}
}
//-----系统初始化-----------------------
void system_init(void) //system initiat
void speed_ctl(void); //速度控制
void motor_ctl(void); //电机控制
void PACBInit(void);
飞思卡尔智能车光电源代码

1.#include <hidef.h>2.#include <mc9s12dg128.h>3.#pragma LINK_INFO DERIV ATIVE "mc9s12dg128b"4.//=========================public variable=====================5.//-----------------------turning variable------------------6.unsigned char sam_g[15]; //道路检测值7.unsigned int angle_data; //舵机转角8.int car_positn; //赛车当前位置参数9.int pre_positn;10.unsigned int black_sensor_number; //检测到黑线的传感器个数11.int positn_temp[10];12.unsigned int t=0;13.//---------------------speed variable---------------------14.unsigned char dir_flag; //方向标志,为1表示检测到有效路径,可以给驱动力15.unsigned char brake_flag; //刹车标志位判断当前是否需要刹车16.unsigned int car_driver; //驱动力控制17.unsigned int pulse_count; //速度检测统计脉冲个数18.unsigned int ideal_speed; //车的理想速度19.unsigned int times; //丢失黑线的次数20.int speed_error; //理想与实际速度偏差值21.int pre_error; //速度PID 前一次的速度误差值ideal_speed- pulse_count22.int pre_d_error; //速度PID 前一次的速度误差之差d_error-pre_d_error23.int pk; //速度PID值24.//---------------------start_line variable-------------------25.unsigned char start_line_acc; //统计检测起跑线次数26.unsigned char finish_flag; //起跑线标志位,为1表示检测到起跑线3次27.//----------------------dis_play variable--------------------28.unsigned int start_flag,start_count;29.//---------------------table-------------------------30.unsigned charspeed_table11[13]={270,260,250,240,200,180,180,180,170,140,140,100,90}; //15.0s31.unsigned char speed_table21[13]= {25,24,23,20,19,17,17,17,15,12,11,10,9}; //15.0s32.unsigned char speed_table12[13]= {29,28,27,26,25,20,20,20,19,17,15,10,9}; //15.0s33.unsigned char speed_table22[13]= {27,26,25,24,20,18,18,18,17,14,14,10,9}; //15.0s34.unsigned int circle; //控制赛车跑几圈停车35.#define kp 2000//200036.#define ki 5//537.#define kd 10//1038.#define Angle_Center 4344 //舵机中心位置39.#define lose_limit 30000 //丢失黑线后滑翔时间40.void data_init(void);41.void crg_init(void); // 锁相环初始化42.void pwm_init(void); // PWM信号初始化43.void ect_init(void); // ECT初始化44.void sam_position(void); //读结果45.void check_start(void); //起跑线检测函数46.void car_position(void); //计算car_positn47.void angle(void); //计算转角48.void speed(void); //计算速度49.void driver(void); //驱动50.void pre_start(void);51.void delay(void);52.void found_start(void);53.void stop(void);54.void pid(void);55.unsigned int absolute(int);56.//========================main loop============================57.void main(void)58.{59. data_init(); //设置基本数据60. crg_init(); //锁向环初始化61. ect_init(); //ECT62. pwm_init(); //初始化PWM63. pre_start();64. EnableInterrupts;65. for(;;)66. {67.sam_position(); //读采样值68.check_start(); //检测起跑线69.car_position(); //计算car_positn70.angle(); //计算转角71.speed(); //计算速度72.driver(); //拐弯驱动73. }74.}75.//--------------------data_init--------------------76.void data_init(void)77.{78. start_line_acc=0;79. finish_flag=0;80. DDRA=0X00;81. DDRB=0X00;82. times=0;83.}84.//-------------------pre_start------------------85.void pre_start(void)86.{87.unsigned int i;88.PWMDTY01=Angle_Center;89.PWMDTY67=0;90.for(i=0;i<10;i++) delay();91.PWMDTY23=0;92.}93.//----------------------crg_init-------------------94.void crg_init(void)95.{96.SYNR=0x02;97.REFDV=0x01;98.while((CRGFLG & 0x08)==0 );99.CLKSEL =0x80;100.}101.//--------------------pwm_init------------------------102.void pwm_init(void)103. {104.PWMCTL=0xB0; // 设置通道76、32、10级连105.PWME=0x00; // 通道禁止输出;106.PWMPRCLK=0x12;//预分频:A_CLK=busclk/2^2=6M B_CLK=BUSCLK/2^1=12M 107.PWMSCLA=0x01; //SA_CLK=A_CLK/(2*1)==3MHz108.PWMSCLB=0X01; //SB_CLK=B_CLK/(2*1)==6MHz109.PWMPOL=0x8A; //极性选择起始为高电平;110.PWMCLK=0x8A; //PWM01 选择SA_CLK PWM23 67选择SB_CLK111.PWMCNT0=0x00;112.PWMCNT1=0x00;113.PWMCNT2=0x00;114.PWMCNT3=0x00;115.PWMCNT6=0x00;116.PWMCNT7=0x00;117.PWMPER01=60000; // 周期==(1/3M)*(60000)=20ms118.PWMPER23=10000; // F=6M/10000==600Hz119.PWMPER67=10000; // F=6M/10000==600Hz120.PWMCAE=0x00; //左对齐方式121.PWME=0x82; // 通道1,7输出使能;122.}123.//-----------------------ect_init-------------------------124.void ect_init(void)125.{126.TCTL4=0x01; // Set the rising endge for PT0.127.PACN10=0x0000;128.PBCTL=0x40; //pt0 and pt1 级联成16位计数器129.MCCNT=60000; //60000*24M/16=40ms130.MCCTL=0xC7;131.TSCR1=0x10;132.}133.void sam_position(void)134.{135.sam_g[1]= PORTA_PA4;136.sam_g[2]= PORTA_PA3;137.sam_g[3]= PORTA_PA2;138.sam_g[4]= PORTA_PA1;139.sam_g[5]= PORTA_PA0;140.sam_g[6]= PORTB_PB0;141.sam_g[7]= PORTB_PB1;142.sam_g[8]= PORTB_PB2;143.sam_g[9]= PORTB_PB3;144.sam_g[10]= PORTB_PB4;145.sam_g[11]= PORTB_PB5;146.sam_g[12]= PORTB_PB6;147.sam_g[13]= PORTB_PB7;148.}149.//----------------------check_start---------------------150.void check_start(void)151.{152.unsigned char i,j=0;153.start_flag=0;154.for(i=1;i<14;i++)155.if(sam_g^sam_g[i+1])156. j++;157. if(j>=4)158. {159. if(sam_g[5] &&((!sam_g[4])&&(!sam_g[6])) &&((!sam_g[3])&&(!sam_g[7]))&&(sam_g[1]&&sam_g[10])160.) start_flag=1;161.else if(sam_g[5]&&sam_g[6] &&((!sam_g[4])&&(!sam_g[7]))&&((!sam_g[3])&&(!sam_g[8]))&&(sam_g[1]&&sam_g[10])162.) start_flag=1;163.else if( sam_g[6] &&((!sam_g[5])&&(!sam_g[7])) &&((!sam_g[4])&&(!sam_g[8])) &&(sam_g[1]&&sam_g[11])164.) start_flag=1;165.else if( sam_g[6]&&sam_g[7] &&((!sam_g[5])&&(!sam_g[8])) &&((!sam_g[4])&&(!sam_g[9])) &&(sam_g[2]&&sam_g[11])166.) start_flag=1;167.else if( sam_g[7] &&((!sam_g[6])&&(!sam_g[8])) &&((!sam_g[5])&&(!sam_g[9])) &&(sam_g[2]&&sam_g[12])168.) start_flag=1;169.else if( sam_g[7]&&sam_g[8] &&((!sam_g[6])&&(!sam_g[9]))&&((!sam_g[5])&&(!sam_g[10])) &&(sam_g[3]&&sam_g[12])170.) start_flag=1;171.else if( sam_g[8] &&((!sam_g[7])&&(!sam_g[9])) &&((!sam_g[6])&&(!sam_g[10])) &&(sam_g[3]&&sam_g[13])172.) start_flag=1;173.else if( sam_g[8]&&sam_g[9]&&((!sam_g[7])&&(!sam_g[10])) &&((!sam_g[6])&&(!sam_g[11])) &&(sam_g[4]&&sam_g[13])174.) start_flag=1;175.else if( sam_g[9] &&((!sam_g[8])&&(!sam_g[10])) &&((!sam_g[7])&&(!sam_g[11])) &&(sam_g[4]&&sam_g[13])176.) start_flag=1;177.}178.if(start_flag)179. art_count++;180.else181. art_count=0;182.if(start_count==2)183.{184.found_start();185.start_count=0;186.}187.if(start_line_acc==2)188.{189.finish_flag=1;190.}191.}192.//--------------------------car_position------------------------。
自制两轮平衡车

制作:朱兆丰
控制器:ATmega16;8MHz; 加速度传感器:MMA2260;陀螺仪: EWTS82; 传感器的融合:卡尔曼滤波; 马达:EN_2342CR(速比64)+双路12脉 冲编码器+CD40106对信号整形; 驱动板芯片:CD4001+IR2111+IRF1404 (驱动电流可以很大); 制作资料在压缩包里面,供参考;
accelgyro.initialize(); delay(500); pinMode(22,OUTPUT); pinMode(23,OUTPUT); pinMode(24,OUTPUT); pinMode(25,OUTPUT); pinMode(2,OUTPUT); pinMode(3,OUTPUT);
/********** 互补滤波器参数 *********/ //unsigned long preTime = 0; // 采样时间 //float f_angle = 0.0; // 滤波处理后的角度值
*********** PID控制器参数 *********/ //unsigned long lastTime; float Output; //;, Setpoint,Input; //double errSum, lastErr; float kp, ki, kd,kpp; //int SampleTime = 0.1; //1 sec //float Outputa = 0.0; float angleA,omega; //double Kp, Ki, Kd; float P[2][2] = {{ 1, 0 },{ 0, 1 }}; float Pdot[4] ={ 0,0,0,0}; static const double Q_angle=0.001, Q_gyro=0.003, R_angle=0.5,dtt=0.007,C_0 = 1; float q_bias, angle_err, PCt_0, PCt_1, E, K_0, K_1, t_0, t_1; float angle, angle_dot; // aaxdot,aax; float position_dot,position_dot_filter,positiono; //double Speed_Need=0; //float K_angle=2; //float K_angle_dot=0.5; //float K_position=0.1; 256对应10V; //float K_position_dot=1;
飞思卡尔 智能车设计

1 引言智能汽车是汽车电子、人工智能、模式识别、自动控制、计算机、机械多个学科领域的交叉综合的体现,具有重要的应用价值。
智能寻迹车是基于飞思卡尔MC9S12DG128单片机开发实现的,该系统采用CCD 传感器识别道路中央黑色的引导线,利用传感器检测智能车的加速度和速度,在此基础上利用合理的算法控制智能车运动,从而实现快速稳定的寻迹行驶。
2 硬件系统设计该系统硬件设计主要由MC9S12DG128控制核心、电源管理模块、直流电机驱动模块、转向舵机控制模块、道路信息检测模块、速度检测模块和加速度检测模块等组成,其结构框图如图1所示。
3/2!ᓍ఼ᒜෝ్智能车的控制核心为MC9S12DG128。
MC9S12DG128基于MC9S12DG128单片机的智能寻迹车设计曾 军(四川大学 电气信息学院,四川 成都 610065)摘 要: 设计了一种基于飞思卡尔MC9S12DG128单片机控制的智能寻迹车系统。
该系统以MC9S12DG128为控制核心,采用CCD 图像传感器检测路面信息,利用加速度传感器检测加速度,红外传感器检测速度,采用PID 算法控制智能车直流驱动电机和模糊控制算法控制舵机转向,从而实现智能车快速稳定地寻黑线行驶。
关键定: MC9S12DG128,单片机,智能车,模糊控制中图分类号:TP242.6 文献标识码:A 文章编号:1006-6977(2009)03-0054-03Design of an intelligent-searching track car based on MC9S12DG128 SCMZENG Jun(School of Electrical Engineering and Information, sichuan University, Chengdu 610065, China)Abstract:An intelligent-searching track car system based on MC9S12DG128 MCU is designed. The system uses MC9S12DG128 as its control core and uses CCD sensors to detect the route information, and its acceleration and speed is detected by sensors. The system adopts PID arithmetic to control the DC motor and adopts fuzzy control arithmetic to energize the steering motor. The intelligent car can track the black-guide line automatically and move forward following the line quickly and smoothly.Key words: MC9S12DG128, single-chip microcomputer, intelligent car, fuzzy control图 1系统硬件设计结构框图图 3直流电机驱动电路是飞思卡尔公司生产的一款16位单片机,片内总线时钟可达到25MHz ;片内资源包括8K RAM 、128K Flash 、2K EEP-ROM ;SCI ,SPI ,PWM 和串行接口模块;脉宽调制模块(PWM )可设置成4路8位或2路16位,逻辑时钟选择频率脉宽;2个8路10位A/D 转换器,增强型捕捉定时器并支持背景调试模式等[1]。
飞思卡尔智能车原理

飞思卡尔智能车原理飞思卡尔智能车是一种基于嵌入式系统和人工智能技术的智能交通工具。
它通过搭载各种传感器、控制器和算法,在无人驾驶、自动泊车等场景下发挥重要作用。
本文将介绍飞思卡尔智能车的原理,并分析其在实际应用中的优势和挑战。
一、飞思卡尔智能车的硬件组成飞思卡尔智能车的硬件组成主要包括以下几个方面:1. 主控单元:主控单元是飞思卡尔智能车的核心组件,通常采用高性能的嵌入式处理器。
它负责接收来自各种传感器的信息,并根据预设的算法进行数据处理和决策。
2. 传感器:飞思卡尔智能车搭载多种传感器,如摄像头、激光雷达、超声波传感器等。
这些传感器可以实时感知周围环境的信息,包括道路状况、障碍物位置等,为智能车提供必要的数据支持。
3. 电机与驱动系统:飞思卡尔智能车搭载电机和对应的驱动系统,用于控制车辆的行驶和转向。
这些系统通常采用先进的电子控制技术,能够实现精确的转向和速度控制。
4. 通信模块:飞思卡尔智能车通过通信模块与其他车辆、交通基础设施等进行信息交互。
这种通信方式可以实现车辆之间的协同工作,提高交通系统的整体效率。
二、飞思卡尔智能车的工作原理飞思卡尔智能车的工作原理可以归结为以下几个关键步骤:1. 环境感知:飞思卡尔智能车通过搭载的传感器对周围环境进行感知。
摄像头可以捕捉到道路状况、交通标志和其他车辆的信息;激光雷达可以检测到障碍物的位置和距离;超声波传感器可以测量车辆与前方障碍物的距离等。
通过这些传感器获取到的数据,智能车可以对周围环境做出准确判断。
2. 数据处理与决策:主控单元接收传感器传来的数据,并根据预设的算法进行数据处理和决策。
它会将传感器的信息与事先建立的模型进行比对,进而判断车辆应该采取何种动作,如加速、刹车、转向等。
3. 控制指令生成:基于数据处理与决策的结果,主控单元生成相应的控制指令,通过驱动系统控制车辆的行驶和转向。
这些控制指令可以通过电机和驱动系统精确地控制车辆的运动。
4. 数据通信与协同:飞思卡尔智能车通过通信模块与其他车辆以及交通基础设施进行信息交互。
基于飞思卡尔单片机的平衡车设计

基于飞思卡尔单片机的平衡车设计
富文军;孔令超;方四明;刘新磊;王培金
【期刊名称】《电子科学技术》
【年(卷),期】2016(003)004
【摘要】本文介绍了基于MK60DN256ZVLL10单片机控制系统设计的平衡车硬
件电路及直立原理,详细阐述了平衡车直立控制、速度控制和方向控制的参数调试方法。
主要创新点为用虚拟示波器来观察速度参数的变化,使调试更为准确和直观。
试验证明:该平衡车控制系统稳定,能在直立平衡的基础上实现稳定行走。
【总页数】6页(P527-532)
【作者】富文军;孔令超;方四明;刘新磊;王培金
【作者单位】山东交通学院汽车工程学院,山东济南,250357;山东交通学院汽车工程学院,山东济南,250357;皓泰投资集团有限责任公司,新疆克拉玛依,834000;山东交通学院汽车工程学院,山东济南,250357;山东交通学院汽车工程
学院,山东济南,250357
【正文语种】中文
【中图分类】TP273
【相关文献】
1.基于飞思卡尔32位Kinetis-K60单片机的直立行驶智能车设计 [J], 杨正才;吕科;朱乐
2.基于飞思卡尔XS128单片机的双车追逐控制系统设计 [J], 黄润烨;吕海涛;舒文
江;方童童;罗世昌;雷钧
3.基于飞思卡尔单片机的智能车设计 [J], 程锦星;赵春锋;陈扬;方国好;叶超
4.基于飞思卡尔单片机智能车的设计 [J], 韩建文
5.基于飞思卡尔S12单片机的智能车系统设计与实现 [J], 刘允峰;韩建群
因版权原因,仅展示原文概要,查看原文内容请购买。
飞思卡尔直立平衡智能车的制作

其中:P为比例项系数,D为微分项系数小车 Nhomakorabea速度控制
检测小车当前实际运行速度的传感 器为编码器(如右上角图片所示)。 该编码器为512线编码器,即编码 器轴每转动一圈,就会产生512个 脉冲。编码器和小车轮子通过齿轮 咬合,即车轮转动编码器轴也跟着 转动,同时产生脉冲。车轮转动得 越快,产生的脉冲也就越多。通过 主控板上的单片机捕获编码器产生 的脉冲然后计算单位时间内编码器 产生的脉冲数就可以测得小车当前 的运行速度v。
direct _ control _ out P *err D * angular
其中:P为比例项系数,D为微分项系数
对小车电机的总输出
前面分析了要想让直立小车在跑道上匀速地跑需要对小车进行三个方面的 控制,这三个方面的控制对应有三个输出,分别为直立控制输出 angle_control_out、速度控制输出V_control_out和方向控制输出 direct_control_out。这三个输出的控制目标(或控制对象)虽然不同,但是 执行机构是一样的,都是小车上的一对电机。在这里,这三个控制输出线 性地叠加在一起,合成一个总的控制输出,作用在小车电机上。叠加公式 如下:
小车的速度控制
我们要求直立小车要在跑道上匀速运动,即我们期望小车的速度是恒定的 Ve。小车的速度控制实际上就是控制小车当前的实际速度接近或者达到我 们预先设定的期望速度。这里,我们采用PID控制策略中的P(比例)I(积分) 控制来控制小车的速度。 给定一个小车的期望速度Ve,同时由编码器测得小车当前的实际速度V,小 车的期望速度与实际速度作一个比较,得到速度偏差err。其中,速度偏差 err作为PI控制中P项的输入。PID控制策略中的积分项(即I项)实际上就是 偏差的累加再乘以一个积分系数I。设integration为速度偏差err的累积结果, 则速度偏差累积结果integration作为PI控制中I项的输入。得到以下速度PI控 制的公式:
飞思卡尔智能车电路设计讲解

6.2.2 电源管理单元
• 同时考虑到稳压芯片L7805CV的额定输出 电流较小,故采用两片L7805CV分别对单 片机电路、车速检测电路、驱动芯片电路 和光电传感器电路供电,以保证系统正常 运行。其稳压电路如图6.8所示。
图6.8 稳压电源单元
MC34063A升压稳压电路
AD参图中的C15为输出电压稳定电容47uF。 • LM336集成电路是精密的2.5V并联稳压器,
其工作相当于一个低温度系数的、动态电 阻为0.2Ω的2.5V齐纳二极管,其中的微调 端(adj)可以使基准电压和温度系数得到微 调。
降压模块--LM1117-5
• 单片机,LCD,CS3020,74HC1G14, ZLG728,LM336的标准供电电压都是5V, 所以需要一个降压稳压芯片LM1117-5来将 电池电压降到需要的5V。考虑到单片机的 核心地位及单片机需要很大的输入电流(输 入电流过小时,单片机会重启动),拟定用 两片LM1117-5。一片单独给单片机提供电 源,一片给剩余的LCD,CS3020等供电。 设计电路图如图3.10。
CPU最小系统
连接CPU
连接CPU
实现方案和试验结果
CPU最小系统
PAD02 视频信号
IRQ
视频行同步信号
PM1 奇偶场信号
PWM2 12V 斩波升压开关信号;
PWM0,1 电极控制PWM信号;
PWM4 舵机控制信号;
PAD0,1 电池电压,12V电压监测;
7.2.2 电源管理单元
– (1)采用稳压管芯片LM2576将电源电压稳压 到5 V后,给单片机系统电路、车速检测的转角 编码器电路供电,且为后面的升压降压做准备;
– (2)经过一个二极管降至6.5 V左右后供给转 向伺服电机;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
直立控制电压 行走控制电压 转向控制电压 +
+ +
直立 运行
虚拟拆解 形成三组 不同功能 的驱动电机
图 2.1 车模运动控制பைடு நூலகம்解示意图
转向
线性叠加形成一组 驱动电机
直流电机的力矩最终来自于电机驱动电压产生的电流。 因此只要电机处于线性状态, 上述拆解可以等效成三种不同控制目标的电压叠加之后,施加在电机上。
6
在上述三个任务中保持车模直立是关键。由于车模同时受到三种控制的影响,从车 模直立控制的角度,其它两个控制就成为它的干扰。因此在速度、方向控制的时候,应 该尽量平滑,以减少对于直立控制的干扰。三者之间的配合如图 2.1 所示。
2
3
一、前言
为了提高全国大学生智能汽车竞赛创新性和趣味性, 激发高校学生参与比赛的兴趣, 提高学生的动手能力、创新能力和接受挑战能力,智能汽车竞赛组委会将电磁组比赛规 定为车模直立行走(如图 1.1 所示) ,其它两个组别的车模行走方式保持不变。
图 1.1 电磁组车模直立运行模式
车模直立行走比赛是要求仿照两轮自平衡电动车的行进模式,让车模以两个后轮 驱动进行直立行走。近年来,两轮自平衡电动车以其行走灵活、便利、节能等特点得到 了很大的发展。国内外有很多这方面的研究,也有相应的产品。在电磁组比赛中,利用 了原来 C 型车模双后轮驱动的特点,实现两轮自平衡行走。相对于传统的四轮行走的车 模竞赛模式,车模直立行走在车体检测、控制算法等方面提出了更高的要求。为了能够 帮助参赛同学尽快制作车模参加比赛, 竞赛秘书处编写了 C 型车模直立行走的参考设计 方案。参赛队员可以在此基础上,进一步改进硬件和软件方案,提高竞赛水平。 为了适应初学者,方案介绍过程中,尽可能减少公式推导,使用通俗科学的语言介 绍控制原理和方法,给出 C 型车模制作过程中的核心环节。本文的主要内容如图 1.2 所 示。
4
电磁组直立行走任务分解 车模直立控制 车模速度控制
原理篇
车模方向控制 车模倾角测量 控制算法总框图 整体电路框图 DSC最小系统 倾角传感器电路
电路设计篇
电机驱动电路 速度传感器电路 电磁检测电路 车模简化与修改
机械设计篇
传感器安装 其它注意事项 软件功能框架 DSC资源配置
软件编写与调试篇
主要算法以及实现 程序调试与参数整定 运行测试
第七届全国大学生 “飞思卡尔” 杯智能汽车竞赛
电磁组直立行车参考设计方案
(版本 1.0)
直立控制 速度控制 方向控制
竞赛秘书处
2011-12-22
1
目
录
一、前言 .................................................................................................................................... 4 二、原理篇 ................................................................................................................................ 6 2.1 直立行走任务分解 .............................................................................................................. 6 2.2 车模直立控制 ...................................................................................................................... 7 2.3 车模速度控制 .................................................................................................................... 11 2.4 车模方向控制 .................................................................................................................... 14 2.5 车模倾角测量 .................................................................................................................... 15 2.6 车模直立行走控制算法总图 ............................................................................................ 19 三、电路设计篇 ...................................................................................................................... 21 3.1 整体电路框图 .................................................................................................................... 21 3.2 DSC 介绍与单片机最小系统 ........................................................................................... 22 3.3 倾角传感器电路 ................................................................................................................ 25 3.4 电机驱动电路 .................................................................................................................... 27 3.5 速度传感器 ........................................................................................................................ 28 3.6 电磁线检测电路 ................................................................................................................ 29 四、机械设计篇 ...................................................................................................................... 30 4.1 车模简化改装 .................................................................................................................... 30 4.2 传感器安装 ........................................................................................................................ 31 4.3 注意事项 ............................................................................................................................ 33 五、软件编写与调试篇.......................................................................................................... 34 5.1 软件功能与框架 ................................................................................................................ 34 5.2 DSC 的资源配置 ............................................................................................................... 37 5.3 主要算法及其实现 ............................................................................................................ 38 5.4 程序调试与参数整定 ........................................................................................................ 46 5.5 现场运行测试 .................................................................................................................... 47 六、结束语 .............................................................................................................................. 47 附录: ...................................................................................................................................... 48