
一、实验器材
1、TPYBoard v 102开发板 1块
2、电机驱动模块L298N 1个
3、直流电机 2个
4、小车底盘 1个
5、4路循迹模块 1个
6、电源开关 1个
7、5号电池 4节
二、4路循迹模块
1、什么是循迹模块
循迹模块检测黑线的原理是红外发射管发射光线到路面,红外光遇到白底则被反射,红外接收管接收到反射光,此时接收管导通,模块的输出端为低电平,即引脚的IO电平输出0,模块的红色发光二极管处于点亮状态;当红外光遇到黑线时则被吸收,红外接收管没有接收到反射光,此时接收管一直处于关闭状态,模块的输出端为高电平,即引脚的IO电平输出1,模块的红色发光二极管处于熄灭状态。模块的检测灵敏度可以通过循迹模块上的电位器进行调节。4路循迹模块输出端口OUT可直接与单片机IO口连接即可,连接方式:首先,把循迹模块跟中间驱动板连接起来,一共有4路,按照顺序接起来就行;

三、电机驱动模块
1、什么是电机驱动模块
电机驱动模块主要是可以控制电机的运行:调速、运行、停止、步进、匀速等操作。
2、L298N的连接及使用方法
L298N模块是2路的H桥驱动,所以可以同时驱动两个电机,接法如图所示使能ENA ENB之后,可以分别从IN1 IN2输入PWM信号驱动电机1的转速和方向,可以分别从IN3 IN4输入PWM信号驱动电机2的转速和方向。我们将电机1接口的OUT1与OUT2与小车的一个电机的正负极连接起来,将电机2接口的OUT3与OUT2与小车的另一个电机的正负极连接起来。接线端子+5v连接TPYboard的VIN,+12v连接TPYBoard的VIN,中间的接线端子GND连接板子GND,In1-In4连接TPYBoard的Y1,Y2,Y3,Y4,通过Y1,Y2与Y3,Y4的高低电平,来控制电机的转动,从而让小车前进,后退,向左,向右。
四、硬件接线图
| TPYBoard v102 | 4路循迹模块 | L298N驱动模块 |
|---|---|---|
| VIN | VCC | |
| GND | GND | |
| X1 | OUT1 | |
| X2 | OUT2 | |
| X3 | OUT3 | |
| X4 | OUT4 | |
| Y1 | In1 | |
| Y2 | In2 | |
| Y3 | In3 | |
| Y4 | In4 | |
| VIN | +12V | |
| GND | GND | |
| VIN | +5V |
五、实演视频
六、源代码
下面是main.py的主程序代码,搭好环境以后,不需要任何类库,只要接好线,把main.py复制进去,小车就可以直接跑起来了
import pyb
from pyb import UART
from pyb import Pin
y1 = Pin('Y1', Pin.OUT_PP)
y2 = Pin('Y2', Pin.OUT_PP)
y3 = Pin('Y3', Pin.OUT_PP)
y4 = Pin('Y4', Pin.OUT_PP)
x1 = Pin('X1', Pin.IN)
x2 = Pin('X2', Pin.IN)
x3 = Pin('X3', Pin.IN)
x4 = Pin('X4', Pin.IN)
def go():
y1.high()
y4.high()
y2.low()
y3.low()
def left():
y2.high()
y4.high()
y1.low()
y3.low()
def right():
y1.high()
y3.high()
y2.low()
y4.low()
def back():
y2.high()
y3.high()
y1.low()
y4.low()
#检测到返回1
print(x1.value())
while True:
if(x1.value()==1):#检测到物体返回1。
left()
pyb.delay(50)
if(x4.value()==1):#检测到物体返回1。
right()
pyb.delay(50)
if(x2.value()&x3.value()==1):
go()
pyb.delay(50)
* 本文作者:_橙子 ゝ,转载请注明来自FreeBuf.COM
来源:freebuf.com 2018-06-25 08:30:33 by: _橙子 ゝ



