Ух... работки подвалило
zhuplev писал(а):Схема просто для проверки программы и далеко не конечной.
Не конечной... это точно сказанно)))
Что такое ПИД регулятор ? Расшифровки не забывай давать))
Коэффициенты... тут надо подумать. Собственно сайчас проблема за движками... Надо подумать внимательно.
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... сейчас у меня один реверсивный ШИМ, на один движок... можно сделать на два... и без прерываний)) Вот.
Это без датчиков. Наброски... Сравни.
Информацию с датчиков можно снимать по прерыванию... или тоже без прерываний, измеряя длительность импульсов (или паузы между ними).
Вообщем можно обойтись вообще одной мегой.
