Для удобства пользования форумом и поиска информации прошу придерживаться правила: 1 тема = 1 вопрос.
К примеру, если обсуждается настройка передатчика, а у вас вопрос про подключение такого же передатчика к симулятору или вопрос про другую модель передатчика - создавайте новую тему. Если вы новичок в авиамоделизме, рекомендуется прочитать статью Новичку и ссылки с нее.
Исключение только в разделе Вопросы и обсуждения по статьям
Как выложить фото, Как опубликовать видео
С уважением,
Константин.
- Начало
- » Авиационный моделизм
- » Аппаратура радиоуправления
- » Turnigy 9X и Ардуино
Turnigy 9X и Ардуино
Turnigy 9X и Ардуино
Господа, прошу подсказать!
Приобрел себе Turnigy 9X 9Ch, думал использовать пульт для различных моделей - как универсальную систему управления.
Попытался подсоединить приемник к Arduino - никак не могу считать управляющий сигнал. (приемник и передатчик "сбиндены")
Подскажите, в каком формате приемник выдает управляющий сигнал? Какой диапазон, продолжительность, амплитуда, частота?
В Ардуино использую аналоговый вход - на "эталонных" ИП показывает правильное значение. Вольтметром меряю - меняется вольтаж с 0.3В до 0.25В или 0.35В - нормально ли это?
- madishe
- KoT_6JIeByH
- Ученик пилота
- 6 Сообщений
-
Re: Turnigy 9X и Ардуино
Там идут импульсы с периодом 20 мсек и длительностью 1-2 мсек в зависимости от положения стика данного канала.
- alldn
- Александр (г.Тамбов)
- 2863 Сообщений
-
Re: Turnigy 9X и Ардуино
alldn написал(а):
Там идут импульсы с периодом 20 мсек и длительностью 1-2 мсек в зависимости от положения стика данного канала.
Большое спасибо!
Амплитуда правильная?
- madishe
- KoT_6JIeByH
- Ученик пилота
- 6 Сообщений
-
Re: Turnigy 9X и Ардуино
амплитуда 5 вольт. По длительности импульса определяется положение джойстика канала. 1 мсек - минимум, 1.5 мсек среднее положение 2 мсек - максимум.
- alldn
- Александр (г.Тамбов)
- 2863 Сообщений
-
Re: Turnigy 9X и Ардуино
Действительно, спасибо за наводку. Сейчас померил осцилографом - в точности, как вы сказали.
Частота дескретизации аналогового порта Ардуино составляет 10000 раз в секунду, в теории можно опрашивать несколько каналов на предмет изменения длительности импульса.
Завтра проверю. Ещё раз - спасибо.
- madishe
- KoT_6JIeByH
- Ученик пилота
- 6 Сообщений
-
Re: Turnigy 9X и Ардуино
Вольтметром амплитуду цифрового сигнала точно не измеришь,только осциллографом.Чем длиннее импульс тем большее U будет показывать вольтметр при одинаковой амплитуде.
- djcha
- Андрей
- Пилот
- 1424 Сообщений
-
Re: Turnigy 9X и Ардуино
Да это-то понятно...
Никак не могу въехать, как заставить Arduino Uno (так же есть Freeduino) распознавать сигнал от пульта...
Вот, что показывает осцилограф на центральном положении (первый канал приемника):
Крайнее правое:
Крайнее левое:
Все данные сняты 2 В\дел и 0.5 мС\дел
Казалось бы, всё элементарно: разрешающая способность считывания (данные для Freeduino, 8Mhz, Atmega168) составляет: 5 В/1024 значений = 0,004883 В/значение (4,883 мВ), требуется приблизительно 100 нС (0.0001 С), чтобы считать значение аналогового ввода, так что максимальная скорость считывания - приблизительно 10000 раз в секунду.
Следовательно, Фридуино теоретически способен считать значение с выхода приёмника примерно 150 раз за время длительности 5В импульса в нейтральном положении джойстика. Далее считаем длительность положительного импульса и на его основе определяем положение джойстика на пульте.
Как бы не так!
- madishe
- KoT_6JIeByH
- Ученик пилота
- 6 Сообщений
-
Re: Turnigy 9X и Ардуино
Простите, немного не понимаю, какие теги работают на форуме...
Вот "карта" считывания фридуино с выхода первого канала приемника в нейтральном положении:
=------------------=------------------=------------------=-----------------==-----------------==----------------==-----------------
=------------------=------------------=------------------=------------------=-----------------==-----------------==----------------==-----------------
=------------------=------------------=------------------=------------------=-----------------==-----------------==----------------==-----------------
=------------------=------------------=------------------=-----------------==-----------------==-----------------==----------------
=------------------=------------------=------------------=------------------=-----------------==-----------------==-----------------==----------------
=------------------=------------------=------------------=------------------=-----------------==-----------------==-----------------==----------------
=------------------=------------------=------------------=-----------------==-----------------==-----------------==-----------------==----------------
=------------------=------------------=------------------=-----------------==-----------------==-----------------==-----------------
=-----------------=------------------=------------------=------------------=-----------------==-----------------==-----------------==-----------------
=-----------------=------------------=------------------=------------------=-----------------==-----------------==-----------------==-----------------
=-----------------=------------------=------------------=-----------------==-----------------==-----------------==-----------------
=------------------=-----------------=------------------=------------------=-----------------==-----------------==-----------------==-----------------
=------------------=-----------------=------------------=------------------=-----------------==-----------------==-----------------==-----------------
=------------------=-----------------=------------------=------------------=-----------------==-----------------==-----------------==-----------------
=------------------=------------------------------------=-----------------==-----------------==-----------------==-----------------
=------------------=------------------=------------------=-----------------=-----------------==-----------------==-----------------==-----------------
=------------------=------------------=------------------=-----------------=-----------------==-----------------==-----------------==-----------------
=------------------=------------------=------------------=----------------==-----------------==-----------------==-----------------==-----------------
=------------------=------------------=------------------=----------------==-----------------==-----------------==-----------------
=------------------=------------------=------------------=------------------=----------------==-----------------==-----------------==-----------------
=------------------=------------------=------------------=------------------=----------------==-----------------==-----------------==-----------------
=------------------=------------------=------------------=-----------------==----------------==-----------------==-----------------==-----------------
Получается, что надо считать не просто длительность импульса, а целый шаблон....
Что-то я совсем запутался... Может существуют какие-нибудь устройства, преобразующие с сигналы разной скважности во что-то более-менее цифровое?
- madishe
- KoT_6JIeByH
- Ученик пилота
- 6 Сообщений
-
Re: Turnigy 9X и Ардуино
может я иошибаюсь, но похоже вам нужен адаптер ррм сигнала. Насколько я понял ардуино это базовый блок к котооому подключаютса другие блоки расширения для различных задач.
Извините за орфографию. Пишу с телефона.
- SEREGA
- Сергей (г.Железнодорожный)
- Пилот
- 394 Сообщений
-
Re: Turnigy 9X и Ардуино
Да хватит вам ерунду говорить. Адаптер, ....
Сигнал нужно вешать на прерывание меги и обрабатывать прерывания по любому изменению порта.
А там все просто - после прерывания порт в "1" - значит подъем, запускаем таймер. Следующее прерывание, смотрим - спад, останавливаем таймер и считываем измеренную длительность. И теперь по длительности анализируем в каком положении стик.
Все просто как 3 рубля.
- alldn
- Александр (г.Тамбов)
- 2863 Сообщений
-
Re: Turnigy 9X и Ардуино
Спасибо, Александр, за трезвую идею!
Но... "Ларчик просто открывался"
Я полностью разобрался, сейчас объясню.
Прерывания - очень хорошая идея. Обрабатывается по изменению порта и позволяет подсчитывать длину импульса.
Но прерываний у 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 минут.
Вот оно!
На всякий случай приведу пример программы распознания 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
- Ученик пилота
- 6 Сообщений
-
Re: Turnigy 9X и Ардуино
Ардуино - это некий упрощеный стандарт с немного примитивными названиями - цифровой вывод, аналоговый, какие-то упрощеные процедуры.
Если Вам это интересно, то почитайте даташит на мегу168 или мегу328 (они одинаковые), вы удивитесь, сколько возможностей есть у этого контроллера, сколько прерываний.
Так что позволю себе Вас же процитировать
madishe написал(а):
Надо внимательнее учить матчасть.
- alldn
- Александр (г.Тамбов)
- 2863 Сообщений
-
- Начало
- » Авиационный моделизм
- » Аппаратура радиоуправления
- » Turnigy 9X и Ардуино
Информация
- Статистика форума:
- Всего тем:
- 9948
- Всего опросов:
- 79
- Всего сообщений:
- 183174
- Всего сообщений сегодня:
- 2
- Пользователи форума:
- Всего пользователей:
- 10173
- Последним зарегистрировался:
- urus_vp
- Пользователи онлайн:
- 0
- Гостей онлайн:
- 927
- Самые активные пользователи:
- konst, carpenter, kompmen, cnyx, Dragony, maks_dg, Goby, Student, alldn, nikolaypet
- Онлайн:
- Нет пользователей онлайн