Подписываемся на VK

Ежедневные новости, видео и приколы...

YouTube канал

Подбор моторов

TOP статьи

Вход




RC Магазины





Последние комментарии

Для удобства пользования форумом и поиска информации прошу придерживаться правила: 1 тема = 1 вопрос.

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

Исключение только в разделе Вопросы и обсуждения по статьям

Как выложить фото, Как опубликовать видео

С уважением,

Константин.

Turnigy 9X и Ардуино

Turnigy 9X и Ардуино

Господа, прошу подсказать!
Приобрел себе Turnigy 9X 9Ch, думал использовать пульт для различных моделей - как универсальную систему управления.
Попытался подсоединить приемник к Arduino - никак не могу считать управляющий сигнал. (приемник и передатчик "сбиндены")
Подскажите, в каком формате приемник выдает управляющий сигнал? Какой диапазон, продолжительность, амплитуда, частота?

В Ардуино использую аналоговый вход - на "эталонных" ИП показывает правильное значение. Вольтметром меряю - меняется вольтаж с 0.3В до 0.25В или 0.35В - нормально ли это?

madishe
KoT_6JIeByH
Ученик пилота
ranks
useravatar
Offline
6 Сообщений
Дата рождения 
Администратор отключил публичную отправку сообщений

Re: Turnigy 9X и Ардуино

Там идут импульсы с периодом 20 мсек  и длительностью 1-2 мсек в зависимости от положения стика данного канала.

alldn
Александр (г.Тамбов)
useravatar
Offline
2863 Сообщений
Мужчина  Дата рождения 
Администратор отключил публичную отправку сообщений

Re: Turnigy 9X и Ардуино

alldn написал(а):

Там идут импульсы с периодом 20 мсек  и длительностью 1-2 мсек в зависимости от положения стика данного канала.

Большое спасибо!
Амплитуда правильная?

madishe
KoT_6JIeByH
Ученик пилота
ranks
useravatar
Offline
6 Сообщений
Дата рождения 
Администратор отключил публичную отправку сообщений

Re: Turnigy 9X и Ардуино

амплитуда 5 вольт. По длительности импульса определяется положение джойстика канала. 1 мсек - минимум, 1.5 мсек среднее положение 2 мсек - максимум.

alldn
Александр (г.Тамбов)
useravatar
Offline
2863 Сообщений
Мужчина  Дата рождения 
Администратор отключил публичную отправку сообщений

Re: Turnigy 9X и Ардуино

Действительно, спасибо за наводку. Сейчас померил осцилографом - в точности, как вы сказали.
Частота дескретизации аналогового порта Ардуино составляет 10000 раз в секунду, в теории можно опрашивать несколько каналов на предмет изменения длительности импульса.
Завтра проверю. Ещё раз - спасибо.

madishe
KoT_6JIeByH
Ученик пилота
ranks
useravatar
Offline
6 Сообщений
Дата рождения 
Администратор отключил публичную отправку сообщений

Re: Turnigy 9X и Ардуино

Вольтметром амплитуду цифрового сигнала точно не измеришь,только осциллографом.Чем длиннее импульс тем большее    U   будет  показывать вольтметр при одинаковой амплитуде.

djcha
Андрей
Пилот
ranks
useravatar
Offline
1424 Сообщений
Мужчина  Дата рождения 
Администратор отключил публичную отправку сообщений

Re: Turnigy 9X и Ардуино

Да это-то понятно...
Никак не могу въехать, как заставить Arduino Uno (так же есть Freeduino) распознавать сигнал от пульта...

Вот, что показывает осцилограф на центральном положении (первый канал приемника):
http://s017.radikal.ru/i438/1202/83/c99bcb4837d5.jpg

Крайнее правое:
http://s018.radikal.ru/i513/1202/7b/f975683ea22f.jpg

Крайнее левое:
http://s45.radikal.ru/i107/1202/1d/7103f3a012e9.jpg

Все данные сняты 2 В\дел и 0.5 мС\дел

Казалось бы, всё элементарно: разрешающая способность считывания (данные для Freeduino, 8Mhz, Atmega168) составляет: 5 В/1024 значений = 0,004883 В/значение (4,883 мВ), требуется приблизительно 100 нС (0.0001 С), чтобы считать значение аналогового ввода, так что максимальная скорость считывания - приблизительно 10000 раз в секунду.
Следовательно, Фридуино теоретически способен считать значение с выхода приёмника примерно 150 раз за время длительности 5В импульса в нейтральном положении джойстика. Далее считаем длительность положительного импульса и на его основе определяем положение джойстика на пульте.
Как бы не так!

 Спойлер Show Spoiler Hide Spoiler
 
Вот "карта" считывания фридуино с выхода первого канала приемника в нейтральном положении:
=------------------=------------------=------------------=-----------------==-----------------==----------------==-----------------
=------------------=------------------=------------------=------------------=-----------------==-----------------==----------------==-----------------
=------------------=------------------=------------------=------------------=-----------------==-----------------==----------------==-----------------
=------------------=------------------=------------------=-----------------==-----------------==-----------------==----------------
=------------------=------------------=------------------=------------------=-----------------==-----------------==-----------------==----------------
=------------------=------------------=------------------=------------------=-----------------==-----------------==-----------------==----------------
=------------------=------------------=------------------=-----------------==-----------------==-----------------==-----------------==----------------
=------------------=------------------=------------------=-----------------==-----------------==-----------------==-----------------
=-----------------=------------------=------------------=------------------=-----------------==-----------------==-----------------==-----------------
=-----------------=------------------=------------------=------------------=-----------------==-----------------==-----------------==-----------------
=-----------------=------------------=------------------=-----------------==-----------------==-----------------==-----------------
=------------------=-----------------=------------------=------------------=-----------------==-----------------==-----------------==-----------------
=------------------=-----------------=------------------=------------------=-----------------==-----------------==-----------------==-----------------
=------------------=-----------------=------------------=------------------=-----------------==-----------------==-----------------==-----------------
=------------------=------------------------------------=-----------------==-----------------==-----------------==-----------------
=------------------=------------------=------------------=-----------------=-----------------==-----------------==-----------------==-----------------
=------------------=------------------=------------------=-----------------=-----------------==-----------------==-----------------==-----------------
=------------------=------------------=------------------=----------------==-----------------==-----------------==-----------------==-----------------
=------------------=------------------=------------------=----------------==-----------------==-----------------==-----------------
=------------------=------------------=------------------=------------------=----------------==-----------------==-----------------==-----------------
=------------------=------------------=------------------=------------------=----------------==-----------------==-----------------==-----------------
=------------------=------------------=------------------=-----------------==----------------==-----------------==-----------------==-----------------

[\SPOILER]

Получается, что надо считать не просто длительность импульса, а целый шаблон....
Что-то я совсем запутался... Может существуют какие-нибудь устройства, преобразующие с сигналы разной скважности во что-то более-менее цифровое?

madishe
KoT_6JIeByH
Ученик пилота
ranks
useravatar
Offline
6 Сообщений
Дата рождения 
Администратор отключил публичную отправку сообщений

Re: Turnigy 9X и Ардуино

Простите, немного не понимаю, какие теги работают на форуме...

Вот "карта" считывания фридуино с выхода первого канала приемника в нейтральном положении:
=------------------=------------------=------------------=-----------------==-----------------==----------------==-----------------
=------------------=------------------=------------------=------------------=-----------------==-----------------==----------------==-----------------
=------------------=------------------=------------------=------------------=-----------------==-----------------==----------------==-----------------
=------------------=------------------=------------------=-----------------==-----------------==-----------------==----------------
=------------------=------------------=------------------=------------------=-----------------==-----------------==-----------------==----------------
=------------------=------------------=------------------=------------------=-----------------==-----------------==-----------------==----------------
=------------------=------------------=------------------=-----------------==-----------------==-----------------==-----------------==----------------
=------------------=------------------=------------------=-----------------==-----------------==-----------------==-----------------
=-----------------=------------------=------------------=------------------=-----------------==-----------------==-----------------==-----------------
=-----------------=------------------=------------------=------------------=-----------------==-----------------==-----------------==-----------------
=-----------------=------------------=------------------=-----------------==-----------------==-----------------==-----------------
=------------------=-----------------=------------------=------------------=-----------------==-----------------==-----------------==-----------------
=------------------=-----------------=------------------=------------------=-----------------==-----------------==-----------------==-----------------
=------------------=-----------------=------------------=------------------=-----------------==-----------------==-----------------==-----------------
=------------------=------------------------------------=-----------------==-----------------==-----------------==-----------------
=------------------=------------------=------------------=-----------------=-----------------==-----------------==-----------------==-----------------
=------------------=------------------=------------------=-----------------=-----------------==-----------------==-----------------==-----------------
=------------------=------------------=------------------=----------------==-----------------==-----------------==-----------------==-----------------
=------------------=------------------=------------------=----------------==-----------------==-----------------==-----------------
=------------------=------------------=------------------=------------------=----------------==-----------------==-----------------==-----------------
=------------------=------------------=------------------=------------------=----------------==-----------------==-----------------==-----------------
=------------------=------------------=------------------=-----------------==----------------==-----------------==-----------------==-----------------

Получается, что надо считать не просто длительность импульса, а целый шаблон....
Что-то я совсем запутался... Может существуют какие-нибудь устройства, преобразующие с сигналы разной скважности во что-то более-менее цифровое?

madishe
KoT_6JIeByH
Ученик пилота
ranks
useravatar
Offline
6 Сообщений
Дата рождения 
Администратор отключил публичную отправку сообщений

Re: Turnigy 9X и Ардуино

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

SEREGA
Сергей (г.Железнодорожный)
Пилот
ranks
useravatar
Offline
395 Сообщений
Мужчина  Дата рождения 
Администратор отключил публичную отправку сообщений

Re: Turnigy 9X и Ардуино

Да хватит вам ерунду говорить. Адаптер, ....
Сигнал нужно вешать на прерывание меги и обрабатывать прерывания по любому изменению порта.
А там все просто - после прерывания порт в "1" - значит подъем, запускаем таймер. Следующее прерывание, смотрим - спад, останавливаем таймер и считываем измеренную длительность. И теперь по длительности анализируем в каком положении стик.
Все просто как 3 рубля.

alldn
Александр (г.Тамбов)
useravatar
Offline
2863 Сообщений
Мужчина  Дата рождения 
Администратор отключил публичную отправку сообщений

Re: Turnigy 9X и Ардуино

Спасибо, Александр, за трезвую идею!
Но... "Ларчик просто открывался" smile

Я полностью разобрался, сейчас объясню.
Прерывания - очень хорошая идея. Обрабатывается по изменению порта и позволяет подсчитывать длину импульса.
Но прерываний у Arduino Uno и Freeduino всего 2 штуки с номерами 0 (на digital pin 2) и 1 (на digital pin 3). Arduino Mega имеет дополнительно ещё четыре:
с номерами 2 (pin 21), 3 (pin 20), 4 (pin 19) и 5 (pin 18). Мега дорога, а каналов у Турниджи много.

Но оказалось, что у Arduino\Freeduino есть замечательная стандартная функция pulseIn().
Она считывает длину сигнала на заданном порту (HIGH или LOW). Например, если задано считывание HIGH функцией pulseIn(), функция ожидает пока на заданном порту не появиться HIGH. Когда HIGH получен, включается таймер, который будет остановлен когда на порту вход/выхода будет LOW. Функция pulseIn() возвращает длину сигнала в микросекундах. Функция возвращает 0, если в течение заданного времени (таймаута) не был зафиксирован сигнал на порту.
Написано, так же, что есть некоторые погрешности в измерение длинных сигналов. Функция может измерять сигналы длиной от 10 микросекунд до 3 минут.

Вот оно! smile

На всякий случай приведу пример программы распознания PPM сигналов:

int pin = 7;                                 
unsigned long duration;

void setup() {
   Serial.begin(9600);
   pinMode(pin, INPUT);               //7й цифровой порт переключается на вход
}

void loop() {
    duration = pulseIn(pin, INPUT);      //непосредственно, вызов функции измерения длинны импульса
    Serial.print("Duration = " );                       // запись значения в serial (просмотр в Tools->Serial Monitor)
    Serial.print(duration);
    Serial.print("\n");                                         //перенос строки
}


И всего-то делов! Надо внимательнее учить матчасть.

madishe
KoT_6JIeByH
Ученик пилота
ranks
useravatar
Offline
6 Сообщений
Дата рождения 
Администратор отключил публичную отправку сообщений

Re: Turnigy 9X и Ардуино

Ардуино - это некий упрощеный стандарт с немного примитивными названиями - цифровой вывод, аналоговый, какие-то упрощеные процедуры.
Если Вам это интересно, то почитайте даташит на мегу168 или мегу328 (они одинаковые), вы удивитесь, сколько возможностей есть у этого контроллера, сколько прерываний.
Так что позволю себе Вас же процитировать

madishe написал(а):

Надо внимательнее учить матчасть.

smile

alldn
Александр (г.Тамбов)
useravatar
Offline
2863 Сообщений
Мужчина  Дата рождения 
Администратор отключил публичную отправку сообщений

Информация

Статистика форума:
 
Всего тем:
9971
Всего опросов:
79
Всего сообщений:
183065
Бездействующий:
Пользователи форума:
 
Всего пользователей:
10084
Последним зарегистрировался:
Jocker-vit
Пользователи онлайн:
0
Гостей онлайн:
254

Самые активные пользователи: 
konst, carpenter, kompmen, cnyx, Dragony, maks_dg, Goby, Student, alldn, nikolaypet
Онлайн: 
Нет пользователей онлайн
Последние сообщения форумаПоследние созданные темы
1) Аккумуляторная батарея LiPo HRB 14,8 4S 2200mA/h
2) Зажигание на датчике холла
3) На что заменить полетник на Iflight Protek25
4) Юлиус Пердана и SHURIK-1960
5) Помогите пожалуйста с вертолетом (управление)
6) Сервомотор ведет себя не адекватно
7) Полётный контроллер PixRacer r15 autopilot
8) Вопрос по ПК
9) Автопилот SN Sparrow Flight Controller
10) Parrot Disco 4g mode.
1) Аккумуляторная батарея LiPo HRB 14,8 4S 2200mA/h
2) На что заменить полетник на Iflight Protek25 - сгорел полетник. ищу замену
3) Зажигание на датчике холла
4) Сервомотор ведет себя не адекватно - элероны
5) Помогите пожалуйста с вертолетом (управление) - Помогите пожалуйста с вертолетом (управление)
6) Вопрос по ПК - ПК фоксер ф722 v4, рагуль 1202 от fpv. Из этого сделать ЛК?
7) Продажа комплекта деталей для авиамоделирования - Здрaвcтвуйтe! Пpодaю кoмплект деталей для aвиамoделиpoвания
8) Полётный контроллер PixRacer r15 autopilot
9) радиоуправление квадрокоптером - забиндить приёмник RX2646H-DX с передатчиком RADIOMASTER
10) Юлиус Пердана и SHURIK-1960 - Летать НИЗЗЯ . а делать МОЖНО!