“Только, только, только, только этого мало” (С) Песня на стихи А. Тарковсковского, 1967. Пропевать голосом Бони Нем
История эмиграции, блеск и нищета стартапов, техническое порно, непрерывная разработка, гидроакустика, нарциссизм, рефлексия, open-source и много фото.
Это все под катом.
Intro
Приветствую, глубокоуважаемые!
Сейчас нас шестеро, считая Гендиректора — два программиста, два электронщика и сборщик. Это конечно номинально, т.к. сборщики по факту все. Плюс бухгалтер — седьмая.
Начинали втроем — программист, электронщик и гендиректор.
Мы разрабатываем и производим электронику. Точнее — гидроакустическое оборудование: системы связи и навигации.
Не далее как вчера, в рамках подготовки какой-то презентации, меня спросили что-то вроде: “А мы можем написать, что мы разработали более двадцати разных приборов за все время”.
Точность — вежливость королей, как известно. И я принялся выписывать на бумажку поприборно, что мы успели сделать.
Интересная вещь: ты помнишь каждое устройство, держишь в голове какие-то детали прошивки и протокола сопряжения, особенности сборки разных устройств, но общее их число как-то ускользает.
В получившийся список не попали “не взлетевшие”, или, учитывая нашу специфику, “не нырнувшие” изделия, которых, к слову сказать, было всего три. Также туда не вошли и предыдущие версии некоторых приборов, которые, сохранив название, были переделаны буквально заново.
Как бы это странно не звучало, список нас сильно удивил — он оказался больше, чем мы думали.
Мы насчитали 44 разных прибора, которые мы сделали за 6 лет существования конторы. Это те устройства, к каждому из которых на сайте можно найти спецификацию, которые поддерживаются и обновляются постоянно.
Я до сих пор не уверен — много ли это, или мало? Предмет ли это для гордости, или нас сейчас засмеют в комментариях опытные разработчики и управленцы из крупных или мелких контор? Или может быть это средний показатель для подобных команд? Или, скажем, мы входим в первую треть? Или в последнюю? Понятия не имею.
Даже если наши достижения более чем скромны или просто ординарны, и мы зря возгордились (а мы возгордились — вот ведь в чем проблема) — мы всегда работали на пределе, с “полным погружением” так сказать, и нам не за что стыдиться.
Собственно, вот эти эмоциональные осцилляции и привели к тому, что я сейчас пишу эту статью.
Тысячеликий дурак
Как мне видится, программированием я занялся с книжки “Энциклопедия профессора Фортрана”. А в 1997 году перейдя в 7 класс 77 средней школы Волгограда я пошел на курс “Лаборант-Программист” в учебно-производственном комбинате. Там мы рисовали картинки на BASIC на каких-то советских ЭВМ. Потом писали что-то на Turbo-Pascal.
Но наверное, это все от того, что моя мама была программистом. Тогда, в конце 80-х и начале 90-х это было достаточно редкой профессией. Как-то вышло, что я пошел именно по ее стопам — с детства видел дискеты и перфокарты, и года в 3 или 4 она брала меня с собой на работу и меня водили “показывать машину” — огромный шкаф с пленочными бобинами, кучей кнопок и лампочек. Как мне представляется, в этом описании себя смогут узнать многие мои сверстники.
В детстве я этим очень гордился, было в этом какое-то прикосновение к сакральным тайнам. Видимо когда-то тогда во мне укоренилась мысль, что я просто должен знать про это больше всех — у меня лучшие стартовые условия, нельзя опозориться.
У меня очень хорошая память, и как я понимаю сейчас, это сыграло со мной злую шутку: мне было легко в учебе, потому что заучивать особо ничего не приходилось. Ну так я и не заучивал. Я с успехом мог пустить пыль в глаза, но знания по школьным предметам у меня никогда не были целостными.
После школы я собирался поступать в Волгоградский Политех на вычислительную технику, и несмотря на занятия с репетитором по физике — не поступил. Мне хватило баллов от централизованного тестирования только на Автотракторный Факультет и Технологию Конструкционных Материалов. Металлургия меня не впечатляла совсем, а на автотракторном я обнаружил специальность “САПР Комплексов” и убедил себя, что это даже лучше — я не буду программистом в вакууме, а буду писать какой-то крутой эмбеддед. Слова такого я тогда еще не знал конечно. А весь “САПР”, как оказалось, состоял в дополнительном семестре по С++ Builder и двух годах Autocad.
В железки и программирование контроллеров, меня, как человека мечущегося, утянул давний товарищ (поступивший на вычислительную технику кстати), который очень многому меня научил и с которым мы как-то разошлись по жизни.
На диплом я сделал “Систему горизонтирования”. Товарищ ненавязчиво предложил мне взять акселерометр ADXL202, обрабатывать его 8-битным контроллером ATTiny и по проекции силы тяжести при помощи шагового двигателя и штатива с реечной передачей выставлять строительный уровень в горизонтальное положение. Руководитель от кафедры исполнял свою роль лишь номинально, я делал что хотел и из диплома получился отличный перфоманс на защите. Это естественно еще больше уверило меня в том, что я иду в правильном направлении. Как говорил другой мой потерянный товарищ — positive reinforcement only, Alex.
Пройдя практику и проработав год в одной организации по профилю институтской кафедры и пописав на C# корявый офисный софт, ко мне пришло осознание, что до написания какого-либо встраиваемого очень крутого и важного софта меня походу не допустят. Потому что его тут и не пишут, и с чего это я вообще взял?
Часто бредя до проходной зимними вечерами я взращивал в себе мысль о том, что я, такой талантливый, хороший и недооцененный нахожусь здесь лишь божьим упущением. Индустриальные пейзажи, опустевшие цеха, ржавые металлоконструкции и особенно мизерная зарплата очень эффективно этому способствовали.
Я ушел на другой завод, где для очередного осознания потребовался ровно месяц.
Еще один дальний знакомый позвал в другую похожую организацию, пообещав более интересную работу и чуть более высокую зарплату. В сентябре 2009 я устроился в НИИ.
НИИ стало для меня и моих друзей и коллег свеобразными яслями — мы игрались в гидроакустику, как детки. Старшие товарищи разговаривали с нами, как с равными. Охотно делились знаниями и разными историями из жизни.
Мы писали научные статьи, экспериментировали, сами выдумывали себе работу. Находили на складе (мусорке) старое оборудование и делали с ним всякое.
Дошло до того, что мы в тайне от руководства, в частном порядке выезжали на водоемы и испытывали какие-то свои изобретения. А когда руководству пришлось сказать, все наши игрушки вошли в настоящий ОКР (Опытно-конструкторская работа). Поделки даже попали на выставку.
Сейчас уже всего и не вспомнить, но вроде до определенного момента все шло просто замечательно. Я так подозреваю, что у всех нас этот момент свой. И у тех, с кем мы и сейчас работаем вместе, и у тех, с кем наши дороги разошлись.
Расскажу про свой. Уже не помню в каком году, мы поехали на какие-то испытания на большой бассейн в головную организацию — в концерн. И в один из дней, под конец работы нас посетил зам. гендиректора по научной работе. Точно даже и не помню о чем был разговор, но отчетливо помню такую его фразу:
“Передайте г-ну вашему директору, что нам ваши поделки за наши деньги не нужны”
Потом мы пытались всей бандой сменить место работы, искали, так сказать, тех, кому нужны поделки. Ходили то в одну профильную организацию, то в другую. Пока из очередной на нас не донесли руководству. Вызывали по одному к директору и проводили беседу. Заслуженно конечно, чего уж там.
А наш учитель и тогдашний непосредственный начальник Игорь Владимирович Бобровский сказал мне такую сакраментальную фразу: “Зачем вы туда пошли? Они ж все одним говном мазаны. “
На мой вопрос “А куда надо было?” Он бросил: “За границу”.
Ах да, было это в 2013 году, потому что уже летом 2014-го,чтобы два раза не вставать, с должности научного сотрудника в НИИ я телепортнулся на должность Research Associate в Манчестерский университет. До этого я даже заграницей ни разу не был.
Прошел собеседование, подтянул английский, сдал IELTS, сделал флюорографию и получил рабочую визу Tier 2. Оборачиваясь назад, мне кажется, что я сделал это не приходя в сознание.
Чтобы вы понимали уровень моей наивности: ожидая в Москве готовности визы, я пошел и купил себе трекинговые ботинки salewa — потому, что в англии очень часто идут дожди.
Я знал как надежно передавать цифровые данные гидроакустическим способом через воду и имел некоторое понятие и опыт в разработке навигационных систем. Проект, над которым я работал заключался в создании многопользовательской системы гидроакустической связи и навигации для стаи автономных микроАНПА, выполняющих осмотровые задачи в прудах-отстойниках с радиоактивными материалами.
Работа располагалась в “озерном крае”, он же Lake District, он же Cumbria:
С коллегой-англичанином мы пополам снимали небольшой дом в городке Workington.
Зарплаты хватало на аренду дома, питание не из царского меню, мелочи с eBay и немного откладывать. Отношения с коллегами сразу сложились дружеские и очень продуктивные. Климат был как я люблю — сырой и дождливый.
Начав работу с августа, к новому году у меня уже был рабочий макет навигационной системы, проверенный в бассейне. Поначалу электроника монтировалась в пластиковой коробке из-под кекса Haribo, коллеги тогда так и называли мой макет — “Alex’s Haribo Box”. В дальнейшем я пересобрал его в пластиковом чемоданчике.
И еще у меня уже был на руках подписанный контракт на следующий год.
Но.
Всегда ведь есть какое-то “но”, правда?
Concilio et labore
С одной стороны я наверное заскучал как по родине и родным, так и в прямом смысле — свершений хотелось, что ли.
А с другой стороны, я плотно общался со своими коллегами по НИИ. И мы с @StDmitriev просто в чатике что-то обсуждали и проектировали. Он мне постоянно помогал с электроникой — усилители, предусилители, антенны.
Насколько я могу вспомнить, изначально даже не вполне понимали, какова цель. В итоге придумали как внутрь цилиндрической антенны затолкать всю требуемую электронику. В основном придумал Стас, я просто дополнял все до диалога.
Получился максимально компактный гидроакустический прибор, который мог бы излучать, принимать и обрабатывать сигнал.
Прелесть состояла в том, что все намертво заливалось в полимер, наружу торчал только кабель. Проблема герметизации решалась кардинально. Но был и определенный минус такой конструкции — залив единожды прибор в полимер, исправить что-либо в случае ошибки или поломки уже не представлялось возможным.
Как выяснилось позже, и то и другое оказалось не совсем верно.
Забегая вперед, выглядит это так:
Корпус подводного прибора делать как-то сложно, дорого и непонятно. Наше решение было радикальным — нет корпуса — нет проблем!
Кажется, это был наш первый патент. По иронии судьбы, в США он был получен самым последним — пришлось попрепираться с американскими патентными экспертами.
Чуть позднее, спустя несколько дней, одним утром, пока я принимал душ, на меня вдруг снизошло озарение.
О небеса и бездна! О боги! Это тяжелый наркотик!
Около получаса я ощущал себя никак не менее чем Архимедом.
Совершенно непередаваемое ощущение — поэтому я его тут и не передам. И при личной беседе тоже не смогу.
У меня вдруг как-то само в голове сложилось, как можно обеспечить географическими координатами неограниченное число подводных объектов одновременно, чтобы они друг другу не мешали.
Конечно, я не изобрел GPS: речь о более специфических и узких деталях. Схема состояла в том, что четыре буя поочередно передают определенные данные, синхронизированно с часами GPS, и сколько угодно абонентов под водой могут эти посылки принимать, измерять момент прихода сигнала и определять собственные абсолютные координаты.
Впоследствии это стало нашим вторым патентом.
Наверное тогда я и решил вернуться. Через нашего старого друга из США мы познакомились с нашим гендиректором из Москвы. Который как раз и направил и направляет мечущихся изобретателей по сей день.
Коллеги из университета и руководство восприняли мой уход в целом нормально. Я постарался оставить дела в наилучшем состоянии, чтобы мой будущий сменщик смог поднять брошенное знамя как можно быстрее.
Вернулся я в мае 2015, а в июле мы уже принимали участие на МВМС-2015 с нашим подводным GPS и кодовым гидроакустическим модемом.
Работали мы сначала у Стаса на недостроенной веранде, выглядело это как-то так:
Стас паял, проектировал заливочные формы и корпуса, я писал код, вместе мы заливали и собирали первые устройства. Дома у Стаса было так:
Это был лютейший цейтнот — я уезжал от Стаса в три ночи, когда в Волгограде летом уже начинает полным ходом светать.
Итак, у нас к середине лета 2015 года было готово:
система подводного GPS в бета-версии, состоящая из
гидроакустического буя RedBase
навигационного приемника RedNode для интеграции с роботами
носимого навигационного приемника с экранчиком для использования водолазами. Сейчас это составное устройство — RedNav, куда входит навигационный приемник и блок с кнопками и экраном.
В первой версии это был единый прибор. Выглядел он так:
Он имел встроенную беспроводную зарядку и свою антенну. В него с самой первой версии можно было загружать маршрутные точки, сохранять точки по мере движения под водой и выгружать трек. Соединение с устройством при помощи Bluetooth.
Минусы такой конструкции не заставили себя ждать: если прибор повесить водолазу на руку, как это и предполагалось, антенна часто может находится в очень невыгодном положении относительно передатчиков. Плюс она сама по себе имела меньший размер по сравнению с устройством для роботов (ТНПА/АНПА). В среднем тут меньший размер — меньшая площадь — меньше энергии соберет антенна из воды.
Сейчас навигационный приемник крепится на баллон водолаза. Вот так:
Или на специальной водолазной панели с компасом, так:
Внезапно, нашего знакомого водолаза с нашим подводным GPS поместили в сканворд. Бывают же такие совпадения! Еще более невероятным совпадением было то, что нам на глаза этот сканворд попался.
В последних версиях мы ушли от беспроводной зарядки, вместо этого зарядка происходит через металлические корпуса пьезокнопок по бокам наручного прибора. Оказалось, что так надежнее и проще.
Где-то в это же время мы стали резидентами “Сколково”, и я понимаю, что в обществе упоминание “Сколково” носит негативную коннотацию, но вот с точки зрения меня, как просто разработчика — “Сколково” реально очень сильно нам помогли. Для меня не очень ощутим факт работы без НДС и всякие налоговые вещи — я, честно сказать, в этом не разбираюсь. Но, например, я не представляю, как бы мы потянули все патенты, в особенности европейские и американские — это сумасшедшие деньги. Так же “Сколково” спонсировало какие-то выставки, куда бедным артистам вход заказан.
Еще у нас был кодовый модем — RedGTR, получился он чисто как побочный продукт.
Итого, менее чем за полгода раздельного проектирования и за пару месяцев совместных сборок у нас появилось 4 разных устройства.
Я часто вспоминаю слова еще одного моего старого коллеги из НИИ. Они звучали примерно так: дурак он и есть дурак, он ни о чем не волнуется и часто влезает туда, куда умный бы поостерегся. И с годами я все больше узнаю в этом описании себя.
Нет времени объяснять: разрабатывай
Сразу после выставки мы умчали на беломорскую биологическую станцию МГУ на испытания, где и получили первый трек от нашего подводного GPS:
Дальше были доработки, первые продажи и изготовление. И испытания на разных водоемах.
На одних испытаниях с МЧС на черном море был интересный казус, который немного выбил нас из колеи.
Мы разворачивали свои буи, рассказывали что-то водолазам, они вяло задавали вопросы, кто-то сплавал и подтвердил что все работает как положено.
Затем пришел какой-то мужик и сообщил всем: “пацаны, пойдемте, сейчас придет изобретатель”
К нам немного потеряли интерес, но это было в принципе стандартно. Забавно другое. Когда пришел “изобретатель”, выяснилось, что изобретение это — “спарка” — два водолазных баллона на спину, чешского производства, соединенных итальянскими шлангами и фитингами, смонтированных на вырезанную гидравлическим резаком из нержавеющего листа “раму”.
Ребята, а как же мы? Ведь у нас тут координаты под водой! Ведь мы же по сути вручную повторили GPS! Не только в идеологическом смысле, но и в плане реализации: это же цифровая связь с кодовым разделением абонентов, написанная ручками с нуля!
А как же желтенькие корпуса? А противоскользящий ремешок? “Товарищи, товарищи! Ээээх, товарищи…”
Наверное, нас восприняли как перепродавцов с Алиэкспресс. Дальше — больше.
Выяснилось, что водолазы МЧС (те, которых мы видели) в основном — днищеброды, то есть те, которые по дну бродят на шланге. Шланг ну тридцать, ну сорок метров бывает. Связь там как в домофоне — по проводу, а определять местоположения водолаза и не надо: вот же он — на том конце кабельно-шланговой связки, а даже более точно — под буйком, который к нему привязан.
Те же, кто хотел бы определять местоположение роботов в основном не осиливали интеграцию — чтобы взять данные с приемника, расположенного на аппарате, приемник надо к роботу как-то подключить, запитать, поднять данные по кабелю на надводный пульт — непосильная задача для большинства. Те же, кто осиливал — оставались очень довольны.
В общем, получается так
Попутно стоит отметить, что где-то в течение 2016 года мы сделали еще два устройства — модемы RedLine и Natrix. RedLine являлся логическим продолжением RedGTR, только теперь это уже был не кодовый модем (это как пульт с большим числом команд и на несколько десятков абонентов), а полноценный. То есть при помощи него можно было просто передавать произвольные пользовательские данные. RedLine обеспечивает скорость в 80 бит/с на максимальной теоретической дальности 8000 метров.
Natrix же был сделан немного по другой схеме и по задумке мог передавать со скоростью уже до 560 бит/с. Однако, мы сделали несколько штук и отказались от него вообще — нас не устраивала надежность связи. Связь это всегда компромисс между надежностью и скоростью передачи.
Оба модема заливались в ту же форму, что и навигационный приемник подводного GPS, и выглядят они совершенно неотличимо.
Где-то в то же время нас попросили сделать измеритель давления с передачей по RS-485 и отображения на экране. Как раз для водолазов, работающих на кабельно-шланговой связке. Мы немного воротили нос, мол, а где тут гидроакустика? Но таки взялись и достаточно быстро сделали.
Промежуточный итог середины 2016 года — 8 устройств. Напомню, что к этому времени мы уже нагружены производством того, что было разработано ранее. Я потом еще буду об этом напоминать по ходу текста.
В два раза больше программистов
В том же 2016 мы начали особенно остро ощущать нехватку рабочих рук. Мы довольно быстро перетянули из НИИ одного из давних коллег. Число программистов выросло в два раза, и теперь мы уже могли разрабатывать и УКБ системы — появился профильный специалист.
УКБ значит ультракороткобазисный, английская аббревиатура — USBL. Так называется класс систем, где определение местоположения подводного объекта происходит дальномерно-угломерным способом. Как правило, с борта судна свешивается прибор, который в своем составе имеет фазированную антенную решетку. На объекте, местоположение которого необходимо определить, располагается пингер или маяк-ответчик. Антенна или предварительно синхронизируется с пингером или запрашивает маяк-ответчик. По времени распространения определяется наклонная дальность, а при помощи антенной решетки определяется угол (или углы) прихода сигнала. Таким образом объект локализуется в сферической или цилиндрической системе координат.
Все это очень любят, потому что в простейшем случае нужно два устройства, одно из которых ты можешь буквально веревкой примотать к аппарату или водолазу, а второе свешивается с судна.
Изначально со Стасом мы зарекались заниматься УКБ, но под давлением общественности передумали.
Если маяк-ответчик отличался от кодового модема RedGTR лишь прошивкой и совсем немного номиналами в аналоговом тракте, то антенна с фазированной решеткой штука довольно непростая во всех смыслах.
Систему назвали Zima. Я предложил это название, потому что мне понравилась фамилия уголовника в исполнении актера Гармаша из фильма “Охота на пиранью”.
Да это кринж, и фильм тоже кринж. Собственно все, что мне оттуда понравилось это фамилия.
Фото маяка-ответичика приводить не буду, ибо он неотличим от остальных цилиндров, а пеленгационная антенна выглядит так:
В общем-то это такой же цилиндр, к которому снизу добавлена антенная решетка. Все также намертво залито в полимер.
Меж тем, продолжаем загибать пальцы: маяк-ответчик это 9 и антенна это 10.
В этой версии системы применили интересное решение — т.н. двусторонняя навигация, на что мы тоже получили патент.
Суть состоит в том, что не только антенна измеряет расстояние до маяков-ответчиков, но и маяки тоже определяют расстояние до антенны: ответный сигнал маяка для антенны является как бы запросным и она посылает второй запрос через определенное время после получения первого ответа. Это позволяет маяку тоже определить наклонную дальность до антенны. Но это половина истории. Если к системе, а точнее к пультовому ПК подключен GNSS-компас и определяются абсолютные координаты маяков, то вторым запросом антенна посылает маяку вычисленный абсолютный азимут на нее.
Таким образом, маяк может получать навигационную информацию для осуществления привода — возвращения на базу.
Я точно помню, что полностью рабочий образец поехал на следующую выставку (это биенале) к концу июня 2017 года.
Период 2016-2017 вообще был жаркий. Мы взяли еще одного человека — сборщика.
Мы арендовали помещение и начали делать ремонт. Плавно перейдя от этого:
К этому:
Пока все частично сидели по домам в виду ремонта сделали еще несколько устройств.
Во-первых, водолазную телефонию в двух приборах:
-
поверхностная станция RedPhone-OS
-
водолазная станция RedPhone
Водолазная телефония коварная вещь: при относительной простоте технологии связи, много возни с масками и гарнитурами. Первая версия нашего водолазного прибора была сделана очень по мотивам OTS BuddyPhone. Это было с одной стороны большим промахом — дизайн крайне неудачный, а с другой стороны огромным опытом.
BuddyPhone выглядит так:
Это соответственно 11 и 12.
Еще тогда же мы сделали “водолазный привод” Vostok. Очень интересный концепт: есть надводный чемоданчик с опускной антенной и любое число носимых устройств.
Работает все следующим образом:
Надводный чемодан излучает специальный сигнал через равные промежутки времени. Носимое устройство — акустический компас имеет упрощенную версию фазированной антенной решетки и может определять горизонтальный угол прихода сигнала. Этот угол оно отображает на экране и водолаз может видеть направление на базу, то есть может вернуться в месту как они его там называют, точка сбора или выхода.
Беда только в том, что мы допустили ошибку на этапе проектирования и возникла проблема с распространением звука по стеклу носимого прибора. От этого прибор нормально не заработал. Но мы обязательно вернемся к этому концепту, когда будет свободное время.
Просто примем к сведению, но считать эти два прибора не будем.
Где-то в этом же временном промежутке нас кто-то попросил продать просто антенны. Мы подошли к вопросу основательно, и пополнили свою номенклатуру еще четырьмя устройствами, одно из которых выполнено по схеме Free Flooded Ring и предназначено для работы на глубинах до 1000 метров. Конечно, в антеннах нет процессоров и алгоритмов, но есть заливочная форма, техпроцесс сборки и работа по обмеру характеристик.
На основе антенны на 1000 метров пришлось создать версию УКБ Zima, с OEM-версией маяка и антенной на 1000 метровую глубину. Сам корпус мы проектировать не стали, ибо это немного не наш профиль, но электронику и прошивки пришлось сильно переделывать. Это еще одно устройство.
Пока прокручивал все это в голове, вспомнил еще одно устройство, которое сделали примерно в этот же период — UART Splitter. Там тоже никакой гидроакустики, это просто уплотнитель 8-ми последовательных интерфейсов в один. Грубо говоря штука, которая передает в две стороны 8 UART-ов через две витые пары, по которым бежит RS-422, сейчас уже не помню, но вроде бы даже был режим работы через одну витую пару и RS-485. Мелочь конечно, но это плата с процессором и прошивкой. Выглядит он так:
Таким образом количество устройств увеличивается до 17.
Все эти вещи также поехали на известный биеннале.
Analog man in digital world
Тем временем нам не хватало рукастого и головастого спеца по аналоговой электронике с большим опытом.
В узкий круг ограниченных людей хотелось впустить только проверенного и надежного человека. Я бы даже поставил определенный артикль, если бы таковой был в русском языке, потому что мы знали его, и звали уже какое-то время.
В некоем смысле нам повезло, что в НИИ центробежные процессы превысили какой-то порог активности, и даже самые ответственные начали думать о смене обстановки. Так в марте 2018 к нам пришел Андрей.
Андрей со всей прытью внес множество улучшений и доработок в уже существующие изделия, полностью переделал электронику в надводной телефонной станции и в одно лицо запроектировал блок питания и коммутации для нашей Zim-ы. Особо не заморачиваясь он был назван Bat&Link Box
Чемодан имеет на борту LiFePO4 (Литий-железофосфатный) аккумулятор на 40 или 60 Вт*ч, один или два канала RS-422 с подключением к ПК по USB. Присутствует автоматический выбор питания — внешнее или встроенный АКБ.
Защищает от КЗ на выходе, от перенапряжения на входе, от переполюсовки, от порчи, сглаза, снимает венец безбрачия и т.п.
УКБ антенна при излучении потребляет до 3А на 12 Вольтах, излучение длится сотни миллисекунд, а кабель, по которому питается антенна и передаются данные в стандартной комплектации имеет длину 10 м, иногда делаем и 20 м. Так что для обеспечения нормального питания нужно было немного повозиться.
Пока мы увеличиваем счетчик разработанных устройств до 18, я отмечу, что во всех таких приборах мы используем 2-мм нержавейку в качестве лицевой панели. Надписи наносятся лазерной гравировкой. В наш век засилья пластика приятно прикоснуться к толстой надежной железке.
Самый самый самый
До этого мы радовались, что уместили всю необходимую электронику в большом кольце (у нас оно самое большое из тех, что мы применяем), но периодически шутили между собой, что было бы прикольно уместить все в маленькое кольцо (оно маленькое, но не самое маленькое).
Я грустил, мне хотелось сделать какой-то крутой open-source, и я просто в свободное время писал еще один модем, сильно отличающийся по сигналу и обработке от применяемых нами до того момента.
Внезапно оказалось, что код умещается во всех смыслах — и по размеру и по производительности в один 64-ногий процессор. Свободный полет мысли не ограничивался ничем, кроме фантазии и я попытался учесть всякие разные пользовательские пожелания, которые уже успел услышать к тому моменту. Модем (код) умел измерять дальность, имел режим коротких команд — можно было у другого модема запросить, например, его глубину, температуру, напряжение питания и послать еще 9 пользовательских команд, попутно измеряя время распространения (читай — наклонную дальность).
Модем умел и в просто прозрачный канал, поддерживал кодовое разделение. Причем можно было настроить разные кодовые каналы на прием и передачу. А короткие посылки можно было отправлять на любой канал и ожидать ответа тоже в любом кодовом канале.
Короткие посылки нужны, во-первых, для измерения дальности методом “запрос-ответ”, а во-вторых, чем короче посылка — тем меньше вероятность что она побьется невосстановимо и больше вероятность ее успешной передачи.
Впоследствии модем обзавелся пакетным режимом передачи с логической адресацией до 255 абонентов и гарантированной доставкой.
Что же на счет скорости передачи, то сначала небольшой flashback.
Наш учитель Игорь Владимирович Бобровский, светлая ему память, научно дискутировал с одним разработчиком гидроакустических модемов из Новосибирска, и рассказывал примерно так:
“Слушали мы К.. Он докладывал про свои модемы. И он что-то рассказывает, рассказывает — тут такая полоса, такая модуляция. Я его спрашиваю: скорость какая — он — 100 бит/с. Потом опять — другая схема, другая полоса, другая модуляция”. При этом Бобровский активно жестикулировал руками, изображая изменения параметров сигнала. “Скорость какая? — Опять 100 бит/с. И еще схемы с другими параметрами — и опять 100 бит/с.”
Так вот, если наш первый модем получился со скоростью 80 бит/с. То этот новый, имея совершенно другой сигнал и другую полосу обеспечивал скорость 78 бит/с.
Меж собой мы шутим, что нас постигло проклятье К. (фамилию я скрыл — вдруг обидится еще).
На самом деле сейчас модем имеет три скоростных режима — 78 бит/с, 156 и 314 бит/с.
Ввиду того, что модем уместился в небольшой процессор, Стас утолил свою жажду и затолкал это все в наше маленькое кольцо.
Сейчас это наш самый коммерчески успешный гидроакустический модем uWave:
Максимальная дальность связи по даташиту — до 1000 метров. На практике у нас получалась дальность 1092 метра (дальше просто не смогли разойтись). Модемы продавались в Норвегию, Венесуэлу, США, Великобританию, Испанию, Китай и конечно же по РФ.
Здесь надо сделать отступление и для очистки совести упомянуть “Сколково”: экспортировать какую-то нестандартную электронику из РФ это лютый и опасный бюрократический квест. Все оформление и сама перевозка баснословно дороги. Специалисты “Сколково” реально сделали наш экспорт возможным в принципе.
Как мне показалось, законодательство заточено под пресечение вывоза технологий определенной области применений, и каких-то технологий, которые могли бы помешать работе технологий определенной области применений. В нормативных актах опираются только на простые параметры вроде несущей частоты, дальности работы, одновременной работы в скольких-то каналах и т.п. И объяснить товарищам таможенникам, что “это не то, что вы подумали” задача не то чтобы невыполнимая, но непростая. Как говорится:
И это действительно другое. Вывозить, к примеру, нельзя всякие гидролокационные или шумопеленгационные системы, которые могут определить твое местоположение на такой-то дальности с такой-то точностью, без твоего участия и согласия. Они содержат очень многоэлементные антенны, работают на определенных частотах и т.д.
В нашем же случае — определить местоположение можно только такого объекта, на котором ты сам разместил маячок или пингер. И модемы только с такими же модемами могут обмениваться информацией. И до кучи все остальные параметры не подпадают под разные ограничивающие документы. Просто есть стоп-слова вроде “гидроакустический”, “подводная навигационная система” и т.п.
Но вернемся к модему. Это устройство, к слову, самый маленький и недорогой гидроакустический модем в мире, стал первым в семействе совместимых между собой по протоколу и акустически устройств — сейчас есть модем с фазированной антенной решеткой для определения угла прихода сигнала — uWave USBL, увеличенная версия (собранная в большом кольце) — uWave Max и OEM версия — uWave Max OEM. Все версии кроме изначальной имеют увеличенную до 3000 м максимальную дальность связи.
Надо ли говорить, что никаким open-source он не стал.
Имеем полное право увеличить счетчик приборов сразу на 4: теперь у нас разработано 22 устройства. Это где-то на конце 2018 — начале 2019 годов.
Подводный GPS наизнанку
Мы стараемся очень, я бы даже сказал, слишком прислушиваться к хотелкам клиентов. От этого нас мотает, как цветок лотоса в проруби.
Кто-то не хочет расставлять буи, кто-то не может “поднять” с аппарата обычный UART 9600 через сотню-другую метров кабеля, кого-то не устраивает точность УКБ и необходимость крепления за борт судна на жесткой штанге. Где-то сталкиваешься просто с иррациональными вещами, где-то требования совершенно оправданы условиями применения.
Из интересного запомнились такие вещи. Один человек не мог использовать наш подводный GPS по причине того, что работа была связана с изучением кораллов, и в том месте где эти кораллы растут совершенно запрещено ставить якорь.
Другой клиент и пользователь нашей УКБ рассказывал, что не может ставить буи, потому что иногда погода может измениться очень быстро, и ему нужно будет срочно идти к берегу. Времени на снятие буев просто может не оказаться.
Иногда глубина просто не позволяет — достаточно сложно поставить буи на глубине уже хотя бы метров сто.
Для тех же, кто по разными причинам не мог поднять данные по кабелю от своего ТНПА мы разработали систему с буями “наоборот”.
Если у нашего подводного GPS буи были излучающими, что позволяло вырабатывать координату прямо на объекте для неограниченного числа потребителей, то у новой системы с кодовым названием RedWave Lite буи были приёмными, а под водой на объекте, местоположение которого требовалось определять, располагался пингер. Пингер штука относительно простая — в нем даже нет приемного тракта. Он просто периодически излучает навигационный сигнал.
И вот этот сигнал принимается буями и передается по радиоканалу на ПК пользователя. Пользователь сидит и смотрит на свой ТНПА прям поверх карты.
Что знаково, вся та часть системы, которая ответственна именно за решение задачи о нахождении местоположения пингера полностью open-source. Вот репозиторий приложения uTrack, а вот навигационная библиотека UCNLNav, про которую я уже писал отдельную статью.
Система состоит из четырех буев, автономного пингера с батарейкой и радио-донгла, который подключается к ПК через USB-порт.
Система получила название RWLT, чтобы было меньше возможностей спутать ее с RedWave — там буи и тут буи, для человека несведущего запутаться как с добрым утром.
Вот коротенький пример как оно работает:
Увеличиваем счетчик приборов на 3. Итого 25 устройств.
Что залито — затечь не может
Но это еще не все про систему RWLT. Тут придется немного нарушить хронологию рассказать немного опять про водолазную телефонию, точнее про подводную часть.
Как я упоминал ранее, в первой версии мы прямо попытались скопировать корпус BuddyPhone и это оказалось серьезной ошибкой: вообще иметь какие-то пластиковые крышечки под водой, которые должен обслуживать пользователь — это так себе идея.
Мы легонько наступили на эти грабли еще разок и сделали вот такую версию:
Внутри полиацеталевого корпуса есть обслуживаемый контейнер с аккумуляторами типоразмера 18650. Вся электроника же полностью залита в полиуретан.
Стоит признаться, что уже в процессе сборки нескольких таких приборов к нам пришло осознание, что весь этот громоздкий корпус явно лишний.
Мы постоянно испытывали проблемы с гарнитурами в водолазные маски — они все разные, у каких-то есть только наушники и микрофоны, вводящиеся в каждую маску через свой порт-переходник, у других присутствует и кнопка передачи.
Причем кнопки в основном сделаны на основе геркона и магнитика на пружинке. Кнопки от OTS постоянно выходили из строя сами по себе, в них ржавеют пружины и в конечном счете мы опять подошли к вопросу радикально и сделали свою — на фото можно видеть такую странную красную штуку. В кнопке совершенно нечему ржаветь и ломаться. Вот коротенькие видео, что мы с ней делали для проверок:
Потом мы просто продолжили идти этим путем и залили в полиуретан уже прибор целиком, выкинув громоздкий пластиковый корпус:
Он уменьшился и облегчился драматически, стал более безопасным и надежным. Аккумуляторы стали несъемными.
Раньше в батарейном отсеке был DIP-switch для переключения каналов, поэтому после упразднения батарейного отсека пришлось сделать настройку прибора через радио, то есть нужно было разработать еще одно небольшое устройство: радио-донгл и это устройство под номером 26. Как можно заметить, изготавливаемое тоже путем заливки =)
Конечно, прибор получился чуть больше BuddyPhon-а, но мы сравниваем его не с ним. BuddyPhone — в известном смысле устройство начального уровня. Полностью аналоговое и с максимальной дальностью порядка 200 метров. У нас все цифровое, включая встроенный VAD — Voice Activity Detector, глушащий шум при отсутствии полезного сигнала на входе.
Вот к примеру, как телефония звучит в мелком пруду на дальности метров в 150-200:
Так вот, сравниваем мы сейчас нашу телефонию вот с этой версией от OTS:
Не могу себе представить, чтобы могло заставить нас написать на приборе что-то вроде “Однополосная модуляция. Акустический телефон. ЦОС Многоканальный (профессиональный)”.
С американскими телефониями связана одна забавная история еще периода нашей работы в НИИ. В институт выдали надводную станцию ОТS для ознакомления. В самом приборе ничего интересного не нашли, но кто-то из старших коллег догадался обмерить гидроакустическую антенну. Выяснилась забавная особенность: вертикальная диаграмма антенны такая, что максимум находится в довольно узком конусе, направленном вверх — в сторону кабеля.
Были высказаны разные предположения относительно того, зачем так было сделано. Но в итоге все сошлись на том, что антенну проектировали исключительно с технологической точки зрения, и она получилась какая получилась, потому что вот именно так им было удобно изготавливать. Если кто-то и снимал диаграммы направленности, то мог только констатировать факт того, что вышло не очень удачно.
Тем временем, мы радовались своей кнопке, нажимали ее, а потом пришла интересная мысль: водолазная телефония работает как рация — в смысле нажал кнопку — говоришь, отпустил — принимаешь. Водолазы, если их больше одного в одно время в одной акватории в принципе нормально сами разделяются по времени: они говорят “прием” после завершения передачи.
Так вот, если после завершения голосовой передачи прибор излучит короткий навигационный сигнал, а сверху будут расположены буи RWLT, то это будет очень похоже на работу с пингером, с той разницей, что водолазы сами будут регулировать частоту обновления своего местоположения. Так и сделали: теперь у нас единственная в мире водолазная телефония со встроенной навигацией. Конечно, нужно иметь четыре навигационных буя на поверхности, но как это сделать без них, пока не придумали.
Осталась правда еще не одна напасть: микрофоны, которые использовались с масками, а это всем известные ДЭМШ и аналоги от OTS и OceanReef очень капризные к воде. Хоть в них и присутствует защитная мембрана из чего-то типа гортекса, но испортить микрофон можно на раз-два. А это втройне неприятно, если учесть их цену в районе 10-12 тыс. руб.
Вы понимаете, к чему я клоню: микрофон тоже пришлось сделать самим. Было с десяток итераций, но в конечном счете мы пришли к такому варианту на основе пьезокерамики:
Как видите, там особо нечему гнить, кроме бронзовых втулок с резьбой. Уж разные режимы всплытия ему точно не страшны, в отличие от микрофонов OTS и OceanReef.
С вашего позволения я увеличу счетчик еще на два — это кнопка 27 и микрофон 28.
Мы мрачно шутим, что видимо придется в какой-то момент и маски делать самим.
Фалос
Есть такой класс приборов в подводной индустрии, как размыкатель. Более точно — акустический размыкатель, или Acoustic Release.
Если в двух словах, то это такая штука, которая лежит на дне от нескольких недель до лет, и по гидроакустическому сигналу с поверхности отцепляется от якоря и всплывает.
Мы на такое не замахивались, в виду того, что это в основном задача для нормального механического производства.
Ну и к нам обратились с просьбой “повторить” дорогой заграничный прибор. Сказали — размыкатель. И как это водится, мы начали писать техническое задание. До того, как увидели сам прибор.
Что у нас на первом месте всегда? Верно. Связь. Мы начали растекаться мыслью по гуглодоку от возможностей акустики. Пролежать устройству требовалось два месяца, затем словить один из 64 возможных кодов, разомкнуться и всплыть.
Лежа в холодной воде два месяца прибор должен искать нужный сигнал, в случае принятия сигнала, правильно его обработать и запустить моторчик, который открутит стопорный винт и вся эта свадьба всплывет.
Тут была одна особенность. Если в подавляющем числе случаев размыкатели просто размыкают и все: они рассчитываются на большие глубины порядка 1000 метров и более. У нас задача была такая, что должен всплыть поплавок, который размотает и вытянет за собой конец веревки. На другом конце веревки — какое-то научное оборудование. Как называют такую веревку? Верно. Фал. Выбор названия, особенно учитывая нашу уверенность, что его заказчик изменит в любом случае, был очевиден. И да, конечно, вторая буква “л” в названии отсутствует.
А он взял и не изменил.
Но это половина шутки. Вторая половина состоит в том, что прибор, который нужно было повторить вообще не содержал никакой акустики. Он программировался со смартфона как таймер. И просто всплывал в нужное время.
Но когда это стало понятно, заказчику уже понравилась идея с акустическим управлением.
В итоге мы разработали очень низкопотребляющий акустический модуль. Конечно, как бы мало он ни потреблял, это все равно больше, чем потребляет таймер. Пришлось немного увеличить “батарейку” — вместо нескольких пальчиковых батареек наш прибор обзавелся встроенный LiFePO4 (вода-то холодная!) аккумулятором на 52 Вт*ч.
Кстати, для обеспечения низкого потребления пришлось использовать совершенно другие сигналы — не такие, что мы применяем для всех остальных систем и приборов. Это потребовало разработки новых аналоговых трактов практически с нуля. Все устройства “фалоса” были разработаны… за два месяца.
Почти столько же заняло изготовление катушек из плотного пенопласта — вот такой вот у нас перекос технологических возможностей.
Так выглядит актуатор-размыкатель внутри катушки с уложенной веревкой:
А вот, как это проектировалось:
Всю механику мы постарались сделать максимально близко к эталону, все-таки механика — не наш профиль.
Вот так выглядит сам размыкатель:
И он же в форме для заливки:
А вот так, уже привычно, акустическая часть, которая подключается к размыкателю:
Очевидно, что в отличие от штуки, всплывающей в назначенное время, акустическому размыкателю нужен еще какой-то прибор, который отдаст команду. А еще нужно делать разные проверки перед сбросом и программировать коды на всплытие. Все это возложено на надводный прибор.
Мы сделали его по уже знакомой нам технологии в виде чемодана:
Прибор не имеет никакого экранчика, а коды на всплытие задаются двумя галетными переключателями по 8 позиций каждый.
Справедливости ради, я практически не поучаствовал в разработке этой системы, разве что придумыванием названия и участием в сборке/заливке.
Вот короткое видео каких-то промежуточных испытаний системы в бассейне. Если смотреть со звуком, то можно слышать какие-то гармоники инициирующего сигнала и работу двигателя:
Мы стыдливо пишем F4105, вместо того, чтобы честно писать: Фалос
Фалос содержит 3 устройства, так что увеличиваем счетчик до 31.
Что-то простое
Всегда хотели сделать что-то простое и доступное. И полезное.
Где-то в 2018 (мне кажется, что вообще все было где-то в 2018, ну или в крайнем случае в 2015) при очередном обсуждении у нас родилась концепция простого “пульта” управления.
Пусть будет какая-то несложная плата приемника:
Несложная плата передатчика:
Пусть все питается от какой-нибудь батарейки вроде “Кроны” и передает просто команду акустикой через воду метров на 100.
Что это? Ну, скажем, дистанционный выключатель. Подводный. Назвали, в общем, проект “uSwitch” — Underwater switch и you switch.
В текущем варианте uSwitch стал поддерживать 4 команды вместо одной запланированной. Теоретически схема оставляет некий простор для небольших улучшений, и может быть когда-то мы еще увеличим число команд.
Впервые поделку на “большой” воде мы испытали зимой, она дистанционно зажигала светодиоды:
запускала фейерверк:
А по весне, с её помощью мы уже управляли небольшой лодкой:
Тут есть интересная и поучительная история. Сразу после того, как мы испытали эту поделку на воде, о чем даже была отдельная статья, нам написали несколько человек с предложением приобрести поделку.
Так как это изначально не планировалось в качестве серьезного продукта, то мы прикинули по самому минимуму — почти без учета стоимости работ по сборке плат. Вышло уже не помню точно сколько, но что-то около 3000р за плату. Но, как говорится, есть один нюанс.
Если для приемника можно было использовать самодельную антенну, и бог мой, мы даже написали подробный туториал как её сделать самому, и даже были готовы продать за что-то около 1000р, то для передатчика уже требовалась антенна, которая бы обеспечивала эти самые заявленные три сотни метров. Я помню как упрашивал всех и убеждал, что мы должны дать людям возможность приобщиться к гидроакустике и это же светлая сторона силы и все такое. Все дали согласие на то, чтобы самая маленькая наша антенна продавалась бы почти по себестоимости — то-ли 11 то ли 12 тыс. руб.
Людей просто сходу отпугивала эта цена. Помню как один из написавших, долго выспрашивал, чем можно было бы заменить антенну передатчика. Доходило до абсурда: его интересовало, можно ли использовать вместо антенны передатчика ланжевены для отмывочных ванн. На мои опасения что, во-первых, мы с ними не проверяли и даже не ставили такой цели, а во-вторых, ланжевены для отмывочных ванн существенно больше нашей антенны и имеют узкую диаграмму направленности, а в-третьих, их надо как-то герметизировать, он спрашивал, можно ли соединить несколько ланжевенов неким крестом, чтобы покрыть нужные пространственные направления?
Собственно, при цене ланжевенов в районе ~500р — ~800р гипотетическая монструозная конструкция из 5-6-ти штук, которую как-то еще предстояло собрать и загерметизировать, выходила почти в половину стоимости одной заведомо рабочей, полностью готовой к употреблению миниатюрной антенны.
Надо ли говорить, что не было продано ни одного комплекта uSwitch. Мне осталось только полностью признать перед коллегами, что я жил в какой-то параллельной розовой реальности.
Кстати, чуть позднее мы нашли у себя какой-то ланжевен, и оказалось, что использованная схема усилителя с ним совершенно не совместима. Не то чтобы это было каким-то сюрпризом: усилительный тракт каждого устройства проектируется исходя из полосы частот, длительности сигнала и характеристик антенны. Если, к примеру, прибор излучает периодически и только сигнал определенной длительности — как навигационный буй нашего подводного GPS, то можно попытаться выжать побольше мощности, с расчетом на то, что, во-первых, за время излучения ничего не сгорит, не расплавится и даже не успеет нагреться, а во-вторых, между излучением сигналов успеет достаточно охладиться. А если речь идет об усилительном тракте модема, то с ним ничего не должно произойти при теоретически непрерывном вечном излучении. При условии, что температура окружающей среды находится в допустимых пределах, конечно.
Антенна согласуется с усилителем, компенсируется неравномерность ее АЧХ (в случае широкополосного сигнала) и то, что тракт, разработанный специально для какой-то определенной антенны не заработал с какой-то другой — это скорее закономерность, чем исключение.
Короче, мы совершенно искренне старались сделать простое и доступное устройство.
Я увеличиваю счетчик приборов на два, и теперь у нас их 33.
Что-то простое, но чуть сложнее
Мы в целом не воспринимали неудачу с uSwitch как таковую и вот почему. У нас появилась готовая к применению простенькая технология простенькой связи, и момент, когда она понадобилась, не заставил себя ждать — Фалос сделан очень сильно на основе uSwitch. Точнее, если бы до разработки фалоса мы не сделали uSwitch, то его пришлось бы делать в процессе. И тогда бы он был просто одним из комплектов макетных плат.
Но это было конечно немного позже: Фалос мы делали с июля по сентябрь 2022 года. А еще раньше была попытка использовать наработки с uSwitch для создания любительской (как колбаса, ага) навигационной системы.
Исходили мы их соображений, как обеспечить:
— максимально доступно
— без необходимости наличия дополнительного сложного и дорого оборудования
— без сложных калибровок
— без замороченной интеграции
Трекинг одного подводного объекта, например, любительского ТНПА, ну или кто что придумает.
У нас есть передатчик, есть приемник, вот берем и повторяем идеологически ранее упомянутую систему RWLT.
Приемники располагаем в буйках, ставим GPS, простецкий радиомодуль, а на основе передатчика делаем пингер — устройство, которое через равные промежутки времени просто излучает определенный сигнал.
Все, что требуется от пользователя — закрепить пингер на своем подводном дроне, расположить четыре буйка на поверхности воды или на льду. Все. Этого достаточно для определения географических координат подводного аппарата (или водолаза) номинально 1 раз в 2 секунды.
Летом даже без лодки можно обойтись — буйки можно хоть с пляжного матраса ставить.
Для сравнения, если бы это была какая-нибудь УКБ (USBL), антенну пришлось бы крепить на какую-то штангу. Такая система даст координаты в локальной полярной системе координат. Чтобы пересчитать их в абсолютные географические дополнительно нужны еще компас и GPS.
Конечно, ни о каком покрытии 1500 х 1500 м как у RWLT речи не идет, да и точность будет мягко говоря пониже, устойчивость ко всякого рода внешним условиям тоже пожиже, но зато это будет и в разы доступнее.
Так появилась у нас система WAYU, что расшифровывается как Where Are You Underwater или way underwater — возможно много толкований, все как мы любим.
Система состоит опять из трех устройств:
-
навигационный буй, которых надо 4 штуки для работы
-
пингер, который закрепляется на объекте, за положением которого надо следить
-
и радиодонгл, который нужно подключить к ПК
Софт опять же с открытым исходным кодом: репозиторий WAYU.
Систему испытали на льду. Это очень удобно для определения номинальных характеристик: и буи и пингер можно закрепить полностью статично, исключив влияние дрейфа и волнения.
Вот такие результаты получили в статике:
На этой странице можно скачать треки в формате KML и рассмотреть более детально. А можно и не скачивать, вот увеличенное изображения трека:
Вы наверное заметили, что фотографий буев нет. Мы разработали полностью весь комплект электроники для всех устройств, но до сих пор не определились с тем, в каком виде поставлять эту систему (и поставлять ли вообще?). Дело в том, что корпуса — довольно сложная и дорогая в производстве штука.
У нас даже была мысль оформить все в виде конструктора, чтобы пользователь сам мучался куда-то разместил электронику буев. Или собрать буи в отрезках пластиковой трубы Ф50 мм (серая такая, знаете, наверное).
И честно говоря мы до сих пор не решили, что нам делать с этой системой. Да и времени пока на нее особо нет.
Надеюсь, читатель простит мне отсутствие корпуса, и я увеличиваю счетчик разработанных устройств еще на три. Теперь у нас 36.
Такой же, только другой
Наша USBL Zima, внезапно оказалась самым востребованным нашим продуктом. И ввиду того, что есть какой-никакой опыт применения, накопились просьбы, требования, пожелания, жалобы и угрозы пользователей.
Мне нравится думать, что следующая версия системы с учетом накопившихся изменений иллюстрировала переход количества в качество, в диалектическом смысле.
Даже хотелось отмежеваться от старого и, наверное, неудачного названия. Хотелось чего-то попроще. К нашему удивлению, мы обнаружили, что никто еще не назвал USBL систему Азимут. А ведь это так логично: азимут, это то, что от таких систем и требуется в первую очередь.
Азимутальный угол — угол, между заранее выбранным направлением и направлением на заданный объект.
С другой стороны, нужно было как-то не отмежевываться сильно, так как Zima уже стала известна.
В конце концов получилось так, что систему мы назвали Zima2, но пультовое приложение называется AzimuthSuite, прошивка представляется как Azimuth, но веселей всего вышло с протоколом сопряжения.
Во всех наших устройствах используются NMEA-подобные протоколы. То есть сообщения начинаются со знака $, заканчиваются переводом строки, параметры разделяются запятыми.
Стандарт подразумевает использование стандартных сообщений, например, всем известные из практики работы с GPS-приемниками сообщения RMC, GGA. Но так же предусмотрены проприетарные сообщения. Если в стандартных после знака доллара идет двухбуквенный идентификатор источника — т.н. Talker Identifier, а само сообщение определяется тремя символами, то у проприетарных сообщений после знака доллара идет буква P, потом трехбуквенный идентификатор изготовителя (Manufacturer Identifier) и дальше кому как в голову взбредет.
Мы обычно для каждой системы разрабатываем набор требуемых сообщений и выбираем трехбуквенный идентификатор по имени системы. Например, у модемов uWave это UWV, у Zima USBL — ZMA. А у системы Zima2, она же Azimuth — AZM. И посмотрите как выглядит запрос версии и серийного номера устройства и ответ на него:
<< $PAZM?,0*25
>> $PAZM!,1,0,xxxxxxxxxxxxxxxxxxxxxxxx,Azimuth-B,304,3,0*00
Мы это не сразу заметили, а то можно было бы провокативно назвать систему SPAZM.
Итого мы разработали еще два устройства — пеленгационную антенну Zima2-B и маяк-ответчик Zima2-R. Значение счетчика устройств увеличивается до 38.
Несмотря на то, что выглядят они совершенно также, как и предыдущие, пожалуй, это единственное что их объединяет. Внутри это совершенно другие устройства, с другими процессорами, другими сигналами, другими полосами частот, другими аналоговыми трактами, другими прошивками, пультовым приложением и протоколом сопряжения.
По неопытности мы делали Zima USBL как систему для поиска маяка-ответчика, это то, чему нас учили в НИИ. То есть антенна и алгоритм были рассчитаны на обеспечение максимальной точности в довольно узком горизонтальном конусе. Эта идеология подразумевала, что маяк нужно услышать с максимально возможного расстояния, поэтому была выбрана достаточно низкая несущая частота. Ниже частота — длиннее сигнал, длиннее сигнал — больше времени между отдельными измерениями.
Zima поддерживает до 23 маяков-ответчиков, которые могут опрашиваться последовательно. В самом лучшем случае, если маяк находится близко, его опрос занимает почти три секунды. Зато поддерживались до 32 дополнительных команд на каждый маяк. Маяк при получении такой команды передавал это управляющей системе, если таковая была. В 99% применений маяки просто питаются от батарей или от бортовой системы носителя, а интерфейс вообще не используется.
А пользователям было нужно немного другое: следить за своим ТНПА, который в 99% случаев копошится где-то внизу под судном. Длина кабеля у ТНПА редко больше 500 метров. И частота обновления нужна чем больше, тем лучше. Не нужны никакие команды, и большое число маяков.
Вот мы и переделали все коренным образом. Повысили несущую частоту, оставили максимум 16 маяков (на всякий случай, мало ли), это, в свою очередь позволило, добиться максимально возможной частоты опроса в 1 Гц, то есть вместо 3-х секунд на маяк получилась 1 секунда.
И если в старой Zima нужно было каждый запрос формировать в пультовом приложении, то теперь антенна сама опрашивает по очереди указанный при старте диапазон адресов маяков и пультовому приложению просто по наличию докладывает о результатах. В связи с этим просто драматически уменьшился и упростился протокол сопряжения — вдруг кто-то соберется написать свое пультовое приложение, например, под Linux или вообще на чем-то Arduino-подобном. Теперь это сделать несравнимо проще.
Кроме того, у пользователей постоянно возникала проблема в выборе нужных последовательных портов. Пультовое приложение может использовать внешний GNSS-компас для пересчета положения маяков-ответчиков в абсолютные координаты, это значит, что нужно приложению указать не только порт подключения пеленгационной антенны, но и порт GNSS-компаса.
Это тоже было автоматизировано в приложении для Zima2 — оно само находит нужны порты. Вообще, чтобы запустить работу на ПК (при условии что все подключено физически), теперь нужно буквально нажать одну кнопку.
Еще одна доработка коснулась питания маяка-ответчика, но получилось универсальное решение, о котором я расскажу чуть позже.
Кстати, можно даже посмотреть как работает система в реальности, для этого приложение умеет проигрывать свои файлы журналов. Напомню, что приложение лежит на гитхабе: AzimuthSuite (Zip-архив), а вот файл журнала, полученный при работе в мелком пруду. Чтобы включить воспроизведение, в меню нужно выбрать ЖУРНАЛ -> ВОСПРОИЗВЕСТИ. И скормить ему файл журнала из ссылки.
В дальнейшем мы планируем добавить в систему функцию передачи произвольных пользовательских данных.
Такой же, только беспроводной
В самом начале статьи я упоминал про датчик давления для шланговых водолазов. Не так давно мы сделали “такой же, только беспроводной”. На данный момент это не серийная система, но месяца за два-три мы разработали аж три с половиной практически новых устройства.
Задача состояла в том, что нужно определять глубину рабочего органа земснаряда. Это такой мощный пылесос, который используют для дноуглубительных работ.
В задании была указана максимальная измеряемая глубина 100 метров. И на первый взгляд кажется, что зачем выдумывать какую-то акустику, ведь можно же обойтись Ethernet-ом или тем же RS-485. Не сильно толстый кабель длиной 100 метров вроде бы без проблем должен навешиваться на земснаряд.
Кажется что штука довольно крупная, и кабель она даже не заметит. Не заметит и порвет как паутинку, как выяснилось. Заказчик обратился к нам именно с таким анамнезом: все кабели рвутся, уследить за ними или что-то предпринять не представляется возможным.
Датчик давления должен устанавливаться куда-то сюда:
Компоновка системы включает собственно:
— гидроакустический модем с датчиком глубины, и казалось бы, такое у нас было и ранее. Но условия, в которых он должен будет работать не позволили поставить датчик, который мы обычно применяем: там рабочее тело залито в low-stress compound. Который будучи расположенным рядом с жерлом земснаряда забьется илом и песком мгновенно. Поэтому специально для данного случая (ну и на будущее) пришлось переделывать механику для возможности установки нового датчика (типа Keller 4LD, у которого сам датчик защищен от внешней среды металлической мембраной). Пришлось разрабатывать новые формы для заливки, новые прошивки, новый энергоэффективный усилительный тракт (дальность небольшая, а пробыть автономно под водой прибору нужно минимум двое суток).
— серьезная батарейка для питания датчика глубины. Ведь датчику требуется каждые две секунды излучать акустический сигнал. Батарейка должна нырять на 100 метров и работать в ледяной воде 72 часа. Мы сделали сборку на основе LiFePO4 аккумуляторов общей емкостью 140 Вт*ч.
— гидроакустический приемный модем, который хоть и не сильно отличался от уже разработанных, требовал обширной адаптации к конкретно этому случаю
— палубный ящик, питающийся от бортовой сети, к которому подключался бы приемный модем на 25-метровом кабеле. В ящике располагается несложная обработка протокола модема, отображение глубины или внештатных ситуаций на символьном ЖК-экране и радиомодем для передачи данных на пульт в кабину оператора. Вот такие нестандартные штуки, кстати, и отнимают большую часть времени:
Итого, за исключением приемного радиомодуля, в качестве которого пошел уже разработанный для RWLT, номенклатура пополнилась еще тремя устройствами. Батарейку мы посчитаем чуть позже, а пока у нас 38 + 3 = 41 устройство.
Я душно напомню, что помимо непрекращающейся разработки мы заняты еще и сборкой все увеличивающейся номенклатуры устройств.
Батарейки
Еще с момента разработки первой версии Zima USBL мы пошли на компромисс, начав использовать в качестве источника питания маяков-ответчиков покупные канистры, в которых располагались NiMH — сборки на основе элементов типоразмера AA (Пальчиковые батарейки) без никаких защит и логики. Не в том смысле, что не было никакой логики так поступать, а в том, что это были просто спаянные аккумуляторы, от которых напрямую питался маяк-ответчик.
Сам корпус канистры, качественно выточенный из полиацеталя великолепен — там крышка с многозаходной резьбой, что позволяет плотно закрыть крышку за три четверти оборота, не перекрутив при этом кабель — ведь кабель заводится через гермоввод в крышке:
Но сама сборка из NiMH — аккумуляторов это bad design. Этим по сути очень сложно пользоваться: достаточно просто забыть про сборку на месяц-другой и можно смело покупать другую. А если забыть про сборку, к которой подключен маяк, то все может произойти в течение суток. Маяк просто высосет аккумулятор в ноль. Плюс были проблемы с тем, что для включения и выключения нужно было откручивать крышку и подключать разъем внутри канистры. Ну и стоила канистра определенных немалых денег.
В общем, все это стало предпосылками к разработке какой-то универсальной конструкции, которая была бы лишена всех этих недостатков.
Итогом стали три модели подводных батарейных сборок, на основе Li-ion и LiFePO4-аккумуляторов, которые имеют встроенный BMS (Battery Management System), защиту от короткого замыкания и включение от воды.
Самую большую из них я показывал чуть выше, когда речь шла про беспроводной датчик давления для земснаряда, а две другие вот:
64 и 48 Вт*ч, причем меньшая из них имеет большую емкость, т.к. сделана на основе Li-Ion аккумуляторов.
Аккумуляторы на основе литий-железофосфата менее энергоемкие, имеют очень пологую разрядную характеристику с резким обрывом в конце, что делает крайне неудобным контроль остаточного заряда. Но для наших применений плюсы перевешивают: малый саморазряд, большое число циклов заряд-разряд (особенно актуально для залитых в полимер устройств) и самое главное — работа при низких и отрицательных температурах.
Обратите внимание на разъем: по большей части он выполнен из твердого пластика, но место ввода кабеля — это металлическая деталь. Именно она и используется для реализации функции включения от воды. В ответной части разъема есть такой же металлический элемент, и сигналом к включению будет изменение сопротивления между этими двумя элементами. Собственно, в обратную сторону это работает как функция автоматического отключения при попадании из воды на воздух =)
Вот короткое видео, где я показываю какие слова-паразиты я использую показано как это работает
Добавляем еще три устройства в копилку: 41 + 3 = 44
Outro
Как видно из названия статьи, того, что мы разработали — мало. Мало для покрытия нужд пользователей и мало для нас.
Если в начале еще мы пугали друг друга вопросами о том, что делать после того, как разработаем текущие проекты, то сейчас понятно, что с точки зрения потребностей пользователей — эта музыка будет вечной.
Сейчас меня больше интересует вопрос эффективны ли мы? Можно ли делать быстрее и лучше? Если да, то что для этого нужно?
У нас нет отдела закупок, нет отдела маркетинга и SMM тоже нет — все в той или иной степени занимаются всем.
В большом и людном мире все изучают какие-то фреймворки, практикуют Agile и Scrum, ходят на хакатоны и митапы, тимбилдинг устраивают. У нас вместо тимбилдинга “поехали сегодня на пруд кое-что проверим”.
Иногда мне кажется хаос довлеет над нами, а иногда — что это хаос управляемый, и мы, как Анастас Микоян в известном анекдоте: пробегаем между струек дождя, поэтому зонтик нам и не нужен.
Мы благодарим вас за время, потраченное на прочтение. Будем рады конструктивной критике, пожеланиям, замечаниям, предложениям и просто человеческому общению.
P.S.
Если вдруг вам понравился лонгрид, просто знайте, что я не хотел, чтобы он был таким большим.
P.P.S.
Внезапно, эта статья содержит 65536 знаков, а следовательно умещается в формат unsigned short, поэтому называть ее лонгридом не вполне корректно.
Это, как и все остальные нумерологические совпадения в статье совершенно случайно