Якщо немає грошей на axis, або керована вебкамера своїми, в міру кривими, руками

Вивчення інтернетів показало що ідея приробити камеру до сервам приходить першої до всіх щасливим володарів Ардуіно і сервомашинок. Однак, жодна з уже реалізованих схем управління (кнопками, мишкою PS / 2, з керованого роутера, з компа, з вебстранічка на вбудованому в Ардуіно сервері) мене не вразило, бо незручно, имхо. Хотілося чогось універсального, щоб можна було викласти веб-інтерфейс на сайт і з нього управляти.

В результаті з'явилася ось така штукенція:

Якщо немає грошей на axis, або керована вебкамера своїми, в міру кривими, руками


Звичайна вебкамера Logitech Pro 9000 (виграна давним-давно в "Компьютерра") прикріплена до качалці серви №1 (вісь Y). Серва №1, в свою чергу, прикріплена до качалці серви №2 (вісь X). А серва №2 досить міцно прикручена до основи - важкого дерев'яного бруска. Серви - найпростіші і дешеві SRM-102 (приблизно 400 руб. За штуку).

Ось і вся конструкція, все елементарно. Для з'єднань використані планки від дитячого конструктора (пам'ятаєте, такі старі радянські металеві конструктори? Вони ще є у продажу).

Придумалася приблизна схема управління. Скрипт в веб-інтерфейсі отримує команди (натискання кнопок, руху миші і т.д.) і в певному форматі пише їх в базу. Ардуіно циклічно робить GET-запит скрипту на сервері і скрипт видає всі команди з БД, після чого база очищається. Може, можна і красивіше зробити, але мене в такому вигляді поки все влаштовує.

На серваке у мене MySQL крутиться, база HEAP (щоб спритніші було). Структура ось така:

Далі йдуть скрипти. Перший, найголовніший, скетч для собссно Ардуіно. Скетч не особливо вилизаний, так що його стопудово можна поліпшити. Але, так як він стабільно працює, мене поки влаштовує. Як заливати скетч не пояснюю тут, бо якщо ви знайомі з Ардуіно, ви це вже знаєте. Я використовую IDE Arduino 18, так що і скетч під неї. У новій версії IDE швидше за все не заведеться!

Залив скетч в Ардуіно і встромивши мережевий кабель, пів-справи зроблено. Ардуіно в мережі і запитує потрібний скрипт, жадаючи відпрацювати отримані команди. Але команди повинні звідкись з'явитися. Для цього використовуються такі скрипти.

index.php - собссно, сторінка з веб-інтерфейсом управління камерою.
set.php - асинхронно викликає з index.php і пише в БД потрібні команди на переміщення камери
get.php - скрипт викликається віддалено Ардуіно, читає команди з БД і видає їх plain text # 'ом

Ці файли, і взагалі всю структуру каталогу вебморди можна взяти ось тут в архіві. serva.rar

Використовувані бібліотеки для Ардуіно ось тут - libs.rar

В принципі, все. Сподіваюся, тепер все ті, хто називав мене Мегамозком розслабляться і скажуть "так це кожен дурень може" :-)

Загалом, я хотів лише розповісти про досить красивою можливості зробити непогану керовану вебкамеру і показати як це працює. Далі вже у кого як фантазія розіграється, бо таким же чином можна управляти чим завгодно і як завгодно.

Тепер трохи про процес тестування, бо про нього я просто повинен розповісти.

Вперше цю камеру я включив пару днів назад. Запустив трансляцію, розмістив посилання на веб-інтерфейс у себе в блозі. Десяток людей поганяли її трохи і звалили. На наступний день я приволік камеру на роботі, поставив в кабінеті де наші дівчатка сидять. Камера крутилася практично постійно. Дівча проходить по кабінету, а за нею синхронно рухається камера, народ проходу не давав :-) До того ж у нас в офісі живе папуга Пітровіч, який спочатку камеру дико не злюбив і постійно її атакував. До речі, ця зараза погриз силовий кабель від ноута й проведення до сервам. Величезне спасибі дівчатам - вони мужньо терпіли весь робочий день під невпинним оком камери. І постояно залучали нових тестерів :-)

Якщо немає грошей на axis, або керована вебкамера своїми, в міру кривими, руками

Були ще глюки, пов'язані з включеним дуже довгим відтворенням навчених переміщень (хтось врубав навчання, довго водив мишой а потім натиснув Play), так що цей режим я обмежив сотнею команд. Само собою, це обмеження легко обходиться :-)

Завтра у мене робочий день, на ніч я камеру відключу, але вранці включу знову, на роботі. Там ще веселіше буде.

UPD> Перша конструкція (на дерев'яному бруску) виявилося не дуже стійкою - вдалося кілька разів її перекинути, різко мотнувши камеру з боку в бік. Так що з'явилася нова модифікація - серва №2 прикручена до маленького дерев'яного брусочки. У брусочку просвердлені дірочка, як раз під діаметр гвинта на стандартному кріпленні від штатива. Ну і брусочек пріклеплён до штатива від звичайного фотоапарата. Конструкція вийшла меганадёжная - народ завзято ось вже 7 годин намагається її перекинути, а не виходить.

До того ж, поруч з основною камерою була поставлена ​​друга (точно така ж Logitech, але стаціонарна), через яку можна було спостерігати, як колбасится перша. Дуже захоплююче видовище, якщо чесно.

Якщо немає грошей на axis, або керована вебкамера своїми, в міру кривими, руками

Якщо немає грошей на axis, або керована вебкамера своїми, в міру кривими, руками

Олічной штука цей фрідуіно, думаю днями прикупити свій перший для управління будинком, щось на подобі "розумний будинок" ..
У мене 3 варіанти
1. Купити комп за грн 200-300 х 4 = 800-1200 рублів, дістати все з корпусу і вкласти в міні корпус для компактності. + Ніякої Юзю інтерфейсу і купи плутанини з МК (просто сигнали на реле з голого ЛТП порту.
2. Зібрати свій ЮСБ інтерфейс для взаємодії з платою (подачі сигналів на реле) десь ті ж 1000 рублів
3.Взять аурдіно, сваять програму красиву для андроїда і для ноута і користуватися все як треба. в принципі ті ж гроші.

З трьох варіантів більш схильний до 3, т.к. більше простоти і надійності, компактність, розумність.

А як Ви вважаєте. Якщо не складно - проконсультуйтеся з приводу фрідуіни - чи варто брати, якщо є можливість написання свого інтерфейсу? на той же андроїд? я думаю полюбому прийдется сервер ставити для своєї задумки, як і у Вас.