1.所需配件:
1. 三种杜邦线,面包板,3 节 18650 可充电池及电池盒
2. 小车框架(四个电机及轮子,主板等配件),超声波模块及其支架
3. 树莓派 4b 及供电的充电宝和一条 type-c 的充电线
4. L298n 模块
5. 树莓派标配 500w 像素摄像头。
树莓派引脚图
2.超声波模块与树莓派连接
使用教程:
https://shumeipai.nxez.com/2019/01/02/hc-sr04-ultrasonic-ranging-module-on-raspberry-pi.htm
l
分压电路连接:
绿色的线是接树莓派的 gnd,黄色的是接超声波模块的 gnd,5 和 10 下面的是 1k 电阻,另
一个是 2k 电阻,5 号下面的红线连的是模块的 echo,10 下面的红线连的是 echo 在树莓派
上对应的 gpio 接口,而 vcc 直接连接树莓派的 5v 电源,trig 直接连接树莓派对应的 gpio 接
口,模块由 trig 接收树莓派的信号,由 echo 返回给树莓派一个 5v 的信号,树莓派引脚最多
承受 3.3v 电压,所以设置了这个分压电路来分压,防止树莓派被烧毁。
超声波模块控制代码:
import RPi.GPIO as GPIO
import time
print("distence measurement in progress")
GPIO.setmode(GPIO.BCM)
echo=20
trig=21
GPIO.setup(trig,GPIO.OUT)
GPIO.setup(echo,GPIO.IN)
def distance():
GPIO.output(trig,True)#发送高电平到 trig 引脚
#持续 10us
time.sleep(0.00001)
GPIO.output(trig,False)
start_time = time.time()
stop_time = time.time()
while GPIO.input(echo) == 0:
start_time=time.time()
while GPIO.input(echo)==1:
stop_time=time.time()
time_elapsed=stop_time-start_time
distance = (time_elapsed * 34300) / 2
return distance
if __name__ == '__main__':
try:
while True:
dist=distance()
print("the distance is ",dist,"cm.")
time.sleep(1)
except KeyboardInterrupt:
print("Measurement stopped by User")
GPIO.cleanup()
3.l298n 模块使用简介
通过电池盒单独供电,In1 和 in2,in3 和 in4 对应输出 A 和输出 B,且分别连接树莓派 gpio 接
口,out 段连接马达,供电使用 3 节 18650 电池组成得 12V 电源正极连接 12V 接口,gnd 接
电源负极,使用使能端 A 和使能端 B 得时候记得将跳帽拔下来,接和 in(就是逻辑输入)b
并排的那根针,然后接到树莓派得 gpio 接口上,板载 5V 使能端用不到。
控制代码(注意马达连接得正负极问题):
little_car_notaut
o.py
4.调用摄像头
这里使用树莓派标配的 500W 像素摄像头,使用 opencv-python 完成摄像头的调用
控制代码:
摄像头.py
5.自动避障代码
little_car.py
同时调用摄像头并运行避障代码即可实现同步
Python 文件名.py &
注意,树莓派 4b 使用充电宝为其供电。
到此为止,哥们的树莓派小车就告一段落了,之前一直是搞软件的,第一次接触硬件,以此
来
,
记
下
录
一