Мастерил долго, руки-крюки ничего не получалось и в конце концов после многих переделок вышло такое вот чудо:
Грузоподъёмность слабенькая - сотня другая грамм. Но душа уже во всю требовала запуска проекта, поэтому решила, что сойдёт и так.
Ладно, с механикой разобрались. Нужна электроника чтобы управлять. Особо заморачиваться не стал, с прошлой конструкции остались контроллеры шаговых двигателей самодельные. Тут двигатели не шаговые, но адаптировать вполне можно. Более того на один шаговый контроллер вешается два обычных двигателя постоянного тока. Движки обычные, маленькие как в игрушечных машинках. Работу конструкции вытягивают благодаря высокому передаточному числу редукторов.
Управляются контроллеры через lpt-порт старого компа. Вся система управления разместилась тут же, на балконе:
Из описания глобальной задумки не сложно понять, что управление требуется не прямо тут, а удалённое через интернет. Соответственно требовалось транслировать видео. И мот блин мне приспичило, чтобы всё работало через браузер.
Стал копать.
Перебрал множество различных вариантов. Естественно хотелось бесплатно всё сделать. И важно было, чтобы задержка видео не превышала пол секунды. Как обычно долго ничего не получалось, пока я наконец не психанул и решил задачу в лом.
Вечерело.
Засев на кухне, чтобы не мешать спать ненаглядной, я затарился крепким чаем и сигаретами и стал ваять.
Решение выбрал предельно простое:
- - Выдираем картинку с вебкамеры.
- - Ужимаем её немного.
- - Преобразовываем в массив байт, который переводим в base64.
- - На серверной стороне поднимаем TLS-сервер. Это который web-сокеты, в исходниках скачать можно.
- - На клиентской стороне, в браузере запиливаем скрипт, который к этому серваку рубится и открывает соединение.
- - На серверной стороне держим всех клиентов в очереди, по таймауту запихиваем им пакет с картинкой. Следим, чтобы отправка шла только когда клиент готов принять новую картинку, иначе канал забивается, отставание видео от реальности нарастает.
- - Ну собственно и всё - в браузере скриптом передаём картинке (img) в качестве содержимого не ссылку, а base64-пакет байтов.
И таки даже работало. При десятке клиентских подключений стабильно выдавало примерно 7 кадров в секунду с минимальной задержкой.
Передать команду от socket сервера lpt порту задача пожалуй тривиальная.
Естественно захотелось похвастаться. Опубликовался в одном сообществе в жж, посвященном инженерии.
Сначала было тихо. Ничего не предвещало беды.
И вдруг понеслось. Повалили один за одним посетители. Естественно я что-то вроде очереди сделал. Каждый мог управлять по три минуты.
В чате стоял балаган, кто веселился, мол понравилось, кто обсирал, мол убого.
Ну всего человек 700 заходило, сколько управляло не удосужился посчитать. Но в пике задержка управления составляла до 5 секунд. Видео-то смотрят все, не только управляющий.
Где-то сутки вся эта вакханалия творилась. За это время поотлетали зубья у пары шестерней, расшатался поворотный механизм в основании.
Что называется ушатали.
Коментарі