Главная » Хабрахабр » Гик-снайпер или как сделать «зоркий глаз»

Гик-снайпер или как сделать «зоркий глаз»

Пригласили меня как-то на стрельбище с использованием высокоточного оружия (по простому — снайперкой пострелять). Это стрельба из ружья, которое поражает цели на довольно больших расстояниях, например, на километр. Отстреляв свои первые три пульки мне захотелось посмотреть, куда же я все-таки попал. Мишень находится очень далеко и отверстия от попадания в прицел не видны. Единственным возможным решением оказалось — двигаться к мишени и посмотреть все попадания непосредственно на месте.

На стрельбище хочется получать удовольствие, а не накатывать по километру каждые три выстрела для внесения поправок. Настрелявшись и набегавшись за день я решил, что нужно как-то упростить этот процесс. Результатом раздумий и принятого решения получилось устройство, которое показывает мишень прямо в мобильном телефоне.

Сначала были идеи сделать специальную мишень, при попадании в которую замыкаются контакты и данные передаются стрелку. Внимание, под катом много фотографий!
Вернувшись со стрельб, одна мысль не давала покоя — нужно как-то детектировать попадания и выводить результаты где-нибудь рядом со стрелком. Затем была идея сканировать мишень на наличие неровностей, но тоже довольно сложно, плюс сразу не ясно, как его калибровать в походных условиях. Но такую идею пришлось забраковать, так как мишень выходила одноразовая. Итак: устройство должно быть компактным, иметь автономное питание, работать долго и быть довольно неприхотливым. Самое простое и правильное решение лежало на поверхности — нужно просто фотографировать мишень, а попадания уже смотреть на фото. В идеале — включил и поехал занимать позицию. Ну и самое главное — оно должно быть очень простым в использовании.

Приступаем к сборке.

Нам понадобятся:

  • Raspberry Pi, чтобы эта штука могла думать
  • Камера, чтобы могла видеть
  • 3g-модем, чтобы могла говорить
  • GPS-датчик, чтобы штука знала, где находится (будем выводить расстояние от стрелка до мишени)
  • Аккумулятор, чтобы она вкусно питалась.

Больше половины из того, что нам нужно, у меня было в наличии, поэтому докупать практически ничего не пришлось.

Сначала было решено заказать красивый корпус для всего этого. Техническая часть готова к сборке — теперь нужно подумать об эстетической. Площадки пестрят услугами по изготовлению корпусов, но цены ставят настолько высокие, что я перестал удивляться топорному дизайну отечественных приборов и понял, смысл бытия что у меня свой путь. И вот тут я столкнулся с первой проблемой. Возможно, я плохо искал, но предложениями меня ставили в ступор. Создать корпус, заказав его у кого-то — ОЧЕНЬ дорого, даже если попросить сделать просто квадратный алюминиевый куб с дыркой под камеру. Мне предлагали решения за пол миллиона рублей! Я пытался объяснить, что мне нужен примитив — простой и надежный.

Стоимостью в 700 рублей. Пойдем иным путем — заказываем на азиатской площадке обычный алюминиевый кейс под DIY. Уже отшлифованный. Красивый, аккуратный алюминиевый кейс. А дырок сами насверлим. Самое главное не промахнуться с размерами.

Там же находим мини-штатив и увеличивающую насадку (телескоп) на объектив.

Со сборкой никаких сложностей нет — для камеры у малины есть разъем, а для дисплея и GPS датчика хватает GPIO ног.


(подключаем информационный дисплей и GPS)

Каждый аккумулятор по 3200 mAh, а пачка из 4х штук дает нам в сумме больше 12 000 mAh. Для питания используем комплект аккумуляторов 18650. Собираем зарядное устройство для нашего аккумулятора и пробуем запитать малинку. Это довольно неплохо для малинки и наши потребности покрывает с лихвой.

Лучше использовать контактную сварку
Склеиваем аккумуляторы между собой и очень аккуратно пропаиваем контакты.

Следуя пословице «Бери ношу по себе, чтоб не падать при ходьбе», — будем использовать только те инструменты, в работе с которыми есть большой опыт. Пока наш корпус в пути — приступим к написанию программной части. Поэтому на C++ замахиваться не будем, а возьмем любимую Java.
Код выкладывать не стану, но поясню суть сделанного.

Для этого нам подойдет Jetty в обвязке с MySQL. Для начала пишем сервер. Сервер должен регистрировать у себя устройства и устанавливать связь между устройством съемки и смартфоном.

Клиент должен уметь авторизоваться на нашем сервере, получить команду на съемку, сделать фото и отправить результат на сервер. Устанавливаем на raspberry linux, подключаем яву и пишем первого клиента. Наверняка, такое устройство понадобится еще кому-нибудь и на тот случай, если там будет другое железо и/или другие датчики — ПО так же будет другим и его тоже нужно будет обновлять. Немного поразмыслив, так же напишем систему обновлений ПО и распределения версий.

Тут все просто — добавляем устройство в список доступных по его «токену», и если устройство существует и активировано — получаем к нему доступ. Далее пишем клиента под Android. При добавлении устройства в смартфон нам достаточно просто отсканировать QR-код. Чтобы вручную не вбивать сложный токен — шифруем его в QR-код, который наносим на корпус устройства (я нанести не успел, поэтому просто распечатал, заламинировал и вложил в кейс).

Делаем чертеж для нарезки отверстий в этом красавце и сдаем в любое рекламное агентство. К тому моменту, как программная часть была готова — подоспел корпус. Там на фрезе все делают быстро и дешево.


Размещаем дисплей

Во-первых, — GPS антенна с моим передатчиком шла пассивная — керамическая, и несмотря на то, что она прикреплена снаружи устройства, находит спутники она очень долго. Собираем компоненты в корпус и получаем еще пару неприятных моментов. Во-вторых, — очень сложно припаять что-либо моим китайским кипятильником паяльником к ножкам microUSB разъема. Видимо, любая близость к металлу ей вредна, потому что вне корпуса скорость нахождения спутников была примерно в два раза быстрее. В следующий раз такие вещи буду делать только на текстолите. Поэтому пришлось фиксировать разъем горячим клеем. (О, как я мечтаю о паяльной станции!)


Собираем все в корпус

Все собрано — тестируем.


Экраны приложения

Работает на ура, изображения может передавать в двух режимах — в режиме низкого качества (для настройки объектива устройства на мишень) и в режиме высокого качества, так сказать, «боевой режим».

Обошелся домашними испытаниями и решил подарить устройство профессионалам на обкатку. К сожалению, я не владелец оружия, даже воздушки нет, и сделать самостоятельно фото-отчет о работе на стрельбище не могу.

Вносим последний штрих: покупаем «оружейный» кейс, красиво все укладываем и несем на почту.



Попросили помечать новые попадания по мишени. UPD: На момент написания статьи уже дали отзыв, что «телескоп» устройству не нужен, так как и без него все прекрасно видно.

Ну и видео запуска:

Прошу прощения за качество видео, снимал не для отчета.

Всегда думал, что у меня руки из жо транзистор работает на магии. В заключении хочу сказать, что открыл для себя новое направление в саморазвитии.

У устройства получилось выявить как плюсы, так и минусы.

Плюсы:

  • Цена.
  • Независимость от расстояния и прямой видимости. Качество изображения всегда одинаково хорошее и не зависит от расстояния. Можно наблюдать за целями из-за укрытия.
  • Неприхотливость и простота в использовании.
  • Можно использовать не по прямому назначению.
  • Можно комбинировать неограниченное количество устройств для наблюдения за большим количеством целей.

Минусы:

  • Устройство должно находиться в зоне покрытия мобильным интернетом, что по отзывам стрелков не всегда возможно.
  • Пассивная GPS-антена. Нужно менять на активную.

Опробовав первый блин — дальше хочется большего. А именно — более профессионального подхода. Нужно исправить ошибки в текущей реализации и добавить новые возможности, вплоть до баллистического калькулятора с датчиками влажности, температуры, ветра и расстояния. Далее есть идея для «глухих» мест, где устройство будет работать без интернета вовсе. Так что скорее всего эта статья лишь начало цикла статей.


Оставить комментарий

Ваш email нигде не будет показан
Обязательные для заполнения поля помечены *

*

x

Ещё Hi-Tech Интересное!

На все компьютеры в России хотят предустанавливать российские антивирусы

В правительство РФ внесён национальный проект «Цифровая экономика», в паспорте которого указано интересное предложение от Министерство цифрового развития, связи и массовых коммуникаций России: законодательно обеспечить предустановку отечественных антивирусных программ на все персональные компьютеры, ввозимые и создаваемые на территории РФ, начиная ...

Когда нужны скорость и масштабирование: сервер распределенных iOS-устройств

В Badoo прогоняется более 1400 end-to-end тестов для iOS-приложений на каждый запуск регрессии. Многим разработчикам UI-тестов под iOS наверняка знакома проблема времени тестового прогона. Это более 40 машинных часов тестов, которые проходят за 30 реальных минут. Николай Абалов из Badoo ...