Сборка подводного необитаемого аппарата

Сборка подводного необитаемого аппаратаСборка подводного необитаемого аппаратаСборка подводного необитаемого аппаратаТелеуправляемый необитаемый подводный аппарат (ТНПА) (англ. Remotely operated underwater vehicle (ROV)) — это подводный аппарат, часто называемый роботом, который управляется оператором или группой операторов (пилот, навигатор и др.) с борта судна или с земли.
Из этой статьи мы с вами узнаем, как сделать свой собственный подводный ROV.
Инструменты и материалы:-8-канальный релейный модуль;-Камера FPV;-12 В аккумулятор;-Кабель RCA;-Тумблер;-Переключатель;-Arduino Nano — 2 шт;-Аккумулятора 18650 — 2 шт;-48-мм гребной винт — 2 шт;-Трюмные насосы 1100GPH — 3 шт;-Кнопки без фиксации- 6 шт;-8 светодиодов мощностью 1 Вт;-Кабель — 60 метров;-Паяльник;-Кусачки;-Клей ПВХ;-Ножовка;-Отвертки;-Клеевой пистолет;-Дрель;
-32 мм ПВХ заглушка;
-40 мм ПВХ заглушка — 2 шт;
-Заглушка ПВХ 50 мм — 4 шт;
-Т-образное ПВХ соединение 32 мм — 15 шт;
-Колено ПВХ 32 мм — 20 шт;
-ПВХ труба 32 мм;
-Водонепроницаемый двухсторонний разъем;-3-контактный разъем;-Пропеллер самолета;-Водонепроницаемая коробка 196 x 90 x 60 мм (ДхШхВ);-Акрил 10 см x 10 см;-Пластиковая коробка для передатчика;-Кабельные стяжки;
-Крепеж;
-Термоусадочная трубка;-GoPro;-Lan кабель;
Программное обеспечение
-IDE Arduino;
-OBS Studio;
Шаг первый: что такое ROV и как это работает
ROV — это дистанционно управляемое подводное транспортное средство, которое находится под прямым управлением человека-оператора на поверхности. ROV может плавать, останавливаться, зависать и поднимать объект или образцы воды, грунта на поверхность с помощью манипулятора или другого механического устройства.
У данного подводного робота, который сделал мастер, нет никакого манипулятора или какого-либо механического устройства, чтобы поднимать какие-либо объекты на поверхность.
Работает это следующим образом:
Когда вертикальное подруливающее устройство создает тягу, поднимающую воду вверх, робот движется вниз. Когда горизонтальные подруливающие устройства создают обратную тягу, он движутся вперед.
Сборка подводного необитаемого аппаратаШаг второй: выбор конструкции для аппарата
Существует два основных вида самодельных аппаратов.
1) Конструкция Seafox.
2) Конструкция Seaperch.
После долгих размышлений мастер решил делать аппарат с дизайном Seafox.
Конструкция этого аппарата следующая:
Две трубки в верхней части и нижняя часть с грузом для удержания баланса в воде. Верхние трубки заполнены воздухом, закрыты торцевыми крышками и полностью герметичны. Нижняя часть заполнена небольшими стеклянными шариками с отверстиями, через которые может поступать вода.
Сборка подводного необитаемого аппаратаСборка подводного необитаемого аппаратаШаг третий: рама
Дальше мастер собирает детали корпуса. Все размеры указаны на фотографиях.
Сборка подводного необитаемого аппаратаСборка подводного необитаемого аппаратаСборка подводного необитаемого аппаратаШаг четвертый: подсветка
Для освещения аппарата мастер использовал светодиоды мощностью 1 Вт. Они довольно яркие и дешевые. На каждую фару он установил четыре светодиода и закрепил их на пластиковой шайбе диаметром 30 мм. Данные светодиоды отлично работают под водой и никакой защиты он не устанавливал.
Сборка подводного необитаемого аппаратаШаг пятый: камера
Изображение с камеры FPV не качественное, поэтому мастер рекомендует использовать экшн-камеру, такую как GoPro, с водонепроницаемым футляром.
У камеры есть три провода, подключаем их следующим образом:
VCC >>> Положительная клемма аккумулятора (+)
GND >>> Отрицательный вывод аккумулятора (-) и провод заземления кабеля RCA.
Signal >>> Сигнальный провод кабеля RCA.
Корпус для камеры нужно сделать водонепроницаемым.
Шаг шестой: управление
Аппарат управляется с земли посредством контроллера на Ардуино. Контроллер собирается в пластиковой коробке.
Для управления используются четыре кнопки без фиксации.
Сборка подводного необитаемого аппаратаСборка подводного необитаемого аппаратаСборка подводного необитаемого аппаратаСобирается все согласно схемы ниже.
Сборка подводного необитаемого аппаратаСобрать можно навесным монтажом или на плате. Файл для изготовления платы можно загрузить здесь.
Сборка подводного необитаемого аппаратаПосле сборки нужно проверить работу пульта загрузив следующий код:
Arduino IDE>>>File>>>Examples>>>Digital>>>Button
Сборка подводного необитаемого аппаратаЕсли все работает правильно загружаем код ниже.

Развивающий детский конструктор с шуруповертом + 2 подарка
9 часов назад
Любые сорта сыра с Домашней Сыроварней
7 часов назад

int buttonPin1 = 2;
int buttonPin2 = 3;
int buttonPin3 = 4;
int buttonPin4 = 5;
int buttonPin5 = 6;
int buttonPin6 = 7;
int buttonPin7 = 8;
void setup() {
pinMode(buttonPin1, INPUT_PULLUP);
pinMode(buttonPin2, INPUT_PULLUP);
pinMode(buttonPin3, INPUT_PULLUP);
pinMode(buttonPin4, INPUT_PULLUP);
pinMode(buttonPin5, INPUT_PULLUP);
pinMode(buttonPin6, INPUT_PULLUP);
pinMode(buttonPin7, INPUT_PULLUP);
Serial.begin(9600);
}
void loop() { 
int buttonValue1 = digitalRead(buttonPin1);
int buttonValue2 = digitalRead(buttonPin2);
int buttonValue3 = digitalRead(buttonPin3);
int buttonValue4 = digitalRead(buttonPin4);
int buttonValue5 = digitalRead(buttonPin5);
int buttonValue6 = digitalRead(buttonPin6);
int buttonValue7 = digitalRead(buttonPin7);   
if (buttonValue5 == LOW && buttonValue6 == LOW && buttonValue4 == HIGH)
{
Serial.write(1); 
}   
else if (buttonValue5 == LOW && buttonValue6 == LOW && buttonValue4 == LOW)
{
Serial.write(2);   
}
else if (buttonValue3 == LOW && buttonValue7 == LOW && buttonValue4 == HIGH)
{
Serial.write(3);      
}   
else if (buttonValue3 == LOW && buttonValue7 == LOW && buttonValue4 == LOW)
{
Serial.write(4); 
}     
else if (buttonValue7 == LOW && buttonValue5 == LOW && buttonValue4 == HIGH)
{
Serial.write(5);   
}   
else if (buttonValue7 == LOW && buttonValue5 == LOW && buttonValue4 == LOW)
{
Serial.write(6);    
}     
else if (buttonValue6 == LOW && buttonValue3 == LOW && buttonValue4 == HIGH)
{
Serial.write(7);  
}   
else if (buttonValue6 == LOW && buttonValue3 == LOW && buttonValue4 == LOW)
{
Serial.write(8); 
}
else if (buttonValue1 == LOW && buttonValue4 ==HIGH)
{
Serial.write(9); 
}     
else if (buttonValue1 == LOW && buttonValue4 ==LOW)
{
Serial.write(10); 
} 
else if (buttonValue2 == LOW && buttonValue4 ==HIGH)
{
Serial.write(11); 
}
else if (buttonValue2 == LOW && buttonValue4 ==LOW)
{
Serial.write(12);    
}    
else  if (buttonValue5 == LOW && buttonValue4 ==HIGH)
{
Serial.write(13); 
}    
else  if (buttonValue5 == LOW && buttonValue4 ==LOW)
{
Serial.write(14); 
}    
else  if (buttonValue6 == LOW && buttonValue4 == HIGH)
{
Serial.write(40); 
}   
 else  if (buttonValue6 == LOW && buttonValue4 == LOW)
{
Serial.write(50); 
}
else  if (buttonValue3 == LOW && buttonValue4 == HIGH)
{
Serial.write(17); 
}    
else  if (buttonValue3 == LOW && buttonValue4 == LOW)
{
Serial.write(18); 
}    
else  if (buttonValue7 == LOW && buttonValue4 == HIGH)
{
Serial.write(60); 
}    
else  if (buttonValue7 == LOW && buttonValue4 == LOW)
{
Serial.write(80); 
} 
else if (buttonValue4 == LOW)
{
Serial.write(21); 
}          
else 
{
Serial.write(100); 
}}

Управление следующее:
A + B >>> Вперед
C + D >>> Двигаться назад
A >>> Поверните направо (медленно)
B >>> Поверните налево (медленно)
A + D >>> Поверните направо (быстро)
B + C >>> Поверните налево (быстро)
E >>> Вверх
F >>> Вниз
G >>> Свет горит
H >> Свет не горит
Сборка подводного необитаемого аппаратаШаг седьмой: бортовой контроллер
Для установки 8-канального релейного модуля и Arduino nano мастер использует два водонепроницаемых бокса.
Сборка подводного необитаемого аппаратаФайл для печатной платы можно скачать здесь.
Сборка подводного необитаемого аппаратаСборка подводного необитаемого аппаратаСхема подключения ниже.
Сборка подводного необитаемого аппаратаПосле сборки на Ардуино загружается код.

int relay1 = 12;
int relay2 = 3;
int relay3 = 7;
int relay4 = 6;
int relay5 = 4;
int relay6 = 5;
int relay7 = 8;
void setup(){
Serial.begin(9600);
pinMode(relay1,OUTPUT);
pinMode(relay2,OUTPUT);
pinMode(relay3,OUTPUT);
pinMode(relay4,OUTPUT);
pinMode(relay5,OUTPUT);
pinMode(relay6,OUTPUT);
pinMode(relay7,OUTPUT);
}
void loop(){
if (Serial.available()) {
int val = Serial.read(); 
Serial.println(val);
if(val==(9))
{
digitalWrite(relay1,LOW);
digitalWrite(relay2,HIGH);
}
else if(val==(11))
{
digitalWrite(relay2,LOW);
digitalWrite(relay1,HIGH);
}
else if(val==(10))
{
digitalWrite(relay1,LOW);
digitalWrite(relay2,HIGH);
digitalWrite(relay7,LOW);
}
else if(val==(12))
{
digitalWrite(relay2,LOW);
digitalWrite(relay1,HIGH);
digitalWrite(relay7,LOW);
}
else if(val==(13))
{
digitalWrite(relay3,LOW);
digitalWrite(relay4,HIGH);
}
else if(val==(17))
{
digitalWrite(relay4,LOW);
digitalWrite(relay3,HIGH);
}
else if(val==(14))
{
digitalWrite(relay3,LOW);
digitalWrite(relay4,HIGH);
digitalWrite(relay7,LOW);
}
else if(val==(18))
{
digitalWrite(relay4,LOW);
digitalWrite(relay3,HIGH);
digitalWrite(relay7,LOW);
}
else if(val==(40))
{
digitalWrite(relay5,LOW);
digitalWrite(relay6,HIGH);
}
else if(val==(60))
{
digitalWrite(relay6,LOW);
digitalWrite(relay5,HIGH);
}
else if(val==(50))
{
digitalWrite(relay5,LOW);
digitalWrite(relay6,HIGH);
digitalWrite(relay7,LOW);
}
else if(val==(80))
{
digitalWrite(relay6,LOW);
digitalWrite(relay5,HIGH);
digitalWrite(relay7,LOW);
}
else if(val==(1))
{
digitalWrite(relay3,LOW);
digitalWrite(relay5,LOW);
digitalWrite(relay6,HIGH);
digitalWrite(relay4,HIGH);
}
else if(val==(2))
{
digitalWrite(relay3,LOW);
digitalWrite(relay5,LOW);
digitalWrite(relay6,HIGH);
digitalWrite(relay4,HIGH);
digitalWrite(relay7,LOW);
}
else if(val==(3))
{
digitalWrite(relay4,LOW);
digitalWrite(relay6,LOW);
digitalWrite(relay3,HIGH);
digitalWrite(relay5,HIGH);
}
else if(val==(4))
{
digitalWrite(relay4,LOW);
digitalWrite(relay6,LOW);
digitalWrite(relay3,HIGH);
digitalWrite(relay5,HIGH);
}
else if(val==(5))
{
digitalWrite(relay3,LOW);
digitalWrite(relay6,LOW);
digitalWrite(relay4,HIGH);
digitalWrite(relay5,HIGH);
}
else if(val==(6))
{
digitalWrite(relay3,LOW);
digitalWrite(relay6,LOW);
digitalWrite(relay4,HIGH);
digitalWrite(relay5,HIGH);
}
else if(val==(7))
{
digitalWrite(relay5,LOW);
digitalWrite(relay4,LOW);
digitalWrite(relay6,HIGH);
digitalWrite(relay3,HIGH);
}
else if(val==(8))
{
digitalWrite(relay5,LOW);
digitalWrite(relay4,LOW);
digitalWrite(relay6,HIGH);
digitalWrite(relay3,HIGH);
}
else if(val==(21))
{
digitalWrite(relay7,LOW);
digitalWrite(relay1,HIGH);
digitalWrite(relay2,HIGH);
digitalWrite(relay3,HIGH);
digitalWrite(relay4,HIGH);
digitalWrite(relay5,HIGH);
digitalWrite(relay6,HIGH);
}
else if(val==(100))
{
digitalWrite(relay1,HIGH);
digitalWrite(relay2,HIGH);
digitalWrite(relay3,HIGH);
digitalWrite(relay4,HIGH);
digitalWrite(relay5,HIGH);
digitalWrite(relay6,HIGH);
digitalWrite(relay7,HIGH);
}
else
{
digitalWrite(relay1,HIGH);
digitalWrite(relay2,HIGH);
digitalWrite(relay3,HIGH);
digitalWrite(relay4,HIGH);
digitalWrite(relay5,HIGH);
digitalWrite(relay6,HIGH);
digitalWrite(relay7,HIGH);
}}}

Шаг восьмой: провод
Для связи аппарата с контроллером управления мастер использовал провода длиной 30 метров. Два провода для TX и RX, еще два провода для сигнала камеры и заземления. Чтобы соединить 4 провода вместе, он использовал термоусадочную трубку диаметром 10 мм.
Другой вариант, использовать уличный провод для интернета.
Управление работает только для длины не более 40 метров.
Сборка подводного необитаемого аппаратаШаг девятый: переделка трюмной помпы в подруливающее устройство
Двигатели, одна из основных частей аппарата. Для этого проекта можно использовать любые щеточные подруливающие устройства. Мастер использует помпу из-за ее характеристик.
Для всех трех подруливающих устройств он использует мощные трюмные насосы. Эти насосы уже водонепроницаемые и очень мощные.
Чтобы превратить трюмный насос в подруливающее устройство, нужно удалить часть отмеченную белым и прикрепить гребной винт к валу двигателя.
Сборка подводного необитаемого аппаратаСборка подводного необитаемого аппаратаСборка подводного необитаемого аппаратаСборка подводного необитаемого аппаратаШаг десятый: настройка видео
Видео с камеры поступает в виде композитного видеосигнала, поэтому нужно подключить его к старому телевизору с композитным видеовходом, или самый простой способ — использовать преобразователь RCA в USB. Мастер использовал устройство видеозахвата DVD Maker 2.
Сборка подводного необитаемого аппаратаСборка подводного необитаемого аппаратаСборка подводного необитаемого аппаратаСборка подводного необитаемого аппаратаШаг одиннадцатый: питание
Сначала мастер попробовал питание по проводу с берега, но устройство работало с перебоями. Тогда он решил установить батарею на самом аппарате. Он использовал свинцово-кислотный аккумулятор 12В 7Ач. Аппарат потребляет около 14 А для всех двигателей и электроники. Аппарат может работать в воде около 30 минут.
Естественно, необходимо сделать для батареи водонепроницаемый корпус.
Сборка подводного необитаемого аппаратаШаг двенадцатый: покраска
Для покраски можно использовать любой цвет, мастер использовал черный и белый.
Сборка подводного необитаемого аппаратаСборка подводного необитаемого аппаратаСборка подводного необитаемого аппаратаШаг тринадцатый: тестирование
После сборки мастер провел тестирование аппарата. После тестирование выявились некоторые неисправности. Например, балансировку пришлось дорабатывать. Так же пришлось изменить схему питания, о чем говорилось ранее. Но в целом устройство работало нормально.
Сборка подводного необитаемого аппаратаСборка подводного необитаемого аппарата
В дальнейшем мастер планирует и дальше продолжать усовершенствовать аппарат.
Удержание глубины.
Навигация.
Автоматическая балансировка.
GPS.
Компьютерное программное обеспечение для управления ROV.
Напечатанное на 3D-принтере подруливающее устройство
Манипулятор.
Raspberry Pi.
Удаление до 100 метров.
Двигатели управляемые ESC.
HD-камера.
Сборка подводного необитаемого аппарата

Популярнейший Костюм Горка среди туристов и рыбаков
6 часов назад
Развивающий детский конструктор с шуруповертом + 2 подарка
6 часов назад

Быстрая прохлада с Мини USB кондиционер AICOK
8 часов назад
Умные часы Smart Watch V8 + Power Bank и наушники в подарок
10 часов назад

Читайте также