Приветствую вас господа!

Как-то раз, ребенку в школе задали вырастить фасоль, чтобы посмотреть во что она прорастает и как из боба вырастает растение.
У меня сразу возникла идея сделать TimeLapse видео, как оно там все растет.
Но КАК это сделать, имеющийся фотоаппарат не позволяет собой управлять гад.
Наличие любопытной кошки — усугубляло ситуацию…
В шкафу тем временем пылился без дела подарок друзей — Raspberry PI…
фото не подходит, в загашнике нашлась вебкамера Logitech C200, для защиты от кошки решил соорудить полку на окне (чтоб вредина не достала), единственное свободное окно нашлось на кухне, как следствие — рядом которым можно делать всё нужное.
стационарный комп еще и гудит прилично, спасть с таким в одной комнате не очень приятно.
вспомним Филеаса Фогга, и одну из его цитат
и тут я вспоминаю что у меня есть raspberry pi ;)
и его можно использовать вместо большого компа!
и это полноценный Linux комп!
вот наш герой на посту

что у PI очень удобно, то чтобы он перестал быть медиаплеером (raspbnc) и стал просто Linux (raspbian)
достаточно просто сменить SD карточку (благо этого добра хватает, а 2 гига ему за глаза)
т.е. по инструкции с сайта ставим на карточку распбиан, подключаем к телевизору, конфигурим (без графики)
отключаем от телевизора, все остальные действия делаем по ssh,
так как время которое это все будет работать — не известно, будем считать что все плохо, и писать на внешнюю флешку
на полочке нет интернета!, подходящей wifi карточки тоже нет,
ну ладно, пусть стоит автономно, будем иногда выдергивать флешку и смотреть что получилось.
т.е. надо все заранее сконфигурировать и сделать эту штуку максимально автономной
далее ищем пакет который умеет снимать скриншоты с вебкама
находим fswebcam, ставим его из репозитория, проверяем, работает!
дальше пишем скрипт, который пускается из крона 1 раз в минуту!
собственно основной скрипт переключает лампочку в режим управления юзером (по умолчанию она мигает при обращении к флешке, мы же используем ее как индикатор)
далее он делает фото нашего растения
а дальше вызывает скрипт который мигает лампочкой
скрипт — чистая мигалка, для удобства пользователя
30 сек с частотой 1 раз в секунду
15 сек с частотой 2 раза в секунду
а потом гаснет
этот скрипт гарантированно работает < 60 секунд, он перезапускается из основного скрипта раз в минуту.
по индикатору видно в каком состоянии сейчас PI (и когда наконец можно вытянут временно флешку)
осталось мелочь,
полочка была сделана из отходов игры Каркассон (остались картонные листы с дырками)
которые были с помощью скотча собраны в достаточно для нашей задачи крепкую полочку
и на ней был сооружено место где будет стоять предмет, и где крепить камеру!
из ниток были сделаны веревки необходимой длины, и это все повешено на окно!
выглядит это всё

вот «предметный стол» крупнее

это все было оставлено на несколько дней, ночью включал лампочку…
по окончании процесса получили папку с кучей фото,
отобрали нужный диапазон
а делее применяем магию ffmpeg (теперь известного как avconv)
этот волшебный скрипт берет из папки src файлы с именами f0001.jpg и дальше, и делает .mp4 файл с частотой 30 кадров в секунду.
файлы из вида YYYYMMDD-HHMM.jpg в fNNNNN.jpg переименовываем простейшим скриптом, тут эт не очень интересно.
ну и в итоге вот что получилось
о чем не думалось в начале,
по странной причине вебкамера на PI не захотела снимать кадры 640x480, только 320x200, может питания мало?
без мигалкой светодиодом было не понятно работает ли оно!
очень рекомендую делать индикатор работы
растение в итоге вылезло из кадра, надо изучать вопрос заранее и делать соответствующее оборудование
солнце — ну ОЧЕНЬ яркое, камеру клинит ;)
по хорошему надо было бы, взять нормальную камеру
правильное постоянное освещение
поставить правильно росток
правильно смонтировать (добавить музыку)
но и то что получилось очень познавательно!
рост идет и ночью!
Raspberry PI очень удобная штука для домашних игрушек!
p.s. про ошибки пожалуйста для начала в личку!
p.p.s. задавайте вопросы!

Как-то раз, ребенку в школе задали вырастить фасоль, чтобы посмотреть во что она прорастает и как из боба вырастает растение.
У меня сразу возникла идея сделать TimeLapse видео, как оно там все растет.
Но КАК это сделать, имеющийся фотоаппарат не позволяет собой управлять
Наличие любопытной кошки — усугубляло ситуацию…
В шкафу тем временем пылился без дела подарок друзей — Raspberry PI…
в посте нет Rocket science, просто описание задачи, пути её решения и итоговый результат.
Собственно описание задачи
- надо снять как растет фасоль
- все опыты делать на окне — растениям нужно солнце
- кошка зверь любопытный и есть шанс что она все развалит
- сколько это продлится — не очень понятно
- это явно одноразовая задача
фото не подходит, в загашнике нашлась вебкамера Logitech C200, для защиты от кошки решил соорудить полку на окне (чтоб вредина не достала), единственное свободное окно нашлось на кухне, как следствие — рядом которым можно делать всё нужное.
стационарный комп еще и гудит прилично, спасть с таким в одной комнате не очень приятно.
вспомним Филеаса Фогга, и одну из его цитат
Используй то, что под рукою, и не ищи себе другое. (16 серия, «В Новом Орлеане»)
и тут я вспоминаю что у меня есть raspberry pi ;)
и его можно использовать вместо большого компа!
и это полноценный Linux комп!
вот наш герой на посту

что у PI очень удобно, то чтобы он перестал быть медиаплеером (raspbnc) и стал просто Linux (raspbian)
достаточно просто сменить SD карточку (благо этого добра хватает, а 2 гига ему за глаза)
т.е. по инструкции с сайта ставим на карточку распбиан, подключаем к телевизору, конфигурим (без графики)
отключаем от телевизора, все остальные действия делаем по ssh,
так как время которое это все будет работать — не известно, будем считать что все плохо, и писать на внешнюю флешку
на полочке нет интернета!, подходящей wifi карточки тоже нет,
ну ладно, пусть стоит автономно, будем иногда выдергивать флешку и смотреть что получилось.
т.е. надо все заранее сконфигурировать и сделать эту штуку максимально автономной
далее ищем пакет который умеет снимать скриншоты с вебкама
находим fswebcam, ставим его из репозитория, проверяем, работает!
дальше пишем скрипт, который пускается из крона 1 раз в минуту!
скрипт который дергаем из крона do.sh
#!/bin/sh
path='/mnt'
killall blink1.sh >/dev/null
sudo sh -c 'echo 1 >/sys/class/leds/led0/brightness'
if [ -c /dev/video0 ]
then
fswebcam -q -c /home/pi/plant/config.cfg --flip v $path/plant/`date +%Y%m%d-%H%M%S.jpg`
fi
sudo sh -c 'echo 0 >/sys/class/leds/led0/brightness'
/home/pi/plant/blink1.sh &
sync
скрипт который мигает лампочкой blink1.sh
#!/bin/sh
sudo sh -c 'echo none >/sys/class/leds/led0/trigger'
n=1
while test $n -le 30
do
sudo sh -c 'echo 1 >/sys/class/leds/led0/brightness'
sleep 0.5
sudo sh -c 'echo 0 >/sys/class/leds/led0/brightness'
sleep 0.5
n=$(($n + 1))
done
n=1
while test $n -le 15
do
sudo sh -c 'echo 1 >/sys/class/leds/led0/brightness'
sleep 0.25
sudo sh -c 'echo 0 >/sys/class/leds/led0/brightness'
sleep 0.25
sudo sh -c 'echo 1 >/sys/class/leds/led0/brightness'
sleep 0.25
sudo sh -c 'echo 0 >/sys/class/leds/led0/brightness'
sleep 0.25
n=$(($n + 1))
done
собственно основной скрипт переключает лампочку в режим управления юзером (по умолчанию она мигает при обращении к флешке, мы же используем ее как индикатор)
далее он делает фото нашего растения
а дальше вызывает скрипт который мигает лампочкой
скрипт — чистая мигалка, для удобства пользователя
30 сек с частотой 1 раз в секунду
15 сек с частотой 2 раза в секунду
а потом гаснет
этот скрипт гарантированно работает < 60 секунд, он перезапускается из основного скрипта раз в минуту.
по индикатору видно в каком состоянии сейчас PI (и когда наконец можно вытянут временно флешку)
осталось мелочь,
полочка была сделана из отходов игры Каркассон (остались картонные листы с дырками)
которые были с помощью скотча собраны в достаточно для нашей задачи крепкую полочку
и на ней был сооружено место где будет стоять предмет, и где крепить камеру!
из ниток были сделаны веревки необходимой длины, и это все повешено на окно!
выглядит это всё

вот «предметный стол» крупнее

это все было оставлено на несколько дней, ночью включал лампочку…
финальная обработка
по окончании процесса получили папку с кучей фото,
отобрали нужный диапазон
а делее применяем магию ffmpeg (теперь известного как avconv)
avconv -f image2 -r 30 -i src/f%04d.jpg -c:v libx264 -r 30 out2.mp4
этот волшебный скрипт берет из папки src файлы с именами f0001.jpg и дальше, и делает .mp4 файл с частотой 30 кадров в секунду.
файлы из вида YYYYMMDD-HHMM.jpg в fNNNNN.jpg переименовываем простейшим скриптом, тут эт не очень интересно.
ну и в итоге вот что получилось
трудности и выводы
о чем не думалось в начале,
по странной причине вебкамера на PI не захотела снимать кадры 640x480, только 320x200, может питания мало?
без мигалкой светодиодом было не понятно работает ли оно!
очень рекомендую делать индикатор работы
растение в итоге вылезло из кадра, надо изучать вопрос заранее и делать соответствующее оборудование
солнце — ну ОЧЕНЬ яркое, камеру клинит ;)
по хорошему надо было бы, взять нормальную камеру
правильное постоянное освещение
поставить правильно росток
правильно смонтировать (добавить музыку)
но и то что получилось очень познавательно!
рост идет и ночью!
Raspberry PI очень удобная штука для домашних игрушек!
p.s. про ошибки пожалуйста для начала в личку!
p.p.s. задавайте вопросы!