Pull to refresh
15
0
Send message
Не подЕлитесь опытом насчет автоматизации отопления?
Разобрался сам. Проблема была в неправильной настройке таймера в Cube MX: нужно было включить обработчик прерывания «Capture and Compare» вместо «Trigger and Commutation» во вкладке «NVIC settings» в окне конфигурации таймера:

image

Портированный на STM32F103C8 проект для CooCox и CubeMX лежит здесь
Спасибо за статью. Отличный проект выходного дня для начинающих ковырять STM32, вроде меня.
По образцу сделал такой же проект для STM32F103C8T6, но уткнулся в интересную проблему — может кто-то поопытнее поможет решить?

В F103 выводы таймера TIM3 не толерантны к 5В, поэтому использовал 1й канал таймера TIM1. Перенес куски кода с USB дескриптором, логикой обработки прерываний, проверил что везде вместо TIM3 используется TIM1… Не работает!

Отладчик показывает что не вызывается обработчик прерывания таймера. Смотрю в регистр TIM1_DIER: бит разрешения прерывания СС1IE установлен, источник PPM сигнала подключен, но обработчик не вызывается! От безысходности ткнул в бит разрешения прерывания по событию Trigger (TIE), запустил на выполнение, — и все чудесным образом завертелось, обработчик стал вызываться.

Кто-то может объяснить почему так? Или хотя бы какой раздел документации копать? :)
Первым делом нам надо получить изображение с камеры. Т.к. она уже занята (изображение транслируется веб-сервером), то воспользуемся возможностью получения текущей картинки с веб-сервера:

curl http://localhost:8080/?action=snapshot > out.jpg

А можно сразу попросить mjpg-streamer делать и стриминг и фото, одновременно указав два output-плагина:

cd mjpg-streamer 
./mjpg_streamer -i "./input_uvc.so" -o "./output_file.so -f $outpdir -d $delay" -o "./output_http.so -w ./www "
Как-то мне это в голову не пришло, но специально сейчас попробовал — питает Raspberry, камеру и донгл беспроводной клавиатуры абсолютно без проблем! Выглядит презабавно: из дефендера выходит шнурок в расбери, а из расбери — в дефендер :)

Нет, как раз наоборот — основные грабли я постарался описать в статье. Дальнейший же путь обусловлен фантазией и конкретными задачами, и утыкан, по желанию, bash- и прочими скриптами для воплощения задуманного.
Спасибо за ссылку! А как к этой штуковине доступ организован? Обнаружил, что у D-Link'а есть некое решение для удаленного доступа: eu.mudlink.com, но не очень понимаю как он работает. Это storage? Или вебсайт для просмотра в реальном времени? Будет ли он работать без внешнего IP у камеры?
В защиту решения на raspberry приведу возможность работы при отсутствии доступа к инету (все хранится локально, пока интернет снова не включится). И, все-таки, немного меньшую цену :)
Процесс выглядит так: mjpg-streamer пишет файлы с красивыми уникальными именами в каталог «capture». Отдельный bash-скрипт, висящий в фоне с некоторой периодичностью пробегает по всем файлам в этом каталоге и для каждого делает convert, который. в свою очередь записывает выходной файл с меткой уже в другой каталог — «mov», но с тем же красивым именем, плюс копируется в сеть. Благодаря тому что mjpg-streamer выдает файлы с уникальными именами, никаких проблем с перезаписью не возникает.
В статье я для простоты описал только общую последовательность действий, без попыток построить четкую рабочую систему. На самом деле, у меня, выходной файл после convert пишется в отдельный каталог с оригинальным именем:

 outdir="mov"
 convert $filename <params> $outdir$filename

а потом копируется в сеть.

Information

Rating
Does not participate
Location
Минск, Минская обл., Беларусь
Registered
Activity