Специальные цены   новые товары
+ Ответить в теме
Показано с 1 по 34 из 34

arduino вместо FlySky ?

Тема раздела Судомодели. Общий в категории Судомодели; Кто-нить пытался полностью переити на управление от ардуины? Какие проблеммы возникают, недостатки? Собственно, есть желание переделать управление и уйти от ...

  1. #1

    Регистрация
    29.07.2019
    Адрес
    Canada
    Возраст
    51
    Сообщений
    21

    arduino вместо FlySky ?

    Кто-нить пытался полностью переити на управление от ардуины?
    Какие проблеммы возникают, недостатки?
    Собственно, есть желание переделать управление и уйти от стандартного пульта.

  2.  
  3. #2

    Регистрация
    13.07.2008
    Адрес
    Магнитогорск
    Возраст
    31
    Сообщений
    239
    Видел подобные проекты в связке arduino+nrf24l01, но зачем? Какая цель преследуется?
    https://community.alexgyver.ru/threa...a-nrf24l01.76/
    P.S. По моему опыту работы с данными модулями года 3 назад - библиотека была сырая, постоянно косячила и терялись пакеты (хотя может быть это мой кривой код ).

  4. #3

    Регистрация
    29.07.2019
    Адрес
    Canada
    Возраст
    51
    Сообщений
    21
    пакеты теряются, но ето не проблемма - они передаются несколько раз в секунду.
    поэтому на пару потерянных пакетов можно наплевать.
    С ардуиной появляется куча плюшек:
    -неограниченное число каналов
    -обратная связь с кораблем
    -приличный интерфейс (хочу тач скрин на пульте)
    -и наконец нормальный автопилот

  5. #4

    Регистрация
    07.01.2019
    Адрес
    Севастополь
    Возраст
    36
    Сообщений
    19
    У меня небольшой успешный опыт есть.
    Правда гибрид получается.
    Аппаратура радиолинк, на корабле ардуина считывает приемник и парсит его каналы - благо там SBUS - это обычный UART.
    Таймер ардуины генерирует сигналы для серв.
    Ну, а далее всё просто, тумблером пульта можно переключить управление либо напрямую от пульта (direct mode) либо передать управление полностью автопилоту (как бы flybywire).
    Разную телеметрию я передаю через модуль 3dr, про nrf на тот момент не всё знал. 3dr на земле удобно подключить через USB, с nrf на берегу понадобится ещё один контроллер.

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




  6.  
  7. #5

    Регистрация
    29.07.2019
    Адрес
    Canada
    Возраст
    51
    Сообщений
    21
    Это у Вас на пульте тачскрин?
    В принципе что-то подобное и ищу.
    Только без кнопок - два джойстика и тач. Все управление на таче.
    Ардупайлот смотрел видео - по моему весьма громоздко сделано.
    Хотелось бы простой интерфейс - ткнул пальцем на точку - кораблик и поехал туда. Дал команду домой и занимайся своим делом дальше.
    Ардупайлот предлагает носить ноут с собой и заниматся програмированием устройства на рыбалке.
    Нет, это не правильно. Должно быть все просто как функционал у топора.
    похоже Вам ардупайлот тоже не понравился - поэтому и делаете свое устройство.

  8. #6

    Регистрация
    07.01.2019
    Адрес
    Севастополь
    Возраст
    36
    Сообщений
    19
    Нет, пульт у меня обычный без тачскринов - радиолинк АТ9s.

    Ардупайлот мне не то, чтобы не понравился, он как и пиксхок со своей задачей справляется. Мне нужно просто на корабль установить кое какое оборудование и передавать с него данные через телеметрию автопилота. Но разбираться в коде ардупайлота у меня опыта нет, я программер самоучка, много чего не знаю. Потому мне проще было изобрести простой велосипед с нуля.
    чтобы не таскать ноут для пиксхока есть QGround control для телефонов планшетов. им вроде тоже можно задавать точки, но деталей не скажу, не уверен.

    А задачу прийти в точку решить в принципе не так сложно, я один из таких алгоритмов тоже планирую к реализации.
    вот отличный сайт с готовыми формулами для работы с GPS и расчетом некоторых параметров навигации https://www.movable-type.co.uk/scripts/latlong.html

    Думаю нужно посмотреть софт для разработки ПО для планшетов/телефонов, так чтобы он мог работать с ком-портом, тогда много чего упроститься если использовать телеметрию типа 3dr или Lora со встроенным ком мостом в юсб.
    бесплатные офлайн карты тоже есть - openstreet.

    Но это всё что я знаю из теории, в приоритете у меня ноутбук с ПО.

  9. #7

    Регистрация
    04.09.2009
    Адрес
    Беер-Шева,Израиль+Полтава/У
    Возраст
    56
    Сообщений
    383
    Цитата Сообщение от kapelan Посмотреть сообщение
    ... Все управление на таче...
    Мокрые руки/дождь-тач не адекватно работает.

  10.  
  11. #8

    Регистрация
    29.07.2019
    Адрес
    Canada
    Возраст
    51
    Сообщений
    21
    Цитата Сообщение от vlad007 Посмотреть сообщение
    Мокрые руки/дождь-тач не адекватно работает.
    тач на ардуину не совсем такой как телефон. В него можно палкой тыкать - он будет работать.
    Для адекватного автопилота нужна обратная связь с кораблем.
    Собственно поэтому другого выхода нету. Все существуюшие способы управления такого не могут.
    Почему тач а не кнопки? потомушта один тач дешевле десяти кнопок , удобнее и открывает возможность неограниченного числа каналов.
    Опыт по програмированию тача есть - тут проблем никаких.
    Пока вижу проблему :
    - с корректной связью - заказал модули, покрутим, посмотрим.
    - адекватный и удобный пульт нужен, а 3Д принтера нету.
    Ну и софтину автопилота написать - тоже проблем не вижу.

  12. #9

    Регистрация
    04.09.2009
    Адрес
    Беер-Шева,Израиль+Полтава/У
    Возраст
    56
    Сообщений
    383
    Цитата Сообщение от kapelan Посмотреть сообщение
    тач на ардуину не совсем такой как телефон. В него можно палкой тыкать - он будет работать ...
    Да,если тач резистивный,а не капасити.

  13. #10

    Регистрация
    29.07.2019
    Адрес
    Canada
    Возраст
    51
    Сообщений
    21
    тестирую HC-12 модули.
    проблема не в потерянных пакетах а в потеряной части пакета.
    Если потерянный пакет можно смело игнорировать то с мусором в эфире боротса сложно.
    нужно мастырить что-то типа контроля целостности пакета, что приводит к удлинению пакета, а чем больше пакет тем больше шансов потерять его часть.
    вобщем замкнутый круг
    Видимо это и остановило массовою замену существуюшей аппаратуры.

    Цитата Сообщение от Sevas Посмотреть сообщение
    ... на корабле ардуина считывает приемник и парсит его каналы - благо там SBUS - это обычный UART....
    на UART приходят правильные данные всегда?
    или ардуина как-то дополнительно их проверяет?
    формат сообщения можете опубликовать?

  14. #11

    Регистрация
    07.01.2019
    Адрес
    Севастополь
    Возраст
    36
    Сообщений
    19
    Данные приходят всегда. Ошибок пока не замечено. Хотя из спецификации sbus там нет чексуммы.

    Прикрепил файлик со спецификацией сбуса.

    А это код как распарсить посылку по каналам.
    Код:
    SBUS_channels[0]  = ((SB_buffer[1]    |SB_buffer[2]<<8)                 & 0x07FF);//ROLL
    		SBUS_channels[1]  = ((SB_buffer[2]>>3 |SB_buffer[3]<<5)                 & 0x07FF);//PITCH
    		SBUS_channels[2]  = ((SB_buffer[3]>>6 |SB_buffer[4]<<2 | SB_buffer[5]<<10)  & 0x07FF);//THROTTLE
    		SBUS_channels[3]  = ((SB_buffer[5]>>1 |SB_buffer[6]<<7)                 & 0x07FF);//RUDDER
    		SBUS_channels[4]  = ((SB_buffer[6]>>4 |SB_buffer[7]<<4)                 & 0x07FF);//2х позиционный тумблер C 
    		SBUS_channels[5]  = ((SB_buffer[7]>>7 |SB_buffer[8]<<1 |SB_buffer[9]<<9)   & 0x07FF);
    		SBUS_channels[6]  = ((SB_buffer[9]>>2 |SB_buffer[10]<<6)                & 0x07FF);
    		SBUS_channels[7]  = ((SB_buffer[10]>>5|SB_buffer[11]<<3)                & 0x07FF);
    		SBUS_channels[8]  = ((SB_buffer[12]   |SB_buffer[13]<<8)                & 0x07FF);//тумблер B
    		SBUS_channels[9]  = ((SB_buffer[13]>>3|SB_buffer[14]<<5)                & 0x07FF);
    		SBUS_channels[10] = ((SB_buffer[14]>>6|SB_buffer[15]<<2|SB_buffer[16]<<10) & 0x07FF);
    		//SBUS_channels[11] = ((SB_buffer[16]>>1|SB_buffer[17]<<7)                & 0x07FF);
    		//SBUS_channels[12] = ((SB_buffer[17]>>4|SB_buffer[18]<<4)                & 0x07FF);
    		//SBUS_channels[13] = ((SB_buffer[18]>>7|SB_buffer[19]<<1|SB_buffer[20]<<9)  & 0x07FF);
    		//SBUS_channels[14] = ((SB_buffer[20]>>2|SB_buffer[21]<<6)                & 0x07FF);
    		//SBUS_channels[15] = ((SB_buffer[21]>>5|SB_buffer[22]<<3)                & 0x07FF);
    		//if ((SB_buffer[23])      & 0x0001)
    		//{
    			//SBUS_channels[16] = 2047;
    		//}
    		//else SBUS_channels[16] = 0;
    		//
    		//if ((SB_buffer[23] >> 1) & 0x0001)
    		//{
    			//SBUS_channels[17] = 2047;
    		//} else SBUS_channels[17] = 0;
    Посылку собираем в прерывании UART

    Код:
    ISR ( USART2_RX_vect )//прерывание SBUS от пульта
    {
    	uint8_t rx = UDR2;
    	if (SB_buffer_index == 0 && rx != SBUS_STARTBYTE)
    	{
    		//incorrect start byte, out of sync
    		return;
    	}
    	
    	SB_buffer[SB_buffer_index++] = rx;
    
    	if (SB_buffer_index == 25)
    	{
    		SB_buffer_index = 0;
    		if (SB_buffer[24] != SBUS_ENDBYTE)
    		{
    			//incorrect end byte, out of sync
    			return;
    		}
    		else
    		{
    			UCSR2B &= ~(1 << RXCIE2);//отключение прерывания UART2
    			UART2_RX_flag = true;//данные готовы
    		}
    	}
    
    }
    Если будете это всё пробовать то нужно сделать инвертер сигнала на транзисторе. сбус изначально ивертирует 0 на 1, то есть не так как UART согласно ASCII.

    Вложения

  15. #12

    Регистрация
    29.07.2019
    Адрес
    Canada
    Возраст
    51
    Сообщений
    21
    Цитата Сообщение от Sevas Посмотреть сообщение
    ...Прикрепил файлик со спецификацией сбуса
    спасибо, судя по коду работает так:
    - проверяет первый стартовый символ :SBUS_STARTBYTE
    - затем посылка из 25 байт
    - проверяет заключающий символ: SBUS_ENDBYTE
    если длинна сообщения 27 байт + первый + последний символ совпадают - значит посылка валидная.
    Иначе: пакет идет вмусор.
    Валидный пакет парсится по каналам, непонятно зачем пакет такой длинный - видимо в один байт значение канала не вмещается.

  16. #13

    Регистрация
    07.01.2019
    Адрес
    Севастополь
    Возраст
    36
    Сообщений
    19
    Да, все так.
    Один канал насколько я понял имеет разрядность 9 или 11, сейчас уже не помню, поэтому они их раскидали таким хитрым способом. 2 байта на канал много, осталось пару бит, они в этот хвост закинули начало следующего канала и т.д.

  17. #14

    Регистрация
    29.07.2019
    Адрес
    Canada
    Возраст
    51
    Сообщений
    21
    угу:
    по спецификации из rar (шикарная дока)
    у них байт = 12 бит.
    12 бит не хватает на канал и они раскидали каналы по разным байтам.
    начало+конец+длинна является контрольной суммой.
    Громоздко получается.
    ардуина 8 битовая - тяжело это дело вместе прикрутить.

  18. #15

    Регистрация
    07.01.2019
    Адрес
    Севастополь
    Возраст
    36
    Сообщений
    19
    По опыту скажу что ардуина со всем справляется за глаза.
    У меня она отрабатывает 3 уартовских прерывания.
    Работает с акселерометром, гиро, компасом по i2c. Считает честный кватернион, там под десяток операций с float, столько же синусов и прочей тригонометрии.
    Один аппаратный таймер генерирует правильные импульсы для 3х каналов.
    Со всем этим справляется на ура, зависаний не замечал, но я и вотчдог настроил.
    Правда я все пишу, управляю голыми регистрами, ардуиновский IDE и его готовые функции лучше для таких задач не использовать, там много косяков есть.

  19. #16

    Регистрация
    07.01.2019
    Адрес
    Севастополь
    Возраст
    36
    Сообщений
    19
    Демонстрация моего автопилота


  20. #17

    Регистрация
    02.07.2019
    Адрес
    Спб
    Возраст
    49
    Сообщений
    231
    Делаю РУ на Ардуино+nRF
    Детские болезни данной связки уже прошел
    Плюсов данного варианта много, минусов не знаю.
    Посмотреть можно на соседней ветке (копии- ЭБР "Пётр Великий") и это не реклама )))

  21. #18

    Регистрация
    16.08.2016
    Адрес
    Москва
    Возраст
    36
    Сообщений
    819
    Записей в дневнике
    27
    РУ на ардуино - детская болезнь моделистов.

  22. #19

    Регистрация
    29.11.2019
    Адрес
    Серпухов
    Возраст
    27
    Сообщений
    48
    Обычное лучше?

  23. #20

    Регистрация
    29.07.2019
    Адрес
    Canada
    Возраст
    51
    Сообщений
    21
    Цитата Сообщение от Ozyris Посмотреть сообщение
    РУ на ардуино - детская болезнь моделистов.
    когда-то расказывали про радиацию от монитора ... и все покупали защитные экраны.
    Сейчас пурга пошла насколько вредно 5Ж для мозга.
    Так и тут с аппаратурой - не боги горшки лепят
    Все просто как 3 копейки: зашифровать/рашифровать сигнал
    Каким методом это достичь - вопрос третий, компьютером или шифратором/дешифратором - значения не имеет ровно никакого.

  24. #21

    Регистрация
    28.06.2016
    Адрес
    Odessa
    Возраст
    35
    Сообщений
    182
    Цитата Сообщение от kapelan Посмотреть сообщение
    когда-то расказывали про радиацию от монитора ... и все покупали защитные экраны.
    Сейчас пурга пошла насколько вредно 5Ж для мозга.
    Так и тут с аппаратурой - не боги горшки лепят
    Все просто как 3 копейки: зашифровать/рашифровать сигнал
    Каким методом это достичь - вопрос третий, компьютером или шифратором/дешифратором - значения не имеет ровно никакого.
    в слове "достичь" содержится слово "Дичь" совпадение?

  25. #22

    Регистрация
    02.07.2019
    Адрес
    Спб
    Возраст
    49
    Сообщений
    231
    Цитата Сообщение от kapelan Посмотреть сообщение
    зашифровать/рашифровать сигнал
    это делает сам радиомодуль. Подаешь ему массив байт он их шифрует и передает.
    Всех делов.
    Не понимаю, в чем страх использовать Ардуино. Не по фен-шую?

  26. #23

    Регистрация
    28.06.2016
    Адрес
    Odessa
    Возраст
    35
    Сообщений
    182
    Та можно вообще, просто зачем? Хотя каждому, конечно свое...

  27. #24

    Регистрация
    29.07.2019
    Адрес
    Canada
    Возраст
    51
    Сообщений
    21
    наверное потомушта хочется сделать лучше,
    а на существующую аппаратуру исходников нет

  28. #25

    Регистрация
    28.06.2016
    Адрес
    Odessa
    Возраст
    35
    Сообщений
    182
    Сделать лучше? На ардуино? Вы серьезно? А параметры процессоров смотрели, сравнивали?

  29. #26

    Регистрация
    02.07.2019
    Адрес
    Спб
    Возраст
    49
    Сообщений
    231
    а что там такого в этих параметрах процессоров?? И что, , 8-ми разрядной Atmega328 не хватит для радиоуправления?

  30. #27

    Регистрация
    16.08.2016
    Адрес
    Москва
    Возраст
    36
    Сообщений
    819
    Записей в дневнике
    27
    Цитата Сообщение от kapelan Посмотреть сообщение
    на существующую аппаратуру исходников нет
    Все есть, только надо ли? Купить приемник выйдет намного дешевле, чем сделать самому. Если цель обучение, тогда другое дело.

  31. #28

    Регистрация
    02.07.2019
    Адрес
    Спб
    Возраст
    49
    Сообщений
    231
    так самому можно сделать приемник (да и пульт) с нужными тебе размерами и с нужными тебе функциями

  32. #29

    Регистрация
    29.07.2019
    Адрес
    Canada
    Возраст
    51
    Сообщений
    21
    Цитата Сообщение от Ozyris Посмотреть сообщение
    Все есть, только надо ли? Купить приемник выйдет намного дешевле, чем сделать самому. Если цель обучение, тогда другое дело.
    надо. кидайте ссылочку - сотворим супер девайс

  33. #30

    Регистрация
    16.08.2016
    Адрес
    Москва
    Возраст
    36
    Сообщений
    819
    Записей в дневнике
    27
    Вот кстати в тему, приемник одновременно под Ардуину с NRF24 и FlySky

    Да что скромничать, и под FrSky тоже.
    Последний раз редактировалось Ozyris; 14.07.2020 в 19:31.

  34. #31

    Регистрация
    02.07.2019
    Адрес
    Спб
    Возраст
    49
    Сообщений
    231
    Цитата Сообщение от Ozyris Посмотреть сообщение
    приемник одновременно
    какие параметры у таких приемников?

  35. #32

    Регистрация
    29.07.2019
    Адрес
    Canada
    Возраст
    51
    Сообщений
    21
    Цитата Сообщение от Olger_spb Посмотреть сообщение
    так самому можно сделать приемник (да и пульт) с нужными тебе размерами и с нужными тебе функциями
    уже сделал.
    стала проблемма с корпусом:
    - либо делать корпус
    - либо переписать код под существующий корпус

  36. #33

    Регистрация
    02.07.2019
    Адрес
    Спб
    Возраст
    49
    Сообщений
    231
    странная взаимосвязь между корпусом и кодом...

  37. #34

    Регистрация
    29.07.2019
    Адрес
    Canada
    Возраст
    51
    Сообщений
    21
    собственно прямая:
    чтобы девайс работал его нужно держать в руках.
    Моток проводов с джойстиком устройсвом не является.

+ Ответить в теме

Похожие темы

  1. перепрошивка аппы GT3B от FlYSky/EuRgly/Hobbiking и иже с ними
    от darkcats в разделе Аппаратура и аксессуары для автомоделей
    Ответов: 690
    Последнее сообщение: 03.07.2020, 09:41
  2. FlySky fs-i6x и FlySky fs-i6 различия по железу
    от TGOdessa в разделе Аппаратура радиоуправления
    Ответов: 2
    Последнее сообщение: 14.07.2019, 15:33
  3. Продам Передатчик и приёмники FlySky
    от Spider1973 в разделе Барахолка. Аппаратура
    Ответов: 1
    Последнее сообщение: 25.10.2018, 06:17
  4. Помогите с Arduino nano
    от TomFoss в разделе Новичкам
    Ответов: 4
    Последнее сообщение: 18.10.2018, 14:27
  5. Проблема с аппаратурой FlySky I6X
    от NOVUM в разделе Аппаратура радиоуправления
    Ответов: 3
    Последнее сообщение: 29.08.2018, 02:35

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения