导航:首页 > 编程语言 > 基于pic的智能循迹避障小车代码

基于pic的智能循迹避障小车代码

发布时间:2023-03-28 03:05:50

Ⅰ 急求基于AT89C51单片机的循迹避障小车电路原理图和主程序(避障模块是超声波测距的),感激不尽啊。

#include<reg51.h>

#define ucharunsignedchar

#defineuintunsignedint

sbitP1_O=P1^;

sbitP1_1=P1^1;

sbitP1_2=P1^2;

sbitP1_3=P1^3;

sbitP0_2=P0^1;

sbitP0_3=P0^2;

voiddelaym1(uintz)

{

uinti;

for(i=0;i<z;i++);

}

voidmain(void)

{

while(1);

{

TRIG=1;

delay(1);

TRIG=0;

while(ECHO==0);

while(ECHO==1)a++;//a每次加1,所时间约21us

delay(30);

a=((340*a*21)/1000)/2;

display();

scan();

z=a;

a=0;

delay(200);}

voidliudianji1()

{

uinti,j;

P0=0X00;

//走直线

for(i=0;i<200;i++)

{for(i=0;i<500;i++)

{

P0_O=1;

P0_1=0;

delaym1(280);

P0_O=0;

P0_1=0;

P0_2=1;

P0_3=0;

delaym1(420);

P0_2=0;

P0_3=0;

}

P0=0X00;

delaym1(30000);

delaym1(30000);}

//右转弯

voidliudianji2()

{for(j=0;j<300;j++)

{P0_O=1;

P0_1=0;

delaym1(300);

P0_O=0;

P0_1=0;

P0_2=1;

P0_3=0;

delaym1(160);

P0_2=0;

P0_3=0;

}

P0=0X00;

delaym1(30000);

delaym1(30000);

//左转弯

voidliudianji3()

{for(i=0;i<600;i++)

{

P0_O=1;

P0_1=0;

delaym1(155);

P0_O=0;

P0_1=0;

P0_2=1;

P0_3=0;

delaym1(650);

P0_2=0;

P0_3=0;

}

P0=0X00;

delaym1(30000);

delaym1(30000);}

P0=0x00;

while(1);

}

}

voidmain(void)

{

while(1)

{

TRIG=1;

delay(1);

TRIG=0;

while(ECHO==0);

while(ECHO==1)a++;//a每次加1,所时间约21us

delay(30);

a=((340*a*21)/1000)/2;

if(a==50)

esle

{voidliudianji3();}

delay(200);

voidliudianji1();

z=a;

a=0;

delay(200);

}

Ⅱ 循迹小车不循迹代码怎么调试

使用digitalRead()函数读取数字引脚的高低电平,循迹模块检测到黑线为高电平HIGH(1),白线为低电平绝脊铅LOW(0),如果循迹模块的指示灯不灵敏或者一闪一闪的,就需要用螺丝刀调节蓝色的电位器,将循迹模块放在黑线上,把灯调亮,然后再回调一些,把灯调灭,这样循迹模块的阈值就刚好在临野旦界点了。

Sensor [0] = digitalRead(10);
Sensor [1] = digitalRead(11);
Sensor [2] = digitalRead(12);
Sensor [3] = digitalRead(13;
2.打印循迹模块的高低电平
使用Serial.print();函数打印循迹的值,在Arino的右上角有个放大镜,可以打开串口监视并好器,电脑连接Arino就可以看到串口的值了

Ⅲ 51单片机智能小车制作,求通俗易懂的讲解

系统的单片机程序:

#include"reg52.h"

#definedet_Dist2.55//

单个脉冲对应的小车行走距离,其值为车轮周长

/4#defineRD9//

小车对角轴长度。

#definePI3.1415926

#defineANG_9090

#defineANG_90_T102

#defineANG_180189/

全局变量定义区。

/sbitP10=P1^0;//

控制继电器的开闭sbitP11=P1^1;//

控制金属接近开关。


(3)基于pic的智能循迹避障小车代码扩展阅读:


控制器部分:接收传感器部分传递过来的信号,并根据事前写入的决策系统(软件程序),来决定机器人对外部信号的反应,将控制信号发给执行器部分。好比人的大脑。

执行器部分:驱动机器人做出各种行为,包括发出各种信号(点亮发光二极管、发出声音)的部分,并且可以根据控制器部分的信号调整自己的状态。

对机器人小车来说,最基本的就是轮子。这部分就好比人的四肢一样。 传感器部分:机器人用来读取各种外部信号的传感器,以及控制机器人行动的各种开关。好比人的眼睛、耳朵等感觉器官。




Ⅳ 51单片机智能两路循迹小车程序,检测到黑线直走,检测不到黑线就左转或右转都可以,需要程序代码麻烦了

别想那么复杂。
首先,你把检测黑线的传感器就当一普通开关。因为,当照射在黑线上时,光线反射能力弱,输出低电平。照在黑线外,则输出高电平。只有高低两种电平,所以,你只需要把它当一个普通开关看待。
然后,既然是普通开关,写代码时只需要位声明以及设置gpio为双向或强拉模式,51单片机都不用设置gpio。
最后,程序里,检测到高电平然后io口电平取反就行。

Ⅳ 用单片机AT89C51设计智能小车,要有循迹、避障、计算路程的功能

这个很麻烦的 自己做不但要有单片机基础 还要花费很多精力

如果你只想应付的话就几个人凑钱 在淘宝上买到类似的小车 大概几百元

如果自己做的话 就花个100~200买个车模 然后自己做控制电路

这个得需要经验 慢慢来

Ⅵ 我是一名大一的学生,单片机学了一点,水平能够做出智能寻迹避障小车,我是看郭天祥的视频学的,现在在编

先买一个价格适中的开发板,如STM32,LPC,飞思卡尔tfu等均可,对照提供的例子程序一个个地进行学习调试。先吃透其中的原理,然后再进神搭漏行ucosii或linux的简游烂枝饥单搭建学习,最终进行系统的学习。

Ⅶ 用labview编程智能循迹小车的程序思路

胶带的宽度一定的话:

四个传感器一字排列的情况最简单:

按1234号传感器命名,照在胶带上状态位为A,否则为a.

直线正常行走时,23号持续为A,14号持续为a.

分析开始右转的逻辑:

  1. 2号变a,继续直线行走,直到4号变A,根据24号间的距离和小车在这段时间内行驶的距离计算出转动角度(这就是动态平面几何问题了,自己画图解一下,注意转弯时候前后中心点的轨迹,胶带宽度是关键,得到的角度不会也不必太精确。这里我只讨论逻辑),然后以比计算结果稍大(目的是确保能让2恢复状态A)的转动角度开始转弯,等到2和3都恢复状态A,小车变回直线行走,等到2号重新变a,小车再恢复到原先的转动角度……后面一直循环就行了

  2. 直线上如果车子前进方向倾斜,和转弯一样,下面以车子向右倾斜为例分析:

    1. 会出现3号变a的情况,继续保持直线行走,直到1号变A,计算出小车在这个过程中行进距离,结合胶带宽度,1和3号间的距离,就可以算出偏离的角度然后决定转动角度。后面具体调整和过弯道一样。

然后我来吐槽为什么要用labview,你是想着拿着笔记本进行无线操控么 - -,嵌入式的labview编程现在还不成熟好吧~

Ⅷ 避障小车原理

避障小车原理:

一、运动机理:

控制前面两个轮子的转动方向就可以控制整个机器人行进的方向:

1、左右两个前轮都向前转,则机器人向“正前方”直线前进;

2、左右两个前轮都向后转,则机器人向“正后方”直线倒退;

3、左前轮向后转,右前轮向前转,则机器人将以后轮为轴心逆时针转动,即实现向“右后方”转弯倒退;

4、左前轮向前转,右前轮向后转,则机器人将以后轮为轴心顺时针转动,即实现向“左后方”转弯倒退。

二、控制原理

在机器人的头部用钢丝做两根触须,一左一右各连接到一个碰撞开关,分别控制两个前轮的旋转方向。

特别注意,左右触须与对应控制的电机是交叉过来的,即:左边的触须连接右边的碰撞开关,控散穗制右边的电机;右边的触须连接左边的碰撞开关,控制左边的电机。

(1)无障碍物

当前方都没有障碍物,左右两个轮子都向前正转,则机器人向“前方”直线前进。

(2)左前方有障碍物

当左前方有障碍物,在左边触须碰到障碍物时,控制右边的轮子反转,则机器人向“左后方”倒退并转弯,即方向转向了障碍物的右边,从而避开了左边的障碍物。

向后倒退转弯会持续一会,在完成转弯之后,左边触须不再碰到障碍物,则两个轮子都正转,机器人继续向新的没有障碍物的“前方”直线前进。

(3)右前方有障碍物

当右前方有障碍物,在右边触须碰到障碍物时,控制左边的轮子反转,则机器人向“右后方”倒退并转弯,即方向转向了障碍物的左边,从而避开了右边的障碍物。

向后倒退转弯会持续一会,在完成转弯之后,右边触须不再碰到障碍物,则两个轮子都正转,机器人继续向新的没有障碍物的“前方”直线前进。

(4)正前方有障碍物

当正前方有障碍物,左右两边的触须都会碰到障碍物,控制左右两边的轮子都反转,则机器人向“正后方”倒退,从而避开障碍物。

在直线倒退持续了一会后,左右两边的触须都不再碰到障碍物,则两个轮子都正转又变成直线前进;然后又会遇到正前方的障碍物又会直线倒退,再直线前进……如此反复变成一个死循环。

三、电路原理

机器人头部有两根钢冲伏卜丝作的触须,触须分别连接在两个碰撞开关上(厅轮注意两根钢丝对应的碰撞开关是交叉的,即:“左—右”钢丝,对应“右—左”碰撞开关)。

(1)没有障碍物时,触须没有被挤压,不触发碰撞开关,碰撞开关默认的通路,给电机供给一个“正方向”的电流,电机于是“顺时针方向”旋转。

(2)有障碍物时,触须被挤压,触发碰撞开关,碰撞开关断开默认通路,连接另外的一组通路,给电机供一个“反方向”的电流,电机于是“逆时针方向”旋转。

阅读全文

与基于pic的智能循迹避障小车代码相关的资料

热点内容
u盘文件给删了 浏览:737
vuejsoauth2 浏览:78
2017微信支付日 浏览:81
机械臂编程如何开发 浏览:21
标书U盘PDF文件要不要签字 浏览:222
ps软件文件复制到d盘 浏览:148
一般工业固废招标文件内容 浏览:583
网站建设报价怎么算 浏览:66
三星a7000升级安卓502 浏览:486
word2010清除分隔符 浏览:781
乐视怎么切换网络 浏览:425
cad打印pdf文件名称与cad不一致 浏览:815
电气与可编程控制是什么 浏览:67
文件名中允许使用英文竖线吗 浏览:531
编程猫在哪里 浏览:775
win8共享文件夹访问权限 浏览:380
cad文件显示为只读不能保存怎么办 浏览:703
如何在系统里忘记网络 浏览:24
中小企业出口数据在哪里找 浏览:715
win8和xp传文件 浏览:75

友情链接