MAL4X Научно-технический форум разработчиков симуляторов и автоматики


Симуляторы перегрузок. DIY электроника. ЭВМ. Компьютерные сети.
Up

Тестирование прошивки для АМС1.5

Строим реалистичный симулятор перегрузок своими руками. Рекомендации. Советы.

Модераторы: Death_Morozz, null, Ale

Сообщение Ale » 13 июн 2012, 22:57

Ale писал(а):CraCk пишет:
насчет передачи даних после рестарта.

Сделаем

Вроде сделал, надо проверить. Если флажок "прием данных" установлен, то после ресета прием данных должен восстанавливаться. По идееИзображение
CraCk писал(а):3. Ограничение на ввод параметров в контролере то есть KpLo 3-100 и т.д. Ну как в терминале.

Поправил.

Кнопку "ресет" прикручу позже, когда обновлять прошивку буду. Пока только прилизал немного прогу, сделал ее "ангельскую" версию, ну и написал мануал, в котором уже размеренно систематизировал то, что наработал. Если будет у кого желание, можете перевести мануал на английский...

Все это вот тут, полный пакет с прошивками 2.0, программой 2.1 и мануалом

http://files.mail.ru/GJ6J3H



Аватара пользователя
Ale
Разработчик
 
Сообщения: 1477
Зарегистрирован: 01 фев 2011, 20:48
Откуда: Дубна
Благодарил (а): 570 раз.
Поблагодарили: 595 раз.
Баллы репутации: 277
ТехнарьТехнарьТехнарь

Сообщение Ale » 16 июн 2012, 12:17

Обновленные версии, 2.1 для прошивки и 2.2 для проги
Добавлен программный ресет MCA. Кроме того в проге появилась возможность вручную подготовить и прокрутить тестовую последовательность данных.

http://files.mail.ru/I36DCS
Аватара пользователя
Ale
Разработчик
 
Сообщения: 1477
Зарегистрирован: 01 фев 2011, 20:48
Откуда: Дубна
Благодарил (а): 570 раз.
Поблагодарили: 595 раз.
Баллы репутации: 277
ТехнарьТехнарьТехнарь

Сообщение Ale » 19 июн 2012, 20:38

В связи с прогрессирующей... пассивностью на форуме, имею сообщить следующее - мы с CraCk опубликовали наконец наш проект на сайте буржуинском. Вот тут.

http://x-simulator.de/forum/...mc1-5-t3912.html


Собственно, Танос заинтересовался, даже попросил портировать проект на его новую плату (AMC 1.6). А еще предложил опубликоваться на x-sim.de и получить ключ 2-го уровня для x-sim 3.0. На что я, естественно, ответил, что проект - продукт коллективный. И если уж получать ключи - то всем вместе... Посмотрим, что получится, короче.
Аватара пользователя
Ale
Разработчик
 
Сообщения: 1477
Зарегистрирован: 01 фев 2011, 20:48
Откуда: Дубна
Благодарил (а): 570 раз.
Поблагодарили: 595 раз.
Баллы репутации: 277
ТехнарьТехнарьТехнарь

Сообщение Death_Morozz » 19 июн 2012, 23:27

Собственно, Танос заинтересовался, даже попросил портировать проект на его новую плату (AMC 1.6). А еще предложил опубликоваться на x-sim.de и получить ключ 2-го уровня для x-sim 3.0.


Изображение
Жидковато x-sim плавает со своими ключами. А то, что подтверждает подозрения null - Танос не имеет к прошивке никакого отношения вообще. Было интересно наблюдать за тем, когда он утверждал что использовать IRL - это неправильно, не надо так делать и еще много всего разного - несуразного.


А по существу, хорошая работа сделана опять хорошо (уже во второй раз) небольшой, но сильной командой симерского сообщества России и Украины (кого забыл - напомните).
Изображение
Хочешь сделать хорошо - сделай это сам.
Изображение
Аватара пользователя
Death_Morozz
Фраерок
 
Сообщения: 2839
Зарегистрирован: 11 янв 2007, 23:35
Откуда: Ростов-на-Дону
Благодарил (а): 822 раз.
Поблагодарили: 312 раз.
Баллы репутации: 200
ТехнарьТехнарьТехнарь

Сообщение Ale » 19 июн 2012, 23:42

Death_Morozz писал(а):Жидковато x-sim плавает со своими ключами.

Я чем дольше вглядываюсь в "их-сим", тем больше утверждаюсь в мысли, что уж больно монструозным он вышел у них. Имхо, пора собственный облегченный вариант клепать...
Аватара пользователя
Ale
Разработчик
 
Сообщения: 1477
Зарегистрирован: 01 фев 2011, 20:48
Откуда: Дубна
Благодарил (а): 570 раз.
Поблагодарили: 595 раз.
Баллы репутации: 277
ТехнарьТехнарьТехнарь

Сообщение AlexVr » 13 июл 2012, 19:44

Уважаемые, а в новой проге с новой прошивкой у всех Кр изменяется?
Я меняю цифры, но программа не всегда предлагает сохранить изменения.
После перезагрузки программа считывает новые Кр из контроллера или файла *.ini ?
У меня движок стабильно ловит раскачку, не могу от нее избавиться.
Многое пропустил, подскажите в чем дело?
Аватара пользователя
AlexVr
SIMER
 
Сообщения: 449
Зарегистрирован: 05 апр 2010, 20:48
Благодарил (а): 23 раз.
Поблагодарили: 32 раз.
Баллы репутации: 71
Технарь

Сообщение CraCk » 13 июл 2012, 20:09

AlexVr писал(а):Я меняю цифры, но программа не всегда предлагает сохранить изменения.

вводиш новое значение потом жмешь ентер, а потом сохраняеш еппром контролера кнопкой возле параметров МК. Если не получается тогда старым Таносовским методом через терминал.
AlexVr писал(а):После перезагрузки программа считывает новые Кр из контроллера или файла *.ini ?

Когда жмешь кнопку прием данных тогда от МК.
Аватара пользователя
CraCk
SIMER
 
Сообщения: 371
Зарегистрирован: 31 мар 2010, 21:25
Откуда: Made in Ukraine
Благодарил (а): 67 раз.
Поблагодарили: 104 раз.
Баллы репутации: 112
ТехнарьТехнарь

Сообщение AlexVr » 13 июл 2012, 21:11

CraCk писал(а):потом жмешь ентер


Вот! То что нужно. Заработало! Выставил все оптимально.
Проработало правда не долго 10 мин. и задымился транзистор в мосту
Изображение
Буду разбираться.
Аватара пользователя
AlexVr
SIMER
 
Сообщения: 449
Зарегистрирован: 05 апр 2010, 20:48
Благодарил (а): 23 раз.
Поблагодарили: 32 раз.
Баллы репутации: 71
Технарь

Сообщение CraCk » 13 июл 2012, 22:02

AlexVr писал(а):Проработало правда не долго 10 мин. и задымился транзистор в мосту

Какой то стремный у тебя мост. Можно обратиться за помощью к Ale чтоб он сделал разводку своего китайского моста, он намного надежней будет.
Даже на буржуйском форуме Танос начал клепать новый мост и тоже с опто развязкой.
Аватара пользователя
CraCk
SIMER
 
Сообщения: 371
Зарегистрирован: 31 мар 2010, 21:25
Откуда: Made in Ukraine
Благодарил (а): 67 раз.
Поблагодарили: 104 раз.
Баллы репутации: 112
ТехнарьТехнарь

Сообщение AlexVr » 14 июл 2012, 19:31

Заменил транзистор. Все работает.
Прога класс!!! По графикам отлично выставляется синхронность!
Респект Автору!
Аватара пользователя
AlexVr
SIMER
 
Сообщения: 449
Зарегистрирован: 05 апр 2010, 20:48
Благодарил (а): 23 раз.
Поблагодарили: 32 раз.
Баллы репутации: 71
Технарь

Сообщение Ale » 15 июл 2012, 21:43

AlexVr писал(а):Респект Автору!

Доброе слово и кошке приятно (с) Изображение Изображение
Аватара пользователя
Ale
Разработчик
 
Сообщения: 1477
Зарегистрирован: 01 фев 2011, 20:48
Откуда: Дубна
Благодарил (а): 570 раз.
Поблагодарили: 595 раз.
Баллы репутации: 277
ТехнарьТехнарьТехнарь

Сообщение Death_Morozz » 16 июл 2012, 21:43

ХЕ-ХЕ! H-B таноса - даже не полумост китайский. Это замечательно! То что оптопару применил, это тоже радость, но как обстоят дела с подтяжкой логики, я пока не понимаю. Гугл транслятор ему помощь.
Хочешь сделать хорошо - сделай это сам.
Изображение
Аватара пользователя
Death_Morozz
Фраерок
 
Сообщения: 2839
Зарегистрирован: 11 янв 2007, 23:35
Откуда: Ростов-на-Дону
Благодарил (а): 822 раз.
Поблагодарили: 312 раз.
Баллы репутации: 200
ТехнарьТехнарьТехнарь

Сообщение Ale » 13 ноя 2012, 13:39

Приводу описание форматов сообщений, которые понимает программа xSimCTRL.
Таких сообщений два, оба имеют длину 26 байт и оформлены в виде массива символов. Дальше я буду оперировать непосредственно символами.

Первое - сообщение с текущими настройками прошивки. Первый байт = символ "{", последний = символ "}". Между ними 24 символа - 16-ричные представления чисел. Без пробелов. Байтовые параметры (например - Kp1Lo) представлены двумя символами. Параметры типа word - четырьмя.

- первая пара символов - Kp1LO
- следующая пара - Kp1HI
- следующая пара - Kp2LO
- следующая пара - Kp2HI
- следующая пара - KpTH
- следующая пара - MinDIST
- следующие 4 символа - MinPWM
- следующая пара - Sens1LO
- следующая пара - Sens1HI
- следующая пара - Sens2LO
- следующая пара - Sens2HI

Пример передаваемой посылки - "{0A140A14050000FF02FC02FC}"

Еще раз напоминаю - посылаются именно символьные предастваления чисел. Это означает, что если написано "0A" - значит посылается два байта подряд - '0' (ASCII код = 0x30) и 'A' (ASCII код = 0x41)


Второе возможное сообщение - текущие величины (сенсоры, положения моторов, ШИМ). Это тоже набор (26 шт) символов, но первый и последний символ - "[" и "]"

- первая пара символов - motor1_set_position (заданная позиция)
- следующие 4 символа - motor1_get_position (реальная позиция с датчиков)
- следующие 4 символа - PWM1 value (текущее значение ШИМ)
- следующая пара - current KP1 value (текущее значение Kp1)
- следующая пара - motor2_set_position
следующие 4 символа - motor2_get_position (from feedback sensor)
- следующие 4 символа - PWM2 value
- следующая пара - current KP2 value



(Добавление)
Контроллер от компа получает команды в едином формате - 0x41, 0x42, 0xFF, a0, a1.
где - первые два байта - заголовок = "AB"
третий байт - команда (0xFF - команда пересылки новых позиций для двух осей)
четвертый и пятый байты - данные

Все остальные управляющие команды с компа на контроллер выполнены в том же формате
Список команд, которые понимает прошивка: (если отдельно не указано - данные, идущие за командой игнорируются)

Следующие 3 команды работают только в прошивке с энкодерами
0x7F : // команда для проведения цикла калибровки (по концевикам для двух энкодеров)
0x7E : // команда для проведения цикла калибровки (только для второго энкодера)
0x7D : // команда для проведения цикла калибровки (только для первого энкодера)

команды установки параметров прошивки. Значения передаются в байтах 4 и 5
0x10: // задать параметр Kp1Lo
0x11: // задать параметр Kp1Hi
0x12: // задать параметр Kp2Lo
0x13: // задать параметр Kp2Hi
0x14: // задать параметр minDist
0x15: // задать параметр Kp_Th
0x16: // задать параметр minPWM
0x17: // задать параметр Sens1Lo
0x18: // задать параметр Sens1Hi
0x19: // задать параметр Sens1Lo
0x1A: // задать параметр Sens1Hi

0x1B: // включить (данные <> 0)/ выключить( = 0) автопередачу данных на комп
0x1C: // сохранить настройки в EEPROM (данные <>0) или выслать настройки на комп (данные = 0)
0x1F: // если данные = 0x55AA - программа уходит на перезгрузку (RESET)

Вот вроде всё...


Изображение
Аватара пользователя
Ale
Разработчик
 
Сообщения: 1477
Зарегистрирован: 01 фев 2011, 20:48
Откуда: Дубна
Благодарил (а): 570 раз.
Поблагодарили: 595 раз.
Баллы репутации: 277
ТехнарьТехнарьТехнарь

Сообщение taran_ob » 19 ноя 2012, 22:59

Ale, разреши несколько волнующих вопросов задать...
1 Есть ли ограничения на максимальное значение ШИМ, для нормальной работы с интегральными драйверами верхнего и нижнего плеча? И какая частота ШИМ?
2 В каком режиме управляется мост в паузах ШИМ - торможение (нижние ключи открыты), или реверс (инверсный ШИМ на противоположенную пару полевиков)?
3 Период расчета ШИМа (период интегрирования) 3,7мс?
4 Какая максимальная частота сигналов с энкодеров?
5 Можно ли увеличить диапазон импульсов с энкодеров? Сейчас как я понял 1024 на 180град?
6 Есть ли мысли по обработке обратной связи по скорости, для компенсации веса игрока и стабилизации динамики?
7 Какой минимальный период приема координат от пк и на какой скорости?



извините, что влез.
taran_ob
Комсорг
 
Сообщения: 137
Зарегистрирован: 27 окт 2012, 22:05
Откуда: Ukraine
Благодарил (а): 5 раз.
Поблагодарили: 11 раз.
Баллы репутации: 19
Новичок

Сообщение Ale » 20 ноя 2012, 07:36

taran_ob писал(а):1 Есть ли ограничения на максимальное значение ШИМ, для нормальной работы с интегральными драйверами верхнего и нижнего плеча? И какая частота ШИМ?

Физических ограничений нет, как я понимаю. Логически (программно) я в прошивке небольшое ограничение ввел. Частота ШИМ в 1024 раза ниже частоты кварца. Порядка 18 кГц.

taran_ob писал(а): В каком режиме управляется мост в паузах ШИМ - торможение (нижние ключи открыты), или реверс (инверсный ШИМ на противоположенную пару полевиков)?

В паузах на ножках ШИМ низкий лог. уровень. Остальное зависит от моста. Как правило это означает, что открыты нижние ключи - динамическое торможение.

taran_ob писал(а):3 Период расчета ШИМа (период интегрирования) 3,7мс?

Да. Только я бы убрал слово "интегрирования"

taran_ob писал(а):4 Какая максимальная частота сигналов с энкодеров?

Порядка 10 кгц. Вообще в прошивке опрос энкодеров происходит по таймеру, период опроса = 20 кГц.

taran_ob писал(а):5 Можно ли увеличить диапазон импульсов с энкодеров? Сейчас как я понял 1024 на 180град?

Можно. Увеличивай Изображение

taran_ob писал(а):6 Есть ли мысли по обработке обратной связи по скорости, для компенсации веса игрока и стабилизации динамики?

Т.е добавить дифференциальную составляющую в регулятор? Реализовать ПД регулирование вместо П? Пока не думал, но давай предложения по алгоритму. Обсудим.

taran_ob писал(а):7 Какой минимальный период приема координат от пк и на какой скорости?

Скорость порта в прошивке - 115200 бод. С такой скоростью передавать команду из 5 байт на контроллер можно с максимальной частотой 2 КГц (период 0.5 мс). Но смысла в этом нет, так как период обработки ШИМ 3.7 мс. Я думаю, что наиболее разумным периодом передачи в данном конкретном случае является период порядка 8..10 мс.
Аватара пользователя
Ale
Разработчик
 
Сообщения: 1477
Зарегистрирован: 01 фев 2011, 20:48
Откуда: Дубна
Благодарил (а): 570 раз.
Поблагодарили: 595 раз.
Баллы репутации: 277
ТехнарьТехнарьТехнарь

Пред.След.

Вернуться в X-SIMULATOR и RU-SIMULATOR & SimTools

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 24

x

#{title}

#{text}