Контроллер для детской машинки на Arduino Mega 2560

Автор HECTEPOB, 16 Нояб. 2014 в 21:35

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

HECTEPOB

В качестве аппаратной платформы для своего своего контроллера использую родную плату ардуино уно в3 без каких либо переделок.  ПО написано на ассемблере под микроконтроллер atmega328p который установлен на эту плату. Исходник прошивки я выложу (он есть в проекте под систему Proteus pro 8.1). Он снабжен подробными комментариями. Если кому-то понадобится,  помогу с переделкой под другой контроллер.
По поводу повторяемости есть проблема. Границы и коэффициенты для сигнала датчика УПРВ требуется подбирать под конкретную установку.

HECTEPOB

Для загрузки ПО в контроллер использую программу xloader,  которая позволяет залить в контроллер hex-файл через штатное ардуинское подключение по usb с эмуляцией последовательного порта и используя штатный загрузчик ардуино. Скомпилировать исходник в hex можно в обычной atmel studio 6

Tygra

#74
Тут с ардуиной то пришлось два дня разбираться, думаю ассемблер будет не подъемным для меня, хотя в универе нравилось, но уже все подчистую забыл. Покажите схематически в каком положении и куда установлен датчик и магнитик.
P\S Пытаюсь скачать протеус, посмотреть чего это такое.

HECTEPOB

Завтра доберусь до машины и сфоткаю как установлен датчик.

По смыслу микросхема SS49E установлена в вертикальной плоскости проходящей через ось вала. Ножками перпендикулярно валу наружу. Магнитов два. Установлены на пластиковой короне, закрепленной на валу. при повороте вала на упор влево к датчику практически вплотную подходит один магнит, вправо соответственно другой. Ориентация магнитов на короне одинаковая, т.е. один магнит подходит к датчику северным полюсом, второй южным.

Добавлено 03 Дек. 2014 в 00:01

Во вложении проект для Proteus Pro 8.1

HECTEPOB

Вчера начал пробовать ПО в железе с силовой частью.  После исправления пары багов и подстройки параметров нормально заработал газ/реверс с пульта (начал с простого). Тестирование рулевого выявило следующее:
1. Потребовалась физическая регулировка датчика (изменение положения магнитов на короне).  Удалось добится суммарного разброса в 2 вольта с более менее линейной характеристикой (решил не усложнять ПО додополнительным табличным преобразованием) .
2. На ассемблере ПО работает более плавно.
3. При подборе коэффициентов и смещений для рулевого всплыла проблема: для того, чтобы колеса возвращались в нейтраль, требуется увеличение коэффициента пропорциональности управляющего воздействия от разности желаемой и фактической скорости. Если увеличить, то в крайних положениях привод входит в болтанку.  Если уменьшить,  колеса до конца не возвращаются в нейтраль. Требуется ввести в закон управления асимметрию.  Т. е.  увеличить управляющее воздействие при движении из крайних положений к нейтрали.
Было уже 4 утра и батарейки в пульте сдохли.  Не успел добить.

HECTEPOB

Обещанные фотки установки датчика.



HECTEPOB

Резюме по китайским Н-мостам.
1. Платы заводские,  качественные.  Хорошие силовые разъемы на винтах.
2. Качество пайки ужаснейшее.  Из 4-х заказанных сходу завелся только один.  На остальных требуется пропайка.
3. Схема сделана на полумостовых драйверах bts7906b от инфинион. На входе стоит регистр 74hc244 используется как усилитель,  хотя в даташитах на драйверы написоно,  что могут управляться напрямую с МК.
4. Управляются двумя ШИМ (по одному на каждый полумост).  Если на входе 1 то верхний ключ открыт,  если 0, то нижний.
5. После пропайки работают хорошо.

Tygra

Тестить нуна бы под критической нагрузкой, то биш под 20-30 ампер. Например одна лампа H4 с большого авто это 55+60вт нагрузки, это около 10 ампер току на обоих нитях, таких две-3 штуки и потестить, В импульсе во время разогрева спиралей как раз будет критический ток для драйверов в 40 ампер. С весом ребенка и машины стартовый ток будет хорошим. По поводу датчика на руле, получается в нейтральном положении оба магнита равноудалены от датчика ? При крайних режимах один из магнитов подходит вплотную, другой максимально отдален. Правильно понял ?

HECTEPOB

По расположению магнитов: да,  все как вы сксказали.

Tygra

ммм, а если 3 датчика установить, середину и два крайних ?

Tygra

Сегодня получил 20шт датчиков. Мелкие заразы, появится время буду пробовать.

HECTEPOB

У меня один датчик и два магнита.  Третий магнит с ходу не вижу куда поставить.  Если магнитов оставлять два и добавлять датчиков, то не понятно как их обсчитывать. Единственный недостаток моей системы - чувствительность в районе нейтрального положения ниже чем в крайних.

HECTEPOB

Все никак не доберусь до машинки. Надеюсь завтра получится. Буду делать асимметрию управления и подбирать параметры.

Tygra

Пока времени нет, планирую 3 датчика 2 магнита и отдельный контроллер на рулевую.

HECTEPOB

#86
Есть подозра что 3 датчика ничего не дадут по сравнению с одним при одинаковом количестве магнитов.

Отдельный контроллер, это на мой взгляд тоже перебор. Мой несчастный Ардуино УНО с лихвой выгребает по производительности, конечно при условии, что ПО работает асинхронно, т.е. все измерения делаются по прерываниям и результаты кладутся в кольцевые буфера, а считывание и обработка уже идет в основном цикле (на сколько я понимаю, на языке ардуино это нереализуемо. Если ошибаюсь, поправьте).

На ардуино Мега 2560 таймеров с захватом дофига (на УНО только один) АЦП и там и  там один но это рояль не играет, при 16 МГц частота преобразования ~125 КГц, а вот частота опроса приемника РУ всего 50 Гц (В лучшем случае 75 если цифровое РУ, ну так вот оно выдает). Т.е. новые значения состояния каналов управления РУ можно получить минимум за 13 миллисекунд (а это реально дохрена)

HECTEPOB

На работе просто завал! До офиса не могу доехать никак (машинка там), поэтому пока нет обновлений.

В воскресенье позвал друга автомеханника, покумекаем на счет подвески и усиления кузова. С отчетом буду как только так сразу.

HECTEPOB

Наконец то еду к машинке.  Пульт РУ зарядил.  Сегодня надеюсь удастся все запустить чтоб ехало и рулилось. Как писал ранее со мной будет монстр автодела,  поможет разместить все компоненты,  подумаем над подвеской и усилением кузова.
Вечером вернусь с долгожданным апдейтом.  Если все взвзлетит,  обещаю снять видос!  Ж:-)

Tygra

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