Advertisement

自动循迹小车工作原理图

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:None


简介:
自动循迹小车的工作原理图展示了其如何通过传感器识别黑线,在不同环境下自主调整方向和速度,实现精确跟踪预定路线的功能。 ```c #include #include qudong.h #include duankou.h #include lcd1602.h #include celv.h #define uchar unsigned char #define uint unsigned int #define CPU_F ((double)8000000) #define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0)) #define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/100.0)) // 全局变量 float voltage = 6.0; int RS1 = 100, LS1 = 100, RS0 = 100, LS0 = 100; char heixian = 0x03; // 不等于表示检测到信号,等于表示没检测到 char ji_shu = 0; // 表示第几次检测到黑线 uint total_time_count; // 时间相关变量 uint start_low_speed, end_low_speed, end_all, start_all; // 测速相关变量 uint LM_cap_new, LM_cap_old, LM_cap_count, RM_cap_new, RM_cap_old, RM_cap_count; float real_LM_speed = 0.0, top_speed = 0.0, average_speed = 0.0; // 转换测量值为实际值相关变量 float dis1 = 0.0, dis0 = 0.0; uint low_speed_time, total_time; // 系统时钟初始化,aclk=32768k,mclk=XT2,SMCLK = XT2。 void Init_clock(void) { DCOCTL = DCO0 + DCO1 + DCO2; // Max DCO数字晶振最高频率 BCSCTL1 = RSEL0 + RSEL1 + RSEL2; // XT2on, max RSEL选择高速晶振最高频率 BCSCTL2 |= SELM_2+SELS; // MCLK=8M,SMCLK = XT2,系统主时钟选择高速晶振 do { IFG1 &= ~OFIFG; for(unsigned int i = 0XFF; i > 0; i--); } while((IFG1 & OFIFG) != 0); // 清除振荡器失效标志,等待稳定 } #pragma vector=ADC_VECTOR __interrupt void ADC12_ISR(void){ if(ADC12MEM0 < 2816) P6OUT &= ~BIT3; // 欠压指示灯亮 else P6OUT |= BIT3; } // 标志线控制策略 void ce_lve_2(char biao_zhi) { switch(biao_zhi){ case 0: { LM_speed = LM_speed * 0.5; RM_speed = RM_speed * 0.5; break;} case 1: { dian_ji(-100,-100); delay_ms(50); dian_ji(0,0); char i=0; do { delay_ms(500); P6OUT |= BIT6; P6OUT ^= BIT4; i++; } while(i<21); LM_speed = 100; RM_speed = 100; start_all = total_time_count; ji_shu++; break;} // 其他情况... } } // 干簧管部分 void gan_huang_guan(void){ if(youxinhao == 1) return; heixian = P3IN & 0X03; if(heixian != 0x03){ // 检测到信号 ji_shu++; youxinhao = 1; TBCCR0=TBR+32768; TBCCTL0=CCIE; } else { youxinhao = 0; } } void Init_timer_B(void){ TBCTL = TBSSEL_1 + MC_2+TBIE + TBCLR; TBCCTL0 = CCIE; // 干簧管用 TBCCTL1 = CM_1 + CCIS_1 + CAP + CCIE; // 右轮测速用 TBCCTL2 = CM_1 + CCIS_1 + CAP + CCIE; TBCCR0 =TBR+32768; _EINT(); } #pragma vector=TIMERB0_VECTOR __interrupt void Timer_B0(void){ youxinhao = 0; TBCCTL0 &=

全部评论 (0)

还没有任何评论哟~
客服
客服
  • 优质
    自动循迹小车的工作原理图展示了其如何通过传感器识别黑线,在不同环境下自主调整方向和速度,实现精确跟踪预定路线的功能。 ```c #include #include qudong.h #include duankou.h #include lcd1602.h #include celv.h #define uchar unsigned char #define uint unsigned int #define CPU_F ((double)8000000) #define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0)) #define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/100.0)) // 全局变量 float voltage = 6.0; int RS1 = 100, LS1 = 100, RS0 = 100, LS0 = 100; char heixian = 0x03; // 不等于表示检测到信号,等于表示没检测到 char ji_shu = 0; // 表示第几次检测到黑线 uint total_time_count; // 时间相关变量 uint start_low_speed, end_low_speed, end_all, start_all; // 测速相关变量 uint LM_cap_new, LM_cap_old, LM_cap_count, RM_cap_new, RM_cap_old, RM_cap_count; float real_LM_speed = 0.0, top_speed = 0.0, average_speed = 0.0; // 转换测量值为实际值相关变量 float dis1 = 0.0, dis0 = 0.0; uint low_speed_time, total_time; // 系统时钟初始化,aclk=32768k,mclk=XT2,SMCLK = XT2。 void Init_clock(void) { DCOCTL = DCO0 + DCO1 + DCO2; // Max DCO数字晶振最高频率 BCSCTL1 = RSEL0 + RSEL1 + RSEL2; // XT2on, max RSEL选择高速晶振最高频率 BCSCTL2 |= SELM_2+SELS; // MCLK=8M,SMCLK = XT2,系统主时钟选择高速晶振 do { IFG1 &= ~OFIFG; for(unsigned int i = 0XFF; i > 0; i--); } while((IFG1 & OFIFG) != 0); // 清除振荡器失效标志,等待稳定 } #pragma vector=ADC_VECTOR __interrupt void ADC12_ISR(void){ if(ADC12MEM0 < 2816) P6OUT &= ~BIT3; // 欠压指示灯亮 else P6OUT |= BIT3; } // 标志线控制策略 void ce_lve_2(char biao_zhi) { switch(biao_zhi){ case 0: { LM_speed = LM_speed * 0.5; RM_speed = RM_speed * 0.5; break;} case 1: { dian_ji(-100,-100); delay_ms(50); dian_ji(0,0); char i=0; do { delay_ms(500); P6OUT |= BIT6; P6OUT ^= BIT4; i++; } while(i<21); LM_speed = 100; RM_speed = 100; start_all = total_time_count; ji_shu++; break;} // 其他情况... } } // 干簧管部分 void gan_huang_guan(void){ if(youxinhao == 1) return; heixian = P3IN & 0X03; if(heixian != 0x03){ // 检测到信号 ji_shu++; youxinhao = 1; TBCCR0=TBR+32768; TBCCTL0=CCIE; } else { youxinhao = 0; } } void Init_timer_B(void){ TBCTL = TBSSEL_1 + MC_2+TBIE + TBCLR; TBCCTL0 = CCIE; // 干簧管用 TBCCTL1 = CM_1 + CCIS_1 + CAP + CCIE; // 右轮测速用 TBCCTL2 = CM_1 + CCIS_1 + CAP + CCIE; TBCCR0 =TBR+32768; _EINT(); } #pragma vector=TIMERB0_VECTOR __interrupt void Timer_B0(void){ youxinhao = 0; TBCCTL0 &=
  • 和代码
    优质
    本项目介绍了一种自动循迹小车的设计与实现,包括其工作原理、电路设计以及关键程序代码,为初学者提供了从理论到实践的学习资源。 自动循迹小车的详细原理图、电源电路图、驱动电路图及调试程序源代码。
  • 电路
    优质
    《循迹小车电路原理图》详细展示了用于制作自动跟随黑线行驶的小车所需的电子元件及其连接方式,旨在帮助初学者理解其工作原理并顺利完成组装。 循迹小车原理图展示了其工作原理和技术细节。该图通常包括传感器布局、控制电路以及软件算法等内容,帮助理解如何实现自动跟随预定路径的功能。
  • 电感模块电路
    优质
    本资源提供详细的小车电感循迹模块电路图及工作原理说明,帮助学习者理解其在自动寻线行驶中的应用机制和设计思路。 基于电感传感器的自动循迹小车系统主要探讨了如何利用电感传感器实现车辆自主识别路径的功能。该部分详细介绍了电感传感器的工作原理及其在自动循迹小车中的应用,包括硬件设计、信号处理以及软件算法等方面的内容。通过优化和改进这些技术细节,可以有效提升系统的稳定性和准确性,从而更好地服务于各种应用场景的需求。
  • Altium Designer的(PDF文件)
    优质
    本PDF文档详尽阐述了使用Altium Designer软件设计循迹小车电路原理图的过程与技巧,适合电子制作爱好者及工程师参考学习。 循迹小车Altium Designer原理图(PDF文件),不含PCB设计内容,可用于绘制PCB并制作电路板。
  • 模块详解资料
    优质
    本资料深入解析小车循迹模块的工作原理,包含详细电路设计与元件说明,适合电子爱好者和工程师参考学习。 小车循迹模块是嵌入式硬件领域中的常见应用之一,主要用于自动控制小型车辆沿预设路径行驶,在教育、机器人竞赛及自动化项目中非常流行。本资料将详细介绍该模块的设计原理及相关电路图。 一、基本构成 小车循迹模块主要包括传感器单元、信号处理单元和执行控制单元三部分。其中,传感器负责检测路面黑白线条或磁性标记;信号处理单元则把这些信息转换成可识别的数据格式;而执行控制单元依据数据调整车辆的行驶方向。 二、传感器类型 1. 光电传感器:如红外对管或反射光敏电阻,通过光线反射差异来判断路径。 2. 超声波传感器:利用超声波回声测距,在复杂环境中使用效果较好但成本较高。 3. 磁敏感应器:用于识别地面上的磁条标记,适合无色差环境。 三、信号处理与控制算法 1. AD转换:将模拟量转变为数字格式以供微控制器读取和计算; 2. PID调节机制:通过比例P、积分I及微分D参数调整来实现对车速方向精准操控。 3. 逻辑运算:结合多个传感器输入信息做出决策,如前进、转向等操作。 四、微处理器选择 选用合适的微控制器是至关重要的一步。常见的有Arduino系列板卡、STM32芯片以及51单片机等多种选项,需根据计算能力需求及能耗等因素进行挑选。 五、电机驱动与速度控制 1. 驱动电路:如L298N或H桥设计用于管理直流电动机的正反转和转速变化。 2. PWM脉宽调制技术:通过改变电压信号占空比来调节电机动态性能,确保车辆平稳运行。 六、硬件规划与布局 1. 原理图绘制:准确展示各组件间连接方式; 2. PCB板设计:合理安排元件位置以减少电磁干扰并保证散热效果良好。 七、软件编程实现 编写控制程序读取传感器数据并对电机进行操作。常用语言包括C/C++,开发环境可能基于Arduino IDE或STM32CubeMX等平台。 掌握小车循迹模块的工作原理涉及到了解传感技术、信号处理技巧以及微控制器应用等领域知识。这不仅有助于理解该装置的设计思路,也对其他嵌入式系统的研发具有指导意义。通过分析实际案例中的电路图,可以进一步深化学习和实践上述各项关键技术的应用情况。
  • 红外_STM32_红外_STM32
    优质
    本项目是一款基于STM32微控制器的红外循迹小车,能够自动识别黑线并在特定轨道上行驶。适用于教育和机器人竞赛。 编写一个用于红外循迹小车的执行程序,在工作环境中使用STM32开发板进行编程实现。
  • 的仿真程序
    优质
    本项目旨在开发一款能够模拟自动循迹小车运行情况的仿真程序,通过算法实现路径追踪和避障功能,为实际硬件应用提供理论支持与测试环境。 PWM小车循迹源代码及Proteus仿真文件包含文档和完整源码,适合制作小车的朋友们参考使用,非常不错。
  • STM32红外硬件设计
    优质
    本项目专注于基于STM32微控制器的红外循迹小车硬件设计,详细介绍电路板布局与关键组件连接方式。 STM32红外循迹小车硬件原理图描述了该小车的电路设计细节,包括各个组件之间的连接方式以及如何利用STM32微控制器实现对红外传感器信号的处理与控制功能。此原理图是理解并构建类似项目的宝贵资源。
  • MSP432智能回赛道)
    优质
    这款MSP432智能循迹小车采用先进的微控制器技术,能够精准识别赛道并自动调整方向,确保在偏离轨道后能迅速准确地回到正确路径上。它是学习嵌入式系统和机器人导航的理想选择。 MSP432智能循迹小车能够自动回到赛道,并通过PID调节车速,可以快也可以慢。