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


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

Новейшая прошивка для Arduino.

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

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

Re: Новейшая прошивка для Arduino.

Сообщение Vladimir » 10 фев 2016, 11:52

Всем привет!
Давно у меня чесались руки сделать модельку симулятора Fly Motion, так как в натуральную величину ставить в квартире его просто негде :) .
Даже заказал двигатели http://ru.aliexpress.com/item/T-Best-Price-promotion-12V-DC-100RPM-High-Torque-Gear-Box-Electric-Motor-25mm/32328884447.html,
датчики холла 360гр. http://ru.aliexpress.com/item/Full-Circle-No-Dead-Angle-12-Bit-Holzer-Angle-Sensor-0-360-Degree-0-5V-Output/32422949989.html,
и мост http://ru.aliexpress.com/item/M112-New-L298P-Shield-R3-DC-Motor-Driver-Module-2A-H-Bridge-2-way-For-Arduino/32214100722.html.
Но как то все руки не доходили. Но вот попался мне на глаза проект http://www.xsimulator.net/community/threads/problems-with-motor-responsiveness-w-game.8041/#post-98201,
который с в квартире уже помещается :) . Правда одна ось 360 градусов, но все равно очень интересно. В общем смастерил я быстренько его модельку из куска ламината.
На одной оси датчик холла 360гр., а на другой потенциометр 10 кОм.
Прошивку залил последнюю "Ale_2DOF_Ard_PD_30_11_15" с небольшими изменениями:

const int potMinR=208;
const int potMaxR=815;
const int potMinL=0;
const int potMaxL=1016;

#define potL A0
#define potR A1

#define motorL_PWM 9
#define motorL_DIRA 8
#define motorL_DIRB 12

#define motorR_PWM 10
#define motorR_DIRA 11
#define motorR_DIRB 13

Пины другие прописал, так как распаял сначала под прошивку "xsim_arduino_uno_v3_by_Ale_SimToolsCompatible", а перепаивать не хотелось.
Константы 0-1016 подобрал чтобы после масштабирования в прошивке получился диапазон 0-255 и был плавный переход из 255 в 0.
Но прошивка не расчитана полный оборот 360 градусов и при переходе через ноль происходят незапланированные движения.
Можно ли как то адаптировать прошивку для корректной обработки полного оборота 360 градусов?

phpBB [video]


phpBB [video]
Вложения
20160210_113936.jpg
20160210_113936.jpg (1.49 МБ) Просмотров: 2964
Vladimir
SIMER
 
Сообщения: 35
Зарегистрирован: 18 окт 2015, 15:29
Откуда: Екатеринбург
Благодарил (а): 6 раз.
Поблагодарили: 50 раз.
Баллы репутации: 28
Новичок

Re: Новейшая прошивка для Arduino.

Сообщение Ale » 10 фев 2016, 15:50

Vladimir писал(а):Можно ли как то адаптировать прошивку для корректной обработки полного оборота 360 градусов?

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

Re: Новейшая прошивка для Arduino.

Сообщение mds3d » 10 фев 2016, 21:52

Vladimir писал(а): В общем смастерил я быстренько его модельку из куска ламината.
- я немного не понял, вы планируете моторчик напрямую подключить, без редуктора ? а какой груз вы планируете вращать-то ?
На одной оси датчик холла 360гр., а на другой потенциометр 10 кОм.
- как вариант многооборотистый резистор на 10кОм не рассматривали ?
- в соседних ветках мы как-то уже обсуждали варианты использования энкодеров а так-же гироскопа, ваше мнение по этому вопросу интересно было бы узнать...
Аватара пользователя
mds3d
SIMER
 
Сообщения: 176
Зарегистрирован: 09 дек 2013, 05:57
Откуда: Amman, Jordan
Благодарил (а): 62 раз.
Поблагодарили: 48 раз.
Баллы репутации: 45
Пользователь

Re: Новейшая прошивка для Arduino.

Сообщение Vladimir » 10 фев 2016, 22:28

mds3d писал(а):- я немного не понял, вы планируете моторчик напрямую подключить, без редуктора ? а какой груз вы планируете вращать-то ?

Это просто модель для отработки программного обеспечения и визуализации, никакой груз она вращать не будет. И редуктор в этих моторчиках есть.
А то воплощу я свою задумку в большом железе, а окажется то прошивка не работает, то плагин кривой, то версия игры не та и тд..
Если с программной частью вопросов не будет, тогда и можно думать о постройке симулятора.
mds3d писал(а):- как вариант многооборотистый резистор на 10кОм не рассматривали ?
- в соседних ветках мы как-то уже обсуждали варианты использования энкодеров а так-же гироскопа, ваше мнение по этому вопросу интересно было бы узнать...

- многооборотный резистор я не представляю как практически можно использовать,
- под энкодер нужна нужна специальная прошивка, калибровка при включении,
- с гироскопом еще больше проблем: прошивка, сопряжение с контроллером и не факт, что он будет работать как нужно.
В случае с датчиком холла 360 градусов уже есть почти все: прошивка с ним работает, он точно выдает положение в пространстве.
Единственная проблема, корректная обработка перехода через ноль. Надеюсь эта задача решаема.
Vladimir
SIMER
 
Сообщения: 35
Зарегистрирован: 18 окт 2015, 15:29
Откуда: Екатеринбург
Благодарил (а): 6 раз.
Поблагодарили: 50 раз.
Баллы репутации: 28
Новичок

Re: Новейшая прошивка для Arduino.

Сообщение mds3d » 16 фев 2016, 07:02

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

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

Спасибо.
Аватара пользователя
mds3d
SIMER
 
Сообщения: 176
Зарегистрирован: 09 дек 2013, 05:57
Откуда: Amman, Jordan
Благодарил (а): 62 раз.
Поблагодарили: 48 раз.
Баллы репутации: 45
Пользователь

Re: Новейшая прошивка для Arduino.

Сообщение Vladimir » 16 фев 2016, 08:43

mds3d писал(а):- многооборотистый резистор практически то-же самое что и обыкновенный, а амплитуду движений и скорость можно менять уже на уровне софта выставив амплитуду и ШИМ методом научного тыка исходя из конструкции вашей модели

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

Датчик холла и энкодер принципиально различаются. И применяется датчик холла в конструкциях симуляторов повсеместно.
Если мне не изменяет память Ale себе тоже датчики холла купил, только на 180 градусов. А подключается он к прошивке вместо переменного резистора.
Vladimir
SIMER
 
Сообщения: 35
Зарегистрирован: 18 окт 2015, 15:29
Откуда: Екатеринбург
Благодарил (а): 6 раз.
Поблагодарили: 50 раз.
Баллы репутации: 28
Новичок

Re: Новейшая прошивка для Arduino.

Сообщение Vladimir » 13 мар 2016, 18:20

Всем привет! Вот сваял на основе прошивки http://www.xsimulator.net/community/marketplace/arduino-code-2dof-and-2-pins-direction-hbridge.67/ поддержку 360 градусов.
Алгоритм обработки мне написал сын (учится на программиста), а я как смог вставил в прошивку :) . Переназначил пины, разделил обработку осей. В общем одна ось 360 градусов,
а другая 180, как на моем макете. Немного видео:
phpBB [video]
Вложения
RacingMat_2DOF_Arduino_code_360.rar
(3.32 КБ) Скачиваний: 32
Vladimir
SIMER
 
Сообщения: 35
Зарегистрирован: 18 окт 2015, 15:29
Откуда: Екатеринбург
Благодарил (а): 6 раз.
Поблагодарили: 50 раз.
Баллы репутации: 28
Новичок

Re: Новейшая прошивка для Arduino.

Сообщение mds3d » 16 мар 2016, 12:23

Vladimir писал(а): В общем одна ось 360 градусов, а другая 180
Доброе время суток старожилам форума !
- здесь с одним проектом решил поэкспериментировать,(собрал у себя на заводе буквально из подручных материалов (если кому интересно могу поделится опытом)), настало время подключения..., вроде ни чего сложного на первый взгляд, но все-таки есть одно "НО"
- как бы вы посоветовали подключить такое устройство, чтобы можно было "переназначить" вращение платформы либо на педали, либо на руль (в зависимости от запускаемой игры)
phpBB [video]
Аватара пользователя
mds3d
SIMER
 
Сообщения: 176
Зарегистрирован: 09 дек 2013, 05:57
Откуда: Amman, Jordan
Благодарил (а): 62 раз.
Поблагодарили: 48 раз.
Баллы репутации: 45
Пользователь

Re: Новейшая прошивка для Arduino.

Сообщение Vladimir » 16 мар 2016, 19:12

mds3d писал(а):- как бы вы посоветовали подключить такое устройство, чтобы можно было "переназначить" вращение платформы либо на педали, либо на руль (в зависимости от запускаемой игры)

Наверное самый простой способ, это написать плагин под SimTools для перехвата команд различных USB устройств управления (если это возможно).
В противном случае надо писать свою программу для этих целей.
Vladimir
SIMER
 
Сообщения: 35
Зарегистрирован: 18 окт 2015, 15:29
Откуда: Екатеринбург
Благодарил (а): 6 раз.
Поблагодарили: 50 раз.
Баллы репутации: 28
Новичок

Re: Новейшая прошивка для Arduino.

Сообщение Vladimir » 17 мар 2016, 12:44

Кстати вспомнил что попадалось мне что-то для джойстика среди плагинов, и точно-есть Joystick_Plugin. Попробовал, работает у меня с джойстиком Defender Cobra M5, геймпадом Xbox 360
и с рулем Logitech Driving Force GT. Нужно установить плагин и запустить программу SimTools_Joystick из архива, чтобы SimTools увидел джойстик.
Vladimir
SIMER
 
Сообщения: 35
Зарегистрирован: 18 окт 2015, 15:29
Откуда: Екатеринбург
Благодарил (а): 6 раз.
Поблагодарили: 50 раз.
Баллы репутации: 28
Новичок

Re: Новейшая прошивка для Arduino.

Сообщение mds3d » 26 мар 2016, 01:42

Vladimir писал(а):....Переназначил пины, разделил обработку осей. В общем одна ось 360 градусов, а другая 180
Привет!
- немного непонятно относительно пина N-13,
Код: Выделить всё
int inBpin[2] = {
  12, 13}; // INB: Counter-clockwise input
- во время торможения первого двигателя (либо смены направления вращения второго двигателя) начинает моргать пин N-13 и оба мотора останавливаются буквально на пару секунд во время моргания.....
- это происходит не каждый раз..., в частности непонятен алгоритм срабатывания пина-13....,(проверял на ардуино-МЕГА-2560)
Спасибо.
Аватара пользователя
mds3d
SIMER
 
Сообщения: 176
Зарегистрирован: 09 дек 2013, 05:57
Откуда: Amman, Jordan
Благодарил (а): 62 раз.
Поблагодарили: 48 раз.
Баллы репутации: 45
Пользователь

Re: Новейшая прошивка для Arduino.

Сообщение Vladimir » 26 мар 2016, 08:12

mds3d писал(а):- во время торможения первого двигателя (либо смены направления вращения второго двигателя) начинает моргать пин N-13 и оба мотора останавливаются буквально на пару секунд во время моргания.....
- это происходит не каждый раз..., в частности непонятен алгоритм срабатывания пина-13....,(проверял на ардуино-МЕГА-2560)


Я подключал по схеме на рисунке.
Причем пины 12 и 13 не использовал.
И не обратил внимание на строку:

int statpin = 13; //not explained by Sparkfun

Можно изменить в ней 13 на другой неиспользуемый пин, например 7.
Либо попробовать прописать пины как было в оригинальной прошивке:

/* VNH2SP30 pin definitions*/
int inApin[2] = {
7, 4}; // INA: Clockwise input
int inBpin[2] = {
8, 9}; // INB: Counter-clockwise input
int pwmpin[2] = {
5, 6}; // PWM input
Вложения
Arduino_2dof_from_Ale.jpg
Arduino_2dof_from_Ale.jpg (244.72 КБ) Просмотров: 2676
Vladimir
SIMER
 
Сообщения: 35
Зарегистрирован: 18 окт 2015, 15:29
Откуда: Екатеринбург
Благодарил (а): 6 раз.
Поблагодарили: 50 раз.
Баллы репутации: 28
Новичок

Re: Новейшая прошивка для Arduino.

Сообщение maximag » 31 мар 2016, 11:32

Здравствуйте форумчане! Хотелось бы узнать как Вы преодолеваете "шарнирный замок" для управляющих креслом узлов?
maximag
Зашел на огонёк
 
Сообщения: 1
Зарегистрирован: 31 мар 2016, 11:24
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Баллы репутации: 0

Re: Новейшая прошивка для Arduino.

Сообщение SimAl » 01 апр 2016, 18:27

maximag писал(а):Здравствуйте форумчане! Хотелось бы узнать как Вы преодолеваете "шарнирный замок" для управляющих креслом узлов?
Никак, откуда ему возникнуть? Во-первых для этого нужно 3 оси для вращения, что большая редкость. Во-вторых ампитуда как минимум 90 градусов, что очень большая редкость. В-третьих он там принципиально возникнуть не может, поскольку это явление относится к гироскопу, т.е. когда усилие направлено изнутри подвеса, а в нашем случае оно направлено снаружи, так что никакими глобальными проблемами не грозило бы.
Аватара пользователя
SimAl
SIMER
 
Сообщения: 342
Зарегистрирован: 22 ноя 2013, 20:03
Откуда: Кропивницкий
Благодарил (а): 56 раз.
Поблагодарили: 231 раз.
Баллы репутации: 108
ТехнарьТехнарь

Re: Новейшая прошивка для Arduino.

Сообщение Ztas » 20 апр 2016, 20:00

Приветствую. Такая проблемка - на слабом ноутбуке с ХР протестил сим отлично. Все двигается и вполне адекватно. Игры только не запустишь. После подключил к компу - идет огромная задержка. Передвинул курсор положения оси - ось отработала через секунду. В чем может быть причина?
Аватара пользователя
Ztas
Новичок
 
Сообщения: 16
Зарегистрирован: 04 июн 2015, 13:12
Благодарил (а): 2 раз.
Поблагодарили: 10 раз.
Баллы репутации: 5

Пред.След.

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

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

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

x

#{title}

#{text}