本文概述
什么是直线追随者
直线跟随器机器人是可以遵循路径的自主机器。该路径在黑色表面上看起来像是白线(反之亦然), 也可以作为磁场不可见。
直线跟随器机器人的要求
感应一条线并操纵机器人使其保持在路径上, 同时通过使用反馈机制不断纠正错误的动作, 从而形成了一种简单有效的闭环系统。作为程序员, 我们有机会学习?机器人如何跟随这条线, 因此赋予了机器人类似人类对刺激做出反应的特性。
考虑直线跟随器机器人的实际应用是:
- 工业机器人在车间移动的引导系统
- 在有嵌入磁铁的路上运行的自动化的汽车。
所需硬件
- 12V, 1A DC适配器1件
- 模拟红外传感器3件
- AVR微控制器板1件
- 直流电动机驱动器1件
- AVR USB Programmer-1件
- 1对1连接器-15件
- 10至10 FRC母连接器2件
- 机器人1件
所需软件
- BASCOM-AVR集成开发环境(IDE)
- AVRDUDE-GUI
- WinAVR-2010
- USBasp驱动程序
框图
算法
R =读为0的最右传感器, L =读为0的最左传感器。如果右(或Left)上没有传感器为0, 则L(或R)等于0。
如果所有传感器的读数均为1, 则转到步骤3,
其他,
如果L <R向右移动
如果L> R向左移动
如果L = R前进
如果最后一次在左边看到线, 则逆时针移动;如果最后一次在右边看到线, 则逆时针移动。重复步骤3, 直到找到行。
电路图
考虑基于eagle软件的线路随动机器人的原理图电路为:-
源代码:
$regfile = "m16def.dat".
$crystal = 1000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Rs = Portb.2 , E = Portb.3 , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
Start Timer1
Dim Lb As Integer , Lw As Integer , Lm As Integer , L As Integer
Dim Rb As Integer , Rw As Integer , Rm As Integer , R As Integer
Cls
Lcd "sense black"
Wait 5
Lb = Getadc(1)
Rb = Getadc(0)
Lowerline
Lcd Lb ; "_" ; Rb
Wait 1
Cls
Lcd "sense white"
Wait 5
Lw = Getadc(1)
Rw = Getadc(0)
Lowerline
Lcd Lw ; "_" ; Rw
Wait 1
Cls
Lm = Lw + Lb
Lm = Lm / 2
Rm = Rw + Rb
Rm = Rm / 2
Do
Cls
L = Getadc(1)
R = Getadc(0)
If L < Lm And R < Rm Then
Lcd "fwd"
Pwm1a = 100
Portd.6 = 0
Pwm1b = 100
Portd.3 = 0
Elseif L > Lm And R < Rm Then
Lcd "left"
Pwm1a = 100
Portd.6 = 0
Pwm1b = 0
Portd.3 = 0
Elseif L < Lm And R > Rm Then
Lcd "right"
Pwm1a = 0
Portd.6 = 0
Pwm1b = 100
Portd.3 = 0
Elseif L > Lm And R > Rm Then
Lcd "stop"
Pwm1a = 0
Portd.6 = 0
Pwm1b = 0
Portd.3 = 0
End If
Loop
End
考虑使用BASCOM-AVR集成开发环境(IDE)在Line Follower机器人中使用的源代码的屏幕截图为:
评论前必须登录!
注册