Мозг системы : Raspberry PI
Первым делом я начал размышлять на тему выбора : Arduino или Raspberry Pi. В конечном счете выбор был продиктован потребностями системы видео наблюдения в реальном времени.
Одна из моих целей этого корабля – стереовидение. Стоял выбор либо устанавливать одну камеру с хорошей оптикой, либо две обычные камеры. Поскольку в наличии было программное и аппаратное обеспечение для этих целей , две камеры казались очевидным выбором. По какой-то причине я решил, что могу легко купить две высококачественные веб-камеры и подключить их к «Raspberry PI», а затем передать эти изображения обратно по кабелю Ethernet на берег. Учитывая это, мне нужно устройство с несколькими портами USB и ethernet, и поэтому Raspberry PI была моим выбором.
Но оказывается, что веб-камеры действительно “тупые” – или, по крайней мере, все те, которые я пробовал, являются таковыми. Мне казалось, что эти крутые камеры должны делать больше, чем просто передавать необработанные данные через USB на хост. Я думал что они могут сами сжимать поток mpeg4 в реальном времени, но все оказалось не так . И эти все задачи возлагались на Raspberry PI: Производить всё сжатие данных, которое с двух камерам не дает вам большой частоты кадров или большого разрешения.
К счастью, я нашел это видео . Автор демонстрирует использование модуля вычисления Raspberry PI(что-то, о чем я не слышал), который способен использовать две PI-камеры и оборудование Broadcom для быстрого кодирования видео. Итак, вычислительный модуль Raspberry PI стал мозгом системы . Подробнее о системе видео позже.
Водонепроницаемый сервопривод
У ROV должен быть какой-то манипулятор, чтобы он мог взаимодействовать с его подводной средой и захватывать интересные объекты. Это означает, что мне нужен какой-то сервопривод, который будет работать под водой. Я решил использовать HiTec HS-5646WP и его аналог. Есть несколько водонепроницаемых сервоприводов, но я выбрал HiTec, потому что у него отличная репутация. Сервоприводы сами по себе имеют только IP67, поэтому теоретически они хороши только на глубине не больше 1 метра, что не очень хорошо для ROV. Я слышал, что они работают на гораздо больших глубинах, поэтому мы посмотрим, как они выживут. Я бы не удивился, если бы в конечном итоге их пришлось бы ремонтировать (описание HS-5646WP ).
Гидроизоляция
Есть пара общих вариантов гидроизоляции электроники.
Одним из них является заливка , процесс герметизации вашей электроники в эпоксидный смоле (или другой подобный материал), чтобы избежать протечек воды. Большие преимущества этого метода в том что эпоксидка заполняет все воздушные пространства и не дает распространению открытых очагов пламени, так же она выдерживает высокое давление. Недостатком является то, что электроника постоянно закрыта и в случае перегорания какого либо элемента замена его будет сложна .
Альтернативные варианты – разместить электронику в каком-то сосуде выдерживающее высокого давления. Этот способ удобен тем что обеспечивает доступ к электронике и ее модернизацию.
Я хочу использовать оба вида гидроизоляции в этом проекте, но на данный момент я хочу использовать сосуд для размещения в нем платы Raspberry PI.
Я прошел через несколько идей по этому поводу. Мой первоначальный план состоял в том, чтобы использовать простой бокс для подводной съемки (или эквивалент ему). Я рассматривал бокс для съемки, когда эта фирма не делала чехлы для iPhone, они изготавливали водонепроницаемые кейсы для дайверов. Они казались простыми и идеальными для расположения электроники. Тем не менее, я не смог найти коробку, которая была правильного размера для моего проекта.
Поэтому мой второй план состоял в том, чтобы создать какую-то сферу для размещения электроники. Для этого я бы использовал два поликарбонатных полусферы с фланцами (подобную детально можно купить на Али) и закрепить их вместе. И хотя это все еще очень привлекательная идея, мне потребовалось бы изготовить кольцо между двумя сферами, чтобы установить уплотнительные кольца, необходимые для герметичности. Я решил, что это слишком сложная процедура и отказался от нее.
Третий план, и тот, который я использую в данный момент, это использовать акриловые трубки, которые я купил у Blue Robotics . Преимуществом этого является то, что она специально предназначена для подводных работ и снабжена необходимыми концевыми колпачками и уплотнительными кольцами для обеспечения водонепроницаемости .
Видео шлейф
Одной из особенностей использования двух камер является гидроизоляция кабелей, соединяющих их с Raspberry PI . Конструкция ROV помещает сосуд высокого давления, содержащий камеры спереди, и содержащий плату сзади. Это означает, что видеокабели должны каким-то образом быть водонепроницаемыми и передаваться данные по ним между устройствами.
Выше – фотография кабелей. В то время мне не хочется оставлять саму ленту в воде, так как это не безопасно. Надо было искать выход из этой проблемы и решение нашлось.
Решение заключалось в том, чтобы скрутить кабели внутри гибкой трубки. Чтобы сделать это, я сначала обернул и закрепил кабели вокруг дюбеля (около 1/4 дюйма в диаметре), а затем подал через некоторые трубки через трубку. Результат выглядит следующим образом:
Другим преимуществом этого метода является то, что я могу протянуть оставшиеся кабеля через центр трубки (для управления мощностью и сервомеханизмом).
Следующей задачей было протянуть и закрепить трубку в сосуде через торцевую крышку. Торцевая крышка от Blue Robotics и выполнена из алюминия . Неудивительно, что нет версии для продажи с достаточно большим отверстием в ней для моего трубопровода, поэтому мне пришлось развернуть свою собственную.
Конечно, вы не можете просто ожидать, что она будет водонепроницаемой при установки шланга с кабелями. Поэтому мне нужно было использовать кабельный сальник (также называемый проволочным уплотнением).
На приведенной выше фотографии показаны два кабельных сальника, как с 3/4 “винтами, которые крепятся в торцевую крышку, так и с отверстием 1/2” для шланка с кабелем. Нижняя часть – это вариант, который я купил у Amazon, верхняя часть – от Ancor . Важно отметить, что версия Ancor имеет гораздо более длинную резьбу для проникновения в торцевую крышку. Торцевая крышка имеет толщину 1/4 “, поэтому необходима более длинная резьба. Вот сальник с сборе с шлангом в который я пропустил кабель для передачи данных с камер :
Наконец, все части были собраны. Хотя сальник был хорошо прикреплен к алюминиевому отверстию, я добавил немного эбоксидки для соединения железа с алюминием внутри и включил уплотнительное кольцо снаружи, чтобы предотвратить утечку воды, несмотря на любые потенциальные зазоры. Результат выглядит следующим образом:
Теперь, надо дать ему 24 часа, чтобы все высохло и схватилось, а затем я могу проверить что он водонепроницаем. Скрещиваем пальцы.
Thrusters: ESCs
В ROV будет 12 двигателей. Да, я понимаю, что это довольно много и, вероятно, слишком много, но одной из главных целей является 3D-маневренность. Для этого мне нужно много разных двигателей. Я не ожидаю, что буду использовать их все сразу, но было бы легче иметь больше двигателей, чем обеспечить какой-то механизм для изменения направления тяги.
Когда я начал изучать варианты, я был довольно удивлен, обнаружив, что в воде можно запускать бесщеточные двигатели! В то время я не понимал, что такое бесщеточный мотор, но после небольшого исследования я понимаю, почему он работает. Я оставлю выбор двигателей на потом, а теперь просто сосредоточусь на ESC (Электронный регулятор скорости). Я исследовал несколько ЭСК, в том числе Turnigy Trackstar 25A ESC автомобиля , в HobbyKing БПТ автомобиля ESC 30A ж / Reverseи Hobbyking Brushess автомобиля ESC 10A ж / Reverse . Я выбрал последнее из них, потому что он работал в моих тестах, имел достаточную мощность и был дешевым.
Поскольку мне нужно 12 из них, я решил сделать специальную печатную плату; частично организовать разместив все, а частично упростить силовые и управляющие кабеля. Плата также содержит контроллер P2M I2C PCA9685, который позволяет одиночному I2C устанавливать скорость и направление каждого ESC.
Ниже представлена ??голая и заполняемая печатная плата:
Отсутствующий чип на середине справа отвечал за мониторинг, но я решил перенести его на основную плату.
Крепление камеры
У ROV будет стереовидение. Это означает что будет установлено две камеры. Я также хочу дать видению немного гибкости, так что это требуется поставить какой-то карданный шарнир. Две камеры, как обсуждалось ранее, в которых использовались ленточные кабели для непосредственного подключения к плате PI. Камеры необходимо установить около 60 мм друг от друга. Гидроизоляция обеспечивается передней трубкой; Мне просто нужно разобраться, как смонтировать камеры на кардане, и как закрепить карданный вал в трубке.
Я выбрал дешевый карданный вагон EBay и добавил два дешевых сервопривода SG90, чтобы получить необходимое мне углы поворота. Чтобы смонтировать камеры, я вырезал несколько акриловых заготовок
прикрепил камеры к пластине,
а затем закрепил его к кардану.
Последняя проблема заключалась в том, как смонтировать все это в трубке. Я не хотел использовать клей, так как был уверен, что позже захочу захочу что то изменить . Однако монтаж на гладкой круглой трубе не был очевиден. В конце концов, я изготовил крепление из круглых акриловых кругов.
соединенный с помощью двух резьбовых стержней и закрепленных внутри трубки с использованием неопрена . В итоге получилась следующая конструкция:
И внутри трубки:
Крепление камеры: обновление
Cделано несколько изменений в конечной установке камеры. Передняя камера теперь крепко прикреплена к раме с использованием алюминиевой балки, без использования подвешенной проволокой, я решил, что более жесткая система крепления будет лучше.
На фотографии вы можете увидеть окончательное прикрепление двух видеокабелей, которые подают сигнал стереокамеры обратно на PI.
Манипулятор
Я мог создать простого ROVa который бы наблюдал за подводным миром, но мне хотелось так же поднять интересный мне предмет на поверхность. Для этого мне нужен манипулятор. Самый простой способ сделать это – купить базовый комплект манипулятора на eBay, снять его и переделать с помощью водонепроницаемых сервомоторов. Но теперь эти сервоприводы не рассчитаны на то, чтобы погружаться очень глубоко, и эта рука может работать неэффективно или вообще выйти из строя при погружении.
Я купил комплект здесь и следовал инструкциям здесь . Я снял все стальные детали и заменил их на нержавеющую сталь, снял граббер и заменил все шайбы на нейлоновые (что значительно улучшило гладкость). Смонтированный комплект, установленный на раме, показан ниже:
Шина: I2C
Ядро моего ROV связывает:
- движители
- камеры
- свет
- связь
- мозг Raspberry PI
Но я также хотел иметь возможность добавлять полезные устройства для ROVa. Основные системы в ROV устанавливаются в двух трубах под давлением в верхней части. Это оставляет свободной нижнюю часть ROV для полезной нагрузки. Первой полезной нагрузкой будет манипулятор. Но … как лучше всего настроить общение между манипулятором и ядром? Традиционный способ сделать связь с «шиной» – общим набором проводов и протоколов, позволяющих подключать различные устройства, не зная. Если бы это был компьютер, у меня была бы возможность использовать USB, но на данный момент это немного тяжело. Для меня очевидной альтернативой является использование шины I2C в качестве основы. Это дает мне хорошо поддерживаемую систему связи, и она совместима со многими устройствами и датчиками. Но “общение” – это лишь часть того, что мне нужно. Я также хочу иметь возможность обеспечить питание этих устройств.
На фотографии выше показаны разъемы шины, которые у меня есть. Это IP68 с 8-жильными сердечниками. Я использую 2 провода для GND, 2 для 12V («+») и по одному для 3.3V, 5V, SCL и SDA. Каждое устройство будет иметь разъем “папа” , в то время как ядро ??будет иметь разъемы “мама”
Манипулятор: электроника
Манипулятор состоит из связки алюминиевых кронштейнов, болтов и 6 сервоприводов. Как и все сервоприводы, они управляются с использованием схемы Широтно-импульсной модуляции (ШИМ). Поскольку рычаг считается полезной нагрузкой для ROV, он должен управляться с использованием соединителя шины полезной нагрузки (см. Предыдущий пост о «шине»). Чтобы это произошло, требуется небольшая электроника, чтобы преобразовать сигналы шины полезной нагрузки I2C в набор сигналов ШИМ, а также преобразовать «сеть» шины 12 В в 7,4 В, необходимые сервомоторам.
Вместо того, чтобы создавать специальную плату для этого, я использовал две платы, которые у меня были в мастерской. Первая из них – плата I2C PWM от Adafruit . Это позволяет мне управлять сервоприводами с помощью I2C. Второй – это конвертер buck от eBay, который преобразует 12V до 7.4V.
-
На приведенной выше фотографии вы можете увидеть две основные платы вместе с входящим разъемом ROV-BUS (внизу справа), а также сервомодулем (вверху слева).
Эта плата смонтирована внутри специального акрилового блока. Коробка, в свою очередь, прикреплена к раме ROV с помощью двух нейлоновых болтов. Это позволяет при необходимости отсоединить всю полезную нагрузку.
Основная дочерняя плата.
Сегодня вечером отправляется первая версия платы для печати . Вот небольшой эскиз ее.
Эта плата содержит основную электронику для управления камерой, сервоприводами камеры, шиной rovа, потребляемой мощностью и мониторингом, яркостью светодиодов, влажностью камер, температурой, давлением в сосудах и IMU (сенсор который покажет ускорение относительно собственных осей X, Y и Z. Это поможет определить направление к центру Земли, Трёхосный магнетометр/компас, барометр). . Существует также место для подключения адаптеров usb-to-ethernet и ethernet-powerline.
Я расскажу больше об этой плате на следующей неделе … при условии, что она заработает
Эпоксидная смола.
Некоторые из компонентов ROV должны быть помещены в эпоксидную смолу, чтобы защитить их от воды ( Света, электроники для манипулятора и ESC). Я опробовал три разных эпоксида:
- MG Chemicals 832C
- West Systems 105/205
- QSil 216
Мой идеал – это нечто прозрачное, теплопроводное, электрически изолирующее, легко смешивающееся и цельное без образования пузырьков, а в случае проблем – обратимое. Чтобы попробовать это, я смешал некоторое количество эпоксидную смолу и залил небольшое количество в акриловые коробки. Я снова смешал каждую эпоксидную смолу, с использованием вакуума, прежде чем выливать ее, сделав попытку уменьшить пузырьки.
На приведенной ниже фотографии показаны результаты:
Слева находятся вакуумные образцы, без вакуумирования справа. Сверху донизу эпоксидные смолы – MG, West и QSil. Для моих целей QSil является лучшим: он полностью прозрачен и выливается, даже без вакуумирования, без образования пузырьков. В качестве дополнительного бонуса (надеюсь!) Он образует твердый гель, но не становится полностью твердым . Единственным, второстепенным недостатком является то, что для полного затвердевания требуется более 24 часов.
Светодиодное освещение
Как только ROV погрузится под воду, наступит темнота. Очевидно, мне нужно изготовить освещение.
Моя первая идея, было размещение света внутри камеры (аналогично тем, которые использовались в проекте OpenROV ). Однако, я думаю, это может легко привести к блику на внутренней стороне акриловой трубки; поэтому лучше было бы установить светодиоды снаружи. Для этого мне нужно было каким-то образом инкапсулировать их.
Для простоты я выбрал использовать длинные светодиоды от eBay . Они стоят около $ 0,03 за светодиод (супер дешево!), каждый светодиод производит 50 люмен. Я монтирую 2 трубки светодиодов, каждая трубка содержит 15 светодиодов. Это дает мне в общей сложности 1500 люмен света.
Моя первая попытка состояла в том, чтобы смонтировать светодиоды в виниловых трубках, а затем залить их внутри труб с использованием эпоксидной смолы.
Это было сложно по ряду причин. Во-первых, это очень трудная задача, чтобы трубки оставались прямыми. Наконец, вы должны налить эпоксидную смолу на один конец трубки, и тем самым трудно удалить пузыри, так же большая проблема закрепить саму ленту внутри трубки.
Моя вторая попытка была более успешной. Для этого я сделал акриловый корпус с помощью лазерной резки. В итоге получился плоский корпус, который лучше подходит для монтажа на корпус ROVa и для крепления светодиодов внутри. Я также могу заполнить его смолой для водонепроницаемости, вливая их в открытый корпус, а не с конца. Затем я смогу закрыть и закрепить акриловый футляр – как только воздух выйдет из смолы для хорошего водонепроницаемого уплотнения.
В результате получается 750 люменов света от водонепроницаемых светодиодов за цену в районе 1$.
Светодиодное освещение: обновление
Вот результат работ, я установил водонепроницаемые световые полосы на передней панели ROV:
Тем не менее, я несколько разочарован яркостью света, который выдают светодиоды. Две полосы потребляют всего около 4 Вт, поэтому я ожидаю, что яркость находится в пределах 400 люмен, а не 1500, на которые я надеялся (все расчеты на основе светодиодных спецификаций). Но на данный момент это самый лучший вариант со светом, оставлю работы со светом на потом.
Продолжение следует …