机器人
今天我们将使用AVR 单片机构建一个线跟随机器人。
大多数红外传感器用于检测线路。红外传感器擅长检测白色或黑色表面。尽管您可以使用其他能够检测所有颜色的复杂传感器,并且可以制造出可以遵循所有颜色线的机器人。即使通过改变角度改变路径并保持跟随线,机器人也应该能够检测到线。此外,它应该在停止区进入线路的任何地方停止。
线跟随机器人现在广泛用于制造业、医疗、家庭应用和货物仓库。机器人不仅限于这些应用,还可以在未来的许多应用中扩展其应用。
线跟随机器人的概念
红外传感器是该项目的关键参与者。红外传感器放置在机器人的前面,以跟踪绘制的黑线和表面。机器人放置在生产线之间,在红外传感器的帮助下,机器人跟踪生产线。红外传感器将读数反馈给微控制器,在红外读数的帮助下,微控制器向左侧或右侧移动电机,并再次将机器人带到路径上。
Line Follower Robot 能够在 IR 传感器的帮助下跟踪线路。该传感器具有红外发射器和红外接收器。IR 发射器(IR LED)发射光,接收器(光电二极管)等待发射的光返回。IR 光只有在被表面反射时才会返回。然而,所有表面都不会反射红外光,只有白色表面可以完全反射它们,黑色表面将完全观察它们,如下图所示。
现在我们将使用 两个 IR 传感器 来检查机器人是否在轨道上,并使用两个电机来纠正机器人是否移出轨道。这些电机需要大电流并且应该是双向的;因此我们使用像 L293D 这样的电机驱动模块。我们还需要一个像 ATmega16这样的微控制器 来根据来自 IR 传感器的值来指示电机。其简化框图如下所示。
这两个 IR 传感器将放置在线路的任一侧。如果没有传感器检测到黑线,则 AVR 微控制器会指示电机向前移动,如下所示
如果左传感器出现在黑线上,则微控制器通过单独旋转右轮来指示机器人左转。
如果右传感器出现在黑线上,则微控制器通过单独旋转左轮来指示机器人右转。
如果两个传感器都在黑线上,机器人停止。
这样,机器人将能够在不超出轨道的情况下跟随线路。现在让我们看看电路和代码的样子。
所需组件
直流齿轮马达(2台)
红外传感器模块(2个)
L293D 模块
无线电源(例如电池、移动电源)
机器人躺椅
Atmega16微控制器IC
16Mhz 晶体振荡器
两个 100nF 电容器
两个 22pF 电容器
按钮
跳线
面包板
USBASP v2.0(Atmega16编程)
电路原理图
如下图所示连接所有组件
为线跟随机器人编程 Atmega16
这里 Atmega16 使用 USBASP 和 Atmel Studio7.0 进行编程。如果您不知道如何使用 USBASP 对 Atmega16 进行编程,请访问链接。完整的程序在项目结束时给出,只需使用 JTAG 编程器和 Atmel Studio 7.0 上传 Atmega16 中的程序,如上一教程所述。
我们试图使代码尽可能简短。所以我们在这段代码中使用了宏和特殊功能寄存器。
if (bit_is_clear( PINA , leftSen )){ // 检查左传感器是否关闭
该语句检查连接左侧传感器的 PA0 是低电平还是高电平。
我们遵循四个条件来读取槽式红外传感器。红外传感器根据它们在机器人正面的位置命名。左红外是左传感器,右红外是右传感器。以下条件将决定机器人的运动。
我们根据上述条件编写了代码。唯一的变化是我们只使用 L293D 的两个输入引脚来驱动两个电机。
/* 使用 Atmega16 的线跟随机器人
电路文摘(www.circuitdigest.com)*/
#include
#define leftSen PA0 //在 PA0 处连接左侧传感器
#define rightSen PA1 //在 PA1 处连接右传感器
诠释主要(无效)
{
DDRA=0xFC;// 使 PA0,PA1 作为两个传感器的输入 0x0b11111100
DDRC=0xFF;// 使端口作为输出连接电机引脚
而(1)
{
PINA=0x03;//初始化PA0和PA1
if(bit_is_clear(PINA,leftSen)){ // 检查左传感器是否关闭
if(bit_is_clear(PINA,rightSen)) { // 检查右传感器是否关闭
端口C=0b00000000;// 如果两个传感器都为零
} // 然后停止机器人
别的{
PORTC=0b00000001;// 如果右为ON,则向左走
}
}
else // 检查左传感器是否打开
{
if(bit_is_clear(PINA,rightSen)) { // 检查右传感器是否关闭
PORTC=0b00000010;// 这意味着左传感器打开
} // 所以向右走
别的{
端口C=0b00000011;// 如果两个传感器都打开
} // 然后继续移动机器人
}
}
}
全部0条评论
快来发表一下你的评论吧 !