使用8051的线路跟随机器人

直线跟随机器人是最早的自动导引机器人之一。它们能够跟随对比背景上标记的线条,通常是白色表面上的黑线或黑色表面上的白线。通常,直线跟随机器人采用闭环反馈算法,控制器利用直线传感器的反馈修正机器人的路径。传感器通常是LED/LDR、LED/光电二极管或LED/光电晶体管对,控制器是执行所需反馈算法的电子电路。齿轮电机用于驱动机器人车轮。

笔记:-如果您对基于Arduino的开发感兴趣,我们已经创建了同样的事情基于arduino的直线跟随机器人也是。您可以尝试基于Arduino的电路,了解如何使用不同的控制器开发相同的项目。

这里呈现的线从动机器人旨在遵循白色背景上的黑线。它具有一对传感器(LED / LDR),并在简单的“算法中心”上的简单“对齐机器人”。实际上,您不需要微控制器来实现这样一个简单的机器人。一组比较器和电机驱动器电路将愉快地完成作业。但我正在使用微控制器来展示该技术。此项目还可作为高级线路跟随机器人的平台,该机器人适用于复杂算法。Atmel的AT89S52是这里使用的微控制器。

您现在可以从商店购买此项目

立即购买

传感器

传感器部件由一组用于左侧和右侧的LED/LDR对组成。这些LED/LDR对探测到机器人应该漫游的白色表面上的黑线。LDR的电阻和落在其上的光线之间呈反比关系。当特定的LED/LDR对位于白色表面上方时,反射光落在LDR上,其电阻下降,反之,当LED/LDR对位于黑线上方时,其电阻上升。LDRs电阻的这种变化用于评估直线跟随机器人在X-Y平面上的方向。下图描述了传感器电路。

光传感器线路追随器机器人

在电路中,电阻器R1和R2限制通过发光二极管D1和D2的电流。电阻器R3、R5和R6、R8与相应的LDR一起形成分压器网络。传感器电路的输出取自电路图中标记为A和B的点。下表显示了传感器模块可能方向的节点A和B处的电压。

比较电路。

比较器电路的作业是将传感器的模拟电压输出转换为以读取微控制器的数字格式。比较器电路围绕opamp IC LM324(IC1)构建。LM324是一般的四边形Opamp,可以从单个电源操作。在LM324内的四个比较器中,这里只使用两个。一个用于左侧,另一个用于右侧。比较器部分的电路图如下图所示。

线路跟随机器人比较器预设电阻器R10和R11分别用于设置左比较器和右比较器的1V参考电压。左右传感器(节点A和B)的输出连接到左右比较器上的非反相输入。左比较器的输出连接到微控制器的P1.o,右比较器的输出连接到微控制器的P1.1。两个比较器均以非反相模式接线,下表显示了它们相对于可能输入电压组合的输出电压。

线路跟随机器人比较器

微控制器(AT89S52)。

这里的微控制器的任务是根据来自左右比较器的反馈信号来控制左右电机,使机器人保持在正确的路径上(黑线)。由微控制器执行的逻辑用于将机器人保持在轨道中,如下表所示。

线追随器机器人逻辑

电机驱动电路。

电机驱动电路的工作是根据微控制器的输出信号驱动电机。电机驱动电路基于ULN2003A IC。ULN2003A是一种高电流(500mA)、高电压(50V)达林顿阵列,由七对达林顿对组成,共有发射极和集电极开路。在IC中可用的七个通道中,这里只使用了两个。一个用于左声道,一个用于右声道。电机驱动电路的示意图如下图所示。ULN2003的操作很容易解释。当一个特定的输入线(比如引脚1)变高时,相应的输出线(引脚16变低),反之亦然。

线从动机器人电机驱动器电容器C4和C5将电路的剩余部分与电动机产生的电气干扰隔离。当电动机切换时产生的后部EMF电压,并且由于刷子的电弧引起的电压尖峰主要考虑上述所述电气干扰。这些电容器非常重要,没有它们,您可以预期从微控制器侧突然崩溃。

完整的电路图。

线从动机器人电路

开关S1、电容器C3和电阻器R9构成微控制器的去抖动复位电路。电容器C1、C2和12MHz晶体X1与微控制器的时钟电路相关联。R12和R13是上拉电阻器。电路的其余部分已经解释过了。

线路跟随机器人程序

ORG 000H //原点MOV P1,#00000011B //将端口1作为输入端口MOV P0,#00000000B //将端口0作为输出端口返回:MOV P0,#00000011B //启动两个电机JB P1.0,Label1 // BABLES1的分支1如果左传感器在CLR P0.0 //停止左电机SETB P0.1 //运行右电机acall等待1 //呼叫等待1子程序sjmp返回//跳回后循环标签1:jb p1.1,Label2 // BABLES TABS2如果右传感器在SETB P0.0 //上运行左电机CLR P0.1 //停止右电机acall viapt2 //呼叫等待2子程序sjmp返回//跳回后循环标签2:sjmp返回//跳回回循环等待1:jnb p1.0,等待1 //等待直到从waitward偏离偏向的RET //返回的RET //返回从等待1子程序等待2:JNB P1.1,等待2 //等待机器人返回向左偏差ret //从wait2子程序结束//结束语句返回

关于该计划。

程序的第一部分初始化端口1作为输入端口和端口0作为输出部分。在此之后,两个电机都开始,使机器人直线。然后程序检查是否有偏向右侧。如果右向偏差,则程序停止左电机并运行右电机,然后等待,直到机器人从偏差回来。当机器人再次返回时,两个电机都开始。

如果没有偏向右侧,则程序检查向左偏差。如果左侧存在偏差,则停止左电机,并激活右电机。保持这种情况,直到机器人回到轨道。当机器人再次回到轨道时,两个电机都开始了。最后,如果左或右侧没有偏差,两个电机都保持在上面。

笔记。

  • 即使电路图所示的电源为5V DC,也可以使用6V电池供电。
  • 为了设置机器人,将机器人放在线上,使得白色和黑线之间的传感器对点都进入它们之间。然后调整预设电阻R10和R11,使LED D3和D4发出。
  • 传感器LED D1和D2是超亮绿色LED。
  • OPAMP输出LED D3和D4是通用,微型,黄色LED。
  • 传感器LDR R4和R7是通用LDR。

买线跟随机器人项目套件

测试视频。

视频将很快添加。

照片。

照片很快就会增加

另外,检查我们的帖子使用Arduino的线路跟随机器人

作者

31.注释

  1. 智能工程师

    plz添加工作视频

  2. Vinay.

    但是当两个IR都给出0时,它应该停止

  3. sreehari.

    这是该电路中编程微控制器的软件用户

  4. sreehari.

    您应该介绍此电路图的编程软件

  5. 马鞍山

    C代码为此项目...
    #包括
    SBit Sensor1 = P1 ^ 0;
    SBit Sensor2 = P1 ^ 1;
    SBIT MOTOR1 = P0 ^ 0;
    sbit电机2=P0^1;
    void main()
    {
    p0 = 0x00;
    而(1)
    {
    if(Sensor1 && Sensor2)
    {
    motor1 = 1;
    motor2 = 1;
    }
    否则if(传感器1 && sensor2 == 0)
    {
    motor1 = 1;
    motor2 = 0;
    }
    否则if(传感器1 == 0 && sensor2)
    {
    motor1 = 0;
    motor2 = 1;
    }
    否则if(传感器1 == 0 && sensor2 == 0)
    {
    motor1 = 0;
    motor2 = 0;
    }
    }
    }

  6. lkngoc20.

    我可以使用另一个RPM的齿轮直流电机:50,100,...?

  7. 适当的

    “C”线路跟随机器人的代码:
    #包括
    sbit传感器左侧=P1^0;
    SBIT传感器 - 右= P1 ^ 1;
    sbit电机左=P0^0;
    sbit电机右侧=P0^1;

    void main()
    {
    传感器 - 左=传感器 - 右= 0;
    电动机 - 左=电动机 - 右= 0;

    而(1)
    {
    if((传感器左== 1)&&(传感器右== 0))
    {
    电动机 - 左= 1;
    电动机 - 右= 0;
    }
    否则if((传感器左== 0)&&(传感器右== 1))
    {
    电动机 - 左= 0;
    右电机=1;
    }
    否则if((传感器左== 0)&&(传感器右== 0))
    {
    电动机 - 左= 0;
    电动机 - 右= 0;
    }

    否则if((传感器左== 1)&&(传感器右== 1))
    {
    电动机 - 左= 1;
    右电机=1;
    }
    }
    }

    根据您的要求调整电机和传感器。

  8. 兰诺斯·桑班

    你能详细介绍一下这个汇编语言程序吗?这个程序是在IC AT89s52中为使用微控制器机器人的直线跟随器编写的…。快回答,先生…。。谢谢你的努力。。

  9. desean.

    你可以帮助在c中写下该代码吗?

    • Jojo.

      @戴斯安——对不起!我们现在没有C代码。我们稍后将尝试发布C代码。

  10. 普罗森吉特森古普塔酒店

    我们可以使用L293D H-Bridge IC ......计划应该用C写入ASLO,所以可以选择选择

  11. Sanam Suresh.

    我将在5年的计算机学习中创建前进的Andriode人类机器人,感谢给予这么多想法

  12. ashwin

    有关的先生\mam请发送任何微控制器项目的全部细节,即如何建造…………至…………完成。

  13. 莫希特

    你能添加视频吗???????????

  14. 拉什

    先生......发给我螺旋桨风扇LED时钟的电路图...... Plzz ......紧急...... .For我

    • rekha.

      这是超级......但即使我需要一个螺旋桨时钟的电路图,所以Prezzzzz发送Sir ......

    • ashok kumawat

      我没有…自己找

  15. 萨加尔·巴加特

    通过使用这个计划,即使有海峡轨道......所以PLZ检查它并提出了适当的变化,也无法以海峡轨道运行机器人

  16. Akshat.

    请尽快上传视频和照片。我真的需要这个

  17. 阿吉特

    是的......这是一个很好的项目......这个给定的程序足以运行对象?

  18. Alexander Amalanathan.

    非常简单而漂亮的项目。但是尝试提供与程序语言一样多的信息,使用的编译器等,因此即使是新手将能够使用它。谢谢。

    • 掠夺

      该程序是写的汇编语言。
      使用名为MIDE-51的自由软件将装配程序转换为六尖端(仅限Google)。使用系统编程器(ISP)中的六尖端被烧入微控制器。这种ISP程序员在电子商店和在线电子商店方便使用。

  19. 鲁佩什

    你可以用什么方式解释它

  20. 蒙大利亚

    Yaa PLZ添加视频ND也是工作的照片...... ND也将一个通过一个过程放在上面。PLZ SIR我想深深地了解这个项目......谢谢你所有的一部分

  21. syed shabaz.

    V可以使用8051而不是89S52实现DIS项目

  22. Bhuwan Chaudhary

    PLZ给我一个尤其是微控制器的每个部件组件的解释

  23. 弥赛亚

    PLS添加功能电路的视频。

    • 掠夺

      请继续前进。它的工作。我已经测试过了。
      视频将在本周添加

      • 苹果智能语音助手

        请添加视频

  24. 涅瓦赫

    太好了,谢谢。。

  25. 拉米

    太有帮助了,谢谢你们

Baidu