本文以第六届全国大学生智能车竞赛为背景 , 介绍了智能赛车控制系统的软硬件结构和开发流程。该比赛采用大赛组委会统一指定的由东莞市博思电子数码科技有限公司提供的 C 型车模,以 Freescale 半导体公司生产的 16 位 DSCMC56F8366 为核心控制器,在 CodeWarrior IDE 开发环境中进行软件开发,要求赛车在未知道路上沿着黑线以最快的速度完成比赛。整个系统涉及车模机械结构调整、传感器电路设计及信号处理、控制算法和策略优化等多个方面。为了提高智能赛车的行驶速度和可靠性,对比了不同方案的优缺点,并结合 PC 调试平台进行了大量底层和上层测试 , 最终确定了现有的系统结构和各项控制参数 。赛车采用模拟摄像头对赛道进行检测,通过边缘提取获得黑线位置,用 PD 方式对舵机进行反馈控制 。 同时通过速度传感器获取当前速度 , 采用优化后的 PID 控制实现速度闭环。 关键词: Freescale ,智能车,摄像头, PID
上传时间: 2013-10-27
上传用户:xanxuan
Fastwel是一款基于AMD Geode LX800(500MHz)处理器的单板计算机,PC\104支持PCI(32位和16位ISA)。支持Linux,嵌入式Windows XP,QNX。CPB905的所有组件,包括CPU和板载内存均使用焊接从而提供高抗振性。并有一组丰富的接口:2个快速以太网端口,7个COM端口,4个USB2.0端口,支持视频输出(CRT,TFT,LVDS),分辨率高达1920×1440像素。
上传时间: 2013-11-12
上传用户:dengzb84
了解全球首个采用下一代ARM Cortex M0+ 内核的MCU产品“Kinetis L系列”。这些新器件可兼容基于ARM Cortex-M4的Kinetis K系列产品,能够给传统的8位及16位入门级应用提供出众的低功耗性能、易用性和重要价值。本会议将简要介绍全新ARM Cortex-M0+ 内核及Kinetis L系列产品特性、配套支持和产品计划。
上传时间: 2014-12-30
上传用户:离殇
概要2 个对称的600MHz 高性能Blackfin 内核328K Bytes 片内存储器每个 Blackfin 内核包括:2 个16 位MAC,2 个40 位ALU,4 个8 位视频ALU,以及1 个40 位移位器RISC 式寄存器和指令模型,编程简单,编译环境友好先进的调试、跟踪和性能监视内核电压 0.8V-1.2V,片内调压器可调兼容 3.3V 及2.5V I/O256 引脚Mini-BGA 和297 引脚PBGA 两种封装外设两个并行输入/输出外围接口单元,支持ITU-R 656 视频数据格式,可与ADI 的模拟前端ADC 无缝连接2 个双通道全双工同步串行接口,支持8 个立体声I2S 通道2 个16 通道DMA 控制器和1 个内部存储器DMA 控制器SPI 兼容端口12 个通用32-bit 定时/计数器,支持PWMSPI 兼容端口支持 IrDA 的UART2 个“看门狗”定时器48 个可编程标志引脚1x-63x 倍频的片内PLL
上传时间: 2013-11-06
上传用户:YUANQINHUI
为了实现嵌入式手持终端系统的功耗低、体积小、性能稳定的需求,以TI公司的MSP430F449的16位低功耗微控制器为中央处理单元,Semtech公司的SX1233为射频收发单元,设计了一种能广泛应用于餐饮、物流、无线抄表等领域的低成本、超低功耗的无线手持终端设备。分析了系统的功耗和编程特点,给出了系统软件的设计方案。实测结果表明,所设计的无线手持终端设备性能稳定、灵活可调,达到了设计要求。
上传时间: 2013-10-18
上传用户:SimonQQ
针对数据采集与处理系统的应用需求,设计了嵌入Linux的ARM9处理器LPC3250与16位AD采样芯片MAX1303的硬件接口和驱动程序。首先,描述了LPC3250和MAX1303的性能、特点以及硬件接口电路设计方案。然后,在硬件平台的基础上,详细地阐述了嵌入式Linux下MAX1303驱动程序的组成模块和具体实现方法,并给出了部分源代码以及对设备驱动的测试方法。测试结果表明,系统工作正常、稳定,采样结果正确,具有实际工程应用价值。
上传时间: 2013-11-21
上传用户:nostopper
电子发烧友讯: 飞思卡尔是全球嵌入式处理解决方案、高级汽车电子、消费电子、工业控制和网络市场的领导者。从微处理器和微控制器到传感器、模拟集成电路(IC)和连接,我们的技术为创新奠定基础,构建更加环保、安全、健康和互连的世界 MC9S12XHY系列是飞思卡尔公司的经过优化的,汽车16位微控制器产品系列,具有低成本,高性能的特点。该系列是联接低端16位微控制器(如:MC9S12HY系列),和高性能32位解决方案的桥梁。MC9S12XHY系列定位于低端汽车仪器群集应用,它包括支持CAN和LIN/J2602通信,并传送典型的群集请求,如步进失速检测(SSD)和LCD驱动器的步进电机控制。 MC9S12XHY系列具有16位微控制器的所有优点和效率,同时又保持了飞思卡尔公司现有的8位和16位MCU系列的优势,即低成本、低功耗、EMC和代码尺寸效率等优点。与MC9S12HY系列相同,MC9S12XHY系列可以运行16位宽的访问,而不会出现外设和存储器的等待状态。MC9S12XHY系列为100引脚LQFP和112引脚LQFP封装,旨在最大限度地与100LQFP,MC9S12HY系列兼容。除了每个模块具有I/O端口外,还可提供更多的,具有中断功能的I/O端口,具有从停止或等待模式唤醒功能。 图1 MC9S12XHY系列方框图截图
上传时间: 2014-12-31
上传用户:66666
飞思卡尔智能车的舵机测试程序 #include <hidef.h> /* common defines and macros */#include <MC9S12XS128.h> /* derivative information */#pragma LINK_INFO DERIVATIVE "mc9s12xs128" void SetBusCLK_16M(void) { CLKSEL=0X00; PLLCTL_PLLON=1; //锁相环电路允许位 SYNR=0x00 | 0x01; //SYNR=1 REFDV=0x80 | 0x01; POSTDIV=0x00; _asm(nop); _asm(nop); while(!(CRGFLG_LOCK==1)); CLKSEL_PLLSEL =1; } void PWM_01(void) { //舵机初始化 PWMCTL_CON01=1; //0和1联合成16位PWM; PWMCAE_CAE1=0; //选择输出模式为左对齐输出模式 PWMCNT01 = 0; //计数器清零; PWMPOL_PPOL1=1; //先输出高电平,计数到DTY时,反转电平 PWMPRCLK = 0X40; //clockA 不分频,clockA=busclock=16MHz;CLK B 16分频:1Mhz PWMSCLA = 0x08; //对clock SA 16分频,pwm clock=clockA/16=1MHz; PWMCLK_PCLK1 = 1; //选择clock SA做时钟源 PWMPER01 = 20000; //周期20ms; 50Hz; PWMDTY01 = 1500; //高电平时间为1.5ms; PWME_PWME1 = 1;
上传时间: 2013-11-04
上传用户:狗日的日子
//------------------------------------------------------------------------------------//此程序为ADC转换程序,可以选择向ADC0BUSY写1或用定时器0,1,2,3作为ADC的启动信号。////------------------------------------------------------------------------------------//头文件定义//------------------------------------------------------------------------------------//#include <c8051f330.h> #include <stdio.h> //-----------------------------------------------------------------------------// 定义16位特殊功能寄存器//----------------------------------------------------------------------------- sfr16 ADC0 = 0xbd; sfr16 TMR0RL = 0xca; sfr16 TMR1RL = 0xca; sfr16 TMR2RL =0xca; sfr16 TMR3RL =0xca; sfr16 TMR0 = 0xCC; sfr16 TMR1 = 0xCC; sfr16 TMR2 = 0xcc; sfr16 TMR3 = 0xcc; //-----------------------------------------------------------------------------// 全局变量定义//-----------------------------------------------------------------------------char i;int result; //-----------------------------------------------------------------------------//定义常量//-----------------------------------------------------------------------------#define SYSCLK 49000000 #define SAMPLE_RATE 50000 //------------------------------------------------------------------------------------// 定义函数//------------------------------------------------------------------------------------void SYSCLK_Init (void);void PORT_Init (void);void Timer0_Init (int counts);void Timer1_Init (int counts);void Timer2_Init (int counts);void Timer3_Init (int counts);void ADC0_Init(void);void ADC0_ISR (void);void ADC0_CNVS_ADC0h(void);//------------------------------------------------------------------------------------// 主程序//------------------------------------------------------------------------------------ void main (void) { int ADCRESULT[50] ; int k; PCA0MD &= ~0x40; // 禁止看门狗 SYSCLK_Init (); PORT_Init (); Timer0_Init (SYSCLK/SAMPLE_RATE); //Timer1_Init (SYSCLK/SAMPLE_RATE); //选择相应的启动方式 //Timer2_Init (SYSCLK/SAMPLE_RATE); //Timer3_Init (SYSCLK/SAMPLE_RATE); ADC0_Init(); EA=1; while(1) { //ADC0_CNVS_ADC0h(); k=ADC0; ADCRESULT[i]=result; //此处设断点,观察ADCRESULT的结果 } }
上传时间: 2013-10-13
上传用户:SimonQQ
温湿度传感器 sht11 仿真程序 sbit out =P3^0; //加热口 //sbit input =P1^1;//检测口 //sbit speek =P2^0;//报警 sbit clo =P3^7;//时钟 sbit ST =P3^5;//开始 sbit EOC =P3^6;//成功信号 sbit gwei =P3^4;//个位 sbit swei =P3^3;//十位 sbit bwei =P3^2;//百位 sbit qwei =P3^1;//千位 sbit speak =P0^0;//报警音 sbit bjled =P0^1;//报警灯 sbit zcled =P0^2;//正常LED int count; uchar xianzhi;//取转换结果 uchar seth;//高时间 uchar setl;//低时间 uchar seth_mi;//高时间 uchar setl_mi;//低时间 bit hlbz;//高低标志 bit clbz; bit spbz; ///定时中断程序/// void t0 (void) interrupt 1 using 0 { TH0=(65536-200)/256;//5ms*200=1000ms=1s TL0=(65536-200)%256; clo=!clo;//产生时钟 if(count>5000) { if(hlbz) { if(seth_mi==0){seth_mi=seth;hlbz=0;out=0;} else seth_mi--; } if(!hlbz) { if(setl_mi==0){setl_mi=setl;hlbz=1;out=1;} else setl_mi--; } count=0; } else count++; } ///////////// ///////延时/////// delay(int i) { while(--i); } ///////显示处理/////// xianshi() { int abcd=0; int i; for (i=0;i<5;i++) { abcd=xianzhi; gwei=1; swei=1; bwei=1; qwei=1; P1=dispcode[abcd/1000]; qwei=0; delay(70); qwei=1; abcd=abcd%1000; P1=dispcode[abcd/100]; bwei=0; delay(70); bwei=1; abcd=abcd%100; P1=dispcode[abcd/10]; swei=0; delay(70); swei=1; abcd=abcd%10; P1=dispcode[abcd]; gwei=0; delay(70); gwei=1; } } doing() { if(xianzhi>100) {bjled=0;speak=1;zcled=1;} else {bjled=1;speak=0;zcled=0;} } void main(void) { seth=60;//h60秒 setl=90;//l90秒 seth_mi=60;//h60秒 setl_mi=90;//l90秒 TMOD=0X01;//定时0 16位工作模式 TH0=(65536-200)/256; TL0=(65536-200)%256; TR0=1; //开始计时 ET0=1; //开定时0中断 EA=1; //开全中断 while(1) { ST=0; _nop_(); ST=1; _nop_(); ST=0; // EOC=0; xianshi(); while(!EOC) { xianshi(); } xianzhi=P2; xianshi(); doing(); } }
上传时间: 2013-11-07
上传用户:我们的船长