Оглавление:
- Шаг 1: Список деталей
- Шаг 2: настройка Raspberry Pi
- Шаг 3: Raspberry Pi и крепление камеры
- Шаг 4: Сборка светофора
- Шаг 5: Электромонтаж (Часть 1)
- Шаг 6: создание окружающей среды
- Шаг 7: Завершение работы над рамой из ПВХ
- Шаг 8: Электромонтаж (Часть 2)
- Шаг 9: Готово
- Шаг 10: Дополнения (фотографии)
Видео: Анализатор трафика с использованием обнаружения живых объектов: 11 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:53
В современном мире светофоры необходимы для обеспечения безопасности дороги. Однако во многих случаях светофоры могут раздражать в ситуациях, когда кто-то приближается к свету, когда он становится красным. Это напрасная трата времени, особенно если свет не позволяет одному транспортному средству проехать перекресток, когда на дороге никого нет. Мое нововведение - это умный светофор, который использует обнаружение живых объектов с камеры для подсчета количества автомобилей на каждой дороге. Оборудование, которое я буду использовать для этого проекта, - это Raspberry Pi 3, модуль камеры и различное электронное оборудование для самого света. Используя OpenCV на Raspberry Pi, собранная информация будет пропущена через код, который управляет светодиодами через GPIO. В зависимости от этих чисел светофор будет меняться, пропуская автомобили в наиболее оптимальном порядке. В этом случае полоса с наибольшим количеством автомобилей будет пропущена, так что полоса с меньшим количеством автомобилей будет работать на холостом ходу, что снизит загрязнение воздуха. Это исключило бы ситуации, когда многие машины останавливаются, а на пересечении дороги нет машин. Это не только экономит время для всех, но и сохраняет окружающую среду. Количество времени, в течение которого люди останавливаются у знака остановки с работающим двигателем на холостом ходу, увеличивает загрязнение воздуха, поэтому, создав умный светофор, я могу оптимизировать световые схемы, чтобы автомобили тратили как можно меньше времени на остановленный автомобиль.. В конечном итоге эту систему светофоров можно было бы внедрить в городах, пригородах или даже в сельской местности, чтобы они были более эффективными для людей, что уменьшило бы загрязнение воздуха.
Шаг 1: Список деталей
Материалы:
Raspberry Pi 3 Модель B v1.2
Камера Raspberry Pi v2.1
Источник питания micro USB 5 В / 1 А
HDMI-монитор, клавиатура, мышь, SD-карта с Raspbian Jessie
Коммутационный кабель Raspberry Pi GPIO
Красный, желтый, зеленый светодиоды (по 2 каждого цвета)
Гнездовые разъемы для Raspberry Pi (7 уникальных цветов)
Провод 24 калибра в ассортименте (разные цвета) + термоусадочная трубка
Деревянная панель или платформа 2’x2’
Шурупы по дереву
Черная поверхность (картон, пенопласт, плакатный картон и т. Д.)
Белая (или любого другого цвета, кроме черного) лента для дорожной разметки
Черная аэрозольная краска (для ПВХ)
Труба из ПВХ ½”с угловыми соединениями 90 градусов (2), тройник (1), переходник с внутренней резьбой (2)
Инструменты
Паяльник
3д принтер
Сверло с различными сверлами
Макетная плата
Тепловая пушка
Шаг 2: настройка Raspberry Pi
Загрузите SD-карту в Raspberry Pi и загрузитесь.
Следуйте этому руководству, чтобы установить необходимые библиотеки OpenCV. Убедитесь, что у вас есть время сделать этот шаг, так как установка библиотеки OpenCV может занять пару часов. Не забудьте также установить и настроить здесь свою камеру.
Вы также должны установить pip:
пикамера
гпиозеро
RPi. GPIO
Вот окончательный код:
из picamera.array импортировать PiRGBArray
из Picamera импорт PiCamera
импортировать picamera.array
импортировать numpy как np
время импорта
импорт cv2
импортировать RPi. GPIO как GPIO
время импорта
GPIO.setmode (GPIO. BCM)
для i в (23, 25, 16, 21):
GPIO.setup (i, GPIO. OUT)
cam = PiCamera ()
cam.resolution = (480, 480)
cam.framerate = 30
raw = PiRGBArray (cam, size = (480, 480))
time.sleep (0,1)
colorLower = np.array ([0, 100, 100])
colorUpper = np.array ([179, 255, 255])
initvert = 0
inithoriz = 0
counter = 0
для кадра в cam.capture_continuous (raw, format = "bgr", use_video_port = True):
frame = frame.array
hsv = cv2.cvtColor (кадр, cv2. COLOR_BGR2HSV)
маска = cv2.inRange (hsv, colorLower, colorUpper)
маска = cv2.blur (маска, (3, 3))
маска = cv2.dilate (маска, Нет, итераций = 5)
маска = cv2.erode (маска, Нет, итерации = 1)
маска = cv2.dilate (маска, Нет, итерации = 3)
меня, thresh = cv2.threshold (маска, 127, 255, cv2. THRESH_BINARY)
cnts = cv2.findContours (thresh, cv2. RETR_TREE, cv2. CHAIN_APPROX_SIMPLE) [- 2]
center = None
верт = 0
горизонт = 0
если len (cnts)> 0:
для c в центах:
(x, y), радиус = cv2.minEnclosingCircle (c)
центр = (int (x), int (y))
радиус = int (радиус)
cv2.circle (рамка, центр, радиус, (0, 255, 0), 2)
х = int (х)
у = int (у)
если 180 <x <300:
если y> 300:
верт = верт +1
elif y <180:
верт = верт +1
еще:
верт = верт
если 180 <y <300:
если x> 300:
горизонт = горизонт +1
элиф х <180:
горизонт = горизонт +1
еще:
горизонт = горизонт
если vert! = initvert:
print "Автомобили в вертикальной полосе:" + str (vert)
initvert = верт
print "Автомобили в горизонтальной полосе:" + str (горизонт)
inithoriz = горизонт
Распечатать '----------------------------'
если горизонт! = inithoriz:
print "Автомобили в вертикальной полосе:" + str (vert)
initvert = верт
print "Автомобили в горизонтальной полосе:" + str (горизонт)
inithoriz = горизонт
Распечатать '----------------------------'
если верт <горизонт:
GPIO.output (23, GPIO. HIGH)
GPIO.output (21, GPIO. HIGH)
GPIO.output (16, GPIO. LOW)
GPIO.output (25, GPIO. LOW)
если горизонт <верт:
GPIO.output (16, GPIO. HIGH)
GPIO.output (25, GPIO. HIGH)
GPIO.output (23, GPIO. LOW)
GPIO.output (21, GPIO. LOW)
cv2.imshow ("Фрейм", фрейм)
cv2.imshow ("HSV", hsv)
cv2.imshow ("Молотить", обмолот)
raw.truncate (0)
если cv2.waitKey (1) & 0xFF == ord ('q'):
перерыв
cv2.destroyAllWindows ()
GPIO.cleanup ()
Шаг 3: Raspberry Pi и крепление камеры
Напечатайте на 3D-принтере корпус и крепление для камеры и соберите.
Шаг 4: Сборка светофора
Протестируйте светофор с помощью макета. Каждый противостоящий набор светодиодов имеет общий анод, и все они имеют общий катод (землю). Всего должно быть 7 входных проводов: по 1 на каждую пару светодиодов (6) + 1 провод заземления. Припаиваем и собираем светофоры.
Шаг 5: Электромонтаж (Часть 1)
Припаяйте штыри разъема с внутренней резьбой примерно к 5 футам провода. Это стороны, по которым эти провода будут в дальнейшем проходить через трубы из ПВХ. Убедитесь, что вы можете различать разные наборы огней (2 х 3 цвета и 1 фон). В этом случае я пометил концы другого набора красных, желтых и синих проводов маркером, чтобы я знал, какой из них какой.
Шаг 6: создание окружающей среды
Создание окружающей среды Сделайте квадратный деревянный поддон 2 фута, подобный этому. Древесный лом - это хорошо, так как он будет закрыт. Просверлите отверстие, которое подходит именно вашему адаптеру. Просверлите винты по бокам поддона, чтобы закрепить трубу из ПВХ на месте. Вырежьте черную пенопластовую доску, чтобы она соответствовала деревянному поддону под ней. Просверлите отверстие вокруг трубы из ПВХ. Повторите то же самое с противоположным углом. Отметьте дороги белой лентой.
Шаг 7: Завершение работы над рамой из ПВХ
На верхней трубе просверлите отверстие, в которое поместится пучок проводов. Грубое отверстие - это нормально, если у вас есть доступ к внутренней части труб. Проденьте провода через трубы из ПВХ и коленчатые соединения для пробной посадки. Как только все будет готово, покрасьте ПВХ немного черной аэрозольной краской, чтобы очистить внешний вид основной рамы. Вырежьте небольшой зазор в одной из труб из ПВХ для тройника. Добавьте к этому тройнику трубу из ПВХ, чтобы светофор свешивался. Диаметр может быть таким же, как у основной рамы (1/2 дюйма), хотя, если вы используете более тонкую трубу, убедитесь, что 7 проводов могут пройти сквозь нее. Просверлите отверстие в этой трубе, чтобы светофор мог свисать.
Шаг 8: Электромонтаж (Часть 2)
Переподключите все, как было проверено ранее. Дважды проверьте светофор и проводку с макетной платой, чтобы убедиться, что все подключения выполнены. Припаяйте светофор к проводам, идущим через тройник. Оберните оголенные провода изолентой, чтобы предотвратить короткое замыкание и обеспечить более чистый вид.
Шаг 9: Готово
Чтобы запустить код, обязательно установите исходный код как ~ /.profile и cd укажите местоположение вашего проекта.
Шаг 10: Дополнения (фотографии)
Рекомендуемые:
Датчик удаленных объектов с использованием Arduino: 7 шагов
Датчик удаленных объектов с использованием Arduino: в настоящее время производители и разработчики предпочитают Arduino для быстрой разработки прототипов проектов. Arduino - это электронная платформа с открытым исходным кодом, основанная на простом в использовании аппаратном и программном обеспечении. У Arduino очень хорошее сообщество пользователей. В этом
Объектно-ориентированное программирование: создание объектов обучение / метод обучения / техника с использованием Shape Puncher: 5 шагов
Объектно-ориентированное программирование: создание объектов. Обучение / метод обучения / техника с использованием Shape Puncher: метод обучения / обучения для студентов, плохо знакомых с объектно-ориентированным программированием. Это способ позволить им визуализировать и увидеть процесс создания объектов из классов. EkTools 2-дюймовый большой перфоратор; лучше всего подходят твердые формы. Кусок бумаги или c
Базовый мобильный телефон с использованием комплекта обнаружения STM32F407 и модуля GSM A6: 14 шагов (с изображениями)
Базовый мобильный телефон с использованием комплекта обнаружения STM32F407 и модуля GSM A6: Вы когда-нибудь хотели создать крутой встроенный проект ?. Если да, то как насчет создания одного из самых популярных и всеми любимых гаджетов, то есть мобильного телефона !!!. В этом руководстве я расскажу вам, как создать простой мобильный телефон с помощью STM
Счетчик объектов с использованием ИК: 9 шагов (с изображениями)
Счетчик объектов с использованием ИК: В этом небольшом проекте мы создадим полностью автоматический счетчик объектов с простым сегментным отображением. Этот проект довольно простой и включает только простую электронику. Эта схема основана на инфракрасном излучении для обнаружения объектов, чтобы узнать больше
Сигнал трафика с использованием Arduino и ультразвукового датчика: 4 шага
Сигнал трафика с использованием Arduino и ультразвукового датчика: в эпоху интеллектуальных технологий все становится умнее, и интеллектуальная транспортная система является одной из областей, которая окажет огромное влияние на нашу жизнь. Первоначально опубликовано по адресу: https://highvoltages.co/tutorial/arduino-tutorial/traffic-sig