2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
В этом руководстве мы собираемся построить датчик парковки. Идея этого датчика парковки состоит в том, чтобы светиться зеленым, когда у вас достаточно места, чтобы вытащить машину вперед на стоянке, а затем становиться желтым, когда вы приближаетесь к полностью переднему положению, и затем красным, когда вы должны остановиться. Мы собираемся построить эту систему с помощью нашего Raspberry Pi и использовать некоторые расстояния, которые мы можем легко протестировать.
Шаг 1. Вещи, которые вам понадобятся
Помимо установки Raspberry Pi, вам потребуются следующие компоненты.
- Ультразвуковой датчик расстояния HC-SR04
- Светодиод (X3)
- Резистор 330 Ом (X3)
- Резистор 10 кОм (x2)
- Провода перемычки мужчина-мужчина / мужчина-женщина
- Макетная плата
Шаг 2: проводка
- Триггер для датчика расстояния - GPIO 4, эхо - GPIO 18, зеленый свет - 17, желтый свет - 27 и красный свет - 22.
- Резисторы 330 Ом предназначены для светодиодов, и они подключаются к положительному выводу светодиодов, а затем к GPIO.
- Резисторы 10 кОм предназначены для вывода эхо-сигнала датчика расстояния и подключаются к GPIO.
Шаг 3: Код
импортировать RPi. GPIO как GPIO импортировать время
GPIO.setwarnings (Ложь)
GPIO.cleanup ()
GPIO.setmode (GPIO. BCM)
TRIG = 4
ЭХО = 18
ЗЕЛЕНЫЙ = 17
ЖЕЛТЫЙ = 27
КРАСНЫЙ = 22
GPIO.setup (TRIG, GPIO. OUT)
GPIO.setup (ECHO, GPIO. IN)
GPIO.setup (ЗЕЛЕНЫЙ, GPIO. OUT)
GPIO.setup (ЖЕЛТЫЙ, GPIO. OUT)
GPIO.setup (КРАСНЫЙ, GPIO. OUT)
def green_light ():
GPIO.output (ЗЕЛЕНЫЙ, GPIO. HIGH)
GPIO.output (ЖЕЛТЫЙ, GPIO. LOW)
GPIO.output (КРАСНЫЙ, GPIO. LOW)
def yellow_light ():
GPIO.output (ЗЕЛЕНЫЙ, GPIO. LOW)
GPIO.output (ЖЕЛТЫЙ, GPIO. HIGH)
GPIO.output (КРАСНЫЙ, GPIO. LOW)
def red_light (): GPIO.output (ЗЕЛЕНЫЙ, GPIO. LOW)
GPIO.output (ЖЕЛТЫЙ, GPIO. LOW)
GPIO.output (КРАСНЫЙ, GPIO. HIGH)
def get_distance ():
GPIO.output (TRIG, True)
time.sleep (0,00001)
GPIO.output (TRIG, False)
а GPIO.input (ECHO) == False: start = time.time ()
а GPIO.input (ECHO) == True: end = time.time ()
signal_time = конец-начало
расстояние = время_сигнала / 0,000058
расстояние возврата
в то время как True:
расстояние = get_distance ()
время сна (0,05)
печать (расстояние)
если расстояние> = 25:
зеленый свет()
elif 25> расстояние> 10:
yellow_light ()
elif distance <= 5:
красный свет()
Если расстояние больше или равно 25 см, горит зеленый свет. Если он находится между 10 и 25 см, мы станем желтыми, а затем покраснеем на расстояние менее или равное 10 см.