本文目录一览

1,电磁循迹智能小车有哪些实用价值它能为生活带来哪些便利

循环的小车有一定的轨道,通过光电传感器,电磁开关,PLC控制器,协同来完成,小车的移动,及其它的工作,这是基本原理,具体可以参考自动化控制方面的专业书籍,工控原理。
我会继续学习,争取下次回答你

电磁循迹智能小车有哪些实用价值它能为生活带来哪些便利

2,51单片机循迹小车的循迹模块

用一对红外对管,好像是Rp200型号的
要准的话就是你的小车寻迹的时候灵敏度高,碰到什么样的路况都有办法做出相应的判断,这主要是看你用什么方式寻迹(比如用红外传感器),以及你如何利用传感器来寻迹(一般就是外部中断和查询,查询的响应肯定是不如中断快的,当然也要看你中断的资源够不够),还有程序的逻辑上是如何判断的;要快的话就是驱动你的轮子跑得快,这和你的硬件很有关系,,,看你用什么电机,什么方式驱动电机了,无非是用程序找到一种电机转的最快的方法,然后结合上面的寻迹方式(复杂路况如十字路口,不同曲率的弯道,直角弯,锐角弯等)还有就是你的电源供电也挺重要的。

51单片机循迹小车的循迹模块

3,智能循迹小车 有的跑道是中间一条黑线有的两边是黑线他们各自的

寻迹小车一般都有光电引导头,他用的是物理学原理,黑色在物理的意思上是吸收一切光线(白色的意思是反射任何光线)。小车下面的引导头(有发射和接收两个头,一般是一体式的)会发射光线,当遇到白色物体时,光线被反射回来,然后接收头接收,输出高电平,这样小车就判断为白色。如果遇到的是黑线,则不会被反射,接收头无法接收到信号,输出低电平,小车就知道是黑色。后面就很简单了,小车上的引导头往往是并联多路,比如五路或者三路,只要让中间的引导头一直跟着黑线走,一直寻迹黑色就可以了。而最外边的两个不能碰到黑线就好。如果偏了,小车就用单片机程序调整一下电机的控制,让两侧电机加速或者减速,或者一加速一减速(转弯能力更强),小车就转弯,调整一下方向就好了。

智能循迹小车 有的跑道是中间一条黑线有的两边是黑线他们各自的

4,东谷智能无线循迹小车是应用那些原理的

光电探头循迹小车特点:反应速度快,速度最快可达40cm/s,但交叉路口识别率相对较低,探头需要定期调节灵敏度;摄像头循迹小车特点:交叉路口识别率相对较高,基本无需维护,但因系统处理时间较长,反应速度相对较慢,速度最快可达30cm/s。智能无线循迹小车适合在直线、曲线、一分二交叉路口,二合一交叉路口,停车场倒车入位路线等。东谷软件是一家专注物联网应用系统开发的软件公司,拥有软件开发的人才资源和技术储备。所研发的智能无线循迹小车具有:无线通信,支持Zigbee及LoRa等无线方式;四路驱动,可前进,后退,原地转弯,倒车等;循迹方式有两种,一种为光电探头循迹,另一种为摄像头循迹共两种循迹模式;系统从前端到后台,再到应用展现,均采用物联网标准拓扑结构设计,非一般的电气联锁。本系统已应用在众多高校中,系统稳定可靠,配套有大量的教学资源。

5,怎么设计循迹小车

1、循迹小车是一种能够自己寻找轨迹并按轨迹运动的“智能”车。本文简要记录这一电子制作过程,希望大家喜欢。有什么建议和意见,欢迎大家留言。2、根据元器件清单清点器件,看是否缺件少件。下图是元器件全家福:3、依次焊接元器件:要先焊接小的元器件,再焊接大的元器件,最后粘上电池座和马达。焊接好所有元器件后再次肉眼检查有没有焊反,虚焊漏焊的点。确认无误后,进行第三步。4、焊接好所有元器件后再次肉眼检查有没有焊反,虚焊漏焊的点。确认无误后,进行第三步。5、装上电池调试。电马达的2根线可能会装反,光敏电阻和发光二极管的相对位置可能需要调整,可调电阻(电位器)的电阻值可能不合适需要调整。6、调试后,小车可以再黑色的轨道上自动循迹,制作成功。黑色轨迹可以自己做,用黑色胶布再地板上自定义轨道,小车慢悠悠的在轨道上行走。
原发布者:bing6601422#include#defineuintunsignedint#defineucharunsignedcharsbitP10=P1^0;//控制左电机前进sbitP11=P1^1;//控制左电机后退sbitP12=P1^2;//控制右电机前进sbitP13=P1^3;//控制右电机后退sbitLED=P0^0;sbitzuobian=P3^2;//左边传感器sbityoubian=P3^3;//右边传感器//************************************************//延时函数,在12MHz的晶振频率下//大约50us的延时//************************************************voiddelay_50us(uintt){ucharj;for(;t>0;t--)for(j=19;j>0;j--);}//************************************************//延时函数,在12MHz的晶振频率下//大约50ms的延时//************************************************voiddelay_50ms(uintt){uintj;for(;t>0;t--)for(j=6245;j>0;j--);}voidqianjin()//小车前进{P10=0;P11=1;delay_50us(25);P10=1;P11=1;delay_50us(10);P12=0;P13=1;delay_50us(25);P12=1;P13=1;delay_50us(10);}voidtingzhi()//小车停止{P10=1;P11=1;P12=1;P13=1;}voidyouguai()//小车右拐{P10=0;P11=1;delay_50us(25);P10=1;P11=1;delay_50us(10);P12=1;P13=1;delay_50us(10);}voidzuoguai()//小
1. 小车控制及驱动单元的选择 此部分是整个小车的大脑,是整个小车运行的核心部件,起着控制小车所有运行状态的作用。通常选用单片机作为小车的核心控制单元,在这里用台湾凌阳公司的SPCE061A单片机来做小车的控制单元。SPCE061是一款拥有2K RAM、32KFlash、32 个I/O 口,并集成了AD/DA功能强大的16位微处理器,它还拥有丰富的语音处理功能,为小车的功能扩展提供了相当大的空间。只要按照该单片机的要求对其编制程序就可以实现很多不同的功能。小车驱动电机一般利用现成的玩具小车上的配套直流电机。考虑到小车必须能够前进、倒退、停止,并能灵活转向,在左右两轮各装一个电机分别进行驱动。当左轮电机转速高于右轮电机转速时小车向右转,反之则向左转。为了能控制车轮的转速,可以采取PWM调速法,即由单片机的IOB8、IOB9输出一系列频率固定的方波,再通过功率放大来驱动电机,在单片机中编程改变输出方波的占空比就可以改变加到电机上的平均电压,从而可以改变电机的转速。左右轮两个电机转速的配合就可以实现小车的前进、倒退、转弯等功能。 2. 小车循迹的原理 这里的循迹是指小车在白色地板上循黑线行走,通常采取的方法是红外探测法。红外探测法,即利用红外线在不同颜色的物体表面具有不同的反射性质的特点,在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色纸质地板时发生漫反射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,小车上的接收管接收不到红外光。单片机就是否收到反射回来的红外光为依据来确定黑线的位置和小车的行走路线。红外探测器探测距离有限,一般最大不应超过15cm。对于发射和接收红外线的红外探头,可以自己制作或直接采用集成式红外探头。 (1)自制红外探头电路如图1所示,红外光的发送接收选用型号为ST168的对管。当小车在白色地面行驶时,装在车下的红外发射管发射红外线信号,经白色反射后,被接收管接收,一旦接收管接收到信号,那么图中光敏三极管将导通,比较器输出为低电平;当小车行驶到黑色引导线时,红外线信号被黑色吸收后,光敏三极管截止,比较器输出高电平,从而实现了通过红外线检测信号的功能。将检测到的信号送到单片机I/O口,当I/O口检测到的信号为高电平时,表明红外光被地上的黑色引导线吸收了,表明小车处在黑色的引导线上;同理,当I/O口检测到的信号为低电平时,表明小车行驶在白色地面上。此种方法简单,价格便宜,灵敏度可调,但是容易受到周围环境的影响,特别是在图1较强的日光灯下,对检测到的信号有一定的影响。 (2)集成式红外探头可以采用型号为E3F-DS10C4集成断续式光电开关探测器,它具有简单、可靠的工作性能,只要调节探头上的一个旋钮就可以控制探头的灵敏度。该探头输出端只有三根线(电源线、地线、信号线),只要将信号线接在单片机的I/O口,然后不停地对该I/O口进行扫描检测,当其为高电平时则检测到白纸,当为低电平时则检测到黑线。此种探头还能有效地防止普通光源(如日光灯等)的干扰。其缺点则是体积比较大,占用了小车有限的空间。 3.红外探头的安装 在小车具体的循迹行走过程中,为了能精确测定黑线位置并确定小车行走的方向,需要同时在底盘装设4个红外探测头,进行两级方向纠正控制,提高其循迹的可靠性。这4个红外探头的具体位置如图2所示。图中循迹传感器共安装4个,全部在一条直线上。其中InfraredMR与InfraredML 为第一级方向控制传感器,InfraredSR 与InfraredSL 为第二级方向控制传感器。小车行走时,始终保持黑线(如图2 中所示的行走轨迹黑线)在InfraredMR和InfraredML这两个第一级传感器之间,当小车偏离黑线时,第一级探测器一旦探测到有黑线,单片机就会按照预先编定的程序发送指令给小车的控 制系统,控制系统再对小车路径予以纠正。若小车回到了轨道上,即4个探测器都只检测到白纸,则小车会继续行走;若小车由于惯性过大依旧偏离轨道,越出了第一级两个探测器的探测范围,这时第二级动作,再次对小车的运动进行纠正,使之回到正确轨道上去。可以看出,第二级方向探测器实际是第一级的后备保护,从而提高了小车循迹的可靠性。 4.软件控制 其程序控制框图如图3。小车进入循迹模式后,即开始不停地扫描与探测器连接的单片机I/O口,一旦检测到某个I/O口有信号,即进入判断处理程序(switch),先确定4个探测器中的哪一个探测到了黑线,如果InfraredML(左面第一级传感器)或者InfraredSL(左面第二级传感器)探测到黑线,即小车左半部分压到黑线,车身向右偏出,此时应使小车向左转;如果是InfraredMR(右面第一级传感 器)或InfraredSR(右面第二级传感器)探测到了黑线,即车身右半部压住黑线,小车向左偏出了轨迹,则应使小车向右转。在经过了方向调整后,小车再继续向前行走,并继续探测黑线重复上述动作。 由于第二级方向控制为第一级的后备,则两个等级间的转向力度必须相互配合。 电动循迹小车设计1. 小车控制及驱动单元的选择 此部分是整个小车的大脑,是整个小车运行的核心部件,起着控制小车所有运行状态的作用。通常选用单片机作为小车的核心控制单元,在这里用台湾凌阳公司的SPCE061A单片机来做小车的控制单元。SPCE061是一款拥有2K RAM、32KFlash、32 个I/O 口,并集成了AD/DA功能强大的16位微处理器,它还拥有丰富的语音处理功能,为小车的功能扩展提供了相当大的空间。只要按照该单片机的要求对其编制程序就可以实现很多不同的功能。小车驱动电机一般利用现成的玩具小车上的配套直流电机。考虑到小车必须能够前进、倒退、停止,并能灵活转向,在左右两轮各装一个电机分别进行驱动。当左轮电机转速高于右轮电机转速时小车向右转,反之则向左转。为了能控制车轮的转速,可以采取PWM调速法,即由单片机的IOB8、IOB9输出一系列频率固定的方波,再通过功率放大来驱动电机,在单片机中编程改变输出方波的占空比就可以改变加到电机上的平均电压,从而可以改变电机的转速。左右轮两个电机转速的配合就可以实现小车的前进、倒退、转弯等功能。 2. 小车循迹的原理 这里的循迹是指小车在白色地板上循黑线行走,通常采取的方法是红外探测法。红外探测法,即利用红外线在不同颜色的物体表面具有不同的反射性质的特点,在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色纸质地板时发生漫反射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,小车上的接收管接收不到红外光。单片机就是否收到反射回来的红外光为依据来确定黑线的位置和小车的行走路线。红外探测器探测距离有限,一般最大不应超过15cm。对于发射和接收红外线的红外探头,可以自己制作或直接采用集成式红外探头。 (1)自制红外探头电路如图1所示,红外光的发送接收选用型号为ST168的对管。当小车在白色地面行驶时,装在车下的红外发射管发射红外线信号,经白色反射后,被接收管接收,一旦接收管接收到信号,那么图中光敏三极管将导通,比较器输出为低电平;当小车行驶到黑色引导线时,红外线信号被黑色吸收后,光敏三极管截止,比较器输出高电平,从而实现了通过红外线检测信号的功能。将检测到的信号送到单片机I/O口,当I/O口检测到的信号为高电平时,表明红外光被地上的黑色引导线吸收了,表明小车处在黑色的引导线上;同理,当I/O口检测到的信号为低电平时,表明小车行驶在白色地面上。此种方法简单,价格便宜,灵敏度可调,但是容易受到周围环境的影响,特别是在图1较强的日光灯下,对检测到的信号有一定的影响。 (2)集成式红外探头可以采用型号为E3F-DS10C4集成断续式光电开关探测器,它具有简单、可靠的工作性能,只要调节探头上的一个旋钮就可以控制探头的灵敏度。该探头输出端只有三根线(电源线、地线、信号线),只要将信号线接在单片机的I/O口,然后不停地对该I/O口进行扫描检测,当其为高电平时则检测到白纸,当为低电平时则检测到黑线。此种探头还能有效地防止普通光源(如日光灯等)的干扰。其缺点则是体积比较大,占用了小车有限的空间。 3.红外探头的安装 在小车具体的循迹行走过程中,为了能精确测定黑线位置并确定小车行走的方向,需要同时在底盘装设4个红外探测头,进行两级方向纠正控制,提高其循迹的可靠性。这4个红外探头的具体位置如图2所示。图中循迹传感器共安装4个,全部在一条直线上。其中InfraredMR与InfraredML 为第一级方向控制传感器,InfraredSR 与InfraredSL 为第二级方向控制传感器。小车行走时,始终保持黑线(如图2 中所示的行走轨迹黑线)在InfraredMR和InfraredML这两个第一级传感器之间,当小车偏离黑线时,第一级探测器一旦探测到有黑线,单片机就会按照预先编定的程序发送指令给小车的控 制系统,控制系统再对小车路径予以纠正。若小车回到了轨道上,即4个探测器都只检测到白纸,则小车会继续行走;若小车由于惯性过大依旧偏离轨道,越出了第一级两个探测器的探测范围,这时第二级动作,再次对小车的运动进行纠正,使之回到正确轨道上去。可以看出,第二级方向探测器实际是第一级的后备保护,从而提高了小车循迹的可靠性。 4.软件控制 其程序控制框图如图3。小车进入循迹模式后,即开始不停地扫描与探测器连接的单片机I/O口,一旦检测到某个I/O口有信号,即进入判断处理程序(switch),先确定4个探测器中的哪一个探测到了黑线,如果InfraredML(左面第一级传感器)或者InfraredSL(左面第二级传感器)探测到黑线,即小车左半部分压到黑线,车身向右偏出,此时应使小车向左转;如果是InfraredMR(右面第一级传感 器)或InfraredSR(右面第二级传感器)探测到了黑线,即车身右半部压住黑线,小车向左偏出了轨迹,则应使小车向右转。在经过了方向调整后,小车再继续向前行走,并继续探测黑线重复上述动作。 由于第二级方向控制为第一级的后备,则两个等级间的转向力度必须相互配合。第二级通常是在超出第一级的控制范围的情况下发生作用,它也是最后一层保护,所以它必须要保证小车回到正确轨迹上来,则通常使第二级转向力度大于第一级,即level2>level1(level1、level2为小车转向力度,其大小通过改变单片机输出的占空比的大小来改变),具体数值在实地实验中得到。根据上面所讲述的方法,我们可以较容易地做出按照一定轨迹行走的智能电动小车。但是按照该方法行走的小车如果是走直线,有可能会是蛇形前进。为了使小车能够按轨迹行走的更流畅,可以在软件编程时运用一些简单的算法。例如,在对小车进行纠偏时,适当提前停止纠偏,而不要等到小车完全不偏时再停止,以防止小车的过冲。 第二级通常是在超出第一级的控制范围的情况下发生作用,它也是最后一层保护,所以它必须要保证小车回到正确轨迹上来,则通常使第二级转向力度大于第一级,即level2>level1(level1、level2为小车转向力度,其大小通过改变单片机输出的占空比的大小来改变),具体数值在实地实验中得到。 根据上面所讲述的方法,我们可以较容易地做出按照一定轨迹行走的智能电动小车。但是按照该方法行走的小车如果是走直线,有可能会是蛇形前进。为了使小车能够按轨迹行走的更流畅,可以在软件编程时运用一些简单的算法。例如,在对小车进行纠偏时,适当提前停止纠偏,而不要等到小车完全不偏时再停止,以防止小车的过冲
找个专门研究电路的一块研究

6,关于智能循迹小车

恩?要显示什么是你的项目要求,前期调试的时候可以显示一些能够帮助分析问题的信息,比如传感器的状态,电机的状态,程序中一些关键变量的值等等,这些都只是起到协助分析程序的作用,最终成品中要显示什么那得看你的项目要求显示什么了,祝成功~
<p>电设小车循迹模块 转自:</p> <p><a href="http://wenwen.soso.com/z/urlalertpage.e?sp=shttp%3a%2f%2fblog.sina.com.cn%2fs%2fblog_4bb018e10100ermy.html" target="_blank">http://blog.sina.com.cn/s/blog_4bb018e10100ermy.html</a></p> <p>供参考:</p> <p>//包含所需头文件<br>#include &lt;iom16v.h&gt;<br>#include &lt;macros.h&gt;<br>#include"time1_init.h"<br>#include"motor.h"</p> <p></p> <p>#define ahead 1<br>#define backwards 0<br>#define compare(x,y) (x&lt;y?1:0)<br>#define mid 0x17</p> <p>//端口初始化<br>void port_init(void)<br>{<br>porta = 0x00;<br>ddra = 0x00;<br>portb = 0x00;<br>ddrb = 0x08;<br>portc = 0x00;<br>ddrc = 0x00;<br>portd = 0x00;<br>ddrd = 0x00;<br>}</p> <p>void timer0_init(void)<br>{<br>tccr0 = 0x00;//停止定时器<br>tcnt0 = 0x00;//初始值<br>ocr0 = 0x17;//匹配值<br>timsk |= 0x00;//中断允许<br>tccr0 = 0x7d;//启动定时器<br>}</p> <p>void adc_init(void)<br>{<br>//adc转换初始化<br>adcsra = 0x00; //禁止ad转换<br>adcsra|=bit(adif);<br>admux=0x46;<br>sfior |= 0x00;<br>acsr = 0x80; //禁止模拟比较器<br>adcsra = 0xe7;<br>}</p> <p>void init_devices(void)<br>{<br>cli(); //禁止所有中断<br>mcucr = 0x00;<br>mcucsr = 0x80;//禁止jtag<br>gicr = 0x00;<br>port_init();<br>timer0_init();<br>timer1_init();<br>adc_init();<br>sei();//开全局中断<br>}</p> <p></p> <p></p> <p>uint sensor_head[3],sensor_back[3],cord; //存储6个传感器ad转换的值<br>uchar offset ; //黑线偏移小车中心轴的距离<br>uint sensor_compare_head[3]={300,300,300},sensor_compare_back[3]={300,300,300}; //判断黑线是否位于传感器下的阈值</p> <p>uchar start_head_sensor(void)<br>{<br>uchar i,j=0,sum=0; <br>admux=0x40;<br>adcsra=0xc7;<br>while(adcsra&amp;bit(adsc));<br>for(i=0;i&lt;3;i++)<br>{<br>admux=0x40+i; //启用前端传感器0,1,2通道<br>adcsra=0xc7;<br>while(adcsra&amp;bit(adsc));<br>sensor_head[i]=adc;<br>}<br>for(i=3;i;i--)<br>{<br>if(compare(sensor_head[i-1],sensor_compare_head[i-1]))<br>{<br>sum+=i-1;<br>j++;<br>}<br>}<br>if(j)<br>offset=sum*2/j;<br>admux=0x46;<br>adcsra=0xe7;<br>return offset;<br>}<br><br>uchar start_back_sensor(void)<br>{<br>uchar i,j=0,sum=0;<br>admux=0x43;<br>adcsra=0xc7;<br>while(adcsra&amp;bit(adsc));<br>for(i=0;i&lt;3;i++)<br>{<br>admux=0x43+i; //启用前端传感器0,1,2通道<br>adcsra=0xc7;<br>while(adcsra&amp;bit(adsc));<br>sensor_back[i]=adc; <br>}<br>for(i=3;i;i--)<br>{<br>if(compare(sensor_back[i-1],sensor_compare_back[i-1]))<br>{<br>sum+=i-1;<br>j++;<br>}<br>}<br>if(j)offset=sum*2/j;<br>admux=0x46;<br>adcsra=0xe7;<br>return offset;<br>}</p> <p>//角度传感器滤波函数<br>uint cord_sensor(void)<br>{<br>uchar i;<br>uint max=0,min=1023,sum=0;<br>for(i=0;i&lt;5;i++)<br>{<br>adcsra|=bit(adif);<br>while(!(adcsra&amp;bit(adif)));<br>cord=adc;<br>sum+=cord;<br>max=(max&gt;cord)?max:cord;<br>min=(min&lt;cord)?min:cord;<br>}<br>return (sum-max-min)/3;<br>}</p> <p>void direc_ctrl(uchar x,uchar y)<br>{<br>if(y)<br>{<br>if(x==0)ocr0=mid+3;<br>if(x==4)ocr0=mid-3;<br>if(x==2) ocr0=mid;<br>}<br>else ocr0=mid+x-2; <br>}</p> <p>void menmber_path(void)<br>{<br>uchar j;<br>uint i;<br>uint max_head[3]={0,0,0},min_head[3]={1023,1023,1023},max_back[3]={0,0,0},min_back[3]={1023,1023,1023};<br>for(i=4000;i;i--)<br>{<br>start_head_sensor();<br>for(j=0;j&lt;3;j++)<br>{<br>max_head[j]=(max_head[j]&gt;sensor_head[j])?max_head[j]:sensor_head[j];<br>min_head[j]= (min_head[j]&lt;sensor_head[j])?min_head[j]:sensor_head[j];<br>}<br>start_back_sensor();<br>for(j=0;j&lt;3;j++)<br>{<br>max_back[j]=(max_back[j]&gt;sensor_back[j])?max_back[j]:sensor_back[j];<br>min_back[j]= (min_back[j]&lt;sensor_back[j])?min_back[j]:sensor_back[j];<br>} <br>}<br>for(j=0;j&lt;3;j++)<br>{<br>sensor_compare_head[j]=(max_head[j]+min_head[j])/2;<br>sensor_compare_back[j]=(max_back[j]+min_back[j])/2;<br>}<br>}<br><br>uchar head_sensor_all(void)<br>{<br>start_head_sensor();<br>if( compare(sensor_head[0], sensor_compare_head[0]) &amp;&amp; compare(sensor_head[1], sensor_compare_head[1]) &amp;&amp; compare(sensor_head[2], sensor_compare_head[2]))<br>return 1;<br>else<br>return 0;<br>}</p> <p>uchar back_sensor_all(void)<br>{<br>start_back_sensor();<br>if( compare(sensor_back[0], sensor_compare_back[0]-30) &amp;&amp; compare(sensor_back[1], sensor_compare_back[1]-30) &amp;&amp; compare(sensor_back[2], sensor_compare_back[2]-30))<br>return 1;<br>else<br>return 0;<br>}</p> <p></p> <p><br>void search_path_ahead(uchar speed)<br>{<br>motor_autorun(ahead,speed);<br>while(1)<br>{<br>if(head_sensor_all())<br>{<br>motor_stop();<br>return;<br>}<br>else<br>{ <br>direc_ctrl(offset,1);<br>} <br>}<br>}</p> <p><br><br>void search_path_backward(uchar speed)<br>{<br>motor_autorun(0,speed);<br>while(1)<br>{<br>if(back_sensor_all())<br>{<br>motor_stop();<br>return;<br>}<br>else<br>direc_ctrl(offset,0); <br>}<br>}</p>

文章TAG:循迹  小车  电磁  智能  循迹小车  
下一篇