И снова про РРМ
И снова про РРМ
Уважаемые Форумчане. Всех с Новым Годом и Рождеством! В новогодние каникулы посвятил себя разработке новых проектов.
В канун нового года, приятель попросил помочь с подключением эл. двигателей на его разработке «Инвалидная коляска – вездеход». Он приобрел у робототехников «хитрую» коробочку, состоящую из двух джойстиков, контроллера (Атмега 328) и драйвера двух двигателей постоянного тока. Но оказалось, что контроллер управляется аналоговыми джойстиками, а не РРМ сигналом. Хотя ранее я приятелю изготовил плату на дискрете и модулях для управления от аппаратуры RC, с переключателем на ручное управление от двух сервотестеров и возможностью микширования РРМ сигналов для раздрайва гусеничных приводов.
[spoiler] [/spoiler]
Долго убеждал продавцов, в том, что входным сигналом их гаджета должен быть РРМ сигнал, а не аналоговый. Потом подумал, - овладев FLProg, я и сам смогу сотворить нечто подобное. Сказано – сделано. И я «нырнул». Но не заметил «подводных камней». Казалось, все просто… Для считывания РРМ сигнала (измерения длительности-ширины импульса), из длительности этого импульса нужно создать временные ворота и заполнить серией импульсов более высокой частоты. Количество импульсов, которые уложатся в этом временном интервале можно посчитать. Девиация (изменение) ширины РРМ сигнала от 1 до 2 мСек со средним значением 1,5 мСек., период 20 мСек.. 1,5 мСек – это нулевое значение команды управления двигателями, т.е. значение СТОП для моторов.
Сделал имитатор сервотестера (РРМ-coder) для получения одиночного РРМ сигнала. Импульс устойчив, ширина регулируется в заданных пределах. Визуализируется осциллографом. При попытке модуляции более высокой частотой на КТ1 импульс пропадает. На КТ2 импульсы 20 мСек. Счетчик считает, на индикаторе бесконечный отсчет. Пробовал включать положительным импульсом генератор (как на схеме), переключением от ключа, модуляцией логики «И». Результат тот же! Прочитал все ссылки по поводу РРМ на форуме. Всюду варианты на системном таймере по входу D2. Это не вариант!
С приемника идут, как минимум, 2 (3) сигнала РРМ, сдвинутые последовательно во времени. Т.е. на Атмегу должны приходить 2 (3) на разные цифровые! входы (лучше всего 8) РРМ сигналов. Каждый должен обрабатываться независимо друг от друга, разве что с общей синхронизацией (сформированному импульсу паузы). Может быть, кто-то подскажет?
В канун нового года, приятель попросил помочь с подключением эл. двигателей на его разработке «Инвалидная коляска – вездеход». Он приобрел у робототехников «хитрую» коробочку, состоящую из двух джойстиков, контроллера (Атмега 328) и драйвера двух двигателей постоянного тока. Но оказалось, что контроллер управляется аналоговыми джойстиками, а не РРМ сигналом. Хотя ранее я приятелю изготовил плату на дискрете и модулях для управления от аппаратуры RC, с переключателем на ручное управление от двух сервотестеров и возможностью микширования РРМ сигналов для раздрайва гусеничных приводов.
[spoiler] [/spoiler]
Долго убеждал продавцов, в том, что входным сигналом их гаджета должен быть РРМ сигнал, а не аналоговый. Потом подумал, - овладев FLProg, я и сам смогу сотворить нечто подобное. Сказано – сделано. И я «нырнул». Но не заметил «подводных камней». Казалось, все просто… Для считывания РРМ сигнала (измерения длительности-ширины импульса), из длительности этого импульса нужно создать временные ворота и заполнить серией импульсов более высокой частоты. Количество импульсов, которые уложатся в этом временном интервале можно посчитать. Девиация (изменение) ширины РРМ сигнала от 1 до 2 мСек со средним значением 1,5 мСек., период 20 мСек.. 1,5 мСек – это нулевое значение команды управления двигателями, т.е. значение СТОП для моторов.
Сделал имитатор сервотестера (РРМ-coder) для получения одиночного РРМ сигнала. Импульс устойчив, ширина регулируется в заданных пределах. Визуализируется осциллографом. При попытке модуляции более высокой частотой на КТ1 импульс пропадает. На КТ2 импульсы 20 мСек. Счетчик считает, на индикаторе бесконечный отсчет. Пробовал включать положительным импульсом генератор (как на схеме), переключением от ключа, модуляцией логики «И». Результат тот же! Прочитал все ссылки по поводу РРМ на форуме. Всюду варианты на системном таймере по входу D2. Это не вариант!
С приемника идут, как минимум, 2 (3) сигнала РРМ, сдвинутые последовательно во времени. Т.е. на Атмегу должны приходить 2 (3) на разные цифровые! входы (лучше всего 8) РРМ сигналов. Каждый должен обрабатываться независимо друг от друга, разве что с общей синхронизацией (сформированному импульсу паузы). Может быть, кто-то подскажет?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
И снова про РРМ
Уважаемые ЗНАТОКИ! Очень жаль, что никто не откликнулся на мою тему. Неужели нет ответов, или тема никому не интересна? Вроде более 80 просмотров.
Ну да ладно. Хотел немного поправить свою терминологию. РРМ сигналом мы всегда называли одиночные импульсы, снимаемые с каждого канала RC приемника. Радиосигнал получал сам приемник, детектировал и формировал импульсную последовательность, которая распределялась по каналам дешифратора на CD4017 (К561ИЕ8) или CD4015 (К561ИР2). Еще в 1980г., я предложил разместить около каждой рулевой машинки (сейчас ее называют "сервой") по такому дешифратору с возможностью выбора своего канала. Это позволило бы вести разводку только тремя проводами. Но тогда меня не поддержали. Позже появились подобные варианты S-BUS, MOD-BUS, K-line, CAN-BUS и в том числе мое предложение 80-х СРРМ (во всяком случае раньше это так называли) Complex Pulse Position Modulation. Сейчас все перемешалось. Ну, я не об этом.
За эти два дня я углубился в изучении материала. И вроде получилось поверхностно освоить ПБ блоки в коде.
Пошел по пути обучалок и создал данный девайс. Но я совсем не программист и даже срисовывание кодовых фраз давалось тяжело (как будто я писал МАМА на иврите). Ведь нужно было еще осознать, что я делаю.
Вроде создал, но как то криво. Почему то выходная информация обновляется очень медленно (примерно раз в 4 секунды), как на индикаторе, так и в мониторе СОМ-порта. Что-то я не дописал! Может быть мне в этот раз повезет и кто нибудь подскажет?
Ну да ладно. Хотел немного поправить свою терминологию. РРМ сигналом мы всегда называли одиночные импульсы, снимаемые с каждого канала RC приемника. Радиосигнал получал сам приемник, детектировал и формировал импульсную последовательность, которая распределялась по каналам дешифратора на CD4017 (К561ИЕ8) или CD4015 (К561ИР2). Еще в 1980г., я предложил разместить около каждой рулевой машинки (сейчас ее называют "сервой") по такому дешифратору с возможностью выбора своего канала. Это позволило бы вести разводку только тремя проводами. Но тогда меня не поддержали. Позже появились подобные варианты S-BUS, MOD-BUS, K-line, CAN-BUS и в том числе мое предложение 80-х СРРМ (во всяком случае раньше это так называли) Complex Pulse Position Modulation. Сейчас все перемешалось. Ну, я не об этом.
За эти два дня я углубился в изучении материала. И вроде получилось поверхностно освоить ПБ блоки в коде.
Пошел по пути обучалок и создал данный девайс. Но я совсем не программист и даже срисовывание кодовых фраз давалось тяжело (как будто я писал МАМА на иврите). Ведь нужно было еще осознать, что я делаю.
Вроде создал, но как то криво. Почему то выходная информация обновляется очень медленно (примерно раз в 4 секунды), как на индикаторе, так и в мониторе СОМ-порта. Что-то я не дописал! Может быть мне в этот раз повезет и кто нибудь подскажет?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
И снова про РРМ
Из детства.
Была книжка. Между импульсами управления есть пауза.
Подайте комплексный сигнал на вход прерывания, обработайте по очереди.
Собрать в один - диодами.
Отправлено спустя 40 секунд:
Только писать код.
Для оптимизации.
Была книжка. Между импульсами управления есть пауза.
Подайте комплексный сигнал на вход прерывания, обработайте по очереди.
Собрать в один - диодами.
Отправлено спустя 40 секунд:
Только писать код.
Для оптимизации.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
И снова про РРМ
Все это очень зДорово! Все зто было 300, нет, 30 лет тому назад. Сейчас хочется, под конец своей жизни, пошагать в ногу со ВРЕМЕНЕМ. Про паузу я знаю. Вы подскажите как в коде исправить БАГ?Sancho писал(а): 09 янв 2019, 21:57Из детства.
Была книжка. Между импульсами управления есть пауза.
Подайте комплексный сигнал на вход прерывания, обработайте по очереди.
Собрать в один - диодами.
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
И снова про РРМ
Все ли сигналы поданы?
Убрать массив, присваивать сразу выходам.
Отправлено спустя 32 минуты 56 секунд:
Попробуйте так
У вас нет необходимых прав для просмотра вложений в этом сообщении.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
И снова про РРМ
Увы, при такой схеме не работает. Мертвый экран и СОМ-порт. Я срисовывал софт из этого видео https://www.youtube.com/watch?v=ncBDvcbY1l4
Может я где то скосячил? Все сигналы, я думаю, подавать необязательно. На видео демонстратор подключает их последовательно (правда, прописывает тоже последовательно, а потом подключает). Я подаю сигнал только на один из каналов от проверенного "TURNIGY" servo tester. А может быть из-за этого глюк? Тогда подскажите пожалуйста, как залочить неиспользуемые каналы?
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
И снова про РРМ
[ref]Priyatel[/ref], Сделайте блок на один канал - проверьте работу.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
И снова про РРМ
P.S. Ведь это все уже давно работает, например в связке RC приемник + полетный контроллер квадрокоптера (в роботах и т.д.). Совсем необязательно использовать все назначаемые каналы. Я просто не умею программировать, поэтому вся инфа в открытых доступах мне недосягаема. Просто заливать скетч мне не интересно. У меня есть своя режиссура использования. Для этого я хочу, используя готовые узлы, сделать что то свое.
Отправлено спустя 1 минуту 13 секунд:
Отправлено спустя 18 минут 24 секунды:
Сделал на один канал. Все работает. Экспериментирую дальше. Копирую в проге второй блок. Переназначаю имена, каналы и т.д. Включаю... работают оба канала, но задержка примерно 1Сек. Вывод: каждый канал дает задержку около 1Сек, т.е. 4Сек. на 4 канала, как в первом примере.
Отправлено спустя 1 минуту 13 секунд:
Сейчас попробую. Ок!
Отправлено спустя 18 минут 24 секунды:
Сделал на один канал. Все работает. Экспериментирую дальше. Копирую в проге второй блок. Переназначаю имена, каналы и т.д. Включаю... работают оба канала, но задержка примерно 1Сек. Вывод: каждый канал дает задержку около 1Сек, т.е. 4Сек. на 4 канала, как в первом примере.
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
И снова про РРМ
[ref]Priyatel[/ref], Какие интервалы, в мсек, на каналах? Какой размер кадра, в мсек?
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
И снова про РРМ
Это стандарт для РРМ. Я могу выдавать с тестера как стандартный сигнал (1мСек - 2мСек, период 20мСек), так и расширенный (0,5мСек - 2,5мСек, период 20мСек). Все контролируется встроенным в тестер индикатором.
Отправлено спустя 1 час 15 минут 34 секунды:
Вдогонку. Вот кодер - тестер СРРМ/РРМ сигнала (3 канала). Можно использовать как самостоятельное устройство, можно добавить до 8-ми каналов. Только я пока не представляю, как можно заставить это работать совместно с РРМ-декодером в одном проекте. Ведь входы декодера назначены программно и не имеют внутренних входов. Это еще один из вопросов к ЗНАТОКАМ.
Отправлено спустя 1 час 15 минут 34 секунды:
Вдогонку. Вот кодер - тестер СРРМ/РРМ сигнала (3 канала). Можно использовать как самостоятельное устройство, можно добавить до 8-ми каналов. Только я пока не представляю, как можно заставить это работать совместно с РРМ-декодером в одном проекте. Ведь входы декодера назначены программно и не имеют внутренних входов. Это еще один из вопросов к ЗНАТОКАМ.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
И снова про РРМ
Типа так: Постарайтесь подавать сигналы на все объявленные входы.Priyatel писал(а): 10 янв 2019, 14:29Ведь входы декодера назначены программно и не имеют внутренних входов. Это еще один из вопросов к ЗНАТОКАМ.
Задержка в 1 сек не может быть связана с индикацией?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
И снова про РРМ
Прошу прощения, но я в посте #8 написал Вам, что на одном канале все работает. Может быть Вы послали другой файл? Этот - фактическая копия моей лаб. работы, а про внутренние входы я инфы не получил.
Я проверял работоспособность как с индикатором, так и без него (с СОМ-портом). Результат одинаков! Если не сложно, пройдите пожалуйста по ссылке на видео из #6. Там ничего не тормозится на СОМ-порте. Посмотрите пожалуйста еще на эти ссылки. Там очень интересный метод обработки сигнала. Я пробовал создать СОДЕ-блок, но не справился.Sancho писал(а): 10 янв 2019, 17:06Постарайтесь подавать сигналы на все объявленные входы.
Задержка в 1 сек не может быть связана с индикацией?
http://arduino.ru/forum/programmirovani ... iemnika-rc
http://forum.arduino.cc/index.php?topic=420662.0
И снова про РРМ
Выражаю большую благодарность [ref=#ff8000]Sancho[/ref] за помощь в продвижении проекта!
Вот что получилось:
1. модуль электро-механического переключателя на 3 положения, управляемый от RC передатчика 2. модуль управления DC мотором с драйвером L-298 (или аналогичным) от RC 3. дифференциальный модуль управления двумя DC моторами с драйвером L-298 (тракторный джойстик) Если кому-то понравились модули, то прошу сделать отзыв по тестированию.
Вот что получилось:
1. модуль электро-механического переключателя на 3 положения, управляемый от RC передатчика 2. модуль управления DC мотором с драйвером L-298 (или аналогичным) от RC 3. дифференциальный модуль управления двумя DC моторами с драйвером L-298 (тракторный джойстик) Если кому-то понравились модули, то прошу сделать отзыв по тестированию.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
И снова про РРМ
Спасибо большое, искал именно такой блок)
Только один вопрос - если посмотреть выходные значения в режиме покоя, то идут не большие колебания от -10 до 10 из 1000. Как можно это сгладить, или хотя бы сделать от -10 до 10 = 0, а остальное пускай как есть. Эти значения мне нужно писать в переменную. Пробовал один блок - фильтр, но реакция очень медленная становится.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя