STM32 ESP8266 самодельная wifi camera.STM32 DCMI пример. HD

28.06.2019
STM32 dcmi пример.stm32 esp8266 wifi камера.Камера выдает jpeg картинку. 10FPS в разрешении 800x600 либо 5 fps 1280*1024.Для сравнения ESP32 cam которую я тестировал выдает 8 FPS 800x600. Для захвата изображения можно использовать python.Также есть возможность работы с браузером firefox 64 бит но это не всегда работает корректно.Все материалы для повторения доступны под видео. Содержание ролика: Самодельная wi-fi камера, точнее ее прототип ,не уступающая аналогу на базе ESP32 ,думаю ее легко можно запихнуть в размеры 3x6 сантиметров, я не стал это делать, а уделил больше внимания прошивке . Есть примеры как для HAL так и для SPL.Все материалы для повторения с подробными инструкциями как обычно доступны под видео. Что имеем на данный момент? Для захвата изображения теперь можно применить Firefox, его 64 битную версию, но лучше использовать python т.к. там все работает корректно и можно сделать дальнейшую обработку картинки с записью в файл только тех картинок, на которых есть движение. Двукратное увеличение по FPS, на данный момент, это 10 FPS при разрешении 800x600.Либо 5 FPS при высоких разрешений. Качество картинки изменилось в лучшую строну. Я перенес настойки с ESP32 камеры и адаптировал под STM32 .Теперь при одинаковых настройках ESP32CAM,проигрывает STM32. Какие изменения в прошивке? По мимо основных буферов для захвата изображения , задействован буфер FIFO. Сюда попадают данные из фрейм буфера. Зачем ом нужен? Дело в том, что во время передачи TCP пакетов неизбежно возникают ошибки, тогда ТСP пакет отправляется повторно. Если ошибок нет или их очень мало все нормально. Если их становится слишком много, внутренний буфер ESP8266 будет заполнен не отправленными пакетами. Как только он будет полон на пине RTS, ESP8266 установится высокий логический уровень. После этого данные esp8266 отправлять нельзя т.к. они будут потеряны. Потому нам остаётся ждать низкого логического уровня на CTS пине микроконтроллера. Дабы не потерять данные с камеры они накапливаются в буфере FIFO.Чтобы задействовать контроль потока, нужно его активировать в альтернативной прошивке . Тут есть огромное поле для улучшений. Но реализация остается под вопросом? Например будут вопросы про применения ДМА копирование из памяти в память, но как копировать в кольцевой буфер с помощью ДМА. У UART есть пин CTS, его можно было бы наверно правильно применить в паре с DMA но как копировать из кольцевого буфера в периферию c помощью DMA. Тут скорее всего придётся отказаться от fifo буфера и использовать динамическое выделение памяти, тогда можно будет задействовать DMA по полной. Так давайте расскажу о том как работает реализация просмотра камеры в браузере. Когда мы попытаемся зайти на следующий айпи.(Wireshark)Будет установлено tsp соединение и браузер отправит следующий GET запрос, обнаружив его микроконтроллер, отправляет следующий ответ: …. Где в HTTP заголовке в параметре «Content-Type:» указано ,что передается документ из нескольких частей, где каждая часть заменя

Похожие видео

Показать еще