Статьи » Разработки
Добавить статью

Проект электронного устройства видеозахвата на STM32

2021-08-02 в 12:45 (последнее изменение 2024-03-08 в 21:37)

Привет друзья.

Как вы думаете, была бы в принципе полезна система, которая позволяет найти пропавшего ребенка или другого родственника, утерянный или похищенный предмет ценности, восстановить события ДТП или другого происшествия при помощи камер наблюдения, причем эта система доступна любому зарегистрированному пользователю, а не только особым службам?

У меня есть идея создать именно такую систему, которая поможет решить эту задачу при помощи сети камер с разрешения владельцев каждой из камер.

В настоящий момент я занимаюсь разработкой электронной системы ZorG, предназначенной для видеорегистрации и просмотра событий на территории города. В этой статье я покажу проект отладочного устройства для построения камеры видеофиксации событий от схемы до заказа печатной платы на производстве PCBWay.

Когда мы запустим систему, то бесплатный доступ к видео архивам камер получат владельцы камер сети ZorG. Остальным пользователям доступ к видео данным предоставляется за плату, которую мы собираем для развития функционирования сервиса поиска по видео данным.

Камеры необходимо ставить в разрешенных законодательством РФ общественных местах.

Все зарегистрированные камеры объединены в P2P сеть ZorG.

Цель проекта: Предоставить всем зарегистрированным пользователям доступ к видео-данным с любой камеры в сети ZorG для поиска утраченных, похищенных или пропавших людей или объектов или чтобы найти того, кто обижает ваших детей, ведь дети иногда умалчивают об этом, пока не станет совсем плохо.

В дальнейшем все камеры сети пользователей будут отмечены на карте города и можно будет выбрать любую из них и посмотреть видеоархив за последние несколько суток.

Также на основе данных с камер сети можно будет выполнять автоматический поиск пропавших родственников и максимально быстро оказать им помощь в случае необходимости.

К системе прикрутим функцию идентификации и поиска людей и утерянных или похищенных объектов на территории города или городов.

В этот проект я пока инвестирую собственные средства и время, которые вкладываю в его разработку.

У меня есть план развития этого проекта от отладочного варианта до стартапа на краудфандинговой площадке Planeta.ru.

Я планирую несколько статей на эту тему с дальнейшими разработками в направлении создания сети ZorG и устройств. Эти устройства помогут мне провести тестирование системы и подготовить инженерный образец для краудфандинга на Planeta.ru

Если среди Вас есть разработчики, которых греет идея изменить культуру мышления в направлении улучшения взаимоуважения ценностей и интересов людей, то Я открыт для коллаборации в этом проекте.

Так что если хотите присоединиться к проекту ZorG, то пишите мне о своем желании и предложениях в Телеграм или Instagram:

https://t.me/kirill_ivanychev
https://instagram.com/kirill_ivanychev

Я буду рад работе вместе с единомышленниками!

А теперь несколько слов о том, как устроена система ZorG

Архитектура разрабатываемой системы ZorG

В двух словах, архитектура будущей системы ZorG построена на работе отдельных камер, объединенных в сеть Р2Р. Для поиска нужной камеры используется сервер, который отображает все доступные камеры на карте города. 

Рисунок 2 - Архитектура будущей сети камер ZorG

Пользователи, которые приобрели камеры для сбора данных о событиях на желаемых территориях, через сервис получают доступ к просмотру видео с доступных камер за прошедшие 3 - 4 суток. 

Камеры записывают видео в циклическом буфере, т.е. самые новые кадры перетирают самые старые по кругу.

Следующим этапом в архитектуре системы появится функция поиска людей и потерянных объектов на видео из всех доступных камер сети с возможностью отслеживания перемещения выбранного объекта.

Структура отладочной платы видеозахвата

Ну и для того, чтобы начать разработку такой системы, потребуется отладочное “железо”, о разработке которого я напишу далее.

После изучения различных микроконтроллеров с видео-интерфейсами я остановился на STM32F746.

По моим предварительным оценкам его скорость работы позволит принимать картинки с фотоматрицы в формате JPEG, сохранять их на Flash-карту, обрабатывать запросы на выборку и отправку записей в заданные периоды времени по сети.

Для того, чтобы при отладке железа подобрать наиболее подходящие, отладочную плату я построю по принципу модульности.

Рисунок 3 - Структура отладочной платы DevBoard

На ней я сделаю разъемы для подключения модуля с матрицами ov2640 и ov5640 от компании Omnivision.

4G модем я буду подключать также через разъем, который я установлю в нижнем левом углу отладочной платы. Название текущих сигналов 4G модуля я взял из расчета на подключение модема EC25 от компании Quectel.

Ну а теперь я перейду к принципиальной схеме DevBoard.

Принципиальная электрическая схема

При разработке схемы на микроконтроллерах STM32 очень выручает инструмент CubeIDE от компании ST microelectronics.

С его помощью можно спроектировать все периферийное железо, которое будет подключено в микроконтроллере и, на какие выводы оно будет запаяно.

В отличие от микроконтроллеров AVR, в которых вся аппаратка привязана к своим выводам, в  STM32 в зависимости от конфигурации используемых мозгов чипа функциональные выводы могут быть физически связаны с разными ножками. Это выбирается прогрммно.

CubeIDE облегчает эту задачу и позволяет сформировать карту выводов, которую потом я возьму для создания принципиальной схемы.

Рисунок 4 - CubeIDE - помощник в создании принципиальной схемы на STM32

Далее я спроектировал принципиальную электрическую схему в среде разработки EasyEDA и выбрал компоненты для заказа в Internet-магазине LCSC.

Я спроектировал плату под 2 матрицы: 2-мегапиксельную OV2640 и 5-мегапиксельную - OV5640.

Модуль с матрицей OV2640 можно заказать на AliExpress:  https://clck.ru/WdLEd

а модуль с матрицей OV5640 можно заказать тут:  https://clck.ru/WdLFn 

Впоследствии я сделаю модуль камеры, который будет полностью совместим с разъемом для OV2640.

Вот такая схема у меня получилась в итоге:

Рисунок 5 - Схема соединений микроконтроллера с периферией

Для обеспечения максимальной нагрузки 430 мА по цепи питания 3.3В я взял поламперный стабилизатор AMS1117-3.3.

Рисунок 6 - Питание потребителей 3.3 В

Для целей отладки работы кода я поставил в схему преобразователь USB-UART

Рисунок 7 - USB интерфейс к UART

С целью временного хранения картинок, получаемых с фотоматрицы, я взял микросхему памяти SDRAM с организацией памяти в виде 4 банков по 4M 16-битных ячеек и подключил ее к контроллеру FMC.

Рисунок 8 - Память

Проект печатной платы

После того, как я проверил всю схему еще раз и исправил найденные ошибки, я перевел проект принципиальной электрической схемы в проект печатной платы.

Трассировка получилась довольно плотная, поэтому я расположил дорожки платы на 4 слоях.

Вот так выглядит спроектированная печатная плата в итоге

Рисунок 9 - 3D модель проекта платы

Теперь можно переходить к производству печатной платы.

Средства производства

Я постоянно наращиваю свою экспертную базу разработчика и пробую различные инструменты разработчика.

В этот раз я закажу спроектированную мной плату у производителя PCBWay (https://pcbway.com/)

На первый взгляд сервис оказался довольно неприхотливым в использовании.

Сразу после создания аккаунта в этом сервисе мне прилетело на почту письмо, в котором была ссылка с иллюстрированной инструкцией о том, как быстро и просто заказать производство печатной платы.

Сервис принимает герберы, сгенерированные разными системами проектирования

В сервисе есть маленькая приписочка, которая говорит о том, что алгоритм чтения герберов не идеальный и может отображать картинку платы с искажениями. 

Там же сказано, что не стоит переживать по этому поводу, т.к. плата будет сделана правильно.

В общем после загрузки моего гербера на PCBWay, он прочитал все 4 слоя моей платы и сказал, что файл успешно загрузился.

Рисунок 10 - Gerber успешно загрузился на PCBWay

Я решил довериться этой информации и заказать производство моей платы.

Посмотрим, что в итоге получится...

В итоге. Я получил по почте 10 печатных плат для DevBoard проекта ZorG.

Ранее для проектов я заказывал платы на других производствах и, в сравнении с ними платы от PCBWay выглядят более аккуратно:
- на всех 10-ти платах маска выполнена без дефектов
- шелкография также сделана ровно и без изъянов.

Рисунок 11 и 12 - изготовленная плата без компонентов

В остальном платы такие же качественные, т.е. без замыканий между дорожками и выполнены строго по размерам.
Прозвонка, которую я сделал на плате произвольным образом для проверки соединений, проходящих через внутренне слои, показала, что соединения там есть :-)

В общем платами я очень доволен.
Теперь я перехожу к следующему этапу проектирования - к сборке DevBoard.
О том, как я запустил запустил собранный образец, я расскажу в одном из следующих выпуском на моем YouTube канале.
В Instagram я также напишу заметочку о том, как он работает.

Напишите в коментариях, что было бы Вам интересно еще узнать о проекте ZorG?
До встречи в следующих выпусках!

PS

Эта плата не является устройством только для моего проекта и может быть использована для ваших экспериментов с видео на микроконтроллерах STM32F746ххх

Поэтому берите приложенные к данной статье gerber-файлы и используйте для своих нужд.

Модуль платы камеры я сделаю в одной из следующих статей.

Так что следите за выпусками.

Приятных экспериментов!

Разработка и копирование печатных плат
Файлы Gerber - скачать
Файл BOM - скачать
Страница проекта на PCBWay - перейти


Не пропустите обновления! Подписывайтесь на нашу группу Вконтакте.
Так же у нас есть Telegram канал.
Вам понравился наш материал? Поделитесь с коллегами!

Просмотров: 2337. Оценка статьи: 5.0 из 5. Уже оценило 2 читателя

Об авторе - Kirill_Ivanychev

Связаться с автором по email
More by Kirill_Ivanychev

Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]