Четверг, 25.04.2024, 13:34
Вы вошли как Гость | Группа "Гости"Приветствую Вас Гость | RSS
Главная | Пропорциональное управление на МК с нуля - Страница 2 - Форум | Мой профиль | Регистрация | Выход | Вход
Обитель RC-инженера
Форма входа
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Модератор форума: ВитГо  
Форум » Разработка электронных устройств » Разрабатываю ! » Пропорциональное управление на МК с нуля (пошаговое строительство пропорционального управления с нуля)
Пропорциональное управление на МК с нуля
ВитГоДата: Суббота, 05.01.2013, 10:47 | Сообщение # 16
Полковник
Группа: Администраторы
Сообщений: 2422
Репутация: 20
Статус: Offline
прочитай про сигнал PPM
http://www.rcdesign.ru/articles/radio/ppm_pcm
http://forum.rcdesign.ru/f91/thread205638.html#post2142121
и подобные...


Виталий (аka ВитГо)
 
uwrteyДата: Суббота, 05.01.2013, 18:03 | Сообщение # 17
Генерал-майор
Группа: Администраторы
Сообщений: 3270
Репутация: 11
Статус: Offline
ага, прочитал. и подобные прочитал.. smile
Цитата
в принципе можно его убрать и за фальш панелью поставить от нокии (как в кодере MSV)

можно и так, хозяину вертолета все равно без разницы уже...


не успеваю за своими мыслями......
 
ВитГоДата: Суббота, 05.01.2013, 18:34 | Сообщение # 18
Полковник
Группа: Администраторы
Сообщений: 2422
Репутация: 20
Статус: Offline
может быть тебе о си подумать? на асме написать кодер и декодер, да еще с дисплеем настроек - не так просто..

плюс на асме нужна будет библиотека 32ух битной арифметики...
да и вообще работы на асме там много.. (можешь глянуть в файлах проект minicoder)


Виталий (аka ВитГо)
 
uwrteyДата: Суббота, 05.01.2013, 19:02 | Сообщение # 19
Генерал-майор
Группа: Администраторы
Сообщений: 3270
Репутация: 11
Статус: Offline
Цитата (ВитГо)
может быть тебе о си подумать? на асме написать кодер и декодер, да еще с дисплеем настроек - не так просто..

не знаю даже..... прям убил меня вопросом.

на сколько я знаю, ассемблер занимает очень много времени! (кропотливого труда)
но программы написанные на ассемблере намного "лучше" программ написанных на СИ
(меньше весят, более корректны, содержат меньше ошибок)
Все ошибки лучше исправлять на ассемблере
( такое мнение сложилось у меня не из личного опыта, а из мнений высказанных на различных форумах и не только связанных с МК )
немного теории и практики с ассемблером у меня есть, а вот про СИ я ни чего не знаю...
вот по этому и говорю, что не знаю...

какой МК мне необходимо приобрести? AtMega 16? AtMega 32? AtMega 64?


не успеваю за своими мыслями......
 
ВитГоДата: Суббота, 05.01.2013, 21:09 | Сообщение # 20
Полковник
Группа: Администраторы
Сообщений: 2422
Репутация: 20
Статус: Offline
ну для начала давай определимся с функционалом.

в формате ppm доступно обычно не более 8 каналов, наверное нет смысла делать меньше..

далее какой функционал нужно получить ?

кстати, такой вопрос: а что вообще об управлении моделями ты знаешь ?
каким образом примерно генерится сигнал? что такое микширование? что такое полетные режимы?

что из этого ты хочешь сделать ?


Виталий (аka ВитГо)
 
ВитГоДата: Суббота, 05.01.2013, 21:18 | Сообщение # 21
Полковник
Группа: Администраторы
Сообщений: 2422
Репутация: 20
Статус: Offline
попробуй почитать тему Самодельный передатчик. Часть 1 с rcdesign

там есть первая версия кодера от Жени Болецкого (aka focus)
она на меге16, написана на СИ
исходники генерации сигнала очень просты, попробуй разобраться...

в принципе архивы там должны остаться, если не найдешь - пиши - я попробую в своих архивах поискать (я как то разбирался в 2009 году когда свой первый кодер писал)

для многих поделок того, первого кодера Жени будет достаточно...
можно будет оттолкнуться от нее, что то оптимизировать что то переписать (меню там ужас!)

в принципе если писать на асме то конечно код будет короче, но в этом случае нужно прикинуть какой функционал ты сможешь сделать на асме... причем саму генерацию ppm на асме можно сделать без проблем, а вот сделать на нем интерфейс общения с пользователем - это уже задача которую приходиться писать больеш по времени чем все остальное (то же у меня сейчас в VCoder2 - пишу именно интерфейс взаимодействия, генерация самого сигнала займет максимум дней 4-5... с интерфейсом хорошо если за три недели разделаюсь)


Виталий (аka ВитГо)
 
ВитГоДата: Суббота, 05.01.2013, 21:21 | Сообщение # 22
Полковник
Группа: Администраторы
Сообщений: 2422
Репутация: 20
Статус: Offline
кстати, проект miniCoder можешь взять !
там нужно как раз сменить дисплей (я его писал на алфавитно-цифровой 16х2 - но он слишком большой и дорогой) - туда от нокии как раз дисплей просто проситься...

придется правда еще переписать меню - оно сейчас на двухстрочный экран заточено...
в остальном он почти законцен, осталось написать полетный экран, добавить экспоненты, может еще чтото по мелочи..
там даже написана генерация сигнала а-ля HK6 для подключения к симулятору через t6sim


Виталий (аka ВитГо)
 
uwrteyДата: Суббота, 05.01.2013, 23:08 | Сообщение # 23
Генерал-майор
Группа: Администраторы
Сообщений: 3270
Репутация: 11
Статус: Offline
Цитата (ВитГо)
ну для начала давай определимся с функционалом.
согласен.

Цитата (ВитГо)
кстати, такой вопрос: а что вообще об управлении моделями ты знаешь ?
каким образом примерно генерится сигнал? что такое микширование? что такое полетные режимы?
в детстве ходил в авиа-ракето модельный кружок, строил там в основном модели ракет. Так же делал планеры и пару резиномоторов. Управляемых самолетов я не строил.
Об управлении моделями я в принципе ни чего толкового не знаю.
Знаю какие органы управления полетом есть у самолетов и вертолетов, а так же квадрокоптеров
больше наверно ни чего и не знаю...

Цитата (ВитГо)
попробуй почитать тему Самодельный передатчик. Часть 1 с rcdesign

читал обе эти части.. прочитаю еще разок - освежу в памяти

Цитата (ВитГо)
кстати, проект miniCoder можешь взять !

если я правильно понял, то - что miniCoder, что проекты с rcdesign заточены под готовый "заводской" приемник ?

Цитата (ВитГо)
что из этого ты хочешь сделать ?

я еще сам не знаю... мне бы главное научиться smile
самое простое, что можно сделать это или авто модель или судо модель = 1 сервопривод и 1 двигатель (но детали придется покупать)
еще один, не совсем простой, вариант - это сделать управление (приемник+передатчик) для того вертолета который у меня уже есть
еще один простой вариант - это квадрокоптер ( опять же детали придется покупать )
а в дальнейшем планирую собрать приличный самолет.

Цитата (ВитГо)
в принципе если писать на асме, то конечно код будет короче, но в этом случае нужно прикинуть какой функционал ты сможешь сделать на асме... причем саму генерацию ppm на асме можно сделать без проблем, а вот сделать на нем интерфейс общения с пользователем - это уже задача которую приходиться писать больШЕ по времени, чем все остальное
А для чего нужно это меню? Устанавливать различные "режимы" полетов? для чего они ? вот тут я ни чего не знаю..........

у нас в городе есть магазин ПИЛОТАЖ http://www.pilotage-rc.ru/shopinfo.html?dis=81 но в нем все ОЧЕНЬ ДОРОГО!!!
лучше наверно заказывать от куда нибудь..


не успеваю за своими мыслями......
 
ВитГоДата: Воскресенье, 06.01.2013, 09:57 | Сообщение # 24
Полковник
Группа: Администраторы
Сообщений: 2422
Репутация: 20
Статус: Offline
Цитата (uwrtey)
если я правильно понял, то - что miniCoder, что проекты с rcdesign заточены под готовый "заводской" приемник ?


не совсем так, они заточены под стандартный сигнал PPM
что это дает ?

а это дает возможность не изготавливать радиотракт самому а использовать уже готовый
плюсы готового радиотракта - это применение спец. микросхем который и намного дальнобойнее самодельных, и одновременно работают на той частоте для которой были спроектированы (то есть на поле не помешают другим моделистам)..
плюс радиотракты бывают с обратной связью (то есть с модели на пульт идет передача например уровня принимаемого сигнала, напруга силовой батареи, gps координаты и т.д.)
объять все необъятное не возможно - иначе тебе сначала придется делать кодер каналов, потом радитракт, потом сервы.. - так ты долго будешь собирать то что можно купить за 600 рублей на хоббикинге (китайский магазин для моделистов)

поэтому многие проекты радиотракт используют стандартный: PPM сигнал, до 8 каналов включительно...

далее берут например такую аппаратуру http://www.hobbyking.com/hobbyki....2_.html
и из нее используют корпус со стиками, передатчик и приемник..
генерацию ppm пишут сами на своем железе..

на выходе аппаратура способная бить на 800 метров - в реальности обычные модели самолетов с метровым размахом крыла через 300 метров уже почти не видно..
ну а если смотреть направление FPV (полет от первого лица) - полеты по камере - то там ставят спец. передатчики видео с модели, и на модель передают модулями с мощностью до 2 вт (обычно 10-100 мвт)

причем важно что если ты напишешь ppm генерацию сигнала, то ты сможешь применять и другие модули радиоканала, например, http://www.hobbyking.com/hobbyki....ST.html это популярный сейчас FrSky - там есть модули с телеметрией

ну и конечно применение стандартных способов передачи позволяет использовать стандартные же сервомашинки (оцени цены на некоторые дешевые)
http://www.hobbyking.com/hobbyki....9s.html
http://www.hobbyking.com/hobbyki....vo.html
http://www.hobbyking.com/hobbyki....kg.html

так же есть стандартные регуляторы оборотов двигателя (причем есть коллекторные и безколлекторные двигатели)
безколлекторные
http://www.hobbyking.com/hobbyki....er.html
http://www.hobbyking.com/hobbyki....SC.html
коллекторные
http://www.hobbyking.com/hobbyki....rs.html

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

поэтому важно решить для себя - готов ли ты (и можешь ли ты) сделать то что по вышеуказанным ссылка стоит копейки .. ? если большого смысла не видишь - то есть смысл использовать стандартный сигнал PPM...
с твоими радиомодулями - ты должен смочь его передать,
придется правда написать дешифратор приемника еще - но обязательно приемник сигнала PPM который генерит стандартный PWM сигнал для того чтобы к твоему приемнику\дешифратору можно было подключить стандартное оборудование (что по ссылкам)

Цитата (uwrtey)
самое простое, что можно сделать это или авто модель или судо модель = 1 сервопривод и 1 двигатель (но детали придется покупать)
еще один, не совсем простой, вариант - это сделать управление (приемник+передатчик) для того вертолета который у меня уже есть

я думаю ты на примере дискретного управления убедился - что количество реализуемых каналов не столь важно...
что одну команду передавать, что 40 - код не сильно усложняется (фактически меняется только счетчик в цикле приема) :-))
сигнал PPM допускает 8 аналоговых каналов - вот на 8 и делай...!
в принципе можно попробовать оживить верт (но там придется помудрить с гиростабилизацией) - у меня как то был соосный верт без гироскопа - даже на нем можно летать (хотя конечно гемор :-))) опять таки если очень захочется то есть стандартный гироскоп, который использует стандартные сигналы http://www.hobbyking.com/hobbyki....cation= (листай ниже)

Цитата (uwrtey)
еще один простой вариант - это квадрокоптер ( опять же детали придется покупать )

я бы очень поостерегся назвать квадрокоптер простым :-))) это один из самых сложноуправляемых ЛА... фактически управляет им контроллер у которого на борту и 3х осевой гироскоп и 3х осевой аксельометр, и бародатчик для определения высоты... и регуляторы оборотов у него обычно более быстродействующие нежели с PWM управлением..
настройка квадрокоптера - тоже не простое занятие...
в общем не зря на квадрокоптер есть хорошие и плохие платы управления (первые стоят около 300 баксов, а последние 50)

Цитата (uwrtey)
а в дальнейшем планирую собрать приличный самолет.

для начала приличный не нужен :-) потому что удел первых трех-четырех моделей - быть разбитыми в пух и прах :-)))
путь от такого

до такого

примерно 23 дня :-)))
но это опыт.. бесценный опыт... :-)
(на фото мой опыт :-) http://forum.rcdesign.ru/blogs/50021/blog8418.html

в Пилотаж не смотри, там покупай только если уж совсем времени нет ждать (посылки из китая в среднем идут 1,5 месяца)


Виталий (аka ВитГо)
 
SergiДата: Воскресенье, 06.01.2013, 13:06 | Сообщение # 25
Подполковник
Группа: Проверенные
Сообщений: 540
Репутация: 55
Статус: Offline
Я ,например, могу передавать на модель 6 байт команд. 2 пропорциональные, 1 дискретный,
3 служебных(резерв). А вот формирование додумать не могу(как считают расходы,границы и пр).Где про это почитать?
 
ВитГоДата: Воскресенье, 06.01.2013, 15:16 | Сообщение # 26
Полковник
Группа: Администраторы
Сообщений: 2422
Репутация: 20
Статус: Offline
ну все таки для начала я бы покурил готовый код
смотрите вложение: это первый кодер фокуса, все предельно просто и достаточно понятно (ну кроме меню, там он намудрил)

по границам:

в моделизме есть два вида сигналов управления: PPM и PWM
первый это сигнал содержащий в себе информацию о всех каналах управления (до 8, период повторения пакета от 20 до 22,5 мс)

ширина канальных импульсов от 1 до 2 мс...

PWM - это фактически выделенный один импульс канала шириной от 1 до 2 мс с периодом повторения 20-22,5 мс

PWM сигналы выходят с дешифратора приемника и идут на сервы, регуляторы хода и т.д.

может быть это кажется и не очень удобным - но это стандарт, и если его придерживаться то наше оборудование будет совместимо с другим

далее, расходы на серву,

минимум 1000 мкс (1 мс)
максимум 2000 мкс (2 мс)
я пробовал сервы. аналоговые отрабатывают изменения с шагом в 4-7 мкс
цифровые уже берут и 2 мкс !!!
получается что минимальное разрешение которое желательно достичь это 512 приращений от минимума до максимума.. - таким образом одного байта для управления одним каналом уже мало.. - переходим на int (2 байта)

далее,
у каналов управления в виде серв есть совершенно конкретные ограничения, например ход сервы шасси обычно не более 100 градусов, а это изменения от 1000 мкс до 1750 мкс..
поэтому нужна возможность программно уменьшать минимум и максимум канального импульса - иначе серва свернет себе башку (на это у них сил всегда хватает)
в Vcodere я делал настройку крайних точек каналов с точностью до 1 мкс - в принципе это избыточно, вполне хватает с точностью до 4-5 мкс - вот тут хватает одного байта для настройки каждой точки, измеряем в процентах
min=1000 мкс
mid (центр)=1500 мкс
max=2000 мкс

соответственно это расходы
min=-100%
mid=0%
max=100%

1 %=(2000-1000)/200=5мкс (100 итераций в минус + 100 итераций в плюс - это упрощенно но работает правильно)

математику настройки проще сделать от центра
берем центр канала 1500 мкс
и применяем к нему точку, в зависимости от знака либо прибавляем к центру либо вычитаем
например min=-100%
значит 1500 мкс (центр) - 100% (значение min) * 5 мкс (это 1%)=1000 мкс

для максимума max=75% (например! у нас например это серва шасси и у нее ход не полный)
значит 1500 + 75 * 5=1850 мкс

еще нужна обязательно настройка центра канала
он у нас конечно 1500мкс, но на деле обычно то тяги чуть более длинные\короткие то еще что нить.. и центр чуть смещается...
используя "наш" метод мы легко посчитаем центр канала
mid=-5% (например)
значит 1500 - 5*5=1475 мкс

надеюсь про статическую настройку точек каналов понятно?
Прикрепления: Shema.bmp (94.0 Kb) · TX.zip (10.3 Kb)


Виталий (аka ВитГо)
 
ВитГоДата: Воскресенье, 06.01.2013, 15:34 | Сообщение # 27
Полковник
Группа: Администраторы
Сообщений: 2422
Репутация: 20
Статус: Offline
далее идет математика микширования

микширование это преобразование некоторого значения органа управления в значение выходного канала с заданными параметрами (инверсия, расходы)

например у нас ручка управления, она на AVR даст до 10 бит разрешения (от 0 до 1023), и нам нужно ее значение преобразовать в значение канала (например канал настроенный выше: min=1000, mid=1475, max=1850 мкс)

здесь важно что и у ручки управления есть центр ! его мы определяем во время калибровки органа управления ибо не всегда центр стика (в который он стоит под воздействием возвратных пружин) совпадает с центром значения АЦП !
например у нас ручка после калибровки дала значения:
min=23
mid=560
max=950
(это абсолютно реально !)

и нам нужно чтобы значения стика преобразовались в значение канала с 50% ограничением (то есть полное отклонение стика вызвало только 50% изменение значения канала) - это нужно например при настройки таких ЛА как летающее крыло, да и у самолетов зачастую не всегда нужны полные расходы, иногда нужны и меньшие (например для учебного самолета нафиг не нужны полные иначе он будет слишком резкий в управлении)

теперь берем значения ручки управления:
uch (это я так называю органы управления user channel) = 700

мы сравниваем значение uch с центром uch_mid который равен 560
700>560
процент микширования у нас (50%) > 0 значит мы будем преобразовывать значение ручки управления от центра к максимуму !!

для микширования мы должны как бы пересчитать шкалы uch и канала

диапазон изменения канала от центра до максимума
ch_rate=ch_max - ch_mid=1850-1475=375
диапазон изменения органа управления от центра до максимума
uch_rate=uch_max-uch_mid=950-560=390

теперь простая алгебра (которая при переходе на целочисленку вынесет мозг, но это позже)

ch_val=(ch_rate * (uch-uch_mid) * mix) / (uch_rate *100)

если ничего не забыл то так :-)

здесь:
ch_val - это значение которое нужно прибавить к каналу (по умолчанию канал в центре), прибавляем потому что процент микширования положительный (иначе бы вычитали)
ch_rate - расход соответствующего диапазона канала (в нашем случае ch_max-ch_mid)
uch - значение с АЦП ручки управления
uch_mid - калибровочное значение центра ручки управления
mix - процент микширования, в нашем случае 50
uch_rate - расход соответствующего диапазона ручки управления
100 - это необходимый делитель для mix чтобы получить 50% (то есть множитель 0.5)

посчитаем?
ch_val=(375 * (700-560) * 50) / (390 *100) = 67
значит к значению канала 1475 - это наш центр, в результате отклонения ручки нужно прибавить 67 мкс = 1542 мкс

попробуйте взять другое значение процента микширования и границы каналов и положение ручки и поиграться с формулой !


Виталий (аka ВитГо)
 
ВитГоДата: Воскресенье, 06.01.2013, 16:23 | Сообщение # 28
Полковник
Группа: Администраторы
Сообщений: 2422
Репутация: 20
Статус: Offline
вот кстати набросал вам калькулятор канала на экселе.. так математика работает в VCoder'e - это я сам выводил... у фокуса брал только общие принципы микширования...

в желтые поля вводите свои значения
в синем результат который нужно прибавить к текущему значению канала (стартовое значение канала = ch_mid !!!)

в принципе каждый микшер отрабатывая прибавляет к значению канала свое полученное в вычислениях (складывает с учетом знака !)

можно посмотреть формулы что откуда считается

задавайте вопросы....
Прикрепления: 2480058.xls (9.5 Kb)


Виталий (аka ВитГо)
 
ВитГоДата: Воскресенье, 06.01.2013, 16:37 | Сообщение # 29
Полковник
Группа: Администраторы
Сообщений: 2422
Репутация: 20
Статус: Offline
во код на СИ который рассчитывает значение канала после микширования



прикиньте сколько работы если писать на ассемблере :-)))

хотя на асме я тоже писал подобное микширование cool , смотреть в проекте miniCoder модуль model_calculator
вложил его чтобы чисто "по понтоваться"

для работы этого модуля нужна библиотека 32ух битной математики... тоже писал сам, в принципе получилось хорошо и функционально, как использовать можно глянуть в model_calculator
Прикрепления: model_calculato.asm (39.2 Kb) · match.asm (14.4 Kb)


Виталий (аka ВитГо)
 
uwrteyДата: Воскресенье, 06.01.2013, 20:21 | Сообщение # 30
Генерал-майор
Группа: Администраторы
Сообщений: 3270
Репутация: 11
Статус: Offline
Цитата (ВитГо)
не совсем так, они заточены под стандартный сигнал PPM
что это дает ?

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

что за "радиотракт" такой? это специализированные радиомодули что ли ?

Цитата
на выходе аппаратура способная бить на 800 метров - в реальности обычные модели самолетов с метровым размахом крыла через 300 метров уже почти не видно..
на сколько я знаю, те модули, которые я использовал в дискретной системе управления, способны бить на километр в прямой видимости. ( на практике, с плохими антеннами и через железобетонную стену у меня брали на 100 метров)

самодельные радиомодули я даже не собираюсь строить! там мало просто спаять, там согласовывать все нужно и настраивать аппаратуру с помощью дорогого оборудования...
проще купить...

Цитата
далее берут например такую аппаратуру http://www.hobbyking.com/hobbyki....2_.html
и из нее используют корпус со стиками, передатчик и приемник..
согласен, готов купить... а радиомодули, которые я использовал в предыдущем проекте не подойдут ?

Цитата
ну и конечно применение стандартных способов передачи позволяет использовать стандартные же сервомашинки (оцени цены на некоторые дешевые)
согласен, и сервомашинки то же проще купить, чем самому городить....

Цитата

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

можно и купить, а можно собрать....

Цитата
поэтому важно решить для себя - готов ли ты (и можешь ли ты) сделать то что по вышеуказанным ссылка стоит копейки .. ? если большого смысла не видишь - то есть смысл использовать стандартный сигнал PPM...
с твоими радиомодулями - ты должен смочь его передать,
придется правда написать дешифратор приемника еще - но обязательно приемник сигнала PPM который генерит стандартный PWM сигнал для того чтобы к твоему приемнику\дешифратору можно было подключить стандартное оборудование (что по ссылкам)


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


не успеваю за своими мыслями......
 
Форум » Разработка электронных устройств » Разрабатываю ! » Пропорциональное управление на МК с нуля (пошаговое строительство пропорционального управления с нуля)
Поиск:


Copyright MyCorp © 2024
Сделать бесплатный сайт с uCoz