Радиоуправление. Переходим на МК.

Обсуждаем приемники, передатчики, радиомикрофоны, жучки, генераторы, ВЧ-усилители, антенны и прочее радиохозяйство
zhuplev
Первый раз сказал Мяу!
Сообщения: 39
Зарегистрирован: Вс июн 23, 2013 10:58:29
Откуда: Запорожье

Re: Радиоуправление. Переходим на МК.

Сообщение zhuplev »

Ну Вы быстрый однако!) С моей работай увы не успеваю за вами. Посмотрел программу, попытался разобрать передачу данных и выбрать нужное мне для передачи по UART но то что не разберу. В вашу программу добавил вывод данных по UART а именно переменную "f" (строка 317 в коде) результат, поток непонятных данных. Кстате я наверное неправильно писал здесь, на стороне пульта управления (TX) скорость должна быть конечно по принципу посредине скорость - 0 вверх - вперёд, вниз - назад, короче как на обычном пульте, а на приёмнике так и оставить как сейчас. В Протеусе добавил серво мотор как нам нужен, программа отрабатывает нормально. Алгоритм ПИД выдумывать не нужно, всё уже придумано до нас и настраивать надо уже на живой машинке. Просьба просто скорректировать программу приёмника так что бы она собрала все данные (со всеми вашими ноухау по передачи данных) о скорости, положении руля и коррекции руля в 3 переменные допустим Speed, Angle и Corect или в 1 байт, а я уже на стороне БУ расшифрую и буду выдавать соответствующие команды двигателям. На отдельные ноги приёмника вывести банально 0-1 клавиш: 1- контроль с пульта или с машинки, 2, 3, 4, 5 .... - зарезервированные клавиши. Пока вижу это так. Так проще буде писать прогу для БУ. Рулём управлять будет тоже БУ ведь данные о повороте руля надо заводить все равно на него, скорость вращения колёс рассчитывается от этого, да и плавность поворота нужна а это опять возможно ПИД, тем более есть ещё один ШИМ канал на который повесить управление серво мотором руля.

Кстати а что мешает поставить на управление рулём не резистор и опто-пару с мышки, там условия работы куда благоприятней чем на колёсах. При включении машинки БУ сам найдёт крайние положения рулевого управления от кря до края (например повернуть колёса до упора влево, обнулить счётчик, повернуть колёса до упора вправо, поделить количество полученных импульсов от оптопары пополам, добавить коррекцию и выставит колёса в 0, решается проблема того самого слабого звена а именно скользящего контакта переменника.
Вложения
TX-RX-5000имп-3пак-8Мгц-2мотор%2Bкор-версия-4+UART.rar
(192.29 КБ) 168 скачиваний
roman.com
Друг Кота
Сообщения: 9147
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: Радиоуправление. Переходим на МК.

Сообщение roman.com »

Такс... что у нас интересного...?))
Дошли до UART...))
zhuplev писал(а):добавил вывод данных по UART а именно переменную "f" (строка 317 в коде) результат, поток непонятных данных.
:shock:
И что это за "закарючку" ты добавил?))) printf.... https://ru.wikipedia.org/wiki/Printf Никогда не работал с такими... Она не подходит, так как занимает много времени - более 1 мс (1,1 мс). За это время приходит следующий пакет от TX (0,6 мс). Конечно, RX может реботать и с такими большими задерками (прерываниями в работе)... только в два раза медленней... Наше "Радиоуправление" будет "тормозить" :facepalm:

Такс.. Что у нас получилось:

Примерно так я вижу работу авто... Далее пишем массивы... Далее подстраиваем под конкретное "железо"...
Сейчас проблема с UART. RX и БУ работают не синхронно.. В идеале нужен буфер обмена: RX > буфер обмена < БУ.
Или можно просто добавить прерывание БУ по окончанию приёма от RX... если ПИД-регулятор сможет работать с прерываниями... Например прерывания в RX не желательны. Или написать свой протокол обмена "по запросу"... типа I2C https://ru.wikipedia.org/wiki/I²C ... или использовать готовый. Свой протокол можно сделать более гибкий))) :)

На руль можно "приклеить" оптопару от мышки... там 50 делений/оборот. http://datagor.ru/microcontrollers/281- ... er....html Точность установки +/- 50/оборот руля... впринципе думаю пойдёт.
Или можно датчик Холла. Взять ротор от шагового с магнитом... http://fb.ru/article/165416/shagovyiy-d ... kteristiki. "Как правило, значение ошибки находится в пределах от +0,08 до -0,03°. Проще говоря, точность позиционирования высчитывается в виде суммы двух этих показателей: 0,08° + 0,03° = 0,11° "
Кстате в теории... можно не разбирать шаговый. Даём питание... крутим вал... на обмотках будут маленькие, короткие импульсы, заводим их на прерывание... Возможно, нужен будет маленький усилитель)).

Вот. :tea:
roman.com
Друг Кота
Сообщения: 9147
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: Радиоуправление. Переходим на МК.

Сообщение roman.com »

А что у нас с машинкой?))) Чуть "подкрутил" программку... :tea:
zhuplev
Первый раз сказал Мяу!
Сообщения: 39
Зарегистрирован: Вс июн 23, 2013 10:58:29
Откуда: Запорожье

Re: Радиоуправление. Переходим на МК.

Сообщение zhuplev »

Вечер добрый. Времени вообще не хватает. Какие изменения были сделаны в программах? Я просто в 5 версию вставляю ПИД и тахометры колёс. Думаю потихоньку проэктировать платы так как подходим к тому что протеус не поможет. По поводу оптопары с мышки, никто не обязывает ставить именно на руль, можно поставить на одну из шестерёнок редуктора, а там на полный поворот руля будет больше оборотов. Машинку пока не разбирал и не резал. Малый пока катается, погода позваляет, и лешать его удавольствия не хочу. Наступят холода тогда и возьмусь по полной.
zhuplev
Первый раз сказал Мяу!
Сообщения: 39
Зарегистрирован: Вс июн 23, 2013 10:58:29
Откуда: Запорожье

Re: Радиоуправление. Переходим на МК.

Сообщение zhuplev »

Модератору - Не смог отредактировать предыдущее сообщение.
Добавил алгоритм ПИД но возникла проблема, не хочет срабатывать прерывание по переполнению таймера0. В нём задаётся время расчёта скорости вращения колёс и временная постоянная перерасчёта по ПИД алгоритму. Мне кажется виноё этому ожидание приёма данных по UART, хотя прерывания должны срабатывать всёравно.


А вот тот же алгоритм в 5 версии работает.
roman.com
Друг Кота
Сообщения: 9147
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: Радиоуправление. Переходим на МК.

Сообщение roman.com »

zhuplev писал(а):Модератору - Не смог отредактировать предыдущее сообщение.[/attachment]

Сообщение нельзя редактирвать на следующий день... таймер форума переполнился)) :)))
zhuplev писал(а):не хочет срабатывать прерывание по переполнению таймера0.

В программе ктото отключил все прерывания... Global enable interrupts: #asm("sei")... :dont_know: )) повнимательней...
zhuplev писал(а):Мне кажется виной этому ожидание приёма данных по UART...

версия 5 + версия 6 = версия 7: )))

Там оба варинта приёма данных по UART:
1- по опросу флага окончания приёма UART. (ждём 2,5 мс... время между пакетами).
2- прерывание по окончанию приёма UART. (ничего не ждём...).

Разницы в работе не заметил. Т.к. таймер переполняется не чаще 8 мс... а пакеты идут 2,5 мс... Т.е. пока таймер переполнится... UART уже 3 раза обновит данные)))

А вообще... чтобы не гадать... я специально ввожу в схему (программу) "контроль". Ты зачеи отключаешь осциллограф? На нём же видно как работает программа. Все пакеты, циклы, прерывания, обработчики прерывания... В схеме можно создавать кучу контрольных точек. Видна работа всей схемы и программы... :tea:

Ну ты устроил "качели" с ПИД регулятором))) Это он туда-суда качается пока выйдет на заданный режим оборотов двигателя... Я вообщето думал сделать простой стабилизатор оборотов... Ещё не до конца разобрался с этим ПИД... А не будет "дёрганий" при движении? Разгоняемся... потом джойстик резко на себя... ПИД пересчитывает новые данные скорости... - резкий провал... затем резкий подъём.. автоколебания скорости... до выравнивания скорости... 5...10 секунд... Время установки ПИД помоему слишком долгое.
А не проще просто измерить датчики холла... Причём измерять не по переднему или заднему фронту, а по перепаду на INT0. INT1. (скорость измерения в два раза больше) и подогнать ШИМ под скорость датчиков... через блок сравнения скорость TX<>датчики INT0. INT1... предварительно сверить с массивом коэффициентов дифференциала (поправка на руль)... - обычный стабилизатор оборотов двигателя. :dont_know: Время установки оборотов моторов.. помоему будет быстрей.

Кстате... ещё нужен "блок ускорения". А то на полном ходу при резком дёргании назад ждойстика на пульте, будет блокировка колёс... неуправляемый занос :shock: Цитата: "Вывод из заноса автомобиля с задним приводом... Для вывода заднеприводного транспорта из заноса, необходимо сразу перестать тормозить, отпустить педаль и одновременно резко повернуть в сторону заноса рулевое колесо. Это поможет вывести автомобиль из заноса... " ))
То что мосфеты могут сгореть от таких токов при резком реверсе - я вообще молчу)))
Можно добавить "ускоритель" или в RX или в БУ... :tea:
перед синтезом ШИМ, пропускаем через блок ускорителя///
Кстате... а защита от пергрузки ?

А что у нас с радиомодулем? Какая пропускная способность (импульсов в секунду)? Надо подкрутить программку под радио.. а то ничего у нас работать не будет))
Ну собственно основа есть... далее точная подгонка... :tea:

Для информации: Осциллограф видит ошибку.)) Если в процессе обработки данных, принятых по UART, произойдет прерывание по окончанию приёма следующего пакета UART, то будет ошибка принятых данных... (при прерывании программа переходит в обработчик... не закончив анализ предыдущих данных... а по возвращению из обработчика, программа продолжает обработку данных... только теперь уже новых данных... в итоге: старые данные + новые данные = ошибка данных... :facepalm: )
А ещё, если срабатывает несколько прерываний (одновременно сработал первый датчик... второй... и пришли данные по UART...) обработчик прерываний ставит все прерывания в очередь и выполняет их поочереди... В итоге получаем ошибку измерения скорости двигателей - (обработчик прерываний: 4 мкс+ 4 мкс + 10 мкс ) ... 20 мкс - это максимальная ошибка измерения датчиков Холла. Это нормально? :))) Я понимаю что у нас не высокоточный станок с ЧПУ... но всетаки... )))
Вот почему мне не нравятся программы на прерываниях... без синхронизации... Осторожней с прерываниями! :tea:
maks3446
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Пн ноя 17, 2014 09:58:56

Re: Радиоуправление. Переходим на МК.

Сообщение maks3446 »

Доброго времени суток. Уважаемый roman.com, спасибо Вам и всем остальным кто развивал ету тему за проделаную вами работу, получилось здорово, но сильно сложно для меня. Если Вам не трудно, скиньте схемы приёмника и передатчика со второй страницы етого форума, их функционала мне вполне достаточно.
roman.com
Друг Кота
Сообщения: 9147
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: Радиоуправление. Переходим на МК.

Сообщение roman.com »

Доброго)) схемы приёмника и передатчика со второй страницы... я уже и не помню что там на второй транице :dont_know:
Поточней скажите что вы хотите... проще подкрутить текущую программу машинки... или что вас интересует? Давайте тех задание))
maks3446
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Пн ноя 17, 2014 09:58:56

Re: Радиоуправление. Переходим на МК.

Сообщение maks3446 »

Ну вот. Теперь у нас есть схемка для машинки с пропорциональным управлением: с рулевым управлением, плавной регулировкой скорости, автоматической коробкой передач (вперёд-назад), автоматическими поворотниками, автоматическим сигналом заднего хода, автоматическим стоп сигналом, с ближним и дальним светом, а так же с мигалкой и сиреной.


Вот примерно такое.
roman.com
Друг Кота
Сообщения: 9147
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: Радиоуправление. Переходим на МК.

Сообщение roman.com »

аа... это старый проект "машинки")) Кстате... он уже устарел))

Радиоприёмник и передатчик я брал свой, самодельный, из проекта "рация"
http://radiokot.ru/circuit/analog/receiv_transmit/30/
Или можно использовать готовые приёмник и передатчик... типа таких: (это не реклама! :))) )
http://ardunn.ru/goods/RF-module?from=ZmI0 - самые дешёвые))
Или любые другие... похожие.
maks3446
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Пн ноя 17, 2014 09:58:56

Re: Радиоуправление. Переходим на МК.

Сообщение maks3446 »

Большое Вам спасибо!!!
Аватара пользователя
Денис
Держит паяльник хвостом
Сообщения: 970
Зарегистрирован: Ср июн 27, 2007 17:09:12
Контактная информация:

Re:

Сообщение Денис »

Вот радиоуправление на подобных модулях.
http://radiokot.ru/konkursCatDay2015/49/
roman.com
Друг Кота
Сообщения: 9147
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: Радиоуправление. Переходим на МК.

Сообщение roman.com »

maks3446 да пожалуйста. Когда соберёте... не забудьте написать отчёт. Как у вас работает. Всем интересно. Все пожелания, замечания, с фотографиями (а лучше с видео). :)

http://radiokot.ru/konkursCatDay2015/49/ - интересно.)) Но у нас машинка "круче" )) :)
maks3446
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Пн ноя 17, 2014 09:58:56

Re: Радиоуправление. Переходим на МК.

Сообщение maks3446 »

Отчёт само собой, но когда он будет ето неизвесно, собирать буду потихоньку, ибо учёба много времени на хобби не оставляет.
zhuplev
Первый раз сказал Мяу!
Сообщения: 39
Зарегистрирован: Вс июн 23, 2013 10:58:29
Откуда: Запорожье

Re: Радиоуправление. Переходим на МК.

Сообщение zhuplev »

roman.com писал(а):В программе ктото отключил все прерывания... Global enable interrupts: #asm("sei")... :dont_know: )) повнимательней...

Только это команда разрешить глобально все прерывания!!
roman.com писал(а):Ну ты устроил "качели" с ПИД регулятором))) Это он туда-суда качается пока выйдет на заданный режим оборотов двигателя...
Ну эти качели лишь потому что коэффициенты стоят от балды а точнее вообще стоят 1, о чём я и говорю что надо уже живую модель делать и на ней настраивать, по другому ПИД не настраивается. Посмотри в ютубе по настройке ПИД регуляторов!

roman.com писал(а):А не будет "дёрганий" при движении? Разгоняемся... потом джойстик резко на себя... ПИД пересчитывает новые данные скорости... - резкий провал... затем резкий подъём.. автоколебания скорости... до выравнивания скорости... 5...10 секунд... Время установки ПИД помоему слишком долгое.
Дёрганий не будет, всё время пере регулирования настраивается в коэффициентах, там и скорость нарастания в нашем случае ШИМ, и за счёт этого время установки скорости. Короче не зря его часто используют в производственных линиях. Хороший пример работи ПИД регулятора это перевёрнутый маятник.https://www.youtube.com/watch?v=a4c7AwHFkT8
https://www.youtube.com/watch?v=FOvNoWMSqzA
roman.com писал(а):А что у нас с радиомодулем? Какая пропускная способность (импульсов в секунду)? Надо подкрутить программку под радио.. а то ничего у нас работать не будет))
насколько я знаю мои радиомодули передают до 4 Kb/s?
roman.com
Друг Кота
Сообщения: 9147
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: Радиоуправление. Переходим на МК.

Сообщение roman.com »

Нинаю.. с ПИДами не работал... ))
Чёто мы застряли с регуляторами...
Радиоканал - 4 кБит... Ну подкрутим программку TX - RX под 2,5 кБит (с запасом). В RX стоит фильтр импульсов... можно регулировать полосу пропускания:
1-при узкой полосе RX - меньше вероятность ложных срабатываний, можно передавать манчестер вообще одним пакетом - выше трафик (кБит/с), но меньше дальность действия пульта т.к. требуется хороший сигнал, без помех.
2-при широкой полосе RX - требуется передавать минимум три пакета манчестера... верификация данных... меньше трафик (кБит/с), но зато болше дальность (в несколько раз), т.к. RX может работать с помехами... шумами... :tea:

UART наверное оставим по прерываниям... всё зависит от ПИДа..)) ...
roman.com
Друг Кота
Сообщения: 9147
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: Радиоуправление. Переходим на МК.

Сообщение roman.com »

Ну и где наше авто?))
zhuplev
Первый раз сказал Мяу!
Сообщения: 39
Зарегистрирован: Вс июн 23, 2013 10:58:29
Откуда: Запорожье

Re: Радиоуправление. Переходим на МК.

Сообщение zhuplev »

Авто ещё пока не трогалось. Рисую печатную плату и думаю в скором их вытравить. У нас в плане железа вроде ничего меняться не должно а вот программу надо проверять, подправлять, дописывать. Просьба подписывать что было добавлено в новых прошивках. Закидываю немного переделанyую из 8 версии. Изменил алгоритм смены направления движения, то есть пока автомобиль не остановится, реверс не включится. Перебирая у себя детали нашёл 3 микросхемки MRF49XA. Почитайте.... что думаете?
Вложения
TX-RX-2500имп-3пак-8Мгц-2мотор-кор-БУ-версия-9.rar
(250.88 КБ) 172 скачивания
Аватара пользователя
botchin
Поставщик валерьянки для Кота
Сообщения: 2029
Зарегистрирован: Чт дек 27, 2012 20:46:09
Откуда: Болгария, г. Лом

Re: Радиоуправление. Переходим на МК.

Сообщение botchin »

zhuplev писал(а):в плане железа вроде ничего меняться не должно

Бъло бъ неплохо сиединитель на руль поставит. Если ребенек закрутит его в одно сторону (или ручкой, ногой туда засунет) то несмотря на мощност двигателя бъло бъ лучше если при переходе на дистанционное управление руль механически отключался.
Я бъ так сделал.
Лом - ето город в Болгарии, а не инструмент юстировки електроники.
zhuplev
Первый раз сказал Мяу!
Сообщения: 39
Зарегистрирован: Вс июн 23, 2013 10:58:29
Откуда: Запорожье

Re: Радиоуправление. Переходим на МК.

Сообщение zhuplev »

Лишнее по причине того что 1- это сложно в плане механики. 2 -мощность там не такая большая, 3 - в том и прелесть что родитель может вовремя скорректировать направление машинки а не отдавать полностью управление в руки маленькому водителю, а это куда важнее в плане безопасности!
Ответить

Вернуться в «Радиотехника: приемники, передатчики, антенны»