跳到主要内容

基于单片机的巡线机器人

你是否曾经自己制作过机器人?这是一个非常简单且易于实现的机器人项目。在本项目中,我将解释如何设计和构建一个基于单片机的巡线机器人。巡线机器人是一种基础机器人,能够沿着特定路径(通常是在浅色表面上的一条黑线)移动,该路径具有一定宽度。

alt text

1. 巡线机器人电路原理

该电路主要由8051单片机、两个红外传感器、电机和电机驱动芯片(嵌入在模块中)组成。巡线机器人需要机械结构的底盘。我使用了一个4轮亚克力底盘。两个红外传感器安装在机器人前端,二极管面向地面。

当机器人放置在固定路径上时,它通过检测线条来沿着路径移动。机器人的运动方向取决于两个传感器的输出。当两个传感器都位于路径线上时,机器人向前移动。如果左侧传感器偏离线条,机器人向右移动。同样,如果右侧传感器偏离路径,机器人向左移动。每当机器人偏离其路径时,红外传感器会检测到这一点。

红外传感器由红外发射器和红外接收器组成。当机器人在黑线上移动时,红外光线被黑色表面持续吸收,没有反射光线,因此输出为高电平。每当机器人移动到白色表面时,它开始反射红外光线,使输出变为低电平。因此,根据红外传感器的输出,单片机指示电机改变其方向。

2. 巡线机器人电路图

alt text

2.1 电路中的元件

  • 8051单片机
  • 8051单片机开发板(推荐)
  • 10KΩ电阻 × 2
  • 10µF电容
  • 11.0592MHz石英晶体
  • 33pF电容 × 2
  • 按钮
  • 电机驱动模块(L298N)
  • 带电机的机器人底盘
  • 红外传感器 × 2

3. 如何设计巡线机器人?

该电路包括8051单片机、红外传感器(带有红外发射器和红外接收器)、L298N电机驱动模块、带4个轮子和4个电机的机器人底盘、电池盒。

8051单片机是本项目的主要组件。它是一个8位单片机,具有32个可编程I/O引脚。它具有许多外设功能,如可编程UART、两个8位定时器/计数器、两个中断、外部存储器访问等。

机器人的直流电机通过电机驱动芯片连接到控制器。由于控制器的输出最大为5V且电流很小,因此无法直接驱动电机。因此,需要使用电机驱动芯片来放大电压。L298N可以驱动高达36V的电机,并能提供3A的驱动电流。

电机驱动芯片有15个引脚,通常以多瓦特15封装形式出现。这些芯片在市场上很容易以模块形式买到。电机驱动模块的输入引脚连接到PORT2引脚P2.0、P2.1、P2.2和P2.3。

两个红外传感器连接到单片机的P2.6和P2.7引脚。组装底盘,并将机器人的四个轮子连接到电机,这些电机反过来连接到单片机。

3.1 红外传感器的设计

红外传感器电路主要由红外发射器和红外接收器组成。红外发射器类似于一个LED,其工作电压约为1.4V。因此,为了保护它,需要在其上串联一个150Ω的电阻,并正向偏置。红外接收器反向偏置,并在VCC和接收器之间放置一个10KΩ的电阻。输出从电阻和红外接收器之间取出。

由于这是一个模拟输出,我们可以通过使用一个简单的比较器芯片(如LM358)将其转换为数字高电平和低电平。本项目中使用的红外传感器模块使用相同的配置,电路图如下所示。

alt text

3.2 红外传感器的工作原理

红外发射器持续发射红外光线。当红外发射器在黑色表面上时,这些光线被表面吸收;当它在白色表面上时,这些光线被反射。当没有接收到红外光线时,红外接收器的电阻最大,VCC的电压通过电阻流动。在输出引脚处,电压约为5V。

随着接收器接收到的红外光线强度增加,电阻值减小,发生反向击穿。因此,通过电阻的电压被接地。因此,在输出引脚处,它将产生0V。

alt text

4. 巡线机器人电路工作原理

  1. 首先,在浅色表面上用黑色胶带画出路径。
  2. 将机器人放置在地板上。
  3. 现在为电路通电。
  4. 机器人沿着指定的路径移动。
  5. 当它偏离路径时,传感器会检测到这一点,并自动调整机器人。
alt text

5. 代码

#include<reg51.h>
sbit mot1=P2^0;
sbit mot2=P2^1;
sbit mot3=P2^2;
sbit mot4=P2^3;

sbit s_left=P2^6;
sbit s_right=P2^7;

void forward (void);
void backward (void);
void left (void);
void right (void);

void forward (void)
{
mot1=0;
mot2=1;
mot3=1;
mot4=0;
}
void backward (void)
{
mot1=0;
mot2=1;
mot3=0;
mot4=1;
}
void left (void)
{
mot1=0;
mot2=1;
mot3=0;
mot4=0;
}
void right (void)
{
mot1=0;
mot2=0;
mot3=1;
mot4=0;
}
void stop (void)
{
mot1=0;
mot2=0;
mot3=0;
mot4=0;
}



void main()
{
s_left=1;
s_right=1;
while(1)
{
if(s_left==0 && s_right==0)
{
forward();
}
else if(s_left==1 && s_right==1)
{
stop();
}
else if(s_left==0 && s_right==1)
{
left();
}
else if(s_left==1 && s_right==0)
{
right();
}
}
}

6. 巡线机器人电路应用

  • 该机器人可以用于无人驾驶汽车系统,并增加一些功能,如障碍物检测。
  • 它也可以用于工业和国防应用。

7. 巡线机器人的局限性

  • 巡线机器人需要2-3英寸宽的线条。
  • 如果绘制的黑线强度较低,它可能无法正常移动。
  • 红外传感器有时也会吸收周围环境中的红外光线。因此,机器人可能会以不正确的方式移动。

注意:如果有人对更多机器人项目感兴趣,请访问页面:机器人项目