SpravkaCRM.ru Posted March 16, 2016 Report Share Posted March 16, 2016 Зашел я как то пару месяцев назад в зоомагазин и увидел Дегу. Это вроде как чилийские белочки (хотя смахивают на крыс ))) ). Зверьки шустрые и интересные. В общем теперь я заядлый деговод ))) 3 самки + 1 самец. На текущий момент уже 5 мелких спиногрызов. Днем бегают. Ночью спят. Забавные. Это предыстория. Собственно почему тут пишу: Давно давно хотел организовать автоматизацию просмотра/кормления/играния с мелкими животными. Но тогда (давно) не было ардуино. А сейчас есть ))) На текущий момент: 1 - Есть raspberry pi 2 с родной камерой. Камера прилеплена к двум сервам. К интернету подключена через WiFi-свисток. 2 - Сервами с прилепленной на них камерой шевелит ардуина через Multiservo Shield. 3 - на клетку навесил лазер + фоторезистор. Лазерный луч проходит через барабан, в котором бегают белки. На основании прерывания луча получаю данные о кручении барабана. В итоге получилась такая вот связка: ** Ардуина ** Ардуина мониторит команды, приходящие из Serial. Если пришла команда поворота камеры по X - крутим одной сервой на нужный угол. Если пришла команда поворота камеры по Y - крутим другой сервой. Как только обработали команду поворота той или иной сервой - кидаем обратно в Serial отбойку, что поворот успешно осуществлен. Ардуина мониторит фоторезистор. Как только фиксирую, что барабан прокрутился - кидаю в Serial информацию о этом. ** Raspberry pi 2 ** Подключена по USB к ардуине. Компиляцию скетчей выполняю тут же. Малинка слушает USB-порт, на который навешана ардуина. Raspberry делает сразу несколько вещей: 1 - Постоянно мониторит базу данных удаленного сайта (http://degu.live) на предмет записей, говорящих о том, что надо повернуть камеру. Ну то есть когда на сайте кто то нажимает на кнопку поворота камеры - в базу данных пишется строка, что нужно выполнить соответствующую команду. И этой строке присваивается признак, что она еще не выполнена. Малинка как раз мониторит подобные записи на удаленном сайте. Как только находится еще не выполненная команда - она эту команду кидает в виде сообщения в порт с USB на ардуино, а в базу данных для команды указывает статус = выполнено. 2 - Если из порта с USB приходят сообщения от ардуины - то происходит анализ того, что пришло: Если это пришли отбойки о том, что камера повернулась по X или Y - в этих отбойках есть указание текущего градуса поворота. Эти данные raspberry пишет в базу данных на удаленном сайте и эти данные выводятся на странице в статистике. Если из ардуины пришла отбойка о том, что барабан прокрутился один раз - малинка пишет в удаленную базу данных этот факт. На основании этих записей сайт уже будет строить данные о текущей скорости/расстояниях вращения барабана. 3 - Raspberry pi 2 получает данные с своей встроенной камеры (которая висит на сервах), кодирует их кодеком h264 при помощи ffmpeg и отправляет на удаленный сайт в виде rtmp-потока ** Удаленный сайт Degu.Live ** Это уже отображает изображение с камеры + дает возможность управлять положением камеры + отображение статистики. 1 - На сервере настроил возможность прямой трансляции из RTMP-потока. Если в кратце, то это у nginx расширение nginx-rtmp-module. Более подробно как я там все настраивал есть тут: http://spravkacrm.ru/forums/topic/19-настройка-прямой-видео-трансляции-на-сайте-при-помощи-raspberry-pi-2/ 2 - Настроил веб-сервер на YII2 для отображения самого сайта. 3 - Настроил WebSocket на phpDaemon - для получения данных о статистике + отправка данных о кликах на элементах управления камерой. WebSocket - это новая возможность осуществления запросов на сервер и получения ответа + рассылка ответов сервера на все клиенты - намного ловчее, чем AJAX. В общем на текущий момент можно смотреть за дегусятинами. Можно крутить камерой в каком то диапазоне. В ближайшее будущее хочу прилепить туда подсветку в клетку (Управление с страницы) + думаю над тем, как бы организовать подачу вкусняшек (пока мысль остановилась на чем то типа спирали в трубе, спираль будет крутить мотор на нужные углы и тем самым в трубе проталкивать вкусняки). Плюс надо с камерой что то еще придумать. От малинки камера конечно прикольная, но очень маленький угол обзора. Quote Link to comment Share on other sites More sharing options...
SpravkaCRM.ru Posted March 17, 2016 Author Report Share Posted March 17, 2016 Добавил управление двумя кусками светодиодных лент. Подключил их через полевые транзисторы к блоку питания на 12V 1.5A. Светит ярко. Даже слишком. Особенно, когда две. Думаю буду резать еще на куски и включать посегментно.И не пойму почему, но свет заметно "дрожит". Причем когда скетч компилится - они на полсекунды загораются ярко без дрожания. Судя по всему что то именно с ардуиной?Подключал: на Gate - выход с пина без резисторов. на SOurce - минус с блока питания, на Dest - выход на минус ленты. К плюсу ленты - плюс от блока питания. И земля у блока питания и земля у ардуины объеденены. Может в этом дело? Quote Link to comment Share on other sites More sharing options...
SpravkaCRM.ru Posted March 18, 2016 Author Report Share Posted March 18, 2016 Прилепил еще две светодиодные ленты. Стало лучше видно питомцев. Но свет всеже "дрожит". Надо как то избавляться... Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.