小白一枚,记录过程。
材料:树莓派3B+、超声波传感器HC-SR04、led灯、电阻、杜邦线、耳机、面包板
一、接线
LED接线:led长脚为正极,短脚为负极。
正极——连着330欧电阻,连到11号引脚
负极——GND(6号引脚)。
超声波传感器接线:
VCC——2号引脚
TRIG——16号引脚
ECHO——1K欧电阻——一端18号引脚,一端连2K欧电阻——GND
GND——6号引脚
如图所示:
2在网上下载嗡嗡的提示声音。也可以使用手机录音形成文件,重命名“buzz.mp3”
3代码
打开命令行,输入mkdir project,创建目录,名为project.
当前工作目录为:/home/pi/project
下载必备库
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install alsa-utils
sudo apt-get install mpg321
重启树莓派
sudo modprobe snd_bcm2835
sudo amixer cset numid=3 1
当前工作目录为:/home/pi/project,将“buzz.mp3”放在project文件中,
nano project1.py
输入代码:
import RPi.GPIO as GPIO
import time
import os
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
print "Measuring Distance"
print "Press ctrl+c to stop me"
GPIO.setup(23,GPIO.OUT)
GPIO.setup(17,GPIO.OUT)
GPIO.setup(24,GPIO.IN)
time.sleep(0.02)
while True:
GPIO.output(17,False)
GPIO.output(23,True)
time.sleep(0.00001)
GPIO.output(23,False)
while GPIO.input(24)==0:
start_time=time.time()
while GPIO.input(24)==1:
end_time=time.time()
time=end_time-start_time
distance = 17150*time
print "Measured Distance is :",distance, "cms."
if distance < 100 and distance > 0:
print "Obstacle Detected"
os.system('mpg321 buzz.mp3 &')
GPIO.output(17,True)
time.sleep(1)
GPIO.cleanup()
按ctrl+x 离开,Y保存
在命令行输入:python project1.py ,运行代码,测试结果。
参考书:《树莓派+传感器:创建智能交互项目的实用方法、工具及最佳实践》作者:[印度] 鲁什·贾加(Rushi Gajjar) Page 52-70