Обсуждаем приемники, передатчики, радиомикрофоны, жучки, генераторы, ВЧ-усилители, антенны и прочее радиохозяйство
Ответить

Re: Радиоуправляемый кораблик своими руками.

Вс июн 21, 2020 16:39:28

самое удобное меню было у sashamelja... никаких переключателей и стоков. Только кнопки.
1- зашёл в меню,
2- выбрал что надо,
3- вышел из меню (всё сохранилось автоматом в EEPROM).
Screenshot_1.jpg
(106.38 KiB) Скачиваний: 213

Всё предельно просто и понятно))
Ну можно всё делать и через одну кнопку... это не принципиально.

Начальное положение добавить не проблема (в прошлых прошивках это было).
А как сделать отклонение сервы программно... я без понятия))
Серва работает на таймере:

ICR3H=0b00000100; // верхний предел 1250
ICR3L=0b11100010; // 500.000 Hz/50 Hz = 1250/8 имп = 1ms / 500 шаг. 1 шаг = 2 us.
OCR3AH=0b00000010; // серво -начальное 750 = 1,5 mc (1...2)
OCR3AL=0b11101110; // серво -начальное 750 = 1,5 mc (1...2)
TCCR3A=0b10000010; // быстрая ШИМ - OC3A - сброс при совпадении TCNT3 и OCR3A
TCCR3B=0b00011010; // 4 МГц/8=500.000 Hz

Как сделать таймер с плавной регулировкой длительности импульсов ? Причём линейной ! Наука пока не придумала))
Можно поставить дополнительно стикам подстроечный резистор и крутить вручную "расход" руля... будет почти линейно.
Или добавить график "расхода" руля программно... Но линейности не будет.

Проверь для начала свой GPS модуль.
1- Подключи к меги128 экран, кнопки и залей прошивку пульта sashamelja (см. выше).
2- Посмотри какая у тебя версия GPS и какая точность твоего GPS.

Добавлено after 2 minutes 30 seconds:
Должно быть примерно так (там ещё есть азимут... примерно):
Screenshot_2.jpg
(16.95 KiB) Скачиваний: 213


Добавлено after 35 minutes 21 second:
P.S.
1- Длительность импульсов можно менять с помощью таймера - программно, меняя коэффициент пересчёта таймера. Но плавности и линейности не будет.
2- Длительность импульсов можно менять с помощью таймера - аппаратно, меняя частоту таймера. Некоторые таймеры умеют работать от внешнего генератора. Будет всё плавно и линейно. Но нужен внешний генератор. Например такой:
1.jpg
(40.04 KiB) Скачиваний: 204

))

Re: Радиоуправляемый кораблик своими руками.

Чт июл 30, 2020 23:40:46

Доброго времени суток всем, а особено roman.com(большое вам спасибо за помощь в воплощении моих желаний)но не всех, тема авто-пилота не мертва а в гиберденацыи-если я конечно правильно написал это слово.(ну короче на заморозке до лутших времен)Пока не появитса нормальный датчик gps, а єто я так понимаю не скоро.С такими двух метровыми прыжками кашу не сваришь.
А я пока с головой в esp32 и esphovm!(на радио кот заглядую редко,всем добра и удачи)

Re: Радиоуправляемый кораблик своими руками.

Пт июл 31, 2020 09:26:17

а что не так с приемниками GPS. у меня на коптере Ublox neo-m8n , после 10км полетов садится +- 50см.

Re: Радиоуправляемый кораблик своими руками.

Пт июл 31, 2020 11:59:29

esp32 поставь в кораблик. Будем управлять по Wi-FI))
Нас ещё камера ждёт)) https://www.youtube.com/watch?v=mUpCZpb30Ds
sashamelja писал(а):А я пока с головой в esp32 и esphovm!

esp32 для дома ? всё ещё сидишь на mqtt ? У тебя нет белого IP ?
Переходи на P2P (peer-to-peer) - https://ru.wikipedia.org/wiki/Одноранговая_сеть
P2P (peer-to-peer) работает без задержек... без регистрации... при отключенном интернете... и т.д.))

А я пока с головой в Java...
Screenshot_1.jpg
(105.89 KiB) Скачиваний: 205

Мы ещё должны подключить Ethernet к ATmega128... НАПРЯМУЮ !!! )) Это будет бомба)) Таких проектов больше нет))
Ethernet-Atmega8.jpg
(196.01 KiB) Скачиваний: 202

Re: Радиоуправляемый кораблик своими руками.

Сб авг 01, 2020 13:42:11

а это вообще законно без трансформаторов на порт вешаться ? ) хотя с той стороны есть...

Re: Радиоуправляемый кораблик своими руками.

Сб авг 01, 2020 18:54:36

Я тебе больше скажу... Я подключал ATmega8 напрямую к AR9331 без трансформатора.
Всё прекрасно работает ! )) Без всяких ENC28J60... W5100... W5500... и т.д.
TL-WR703N_Schematic AR9331.jpg
(179.48 KiB) Скачиваний: 225

На такое способны только программисты 48-го уровня ! )) :)))

P.S.
Идею взял отсюда:
https://www.youtube.com/watch?v=mwcvElQS-hM
https://www.youtube.com/watch?v=m4f4OzEyueg

Re: Радиоуправляемый кораблик своими руками.

Пт авг 07, 2020 23:25:18

Ublox neo-m8n я проводил детальный тест, мне результаты не понравелись(иногда 2 метра иногда 0.5 постояно пляшет)для квадрика для возврата на базу пойдет а вот для авто пилота не очень.
Мктт я пока отложил в сторону (нативный апи ховм-асиста показывает стабильней результаты, да и ещо проще в 100 раз не надо ни про что паритса , просто делаеш что нада а система помогает)
Да и камера есп за три бакса, интегрируетса по щелчку, и качество лутше, как в прочем и все что я попробовал работает как часики https://next.esphome.io/index.html
А есп 32 это просто мега класный микроконтролер за 2.8 долара.

Re: Радиоуправляемый кораблик своими руками.

Вс авг 09, 2020 13:16:48

sashamelja писал(а):есп 32 это просто мега класный микроконтролер за 2.8 долара.

Да причём тут деньги)) Зачем в доме есп 32 (с тактовой частотой 240 Мгц)? Для дома хватит и ATmega8 (лучше ATmega128).
sashamelja писал(а):все что я попробовал работает как часики https://next.esphome.io/index.html

тут подробней -
https://yandex.ru/video/preview?wiz_typ ... 96966610.1
Опять бла...бла... бла... Лучше бы включил анализатор трафика и показал бы пакеты, протоколы, шифрование и т.д.

Добавлено after 16 minutes 53 seconds:
Опять какое-то приложение для дома от неизвестных разработчиков... Опять логины... пароли... браузеры... веб-морды.
Я больше не использую браузеры. Браузеры придумали корпорации для слежки за пользователями сети Интернет))

И вообще у меня концепция другая)) Сейчас все делаю на Java.

Re: Радиоуправляемый кораблик своими руками.

Вс авг 09, 2020 13:27:47

Какая разница сколько там мегагерц если копейки стоит ? Больше не меньше ) В самой жирной "ардуине" мелкого формата вообще 600МГц и fpu, но она уже денег стоит.

Re: Радиоуправляемый кораблик своими руками.

Вс авг 09, 2020 22:53:32

Разница в энергопотреблении.
есп32 - 100...200 mA (до 300 mA в пике).
ATmega8 (ATmega128) - 5...10 mA.
Мой дом проработает на одной зарядке аккумулятора гораздо дольше))

Второе.
В Java мы не ограничены никакими сторонними приложениями. Например в Java мы сами рисуем любой интерфейс...
Всё ограничено только нашей фантазией))
Screenshot_1.jpg
(68.96 KiB) Скачиваний: 197


Добавлено after 6 hours 45 minutes 28 seconds:
Наверное надо сделать краткий обзор что мы тут делаем))

В прошлый раз сделали радиоуправление корабликом по интернету (точнее по Wi-Fi). На этот раз ещё решили добавить управлением Умным домом по Интернету. )) Используем Java машину https://ru.wikipedia.org/wiki/Java_Virtual_Machine

Пишем в eclipse. Компилируем. Получаем исполняемый jar файл. По сути обычный HEX файл состоящий из инструкций для процессора (на нашем случае процессора компьютера).
1.jpg
(115.15 KiB) Скачиваний: 179


Добавлено after 21 minute 58 seconds:
Далее...
Берём ATmega128, SD карту, Ethernet модуль, простенький экранчик... Паяем... Прошиваем... Проверяем.
Включаем анализатор трафика (обязательно !). Передаём файлы на SD карту и обратно по протоколу UDP.
Раньше использовали протокол TCP, но потом от TCP отказались - это не безопасно. А безопасности мы уделяем особое внимание))
Screenshot_2.jpg
(164.32 KiB) Скачиваний: 170

Всё работает. Получился простенький UDP сервер на ATmega128 и простенький UDP сервер на Java.

"фишка" Java в том, что Java работает напрямую с различными устройствами компьютера: оперативной памятью компа (в нашем случае DDR4), жёстким диском компа (в нашем случае HDD), с любыми внешними накопителями (в нашем случае флешкой), а так же с различной периферией (например COM порт) и т.д. А ещё Java работает как с файлами, так и с байтами и битами))
Короче... "фишек" в Java много))

Добавлено after 13 minutes 51 second:
Протокол написали свой)) Работает поверх UDP.
За основу взяли обычный протокол Ethernet...
Screenshot_3.jpg
(90.34 KiB) Скачиваний: 175

со счётчикам пакетов (для контроля и фрагментации пакетов)... с подтверждением ACK... с кучей разных флагов... с управлением потоком... с контрольными суммами... и ещё много чего ещё. Короче всё стандартно))

Добавлено after 17 minutes 46 seconds:
Установка приложения на комп интересная))
Закидываем ярлык файла jar в папку "Автозагрузка" (Пуск->Все программы->Автозагрузка).
После включения компа и загрузки Windows приложение Java запускается автоматически. Всё.))
Screenshot_4.jpg
(115.02 KiB) Скачиваний: 163


Добавлено after 16 minutes 31 second:
Загрузка приложения.
После запуска Java проверяет все файлы (наличие файла или наличие ошибок в файле). При любой ошибки приложение выдаёт соответствующую ошибку (подсвечивает красным).
А если например какого-то файла нет, то Java может сама подключиться к серверу и загрузить с сервера нужный ей файл.
Screenshot_5.jpg
(105.45 KiB) Скачиваний: 273

А если например в процессе инициализации/чтения/записи/верификации/проверка контрольных сумм флешки произошла ошибка, то мы это сразу увидим (все ошибки приложение подсвечивает красным).
Screenshot_6.jpg
(107.04 KiB) Скачиваний: 272

Если ошибок нет, и файл успешно загружен, то Java записывает файл например на жёсткий диск (в нашем случае HDD).
Screenshot_7.jpg
(104.38 KiB) Скачиваний: 251

Короче... полная автодиагностика и полный контроль всех систем и процессов))

Добавлено after 15 minutes 28 seconds:
Загрузка приложения с флешки.
По умолчанию приложение сохраняется на жёсткий диск (C:\ D:\).
Но при необходимости можно запускать приложение с флешки.
Копируем файла jar на флешку. Вставляем флешку в любой комп. Кликаем по файлу jar два раза)) Всё.
Приложение работает с флешке как с жёсткого диска. Приложение будет работать пока не вытащим флешку. ))
Screenshot_8.jpg
(134.79 KiB) Скачиваний: 269

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

Добавлено after 6 minutes 46 seconds:
Потому что наше приложение:
-не спрашивает никаких логинов и паролей...
-не предлагает перейти по ссылке...
-работает без регистрации на разных сайтах...
-никаких SMS !!!
-не спрашивает номер вашего мобильного телефона...
-без рекламы !!! ))

Последнее самое важное))

Добавлено after 23 minutes 9 seconds:
Разные "фишки" ))

torrent
А ещё наш Java Сервер может работать как торрент-трекер. Может качать и раздавать любые файлы.
Потому что torrent работает по тому же принципу что и наш Java Сервер (фрагментация файлов, скачивание файлов из разных источников, проверка хеш сумм и т.д.) и тоже работает по UDP.
Screenshot_9.jpg
(144.85 KiB) Скачиваний: 261


Добавлено after 10 minutes 59 seconds:
Skype
А ещё наш Java Сервер может работать как Skype. Потому что Skype тоже работает по UDP.
Screenshot_10.jpg
(129.24 KiB) Скачиваний: 268

Только одна проблема... наш Java Сервер не может подключиться к Skype потому что все данные зашифрованы... а ключи шифрования компания Microsoft Corporation нам не даёт)) :dont_know:

Но зато из нашего Java Сервера мы можем сделать свой аналог Skype.))
Да и вообще... из нашего Java Сервера мы можем сделать свой аналог любого мессенджера))

Добавлено after 10 minutes 36 seconds:
Видеорегистратор.
А ещё наш Java Сервер может работать как Видеорегистратор.
video_ip.jpg
(42.75 KiB) Скачиваний: 162

Всё что для этого нужно найти камеру... и подключить к ATmega128.
Желательно чтобы камера сразу выдавала JPEG. Есть такие камеры. Иначе придётся думать как нам конвертировать RGB в JPEG для просмотра видео на Java. Как это сделать в самой Java я пока не знаю))

Короче должно получиться что-то типа такого... https://yandex.ru/video/preview?wiz_typ ... 96981006.1
Только без тормозов))

Re: Радиоуправляемый кораблик своими руками.

Пн авг 10, 2020 06:57:52

Жесть какая )

Лично мне java очень не нравится, большинство приложений с которыми сталкивался очень зависимы от версии jm, вплоть до необходимости ставить в виртуалке другую и это я даже десятка таких приложений не использовал. (точно не помню уже что оно выдавала, с безопасностью возможно что то). Может так пишут, фиг знает. Точно такая же ерунда с питоном.

Re: Радиоуправляемый кораблик своими руками.

Вт авг 11, 2020 12:33:24

Я с уважением отношусь к вашему стремлению упорно создать велосипед, но я люблю ездить на нем, и мне чесно говоря все равно на то что и как там детально работает (ест задача, ищу средства для достижения цели и при этом не потратить пол жизни и кучю бабла)
Потому для себя выбрал язык ямал (сервер ховм асистент+нодеред)приферия весь китайский пром+еспховм если нету у китайцыв адикватных вариантов.

Re: Радиоуправляемый кораблик своими руками.

Ср авг 12, 2020 00:43:20

В том то и дело что я ничего не изобретаю)) Я пишу программы на самых популярных языках программирования от известных мировых производителей))

Это ещё не жесть. Жесть будет дальше))
Я тоже не восторге от Java... некоторые вещи сделаны через ж..у )) Но пока ничего лучше не нашёл.
С питоном ещё не работал... не знаю что он умеет... и нужен ли он вообще...
Лучше писать на MS DOS )) А лучше писать свою ОС (инструкции для процессора). Как на ассемблере)) :)))

Добавлено after 2 minutes 12 seconds:
Получаем исполняемый jar файл. По сути обычный HEX файл состоящий из инструкций для процессора (на нашем случае процессора компьютера).

Инструкции для виртуальной машины Java, а не инструкции для процессора компьютера. Вот я торможу)) :facepalm:

Re: Радиоуправляемый кораблик своими руками.

Ср авг 12, 2020 07:20:34

главное название темы подходящие для машин Java

Re: Радиоуправляемый кораблик своими руками.

Ср авг 12, 2020 07:31:06

Не не, свою ос не надо и ms dos тоже, разве что пишите исключительно для себя. Я и линухоидов то не очень понимаю - вот затеял человек неплохой проект в области sdr приемников/передатчиков, пилит его годами, можно собрать под винду, но работает под винду через жопу, а на все претензии он отвечает "идите лесом, у меня тут линух и все работает", оно вроде как понять можно - бесплатно же, в чем хочет в том и пилит, но для кого... основная аудитория по не красноглазики с линухами, не сервак же пилит.

Re: Радиоуправляемый кораблик своими руками.

Ср авг 12, 2020 15:39:54

Название темы очень подходящие для машин Java.

Мы делаем "Радиоуправляемый кораблик своими руками на Java машине под Android".
Кораблик.jpg
(104.01 KiB) Скачиваний: 302

Так понятней ?))

Ладно... писать свою ОС не будем)) Будем искать другие варианты)) Возможно есть ещё что-то интересное кроме Java...

Re: Радиоуправляемый кораблик своими руками.

Ср авг 12, 2020 16:35:40

Название темы очень подходящие для машин Java.

Мы делаем "Радиоуправляемый кораблик своими руками на Java машине под Android".
Кораблик.jpg

Так понятней ?))

Ладно... писать свою ОС не будем)) Будем искать другие варианты)) Возможно есть ещё что-то интересное кроме Java...


"вон оно че Михалыч"
Последний раз редактировалось aen Ср авг 12, 2020 16:43:31, всего редактировалось 1 раз.
Причина: Нарушение Правил форума п. 2.7

Re: Радиоуправляемый кораблик своими руками.

Чт авг 13, 2020 22:00:01

А что если установить в наш кораблик... роутер))
Кораблик.jpg
(117.93 KiB) Скачиваний: 154

Сейчас все скажут: "зачем?" )) Ну... это сложный вопрос)) На него нет однозначного ответа... )) Что бы было)) :)))
Устанавливают же на машинки зачем то роутеры... https://cxem.net/uprav/uprav34.php
Машинка.jpg
(65.51 KiB) Скачиваний: 157

Надо протестировать роутер в режиме NAT. Подключаем роутер по такой схеме и смотрим...
Screenshot_3.jpg
(166.4 KiB) Скачиваний: 281

Технология NAT в роутере (проброска портов отключена):
NAT Table.jpg
(71.61 KiB) Скачиваний: 165

1. Из внешней сети (WAN) во внутреннюю (LAN) попасть невозможно так как порты на роутере закрыты.
2. Из внутренней сети (LAN) во внешнюю сеть (WAN) попасть можно.))
3. Допустим сервер (192.168.0.101) отправляет UDP пакет серверу (192.168.0.3).
4. Роутер делает запись в таблице NAT Table (привязка "порт == IP" ).
5. После отправки UDP пакета роутер включает таймер примерно на 20 секунд.
6. Если по истечении 20 секунд ответ так и не пришёл, роутер удаляет из таблицы NAT Table запись о сокете. После этого из внешней сети (WAN) во внутреннюю (LAN) попасть невозможно.
7. Допустим ответ пришёл. Тогда роутер устанавливает таймер ещё примерно на 30 секунд.
Screenshot_1.jpg
(18.95 KiB) Скачиваний: 149

8. Далее идёт обмен данными между серверами... сервер (192.168.0.3) << >> сервер (192.168.0.101)...

Добавлено after 1 minute 47 seconds:
Screenshot_2.jpg
(80.23 KiB) Скачиваний: 144

9. При каждом новом пакете роутер автоматически устанавливает таймер примерно на 2...3 минуты.
10. Если пакетов больше нет, то через 2...3 минуты срабатывает тайм-аут и роутер удаляет из таблицы NAT Table запись о сокете. После этого из внешней сети (WAN) во внутреннюю (LAN) попасть невозможно.
11. При передачи пакетов порты (Source port и Destination port) роутер не меняет. Роутер меняет только IP (Source IP и Destination IP).
12. Вывод: Для поддержания связи по UDP надо непрерывно что-то передавать... например пустые пакеты... не реже чем каждые 2...3 минуты )) Чтоб не срабатывал тайм-аут и роутер удалял из таблицы NAT Table запись о сокете.

Вообщем всё понятно)) Короче... Надо добавить в Java "режим удержания связи" через NAT))
На языке программистов это кажется называется "NAT дырокол"... или как-то так))

Re: Радиоуправляемый кораблик своими руками.

Пт авг 14, 2020 19:51:03

roman.com писал(а):Надо добавить в Java "режим удержания связи" через NAT

http://wiki4.sipnet.ru/index.php?title= ... ресов_(NAT)_и_SIP#NAT_.D0.B8_.D0.98.D0.BD.D1.82.D0.B5.D1.80.D0.BD.D0.B5.D1.82_.D1.82.D0.B5.D0.BB.D0.B5.D1.84.D0.BE.D0.BD.D0.B8.D1.8F_.D1.81_.D0.B8.D1.81.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5.D0.BC_SIP_.D0.BF.D1.80.D0.BE.D1.82.D0.BE.D0.BA.D0.BE.D0.BB.D0.B0
3. Абонент, подключенный через NAT, практически не может принимать входящие звонки. Это связанно с тем, что NAT резервирует внешний порт на небольшой промежуток времени (от 1 до 3 мин.), поле чего освобождает его.
Полученный после этого входящий вызов от сервера сети Интернет-телефонии просто игнорируется и как следствие этого абонент расположенный за NATом не может получить информацию о входящем звонке.

К примеру Skype использует STUN.
http://wiki4.sipnet.ru/index.php?title= ... ресов_(NAT)_и_SIP#3.STUN

Всё ясно)) :tea:

Добавлено after 18 minutes 57 seconds:
Screenshot_1.jpg
(70.95 KiB) Скачиваний: 179

Re: Радиоуправляемый кораблик своими руками.

Пн авг 17, 2020 14:49:58

roman.com писал(а):Надо добавить в Java "режим удержания связи" через NAT

Кстати... это же справедливо если порты в роутере проброшены но при это мы подключаемся не из WAN в LAN, а из LAN в LAN через внешний порт роутера WAN:

1. сервер (192.168.0.101) отправляет UDP пакет роутеру (WAN).
2. роутер (WAN) отправляет UDP пакет серверу (192.168.0.3).
3. Роутер делает запись в таблице NAT Table (привязка "порт == IP" ).
4. сервер (192.168.0.3) отправляет UDP пакет роутеру (WAN).
5. роутер (WAN) отправляет UDP пакет серверу (192.168.0.101).
...
Screenshot_4.jpg
(170.64 KiB) Скачиваний: 152

9. И в этом случае роутер автоматически устанавливает таймер примерно на 2...3 минуты.
10. Если пакетов больше нет, то через 2...3 минуты срабатывает тайм-аут и роутер удаляет из таблицы NAT Table запись о сокете. После этого из внутренней сети (LAN) во внутреннюю сеть (LAN) через внешний порт роутера (WAN) попасть невозможно.
Т.е. сервер (192.168.0.3) не может отправить UDP пакет серверу (192.168.0.101) через внешний порт роутера (WAN).

Вообщем с роутерами вроде разобрались)) :tea:

Добавлено after 30 minutes 24 seconds:
Далее...
Шифрование. Погружаемся в удивительный и увлекательный мир криптографии )) :tea:
А вот тут уже начинается ЖЕСТЬ ! )) :)))

Добавлено after 3 hours 13 minutes 12 seconds:
Мы делаем два проекта одновременно - "Радиоуправляемый кораблик своими руками" и "Умный дом своими руками".
Всё что касается проекта "Радиоуправляемый кораблик своими руками" справедливо и для "Умный дом своими руками". Так как принцип работы у них одинаковый))

У нас всё работает через Wi-Fi (домашний или публичный). Поэтому нам нужно шифрование (чтоб никто не угнал наш кораблик или не влез в наш дом).
Сам Wi-Fi имеет шифрование WPA - https://ru.wikipedia.org/wiki/WPA
Сам по себе WPA не даёт никаких гарантий безопасности (как и сам роутер).
В сети Интернет огромное количество программ и примеров как взломать Wi-Fi и как подобрать пароль от роутера. От простого перебора паролей и анализа трафика до подмены точки доступа и перехвата паролей и ключей шифрования.
Мы не будем подробно останавливаться на том как взломать Wi-Fi, достаточно только понимать, что сам по себе Wi-Fi (со всеми его технологиями шифрования и аутентификации) - это абсолютно не надёжная система. ))
Поэтому в наших проектах мы будем использовать только сквозное шифрование. https://ru.wikipedia.org/wiki/Сквозное_шифрование
Ответить