Как сделать доступный и простой автопилот для DIY-проектов и проплыть на нем по Москве-реке?
Москва-река это главная водная артерия города Москвы, длина в пределах города 80 км. Ширина реки внутри города меняется от 120 до 200 м, от самой узкой части возле Кремля до самой широкой вблизи Лужников. Принято считать, что скорость течения реки 0,5 м/с. Вполне благоприятные условия для испытания робота.
Возможно, было бы эффективнее и проще сделать лодку, но задача сделать подводного робота кажется много интереснее.
Конструкция
Робот-подводная лодка для исследования акватории Москвы-реки.
Примерное расположение элементов я видел таким.
Установка коллекторного двигателя
Серво-привод управления рулем
Серво-привод управления рулем глубины
В шутку можно сказать что я готовлюсь к конкурсу X-Prize.
The registration deadline is 30 June, 2016 (11:59 PM UTC/4:59 PM PST). The registration fee is $2,000.00 USD.
Целью является разработка автономного подводного робота, а не ROV'а. (Remotely operated underwater vehicle).
Электронная часть не отличается сложностью и качеством сборки
Arduino nano + L293D + Bluetooth + 3 серво + Power bank (Отдельное спасибо интернет-магазину, который продавал такие по 3 цента). Отдельно подключается к Power bank смартфон Samsung Galaxy S3 для поддержания заряда. Связь смартфона с Arduino осуществляется по Bluetooth.
Программная часть управления
«Мы встречаем свою судьбу на пути, который избрали, чтобы уйти от нее»
Жан де Лафонтен
Я всегда старался избегать программирования на Android. Когда появлялась возможность разработки даже легкого приложения с возможностью в действии познакомится с Android, я пасовал.
Но час настал! Действительно, хватит тратить деньги на шильды для Arduino. Все что нужно уже есть в отслуживших смартфонах. Под рукой оказался Samsung Galaxy S3 и немного магии.
Как порядочный ГИК я задал вопрос на тостере. Возможно я спрашивал сложно. Возможно плохо сформулировал вопрос. И похоже это было скорее не на вопрос. Но в ответ я получил совсем не то, что ожидал.
Яндекс мне в бухту! Все запросы «Android GPS», «Программирование Android GPS» и прочее давали ответы, которые решительно не работали на Android Studio.
Каким же облегчением для меня стала находка SL4A. Оказывается можно прототипировать и программировать на Android, используя Python. Управляют, ведь, даже ракетами.
SL4A Python
Если у Вас есть телефон Android, а он у Вас есть. Вы же ГИК, а не любитель приторных фруктов.
Устанавливаем на выбор программу для распознавания QR-кодов.
Для использования SL4A необходимо установить на телефон приложение.
Интерпретатор языка Python находится здесь.
Или QPython3
Писать программы на телефоне возможно, но занятием увлекательным это не назовешь.
Перенаправим весь локальный трафик, поступающий на порт 9999 в Android-устройство (примем, что сервер слушает порт 46136):
$ adb forward tcp:9999 tcp:46136
Осталось создать переменную окружения и настройка закончена:
$ AP_PORT=9999
Осталось добавить файл android.py в папку с библиотеками Python'а, и все, теперь можно писать приложения на компьютере, запускать их, и результат можно буждет видеть сразу на телефоне. Для запуска helloWorld на Android-устройстве теперь достаточно ввести в интерпретаторе Python:
>>>import android
>>>droid = android.Android()
>>>droid.makeToast(«Hello, world!»)
В первой строчке импортируется библиотека android, затем создается объект droid, с помощью которого используются API Android'a. Крайняя строка выводит сообщение «Hello, World!» на экран устройства.
Теперь самое время, чтобы познакомиться поближе с API, которое предоставляет SL4A.
Построение пути. Выбор точек
Используя Яндекс.карты или Google.maps выбираем точки по центру реки. Это примерный маршрут. Для тестов и наладки использую усеченную версию точек.
[55.671110, 37.686625],[55.668448, 37.675467],[55.660847, 37.671776],[55.654649, 37.671175]
Как сделать доступный и простой автопилот для DIY-проектов из andoid телефона и 70 строк кода?
import math,android,time
coordmas = [[55.671110, 37.686625],[55.668448, 37.675467],[55.660847, 37.671776],[55.654649, 37.671175]]
droid = android.Android()
droid.startSensingTimed(1,200)
droid.startLocating(5000, 30)
def getgps():
locs = droid.getLastKnownLocation()
gpspos = locs.result["gps"]
return gpspos
def distazim(llat1,llong1,llat2,llong2):
rad=6372795
#врадианах
lat1=llat1*math.pi/180.
lat2=llat2*math.pi/180.
long1=llong1*math.pi/180.
long2=llong2*math.pi/180.
cl1=math.cos(lat1)
cl2=math.cos(lat2)
sl1=math.sin(lat1)
sl2=math.sin(lat2)
delta=long2-long1
cdelta=math.cos(delta)
sdelta=math.sin(delta)
y=math.sqrt(math.pow(cl2*sdelta,2)+math.pow(cl1*sl2-sl1*cl2*cdelta,2))
x=sl1*sl2+cl1*cl2*cdelta
ad=math.atan2(y,x)
dist=ad*rad
x=(cl1*sl2)-(sl1*cl2*cdelta)
y=sdelta*cl2
z=math.degrees(math.atan(-y/x))
if(x<0):
z=z+180.
z2=(z+180.)%360.-180.
z2=-math.radians(z2)
anglerad2=z2-((2*math.pi)*math.floor((z2/(2*math.pi))))
angledeg=(anglerad2*180.)/math.pi
return [dist,angledeg]
def servoangle(azdiff):
if azdiff>10 or azdiff<-10:
deg=azdiff
if deg>90:
deg=90
if deg<-90:
deg=-90
return deg
gpspos=getgps()
oldlat = gpspos["latitude"]
oldlon = gpspos["longitude"]
for c in range(len(coordmas)):
#получение координат текцщей целевой точки
curcoord=coordmas[c]
targetlat=curcoord[0]
targetlon=curcoord[1]
darange=11;
while darange>10:
gpspos=getgps()
curlat = gpspos["latitude"]
curlon = gpspos["longitude"]
time.sleep(0.5)
da=distazim(curlat,curlon,targetlat,targetlon)
darange = da[0]
dazimut = round(da[1])
pol=droid.sensorsReadOrientation()
pol2=pol.result
turn = round(pol2[0])
turn = (-turn) *180/ 3.2
azdiff=turn-dazimut
deg=servoangle(azdiff)
oldlat = curlat
oldlon = curlon
import math,android,time
#Массив координат
coordmas = [[55.671110, 37.686625],[55.668448, 37.675467],[55.660847, 37.671776],[55.654649, 37.671175]]
#Инициализация, запуск GPS, сенсоров
droid = android.Android()
droid.startSensingTimed(1,200)
droid.startLocating(5000, 30)
#Функции
#GPS
def getgps():
locs = droid.getLastKnownLocation()
gpspos = locs.result["gps"]
return gpspos
#Функция определения расстояния и азимута между двумя GPS-точками
def distazim(llat1,llong1,llat2,llong2):
rad=6372795
#врадианах
lat1=llat1*math.pi/180.
lat2=llat2*math.pi/180.
long1=llong1*math.pi/180.
long2=llong2*math.pi/180.
#косинусыисинусыширотиразницыдолгот
cl1=math.cos(lat1)
cl2=math.cos(lat2)
sl1=math.sin(lat1)
sl2=math.sin(lat2)
delta=long2-long1
cdelta=math.cos(delta)
sdelta=math.sin(delta)
#вычислениядлиныбольшогокруга
y=math.sqrt(math.pow(cl2*sdelta,2)+math.pow(cl1*sl2-sl1*cl2*cdelta,2))
x=sl1*sl2+cl1*cl2*cdelta
ad=math.atan2(y,x)
dist=ad*rad
#вычислениеначальногоазимута
x=(cl1*sl2)-(sl1*cl2*cdelta)
y=sdelta*cl2
z=math.degrees(math.atan(-y/x))
if(x<0):
z=z+180.
z2=(z+180.)%360.-180.
z2=-math.radians(z2)
anglerad2=z2-((2*math.pi)*math.floor((z2/(2*math.pi))))
angledeg=(anglerad2*180.)/math.pi
return [dist,angledeg]
def servoangle(azdiff):
if azdiff>10 or azdiff<-10:
deg=azdiff
if deg>90:
deg=90
if deg<-90:
deg=-90
return deg
#принятие текущего положения за старую точку
gpspos=getgps()
oldlat = gpspos["latitude"]
oldlon = gpspos["longitude"]
#Цикл
for c in range(len(coordmas)):
#получение координат текцщей целевой точки
curcoord=coordmas[c]
targetlat=curcoord[0]
targetlon=curcoord[1]
#выполняем цикл пока расстояние больше 10 метров до след.точки
darange=11;
while darange>10:
#определение координат
gpspos=getgps()
curlat = gpspos["latitude"]
curlon = gpspos["longitude"]
time.sleep(0.5)
#сравнение дальности и азимута до след. точки.
da=distazim(curlat,curlon,targetlat,targetlon)
darange = da[0]
dazimut = round(da[1])
#определяем угол телефона
pol=droid.sensorsReadOrientation()
pol2=pol.result
turn = round(pol2[0])
#[1.57=left, 0=stop, -1.57=right]
turn = (-turn) *180/ 3.2
#если угол точки отличается от угла телефона на 10 градусов готовим команду на поворот
azdiff=turn-dazimut
#готовим данные для угла поворота сервы руля
deg=servoangle(azdiff)
#отправляем по блютус угол поворота серво
#Меняем координаты старой точки, т.к. ожидается смена координат текущей цели
oldlat = curlat
oldlon = curlon
droid.batteryStartMonitoring() — началo работы с батареей.
droid.batteryStopMonitoring()
droid.batteryGetHealth() — возвращает состояние батареи (1-неизвестно, 2-хорошее, 3 — перегрев, 4 — мёртвая, 5 — перегрузка, 6 — неизвестный сбой)
droid.batteryGetStatus() — возвращает статус батареи (1 — неизвестно, 2 — заряжается, 3 — разряжается, 4 — не заряжается, 5 — максимальный заряд)
droid.batteryGetTechnology()
droid.readBatteryData() — данные о батарее.
droid.batteryGetTemperature()
droid.batteryGetVoltage()
droid.batteryGetLevel()
Bluetooth:
droid.checkBluetoothState() — проверяет включён ли Bluetooth
droid.toggleBluetoothState() — включает если в скобках True и выключает, если False
droid.bluetoothAccept() — принимает соединение
droid.bluetoothActiveConnections() — проверяет, есть ли подключения
droid.bluetoothGetConnectedDeviceName()
droid.bluetoothMakeDiscoverable() — в скобках можно указать промежуток времени в секундах
droid.bluetoothStop()
Wi-Fi:
droid.checkWifiState() — проверяет включён ли Wi-Fi
droid.toggleWifiState() — включает если в скобках True и выключает, если False
droid.wifiStartScan()
droid.wifiGetScanResults()
droid.wifiGetConnectionInfo()
Другие настройки:
droid.checkAirplaneMode() — проверяет включён ли режим «В самолёте»
droid.checkRingerSilentMode() — проверяет включён ли беззвучный режим
droid.checkScreenOn() — включён ли экран
droid.toggleRingerSilentMode() — включает беззвучный режим
droid.toggleAirplaneMode()
droid.toggleVibrateMode()
Получение информации о настройках:
droid.getMaxMediaVolume()
droid.getMaxRingerVolume()
droid.getMediaVolume()
droid.getRingerVolume()
droid.getScreenBrightness()
droid.getScreenTimeout()
droid.getVibrateMode()
Установка параметров:
droid.setMediaVolume()
droid.setRingerVolume()
droid.setScreenBrightness()
droid.setScreenTimeOut()
В планах:
- Настройка отправки данных по Bluetooth на arduino.
- Получение с arduino данных о глубине. Глубину буду измерять ультразвуковым датчиком.
- Отправка данных о текущем положении и измерений глубины на сервер.
- Доработка конструкции. Лодка должна быть с нулевой плавучестью, чтобы глубину можно было изменять рулями глубины. Возможно от конструкции подводной лодки придется уйти к надводному аппарату.
- Тест, тест, тест
P.S.: Почему я решил написать пост до запуска робота? Я хочу найти единомышленников. Если у Вас есть желание — делайте своего робота. Отличный повод собраться на майских праздниках на аквапробег по Москве-реке на роботах! По всем вопросам можете писать мне ВК. Просьба сделать репост, может быть кто-то из Ваших друзей захочет принять участие в аквамарафоне.
Напоминаю:
Конкурс роботов-газонокосилок пройдет в Сколково 3 июня. Все желающие могут попробовать себя в робототехнике. По итогам конкурса мы хотим отобрать команду для стартапа. Мы будем делать первый российский коммерческий робот-мульчатор. Ценные призы и подарки для всех участников.
Комментарии (129)
IronHead
25.02.2016 15:26+2Больше вопросов возникло
1) Как передавать данные на сервер? Всплывать периодически?
2) Хватит ли емкости АКБ на всю подводную прогулку + передачу данных?
3) Датчик глубины смотрит строго вниз или сканирует некий сектор, строго вниз определяет телефон?
4) Трава, сети, нитки, водоросли, как с этим быть? Робот в какой то момент может и не всплыть.B0Z0NHIGGSA
26.02.2016 11:561) как вариант: передача данных ультразвуком на плывущее по поверхности судно-ретранслятор :)
2) звук в воде потребует меньше энергозатрат, чем радиоволны
3) нужен датчик по направлению движения для коррекции глубины перед препятствиями
4) выброс аварийного буя, продувка балласта :) как вариант — надувание шарика, который вытянет конструкцию аварийно
igruh
25.02.2016 15:40+5Канализационная труба: теперь с ардуино и блютусом!
webzuweb
25.02.2016 15:43+4Я её слепил из того что было.
Потом можно в умный дом пристроить канализационную трубу по прямому назначению, а arduino для учета калорий, вытекающих в никуда. Будет повод задуматься об эффективности и рекуперации этой энергии. :))tormozedison
25.02.2016 23:06В определённых кругах такое называют "сантехпанком", но к Вам это не относится. У Вас всё замечательно получилось.
webzuweb
25.02.2016 15:41+3
Я и не планирую глубокое погружение. Свехру будут три контакта. При погружении постараюсь держать глубину, чтобы нижний контакт со средним были замкнуты, а с верхним разомкнуты.
Насчет АКБ вопрос сложны, нужно учитывать еще и быструю разрядку в холоде, в общем это вопрос тестирования. Можно сократить маршрут.
Датчик глубины строго вниз
Может и не всплыть. Делайте Ваши ставки, господа.Red_Lion
25.02.2016 16:35+4Может вместо контактов лучше сделать подобие поплавкового датчика уровня топлива — поплавок на штанге идущий к потенциометру?
tormozedison
25.02.2016 23:07Лучше контакты, но графитовые, чтобы не было электролиза от постоянного тока.
Red_Lion
26.02.2016 12:26У контактов есть проблема — их тупо может замкнуть плавающий в реке мусор (банально какая-нибудь выброшенная газетка) или наоборот загадить контакт. Можно сказать конечно что шарнир поплавка тоже может заклинить, но это проще проверить — показания потенциометра не будут меняться при попытке всплытия.
Если не хочется потенциометра, то можно сделать 2 кнопки или геркона, которые будут срабатывать в нужных положениях поплавка.
skif23rus
26.02.2016 12:12АКБ можно собрать из Li-Po 18650 так как они менее чувствительны к перепадам температуры.
stepuncius
26.02.2016 21:00Может лучше датчик давления?
В воде он будет давать довольно точную информацию о глубине, и над водой держать ничего не надо.
silvansky
25.02.2016 15:44+1Ещё бы камеру и ИК-подсветку на лоб подлодки — был бы настоящий "Исследователь Глубин"! ;)
webzuweb
25.02.2016 15:47+1Была задумка использовать камеру телефона и просто включить на нем перископ. Название приложения прямо в точку!
Проблем в том, что он не вмещался, я сделал специальный прорез, а сам телефон… как бы по-мягче… обтянул латексным изделием…
Но при горизонтальном положении азимут определяется лучше.silvansky
25.02.2016 15:50-1Для ардуинки разве нет камер подходящих? Отдельную камеру установить проще, чем телефонную, да и потребление энергии будет ниже.
Chalokian
25.02.2016 16:46+3Для Ардуинки — нет. Сил не хватает даже для ЧБ изображения с нормальным разрешением. Малинка для этого годится значительно лучше, причём не с USB камерой, а своей
Chalokian
25.02.2016 16:24в МР в этом районе с камерой ничего не разглядеть. Тем более с подсветкой в ИК диапазоне. Очень мутная вода. Могу выложить видео как видно объект 7х12 под водой со светочувствительной камеры от систем безопасности на глубине 11 метров в стоячем водоёме зимой (прозрачность выше чем летом) и с подсветкой из 7 ИК светодиодов по 130мВт. На метре видно, но уже больше контурами.
webzuweb
25.02.2016 16:26Я думаю, что идея увидеть своими глазами что там под водой очень заманчива, но у меня пока цели другие.
impetus
26.02.2016 14:07А почему ИК? ИК же в воде не проходит, в отличие от УФ — что-то милиметры декремент полузатухания против десятков метров даже в идеально чистой воде. Т.е. надо в синюю сторону уходить — и камерой и подсветкой а не в красную
Chalokian
26.02.2016 14:16Проще всего в видимом диапазоне, конечно. Но у меня была цель не пугать рыбу, поэтому я выбрал ИК диапазон. UV камер доступных нет.
Jemdo
25.02.2016 15:45+1Говорят, что дроиды очень прожорливы при использовании gps.
Вот тут — https://habrahabr.ru/post/275749/ ребята достаточно хорошо исследовали эту проблему.
Не знаю, столкнетесь ли вы с подобной проблемой, но идея очень интересная, поэтому хочется посоветовать проверить все что только можно.
P.S. В предпросмотре линк был, но при отправке его съело...webzuweb
25.02.2016 15:48Говорят, говорят, а я им не верю, и Вам того же желаю.
Давайте пробовать, код чуть выше. Можете купить детскую игрушку лодку на ру и пробовать.
Chalokian
25.02.2016 16:22+6На чём построен датчик глубины?
На одних рулях глубины под воду он не уйдёт. Огружать надо дополнительно и достаточно сильно.
Силы мотора не хватит преодолеть течение МР, тем более в мае месяце.
Чем герметезируете места выходов валов?
Я, честно говоря, не понял из описания, как это будет работать. Имею опыт построения подводных камер и в курсе сопутствующих проблем. И по конструкции очень много вопросов.
И, конечно, первые запуски только на верёвке.
webzuweb
25.02.2016 16:25+1Датчик
http://ru.aliexpress.com/wholesale?catId=202000062&initiative_id=AS_20160225052245&SearchText=waterproof+ultrasonic+distance+measuring+module
Планирую запустить по течению.
Пока это открытые вопрос. Валы от рулей герметиком и пленкой.
Сам двигатель я залил герметиком с внутренней стороны.
Первые тесты обнадежилиChalokian
25.02.2016 16:32Эээ. Так они для воздуха и всего до 3.5 метров. Водонепроницаемость самого пьезоизлучателя тут для защиты от брызг.
webzuweb
25.02.2016 16:35Я думаю границу среды они определять будут. Планирую вскрыть и улучшить герметичность.
Chalokian
25.02.2016 16:42Как раз излучатель вскрывать не надо, он не протечёт. Там всё компаундом залито. А вот что он будет показывать — это вопрос. Будут новости — пишите.
arheops
26.02.2016 00:23показывать будет не то. в воде надо больше мощность и скорость звука 1500, а в воздухе только 331(надо пересчет и будет миниалка гдето метр)
Chalokian
26.02.2016 13:05Меня в предложенном варианте больше пугает то что у излучателя не хватит мощности.
maxik0
26.02.2016 21:00можно на это посмотреть www.ebay.co.uk/itm/40KHz-50W-Watt-Ultrasonic-Cleane-Transducer-Power-Drive-Module-220V/160754562847?_trksid=p2047675.c100005.m1851&_trkparms=aid%3D222007%26algo%3DSIC.MBE%26ao%3D1%26asc%3D20140122125356%26meid%3D8204334cab8f4bb997951e1f35cc94d0%26pid%3D100005%26rk%3D1%26rkt%3D2%26mehot%3Dpp%26sd%3D150607443329
Но опять же, в гармине каком-нибудь мощность излучателя порядка 500 ватт. Так что, боюсь, и это ни о чем.
Acristi
25.02.2016 16:37+1Верхний слой воды от ветра может двигаться в обратном направлении от основного течения.
Почему бы не нырнуть глубже и там уже спокойно передвигаться, опять же нивелировать качку?
Speccyfan
25.02.2016 16:25Привет единомышленник! Я конечно делаю ROV, но вопросы тут почти одни и те же:
1. Как Вы делаете гидроизоляцию коллекторного двигателя? Я через магнитную муфту, всего у меня 6 двигателей.
2. Какой ультразвуковой датчик собираетесь использовать в качестве глубиномера? И как вообще? Я для этих целей думаю применить тензометрический датчик. Чем больше давление воды, тем глубже.
3. GPS под водой вообще нормально работает?
У меня немного примитивное управление, внутри стоит свич DES1005, IP-камера и ардуина с езернетшилдом, сигнал на верх идет по UTP, по нему же и питание.
webzuweb
25.02.2016 16:29Вопросы не в бровь, а в глаз. Чувствует, что Вы в теме.
- Никак, залили полностью весь двигатель. Т.е. отложил проблему.
- Чуть выше ссылка.
- Мне и нежно под водой, планирую всплывать каждые N минут.
Chalokian
25.02.2016 16:40GPS под водой вообще никак не работает, как и любые другие доступные самодельщиками виды ЭМ-связи.
В своём проекте ROV запланировал использование буя с WI-FI антенной, соединённое с устройством коаксиалом.
Вес любого кабеля, если управлять устройством с берега не позволит устройству вменяемого размера самостоятельно плыть.
А если сидеть в лодке и опускать устройство вниз, то проще крутить камерой по сторонам, чем двигать всё устройство двигателями.aronsky
26.02.2016 00:09-1Кстати, а какие вообще можно использовать беспроводные каналы свзяи для подводных аппаратов? УЗ?
arheops
26.02.2016 00:28низкие частоты, УЗ водой успешно поглощается. но как раз дешевые 48кгц излучатели работать будут
BalinTomsk
26.02.2016 07:03за модемы вопрос
если я буду 80 watt подавать — рыба с ума не сойдет?
http://www.evologics.de/en/products/acoustics/s2cm_series.htmlChalokian
26.02.2016 13:08Не сойдёт. Посмотрите мощности бытовых рыбопоисковых эхолотов. Там пики на порядки больше.
LazyCrazy
25.02.2016 16:30А, может быть, перед тем, как решать технические проблемы, стоит проконсультироваться в ФСО и ФСБ — даст ли вам кто исследовать акваторию Москвы-реки? И не приобретёте ли вы проблемы совсем в другой плоскости?
Acristi
25.02.2016 16:32Интересный проект!
А размер рулей рассчитывали, или на авось? Я к тому, что хватит ли горизонтального руля для поворота в данном случае.
И ещё одна мысль: возможно, стоит "немного" усложнить код? Предусмотреть ситуации, когда ветер/течение сносит судно, несмотря на работу двигателя; близкий разряд батарей — передать текущие координаты/всплыть/отправиться на мель? и т.п. "плохие" сценарии...webzuweb
25.02.2016 16:36На авось.
Это первый вариант. Надеюсь с единомышленниками и силой сообщества.
ffs
25.02.2016 16:33Можно вспомнить статейку про восстановление каких-то данных, в которых оказался проект по защите акватории МР. А вдруг его реализовали и он эту вашу трубу торпедирует? Или абордажирует?
На всякий случай при сборке используйте перчатки, чтобы пальчиков не оставлять =)
Barafu
25.02.2016 16:44+8Делал по работе очень похожую штуку. Тело — труба высокого давления, на концах — литые заглушки (по форме, сделанной на 3Дпринтере). Вы упусттили самый главный прикол: двигатель ей не нужен, к тому же в вашей компоновке будут проблемы с управляемостью.
Достаточно закрепить «рули» параллельно телу намертво, двигатель убрать, и придать всей конструкции ундулирующее движение (по синусу). Я уже запускал, десятки раз — скорость развивается такая, что пешком по берегу фиг догонишь.
Поделюсь из опыта:
* Придумайте систему отлипания от дна. Если сядет брюхом в ил, может намертво приклеится. Нужно или запас по силе всплытия, или буй какой-то.
* Длинноволновый любительский радиомодем с усилителем ловит с глубины аж 15см. Вайфай — 5см. Не заморачивайтесь, ставьте роутер на борт. Есть роутеры 5х5 см.
* Герметик продавит сразу, независимо от глубины. Из-за охлаждения воздуха внутри машины в ней падает давление, что добавляет разницу. Герметизировать надо от всей русской души. Ну или подогревать воздух внутри машины.
* По электрическим проводам кроме тока прекрасно бежит вода. Прямо между жилами и оплёткой. Учитывать при попытке вынести что-либо наружу.
* Какой, к чёрту, телефон? С карасями в Инстаграмм сниматься? BeagleBone + STM32 Discovery (с гироскопами) + голый GPS модуль если нужен. У нас питание — 30 18650х (не ржать — лежали без дела) и их хватало на 40 минут хода.Chalokian
25.02.2016 16:51Герметик не продавит. Проверено на 3 итерациях устройств на глубинах до 14 метров. Хотя, смотря где его наносить, коненечно. Температурная разница давлений — ничто при 1бар на 1 метр погружения.
Barafu
25.02.2016 16:59+4Закручивал крышку на резьбу с резиновой прокладкой и замазывал стык герметиком. Протекло через 3 часа.
Speccyfan
25.02.2016 18:06+1Так вы заглушки именно печатали на 3D-принтере или форму только печатали? Если саму заглушку, то заполнение какое? Надо 100% заполнение и все равно может протекать, не герметик виноват, а слоеный платик. Я обмазываю все печатаные узлы эпоксидной смолой и все нормально.
Lamaster
25.02.2016 19:35Придумайте систему отлипания от дна.
Если делать плавающий буй и тонкий проводок (опционально сматывающийся на буе) это может решить множество проблем, таких как: сигнал до подлодки, максимальная глубина, возможность вернуть всю конструкцию на берег, просто сплавав за ним, в случае поломки. А собствено что я предлагаю: за этот же провод можно вытянуть подлодку к бую на поверхность.
Stalker_RED
25.02.2016 19:54Подогревать воздух — очень затратно по энергии. Можно делать наддув CO2, Банальная сода+уксус.
Кстати, для аварийной продувки тоже подойдет.Barafu
25.02.2016 20:35Мы обошлись замороченной многослойной гидроизоляцией. Остальное — так, размышления.
syslinux
25.02.2016 17:16Интересный проект. Также нужно учитывать что по Москве реке часто ходят судна. Как будете решать данный вопрос? Также все таки нужен какой то аварийный маяк в случае аварии.
magamos
25.02.2016 17:44+1А не планируется с подводной лодки запуск пиротехнических ракетниц? Ну чтоб если запуталась, то могла сигнализировать о своем местонахождении. И чтоб как настоящая субмарина с ЯО.
Oberon812
25.02.2016 18:43+6Угу. "Вчера, около шести часов вечера, было совершено нападение на сотрудников государственной инспекции рыбоохраны, проводивших контрольный отлов рыбы в верхнем течении Москвы-реки. Неопознанный плавающий объект (замаскированный под отрез сантехнической трубы) запутал сети, повредил точное оборудование и обстрелял работников рыбнадзора миниатюрными ракетами, после чего скрылся в неизвестном направлении. Инспекторам оказана необходимая медицинская помощь, на месте работают следователи МВД и ФСБ, в районе объявлен план-перехват."
sirocco
25.02.2016 18:14Читал тут где-то про автономные подводные лодки, которые переправляли наркоту. Интересно было как они сами путь находили. Глядя на Ваш проект многие тайны прояснятся)
webzuweb
25.02.2016 20:43+2Ссылка на пост. Я всегда думаю о инженерах, которые там работают. Кто это?
Есть ли на GT кто-нибудь из Колумбии?
gallifrey_university
25.02.2016 19:03Нужно рассмотреть физическую сторону проекта. А то утонет (или унесёт течением) со всеми классными наработками
retrograde
25.02.2016 20:11По поводу регулирования плавучести была у меня идея:
Вывести наружу носик шприца, и набирать/выпускать шаговиком(сервой) балласт. Правда будут проблемы с герметизацией из-за изменения давления в корпусе.webzuweb
25.02.2016 20:38В идеале лучше всего винт/гайка и большой шприц на 100-200 мл.
Я пробовал 4 шприца по 20мл(самые большие, которые нашел в аптеке).
Серво не справляется, решил идею отложить.arheops
26.02.2016 00:32плавучесть просто должна быть позитивная с погружением рулями набегающим потоком
webzuweb
26.02.2016 00:34Я и планирую таким образом погружаться, но опытным путем добиться нулевой плавучести. Чтобы плотность всей лодки была примерно равна плотности воды.
arheops
26.02.2016 00:56плавучесть все же должна быть положительная и тангаж без управления тоже положительный. не сильно, грам 30 хватит. регулируется свинцовыми шариками, часть из которых извлекаемо во внешней емкости.
impetus
26.02.2016 16:06в "больших" батискафах тупо груз снаружи висит на элекромагните. нет питания — балласт сбросился, аппарат всплыл… Впрочем при прилипании к илу это не поможет
Zenitchik
26.02.2016 19:24+1Чтобы избежать прилипания к илу груз должен быть длинный и свободно свисатьвниз. Скажем, цепочка грузил на леске, прицепленной к гайке, а она уже удерживается эл.магнитом. Когда конец груза ляжет на дно, плавучесть начнёт возрастать, а скорость погружения снижаться, а при некоторой длине лежащей части груза будет достигнута нулевая плавучесть. Если при этом аппарат ещё не лёг в ил, то его освобождение не будет трудным.
arheops
25.02.2016 20:31+1валы герметизируются проще всего магнитными муфтами(вклееная заглушка из капролона или фторопласта — лучше 1мм капролона или стеклокомпозита и 0.1фторопласта с двух сторон, с двух сторон магниты неодимовые, к ним епоксидкой клеятся валы). необходимые магниты сейчас стоят по полдолара
100% герметизацию можно сделать той же епоксидкой со стеклотканью(слой не меньше 1мм), в месте смены батарей — термоклеем из пистолета(слой не меньше 0.5см).
но текущие правила судоходства запрещают подводные аппараты в судоходной акватории. рассмотрите все же вариант с буем. будет куда флажок повесить(на тонкой удочке) и вайфай антену.
BelBES
25.02.2016 23:23Хм… а буй можно поместить в водоем без разрешения?
arheops
26.02.2016 00:15+1буй нельзя. а сверхмалое надводное судно включая модели(до 100л водоизмещения) — можно. но нельзя плыть по фарватеру, пересекать только под прямым углом и ОБЕСПЕЧИВАТЬ ВИДИМОСТЬ. в данном случае делаете буй в виде лодочки, часть лодочки тянущая под водой — не запрещается. и флажок для обеспечения видимости. в ночное время — нельзя.
правда, есть еще правила на использование вайфай вне помещений.Chalokian
26.02.2016 13:21Это вы описали правила для маломерных судов. В реальности лодки на МР даже не заметят модель и разнесут её винтами.
jar_ohty
25.02.2016 20:32[профдеформация]
Без элементарного CTD такой девайс будет неполноценен.
[/профдеформация]
Terol
25.02.2016 21:07+1Простите чайника, но для озвученной задачи почему это не плот (или катамаран-тримаран) с установаленными на дне несколькими эхолотами а по бокам ваидеокамерами?
Эхолоты меряют дно (под несколькими углами), видеокамеры снимают берег.Barafu
25.02.2016 22:13Стырят.
EugeneButrik
26.02.2016 05:34Да кто невзрачную конструкцию будет тырить-то на середине реки? :)
Мне тоже кажется, что для данной задачи надводное судно наиболее предпочтительный вариант. Я бы рассмотрел вариант дрона с положительной плавучестью и балластной цистерной, в которой предусмотрен механизм с сервоприводом только для уменьшения её объёма, то есть только для затопления дрона. Вытеснение же воды из балластной цистерны (всплытие) должно осуществляться автоматически после отключения сервопривода за счёт, например, наличия пружины в этом самом механизме уменьшения объёма цистерны или за счёт эластичных элементов цистерны (это наверное самый трудный момент будет в этом варианте, но по-моему проще, чем предлагаемый автором способ погружения за счёт действия гидродинамических сил). Должен получиться этакий "нормально-плавающий" дрон. Если есть необходимость (например, по картинке с камер видно, что на дрон несётся какое-либо судно), то по команде активируется сервопривод и дрон уходит под воду. Далее, либо по обратной команде (если это возможно), либо по таймеру (да хоть по истощении батарей) вода из балластной цистерны вытесняется нормальным образом и дрон всплывает. В надводном же положении на дрон можно нацепить что угодно, хоть камеры, хоть солнечные панели, хоть антенны спутниковые :) Такой дрон-плот можно сделать даже без двигателей, свободно сплавляющимся по течению (но всё-таки умеющим "уворачиваться" от неприятностей).Zenitchik
26.02.2016 14:31Электромагнит, который держит железный балласт. Сброс по истощению батарей. Классика.
EugeneButrik
26.02.2016 14:56Ну, на мой взгляд, такой одноразовый механизм скорее подошёл бы для аварийного всплытия. Да и будут проблемы с энергоснабжением такого электромагнита. Я имел в виду несколько другое.
Zenitchik
26.02.2016 19:29Этот механизм — штатный для больших батискафов. В отличие от любых механизмов с движущимися частями, он безотказен. А по истощению батареи должно происходить именно аварийное всплытие.
Konachan700
25.02.2016 21:48Для моря питание можно сделать полностью автономным, если хорошо оптимизировать энергопотребление.
Вот тут я даже вопрос задавал: https://toster.ru/q/203389. Очень интересно было бы такое сделать, но пока моря рядом нет...
Dmitry_Th
25.02.2016 23:59А в каком диапазоне камера будет видеть в нашей мутной речной воде? ИК, УФ?
Chalokian
26.02.2016 13:18Ни в каком. Лучший спектр пропускания у воды в видимом спектре. Но в "мутной речной воде" свет рассеивается на частицах взвеси. Поэтому видно очень плохо.
Red_Lion
26.02.2016 14:31А что если вспомнить как работают противотуманные фары и тащить за собой на тросе источник света и снимать назад (аля-рыба удильщик наоборот)? Правда из-за риска зацепления надо быть готовым потерять буксируемую подсветку и делать все на разъеме который не-совсем-легко-выдирается.
Chalokian
26.02.2016 15:45+1Подводная подстветка должна, по-хорошему, делаться на вынесенных источниках света, для того чтобы не подсвечивать взвесь прямо перед объективом. Для предлагаемого размера устройства, подсветку достаточно вынести на 20-30 см и направить пучок света в метр впереди камеры. Это уже значительно улучшит качество изображения.
Red_Lion
26.02.2016 16:34+1Ну я в принципе это и имел ввиду:
Правда на предложенной схеме уже есть штанга, а не трос и есть плавник (чтобы защитить подсветку и иметь меньший шанс запутаться). Ну и штанга вместе с проводами подсветки выдернется из держателя (пружинный зажим?) как только аппарат за что-то тотально зацепиться.
Направлено назад чтобы аппарат не "клевал носом" и обеспечить простое удаление штанги при ее зацеплении за счет двигателей ПА.impetus
26.02.2016 17:24Если подсветку сделать автономной — батарейка + светодиод — то даже пусть она будет расходником при сильном запутывании. А если только SMD светодиод (серия, линейка, цепочка, гирлянда) на тоненькой удочке — то плавник не нужен и такое нереально опасно зацепить. Сложный вариант для понтов — удочка световодная с зеркальцем на конце, а светильник (лазер) в комле
Хорошее годное решение.
viktorkuk
26.02.2016 00:30Я думаю это вас заинтересует. А насчёт герметизации движков и всего остального — заливайте plastic 71 и двигатели с контактами в том числе.
Tiberius
26.02.2016 14:51Если будет интересно, то у нас в лаборатории (lepa.epfl.ch) реализуется проект по созданию робота-змеи, напичканного разными датчиками для отслеживания экологии и регистрации загрязнений. Проект на 3 лаборатории, в том числе и по mech.eng. nanoterra. Как говорится, велкам;)
webzuweb
26.02.2016 14:54Если это приглашение — то я уже собираю вещи.
Tiberius
26.02.2016 16:14Наконец-то, добрался до компьюетра нормального: вот ссылка на проект.
Скажем так, это приглашение для изучения возможностей по внедрению данного робота для полезных целей, а остальное всегда зависит от Вас!;)
mihmig
26.02.2016 16:24А у меня вот какой вопрос: а велик ли "оверхед" при использовании SL4A?
Если потребление энергии/скорость работы изменится не более чем в 2 раза по сравнению с java-байт кодом — то открывается много возможностей!
Особенно было бы удобно отлаживать скрипты прямо с компа...
Red_Lion
27.02.2016 00:15Про герметизацию валя винта — можно использовать как сальники автомобильные маслосьемные колпачки грм. Конструкция уплотнителя будет простой — трубка забитая консистеной смазкой (можно сделать сбоку отверстие для заполнения), с обоих сторон колпачки, внутри проходит вал.
Chalokian
03.03.2016 08:50Если на глубине до 1-2 метров этого и хватит, то, думаю, для глубин 10 метров такая герметизация не справится.
mehos
29.02.2016 00:45У меня давно зреет идея создания плавающей лодки на солнечных бетареях и отправки ее в кругосветку, с отслеживанием он-лайн)
DIHALT
29.02.2016 21:54Как будет загерметизированы двигатели и вообще вся механика? Самая главная проблема подводных лодок именно в этом.
amarao
По реке плывёт труба,
арудино как bluetooth
Ну и пусть себе плывёт,
нам не нужен Windows Phone.
А так — крутая штука!