И что даёт один бит чётности? одна помеха в пакете - четность... две помехи в пакете - не чётность... десять помех в пакете - какая чётность?)))
Инверсия уменьшает вероятность устойчивой помехи... с частотой близкой или кратной частоте импульсов.
С контрольной суммой... это интересно. Но... 1- мы ещё не придумали как это сделать... 2- как я понял контрольная сумма - это пакет довольно длинный ... 16 бит как минимум... Это затрудняет приём. Вероятность повреждения пакетов больше... Вероятность повреждения пакета пропорциональна длине пакета.
У нас пакеты разбиваются на много (сейчас 3 шт) коротких пакетов... по 8 битиков. А приёмник из них собирает большие... или просто сравнивает много маленьких и подтверждает правильность пакета. Короткие пакеты лучше "проскакивают". Т.к. потеря одного короткого пакетика 8 бит не влияет на передачу всего пакета... только уменьшает трафик (больше времени на передачу одного пакета)
Программу управления движками я уже написал, просто описал чуть не правтльно. У меги 8 два входа АЦП принимают данные, один о скорости, второй о напрвлении движения ( поворот руля). В программе реализовано 2 тахометра. Сигналы принимаются с двух датчиков холла (ss41, он с логическим выходом) на входа внешнего прерывания меги. В программе в зависимости от данных с АЦП (скорость) выставляются обороты. Обороты плавно нарарастают с помощью ШИМа на каждый движок отдельно ( Timer1 ШИМ по 2 каналам А и В). Пока у меня просто алгоритм, мало оборотов - ШИМ + 1, много - ШИМ - 1, с интервалом звдаваемым через таймер. В дальнейшем хочу прикрутить какой нибудь ПИ регулятор, а то боюсь в живую будут обороты плавать. В зависимости от данных с АЦП 2 (направление) меняются коофицыэты перещёта оборотов. Разбито на 7 частей, тоесть центр и по 3 уравня поворота в каждую сторону. например при повороте на право с полным поворотом руля , левое колесо - скорость заданая, правое - скорость заданная умноженнач на 0.6. Коофициэнты при установке на машинку конечно же будут поправлены. Забивать всё в один ме думаю нет необходимость. Это лично моя хотелка , хотя если будет много желающих... опять возникает много параметров которые необходимо настраивать.
Ну и добавлю что машинка может управлятся как с пульта так и самим ребёнком так что считаю нужно делать отдельно блок управления двигателями.
Последний раз редактировалось aen Вт сен 15, 2015 12:00:45, всего редактировалось 1 раз.
Любопытненько)) Схемы и Исходники в студию! ))) Только Си (в асме я не шарю ). Для понимания лучше всё нарисовать... и поточней расчитать... будет меньше настроек.
zhuplev писал(а):
При повороте в ту или иную сторону скорость вращения левого и правого колеса будут менятся, тоесть ещё и подруливать.
Зачем? Будет сложно расчитать нагрузку на каждый движок... В машинах ставят дифференциал для распеределения крутящего момента между задними колёсами... В простой машинке можно соединить два одинаковых двигателя последовательно... Приувеличении нагрузки на один движок, увеличивается ток ... увеличение тока на одном движке увеличивает напругу на втором... второй крутиться быстрей... Короче "электронный дифференциал" )) Хотя не знаю.. это не идеально.
Второя версия достаточно точно описывает смысл моей задумки. Програму вместе с кодом ( пишу в CVAVR) скину вечером. Там всё примитивно и просто. Правда большой потенциал для развития валкодеры это оптика а она капризна к окружающей среде а условия работы предполагают и влагу и грязь. По поводу разрядности, кто мешает поставить не один магнит а скажем 4 или 6..
Открыта удобная площадка с выгодными ценами, поставляющая весь ассортимент продукции, производимой компанией MEAN WELL – от завоевавших популярность и известных на рынке изделий до новинок. MEAN WELL.Market предоставляет гарантийную и сервисную поддержку, удобный подбор продукции, оперативную доставку по России.
На сайте интернет-магазина посетители смогут найти обзоры, интересные статьи о применении, максимальный объем технических сведений.
1- сколько скоростей ? В теории чем больше тем тучше))) В идеале вперёд/назад 512. Итого ШИМ = 1024. Но нужен хороший радиоканал для передачи таких больших пакетов.
Сейчас у нас +/- 32 скорости передаёт пульт... Итого 64 бит. Плавность хода обеспечит ШИМ 1... 1024 (ШИМ 1) / 64 бит = 16 - это плавность хода.
Пример: -пульт передаёт скорость 30... ШИМ синтезирует 30*16=480 -увеличиваем скорость джойстиком на пульте... 30>31... -пульт передаёт скорость 31... ШИМ синтезирует 30*16=496. Причём ШИМ плавно увеличивает скорость 480... 481... 482... ... .... ... ... 496. Т.е. вводим параметр максимальное ускорение. Обычный счётчик будет плавное увеличивать/уменьшать скорость... никаких дёрганий машинки... как бы мы не дергали джойстик на радиопульте или пульте машинке.
2- точность поворота руля? Тоже чем больше тем лучше))) Я так понимаю будет сервомашинка на руль... или что-то подобное... Сейчас у нас +/- 32. ШИМ так же может плавно поворачивать (если надо).
3- приоритет управления... оператор/водитель. Делаем одновременное управление с радиопульта и с пульта машинки.
Ну и остались всякие мелочи... типа ABS )))
Вообще... в идеале лучше собирать на двух мегах... Одна отвечает за связь, вторая отвечает за движки и рулевые машинки... В этом случае упрощается программа и работа движков не зависит от сигнала... помех... и т.д. Всё естественно с кварцевой точностью.
Ну вообще конечно датчик Холла более надёжный... в плане грязи.
Далее... считается (прикидывается) общая схема машинки... редукторы... передаточное число... всё рисуется... куда что идёт.
Продукция MOSO предназначена в основном для индустриальных приложений, использует инновационные решения на основе более 200 собственных патентов для силовой электроники и соответствует международным стандартам. LED-драйверы MOSO применяются в системах наружного освещения разных отраслей, включая промышленность, сельское хозяйство, транспорт и железную дорогу. В ряде серий реализована возможность дистанционного контроля и программирования работы по заданному сценарию. Разберем решения MOSO
подробнее>>
zhuplev
Заголовок сообщения: Re: Радиоуправление. Переходим на МК.
Да скоростей даже 15 за глаза! Я думаю максимальная скорость у машинки будет ну 15-20 км в час, и большая разрядность управления скоростью ненужна. Приоритет управления думаю радио, что бы скорректировать если что управление ребенком и то через обычный тублер отключать педаль газа. А то сейчас сыну 10 месяцев и случайно нажав на газ может уехать куда то). По рулю тоже большая разрядность ненужна. Угол поворота колёс небольшой и там до градуса вымирять поворот нет смысла (там люфт рулевого больше чем наше разрешение) да и скорость не вилика. ABS унас и так получается уже реализован а
Бит четности дает возможность исправить только 1 ошибку. А алгоритм контрольной суммы есть везде, как программный там и железный. Например очень популрный CRC. Он есть в USB, TCP/IP и даже в комах используется.
Бит четности используется например в UART. Только UART предпологается использовать по проводам... с малым уровнем шума. А мы тут работаем с радиолинией. Вот я и говорю... когда на выходе радиоприёмника куча помех (от разрядников... искрящих коллекторов электродвигателей... и просто белый шум эфира) то какой тут бит чётности))) Что он есть, что его нет... Единственное что нас спасает - программные фильтры. Вот этим мы тут и занимаемся (попутно)... раскладываем приходящий сигнал на составные части... фильтруем.. "выковыриваем" полезные битики из всей этой "каши" из эфира))
Популярный CRC... в TCP/IP однозначно. Да и при проверки дисков те же хеши... Угу)) В теории кратко представляю... в общих чертах. Просто на практике пока ещё не применял. Щас вот будем собирать схемку... мож проверим. Хотя вопрос о целисообразности использования контрольной суммы в радиопередачи... и в частности в радиоуправлении.. у нас ещё под вопросом. Но обязательно проверим.
Как и обещал скидываю проект в протеусе и в CVAVR. Там подписал всё что мог. Схема просто для проверки программы и далеко не конечной. Дописал алгоритм ПИД регулятора но ещё сам до конца не разобрался с коэффициентами. направление движения хочу менять просто переключением с помощью реле клем двигателя. Информация о повороте руля будет браться с переменного резистора установленного на рулеву машинки. Да и вообще будет стоять тумблер который переключает " радио управление - стационарное" Ведь если будет иначе то при попытке повернуть руль ребёнком ( в будующем ) система не даст это ему сделать а будет стремится вернуть в предыдущее состояние так что просто можно сделать кнопку аварийного останова с пульта если вдруг что то идёт не так и ребёнок не справляется с управлением. Ко мне приехали движки, так что уже можно пробовать собрать силовую часть (драйвера двигателей) и радио часть. Как не крути легче собрать блок управления двигателями и рулём отдельно, вопрос как лучше передавать информацию с Вашего радио модуля на контроллер двигателей.
Схема просто для проверки программы и далеко не конечной.
Не конечной... это точно сказанно))) Что такое ПИД регулятор ? Расшифровки не забывай давать)) Коэффициенты... тут надо подумать. Собственно сайчас проблема за движками... Надо подумать внимательно.
1- менять направление релюшками - плохая идея. Не надёжно. 1000 срабатываний реле... и... начинают залипать... отгорать... короче надо делать электронное управление (на транзисторах... на тиристорах... ) 2- Информация о повороте руля будет браться с переменного резистора установленного на рулеву машинки. - это думаю правильно. Получим управление по факту поворота... Более точное, чем по данным положения джойстика на пульте. 3- тумблер который переключает " радио управление - стационарное"... Отдельный тумблер делать не обязательно. Можно сделать проще. Пока пульт выключен управляет ребёнок... для "перехвата" управлением машинкой, достаточно просто включить радиопульт и всё управление автоматически перейдет к пульту (у радиопульта приоритет выше). 4- легче собрать блок управления двигателями и рулём отдельно... - я не уверен. У нас есть уже готовая программа и схема "машинка" /// можно просто "подкрутить" готовую программу ... добавить тахометр... и т.д. Или ставить отдельно ещё одну мегу на движки и соединять две меги отдельным каналом связи... Короче ... проверим оба варианта и станет ясно что проще. 5- как лучше передавать информацию с радио модуля на контроллер двигателей... да любым извесным способом))) В меги куча встроенных интерфейсов: UART, SPI, TWI.
UART - нормально. Только кварц не любой подходит для высокой скорости передачи... SPI - мы использовать не можем... у нас занят вывод МК под ШИМ. TWI - обычно используют когда больше двух мег...
Можно так же использовать свой, программный интерфейс... последовательный или параллельный... Например параллельный программный... тупо сединить все свободные выводы двух мег между собой и гонять тута-сюда байты ))) Вот это извращение получится Поэтому лучше последовательный программный... сединить один свободный вывод у каждой меги между собой и гонять тута-сюда байты... это уже лучше))) Причём можно использовать всего один вывод у каждой меги... и гонять туда сюда пакеты.
Короче... помоему лучше всего использовать аппаратный UART. Обратной связи у нас нет, поэтому используем по одному выводу у каждой меги (Tx>Rx). И писать программу не надо... хотя это не сложно.
Вообщем для начала надо разобраться с движками...
Лично моё мнение - я не люблю когда вся программа сделана на прерываниях... Приоритет выполнения прерываний по векторам... По мне так лучше когда программа крутится по кругу и выполняет последовательно инструкции... а прерывания использовать только как аварийные инструкции. Например когда короткое замыкание или палка попала в колёса )) и нужно срочно прервать программу и например быстро отключить движки... Повторяю.. это лично моё мнение ... тут нет никаких запретов ... каждый делает как ему больше нравится
А почему тактовая выбрана 8 Мгц ?
Такс.. что у нас с ШИМ1. Я так вижу распределение крутящего момента по движкам ты уже сделал. 90 и 120 ватт... отношение мощностей примерно 4:3 (примерно... зависит от характеристик движков). Значит надо добавить триммер на радиопульте... для коррекции и устранения стирания резины ))).
Коэффициенты скорости движков при повороте 0.5 0.7 0.9 ... - это не точно... надо тоже триммер на пульт... будет поправка на "занос" при входе в крутой поворот в идеале ... "занос" зависит от скорости и сцепления колес... короче опять ABS )))
Реле одно лишнее... движки разные... И зачем вообще реле? При максимальной скорости экономия на драйвере? Помоему это лишнее...
ШИМ1... сейчас у меня один реверсивный ШИМ, на один движок... можно сделать на два... и без прерываний)) Вот.
Это без датчиков. Наброски... Сравни. Информацию с датчиков можно снимать по прерыванию... или тоже без прерываний, измеряя длительность импульсов (или паузы между ними).
Посмотрел код, принцип не плохой, но у нас ведь зависимость вряд ли будет линейной! Да и Вы ШИМ регулируете а я непосредственно скорость вращения, хотя суть та же. Я ещё решил немного переделать всю рулевую, а то на колёсах люфт ужасный. Так вот, когда поставлю машинку на колёса замерю при разных углах поворота передних колёс разность скорости вращения задних колёс. По данным можно будет составить что то вроде массива скоростей на те же 32 возможных варианта угла поворота.
Цитата:
Информацию с датчиков можно снимать по прерыванию...
так скорость вращения у меня так и измеряется, по времени между соседними импульсами. Может можно и без прерываний но вот только у меня в программе алгоритм ПИД регулирования а у него тяжёлая математика, которая занимает много времени. Как и говорил пришли двигателя. Они с электромагнитным возбуждением и конструктивно могли вращаться только в одну сторону независимо от полярности. Спойлер Пришлось их разобрать и добавит выводы отдельно от катушек статора и отдельно от щёточного уза, то есть ротора, теперь крутятся в обе сторону. Из плюсов так это высокий начальный момент запуска и не большие обороты, в районе 3000 - 3500 оборотов в минуту. Конечно по сравнению с теми движками что стоят сейчас... Спойлер Это только один, второй пока думаю куда впихнуть. Думаю как лучше прикрепить переменный резистор к рулевому механизму. Спойлер Может просто ременную передачу? взять ремень от старого струйного принтера, натянуть и готово!? P.S. Динамики это уже я поставил вместе со старым MP3 nfr как стандартые китайские песенки убивали
Последний раз редактировалось aen Пт сен 18, 2015 00:23:53, всего редактировалось 1 раз.
Такс... пошли большие машинки))) Что дальше? Танк Т-90?
zhuplev писал(а):
Посмотрел код, принцип не плохой, но у нас ведь зависимость вряд ли будет линейной!
Это наброски... Естественно у нас пока всё нелинейное...
https://ru.wikipedia.org/wiki/ПИД-регулятор Интересно. Но сложно в настройке... ПИД-регулятор... Практика применения. "В современных системах автоматизации регуляторы реализуются либо как специализированные аппаратные модули, включаемые в состав управляющего контроллера, либо программными методами, с применением специализированных библиотек. Производители контроллеров часто разрабатывают специализированное ПО (тюнеры) для настройки коэффициентов регулятора." Короче... разрабатем специализированное ПО... Используем массив скоростей... Или таблицу... подумаем.
Что у нас с рулевой? Как она устроена? На фото не вижу... движок на руль? На фото движок-это "гидроусилитель"? )))) На руль движок туда-сюда... ? концевиками ... ? с резистором угла поворота... ? с ШИМ... ?
zhuplev писал(а):
скорость вращения у меня измеряется по времени между соседними импульсами... занимает много времени
Жаль... мой приёмник не любит прерывания... и занимает 90% времени. Короче... подумаем.
Выводы отдельно от катушек статора и отдельно от щёточного узла... Сопротивление уменьшается... 12 Вольт... Повышенный разряд... Осторожней с параллельной схемой включения. В идеале на постоянных магнитах. 3000 - 3500 оборотов в минуту - нормально. Стандартно. Ременную передачу? Да как угодно... Ремень от стиральной машины, цепь от мопеда/велосипеда...)))
Такс... что имеем:
1-Простой пульт на меги... универсальный. 2-Простой приёмник на меги... универсальный. 3-Радиомодули любые аналоговые. Любая рация (заводская/самодельная). 4-Протокол/прошивка - в процессе доработки... зависит от окончательной схемы.
Я всё же за 2 МК. Как не крути удобней в плане отладки и модернизации. Радиоуправление капризно к таймингам а мы делаем систему которая тоже привязывается ко времени жёстко. Я не спорю что можно всё забить в 1 мегу но зачем? С точки зрения экономической выгоды то она не велика а в плане программной реализации то так на много проще. Да и правильно это когда системы раздельные, есть шина данных а обрабатывать их может кто угодно. Движки согласен что лучше на постоянных магнитах, КПД выше, может выдерну катушки и вставлю Неодимовые магниты ПИД регулятор это может лишнее и можно обойтись более простым алгоритмом управления но это мы посмотрим. Сейчас на работе, завтра более детально сфоткаю механизм рулевого управления но там и без него пока есть чем заняться. По поводу реле. Пригорать думаю ничего не будет так как переключение будет только в момент когда ШИМ близок к 0 или вовсе нулевой, да и коммутировать собираюсь катушки статора, на них ток потребления ниже чем на роторе. Просто драйвер верхних плече собирать на ток порядка 50 ампер!!! это не просто. Передачу мотор - колесо думаю делать на цепи, хотя ещё склоняюсь к ремню но с ним тяжелее, в плане подбора длинны и шкивов. Думаю начать накидывать схему контроллера движков и программу управления поворотом руля которая своего рода повторит вашу конструкцию из переменного резистора и Н-моста на двигатель (сфоткаю штатный механизм поворота руля на машинке, станет понятней). Примерно накидал схемку, жду критику. Спойлер
Ну давай два МК. Остаётся много ресурсов для модернизации. ))) Вообще удобней 2 МК... это когда очень много задач.
zhuplev писал(а):
Радиоуправление капризно к таймингам
Ну это по желанию)). Можем всё привязать жёстко... может всё отвязать)) Про экономию речь не идёт. Это вопрос чисто технический - оптимизация алгоритма. Только и всего. Хочешь перебрать движки?)) Это муторно очень... До ПИД регулятора ещё не дошли)) для начала нужен простой алгоритм. В процессе настройки всё выяснится. Передачу можно на цепи - жёсткая связь с колёсами... и длину можно выставить любую. Короче от старого велосипеда и цепь (можно поделить на две) и все звёздочки... Для управления поворотом руля в идеале использовать готовую сервомашинку. Она точно повторяет угол джойстика на пульте... и стабильно работает благодаря встроенному МК. Просто если делать самому, то скорее всего придётся всё подстраивать... люфт, дёрганье, проскакивание точки поворота, время перекладки... и т.д. ... ну это мелочи. Схемка впринципе пойдёт. Реле... это не принципиально.
Накидал простенькую программку. Простенький реверсивный двухканальный корректируемый ШИМ.. Это будет у нас базовая программа... радиоканала и пульта. Настраивается под любой кварц.. радиоканал ... и т.д.
Короче алгоритм такой. Включаем пульт и управляем с радиопульта... всякие настройки.. коррекции... Затем переключаем тумблёр на пульте и управление переходит к машинки... Машинка работает пока включён пульт. При потери сигнала от пульта (помеха, разряд аккумулятора, выход из зоны действия пульта... )машинка останавливается. Это сделано специально, чтобы машинка от нас не убежала))).
Теперь надо приделать стабилизатор оборотов... подумать над массивом кооэффициентов... и подумать как это всё будет работать на двух мегах)) Делов то)))
Посмотрел програмку и схему. Долго рассматривал, как ни как в чужом коде разбираться тяжело (иногда и в своём теряешься). Что бросилось в глаза так это не понятная работа двух АЦП на стороне машинки. Что в режиме работы с пульта что в режиме работы с машинки идут сигналы на сервопривод руля. Функция коррекция отношения (ШИМ двигателей ) ненужна на пульте, нужна установка 0 поворота колёс! Ну если разберусь то перепишу. Заговорили за двигателя и их переборку.... я их уже перебрал, благо там всё просто, 2 шпильки и он разобран. Вывел необходимые провода, по смазывал подшипники КАЧЕНИЯ!!!, закрыл, проверил, всё работает! Перефоткал штатную систему поворота руля
На фото не могу понять как работает руль... моторчик с редуктором на руль+сам руль... Как поворачиваются колёса? От моторчика или от самого руля машинки... или одновременно через муфту сцепления... или на руле стоит резистор, а от него через МК на моторчик руля?
Да... в чужём коде разобраться не просто)) Чтобы не теряться в своём... побольше коментариев)) Собственно все радиоуправляемые модели работают одинаково... Поочереди (по кругу) измеряем напряжения на всех резисторах пульта и передаём данные на машинку... МК машинки принимает код, сравнивает со списком кодов из памяти, и после обработки кода выдаёт напряжения на движки (рули или серво или маршевые...). Отличие у всех производителей только в мелких деталях))
Сейчас наша машинка работает так: МК радиопульта проверяет нажата ли кнопка "переключения пультов" (радиопульт<>пульт машинка): а- если кнопка не нажата, то МК измеряет напряжения на резисторах и передаёт на машинку. При этом машинка управляется с радиопульта, а данные с пульта машинки игнорируются. б- если кнопка нажата, то МК ничего не измеряет, а передаёт нерерывно на машинку только один код "запрос". Машинка , приняв код "запрос", измеряет напряжения на пульте машинки. Теперь наоборот, данные с радиопульта игнорируются, а машинка управляется с пульта машинки. И так до тех пор, пока едёт код "запрос" с радиопульта.
Другими словами... пульт или сам передаёт данные... или же запрашивает данные с пульта машинки. Ну а затем данные идут на руль. Короче вот так вот хитро))) Полный контроль над машинкой.
Все дополнительные функции (коррекция ШИМ, установка "0" поворота колёс, ускорение, всякие коэффициенты...) Я думаю это все должно быть выведено на пульт. Я оставил много свободного места на пульте. Как на заводских пультах, куча всяких ждойстиков, тумблеров, триммеров... Мы же не можем сами сеть за руль детской машинки и кататься по кругу (по треку), походу настраивая всякие коэффициенты))) Поэтому придётся всё выводить на пульт.
Такс.. чёто я застрял со схемой... какой дальше алгоритм? Версия 2. Наброски... )))
Далее... Есть блок приёмника RX и блок управления БУ. Нужно определиться кто за что отвечает. Например: вариант 1 - Приёмник (RX) принимает сигнал и измеряет напряжения всех джойстиков (TX и RX), прибавляет коэффициенты и всё это отправляет на блок управления (БУ). Блок управления отвечает только за двигатели (стабилизатор... всякие коррекции... ). вариант 2 - Приёмник (RX) принимает сигнал (TX) и отправляет на блок управления (БУ). Блок управления измеряет напряжения джойстиков (RX), прибавляет коэффициенты и отвечает за двигатели (стабилизатор... всякие коррекции... ). вариант 3 - ... другие варианты...
Так, что то мы всё никак не можем понять друг друга. Значит идея перекинуть все настройки на пульт с одной стороны и хорошо а с другой не очень. Плюсы: всё настраивается с пульта Минусы: мы привязаны к пульту и если с ним что то случится, банально сели батарейки или ещё что то, остаёмся без колёс. Предложение: регулировки так с пульта и оставить но записывать их в EEPROM приёмника по нажатию кнопки на пульте или приёмнике. Сделать возможность так же полностью отвязаться от пульта, той же кнопкой на приёмнике (это на будущее когда малой полностью освоит вождение и необходимость таскать пульт отпадёт) Теперь по поводу руля. На машинке до боли примитивная система, вот фото с другого сайта где самоделкин с нуля делал машинку но рулевое управление по суте такое же. Сейчас не возле машинки не могу показать. Редуктор с мотором одевается на вал руля и поворачивает его. когда поворачиваешь руль сам то проворачиваешь и редуктор. В машинке нет как такового пульта, там только педаль газа, руль и несколько переключателей. По этому на стороне машинки у нас должен быть не реверсивный ШИМ (данные АЦП: 0-26 -назат, 26-34 - стоп, 34-63 - вперёд), а полный на всь диапазон АЦП ( 0-63 ) как вперёд так и назад, а реверс в соответствии с положением рычага что на фото. По поводу программ для МК. Сижу, всё разбераю Ваш код. Количество безусловных переходов типа goto сильно запутывает, да и сколько читал, опасно это, если что то не так и вылазит какой то баг, то выловить его становится тяжело. Давайте обдумаем сначала полный алгоритм, на мой взгляд на пульте должно быть следующее. АЦП: скорость, направление, коррекция установки 0-го положения колёс, кнопка местного - дистанционного управления, кнопка записи установленных значений в EEPROM приёмника. Это основа. Ну и можно всякие прелести типа мигалка, свет... Думаю нам надо определится с протоколом передачи данных с приёмника на БУ моторами. Так я смогу писать программу для него потому что честно в ваше программе добавлять что либо мне пока не удаётся. Ставить сервомотор на руль - стоимость такого сервопривада, который сможет повернуть руль машинки будет стоить половину стоимости машинки У нас есть практически не занятый МК в БУ который сможет сделать всё это и готовый узел поворота с хорошим усилием! надо только переменник куда то прикрепить, но это я думаю это мелочи. Программу для "сервопривода" написать не сложно с тем же ПИД регулированием. В серве мозгов практически нет, там жёсткая логика а у нас можно будет люфт хоть программно исключить.
Так, что то мы всё никак не можем понять друг друга.
Да мы прекрасно понимаем друг друга без слов)). Просто до EEPROM ещё не дошли... Вообще это стандартная процедура при разработке программ для авто. Водитель катается по треку на авто с кучей датчиков и радиопередатчиком на борту... а ребята из тех. поддержки записывают данные телеметрии авто по радиоканалу в реальном времени, при различных режимах работы авто. Затем эти данные ребята из тех. поддержки обрабатывают и записывают в бортовой компьютер авто. В нашем случаем управление идет с пульта... данные записываем на FLASH, а затем кнопочкой "save" (на пульте) записываем их в EEPROM. Кнопочку "отвязаться от пульта".. добавим.
C рулём понятно)). "китайца" тупо прикрутили "серво" к рулю машинки... крутим руль и "серво" одновременно... без всяких муфт сцепления. Если резко дёрнуть руль, то можно сломать все шестерёнки "серво"... мдя... так умеют делать только "китайцы". А как она управляется? Просто нажал кнопку на пульте "лево" и машинка поворачивает пока нажата кнопка ? Получается без обратной связи угла поворота ... Ну хоть концевики то поставили? ))) Или поворачивает пока колёса не упрутся в борт авто... Резистор можно прицепить к рулю через ремень (как в принтере):
Или просто тягу на руль /резистор-руль/ (или прицепиться к тяге колёс)... Резистор не обязательно должен поворачиваться на 270^ ... да и вообще резистор может быть ползунковый))) Можно и валкодер.. но это будет сложней. Вообще недостаток всех резисторов - со временем стираются... поэтому в идеале бесконтактный датчик руля. Но это сложней.
Не реверсивный ШИМ... АЦП (0-63)... реверс в соответствии с положением рычага что на фото или пульта (!). (Не проблема) Только ставить отдельно рычаг на пульт... не очень удобно управлять. На пульте лучше один джойстик (<назад-стоп-вперёд>). Но можно и отдельный рычаг (<назад-вперёд>). Тогда уже сразу поставить переключатель скоростей (пересчёт коэффициента ШИМ)... + задняя передача ))) Кстате.. это не проблема... если подумать. Вообще это не принципиально. Варианты любые. 1- На пульте джойстик (<назад-стоп-вперёд>). На машинки рычаг (<назад-вперёд>) + педаль газа (стоп-вперёд>). 2- На пульте рычаг (<назад-вперёд>) + джойстик (стоп-вперёд>). На машинки рычаг (<назад-вперёд>) + педаль газа (стоп-вперёд>).
Далее... самое интересное))) Будем думать по ходу... Такого я ещё не делал. goto не сильно запутывает... зато ускоряет работу программы... перепрыгиваем в нужное место, не дожидаясь выполнения условий... нет там никаких багов... всё жёстко. "в ваше программе добавлять что либо мне пока не удаётся" /// мне тоже... Полный алгоритм... //// Сейчас будет взрыв мозга! При разработке протокола... желательно привязаться к одному формату пакетов. Например сейчас пакет 1 байт (00000000). Это оптимально для вычислений... побитовых операций. Поэтому менять формат пакетов TX>RX пока не будем.)) Тогда и формат пакетов RX > БУ желательно сделать тоже 1 байт (00000000). Он хорошо стыкуется с UART.
Протокол передачи данных RX > БУ... Вот тут интересно. ))) Для "экономии кварцев"... можем запустить RX и БУ от одного тактового генератора (например от RX). RX и БУ будут работать синхронно. Но это не решает проблемы... Дело в том, что RX привязан к радиосигналу... и отвлекаться (по прерыванию) на передачу данных (RX>БУ) не может... С другой стороны БУ привязан к двигателям... и отвлекаться (по прерыванию) на приём данных от RX он тоже не может... Точнее RX и БУ можно прервать... но тогда будут ошибки вычислений. Но у RX есть свободные промежутки между приёмом пакетов от TX. А у БУ есть свободные промежутки между коррекцией движков. Свободные временные промежутки RX и БУ никак не связаны между собой... Короче... делаем типа приём-передача UART по запросу... или... Я пока без понятия ... подумаем. ... Ты алгоритм ПИД-регулятора уже придумал?)) Ух... если делать вообще всё по уму... то там получится куча всяких таблиц, пересчётов коэффициентов...
Такс.. а что у нас с авто?)) Попробовал приделать релюшки в протеусе... пипец... протеус вообще не умеет считать всякие релюшки... транзисторы.. Одни МК, и то с большими тормозами))) У тебя тоже с тормозами? ... Все эти симуляторы... Накидал схемку для проверки... Версия 3. Уже чтото вырисовывается... пока без БУ.
А где в протеусе генератор шума? Кстате... а можно смоделировать серво? Что у нас с регулятором?
Ужас с этим Proteus 7 Professional... вообще ничего считать не умеет... От одной релюшки глючит... Короче.. вместо реле на схеме светодиоды. Xорошо что программы МК ещё хоть считает...
zhuplev писал(а):
скоростей 15... большая разрядность управления скоростью не нужна. Приоритет управления радио... через обычный тублер отключать педаль газа. По рулю тоже большая разрядность не нужна... люфт рулевого больше чем наше разрешение. ABS унас и так получается уже реализована...
32 скорости. 32 разрядности руля. Приоритет управления радио. Через обычный тумблёр переключаем всё управление на радиопульт. Люфт рулевого задаётся программой... под ходовую. ABS пока нет))) Вроде ничего не забыл.
Далее... приделываем блок управления (БУ). В нем будут все коррекции... коэффициенты... ABS ))) Что у нас с алгоритмом ПИД-регулятора?
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 60
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения