Форум программистов, компьютерный форум, киберфорум
Arduino
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
0 / 0 / 1
Регистрация: 28.10.2018
Сообщений: 42
1

Arduino Pro Micro Обратная связь в играх

04.07.2020, 16:10. Просмотров 606. Ответов 31
Метки c# (Все метки)

Сделал руль и педали, всё работает. Нашел два моторчика каждый по 5V, подключил их к ардуине а дальше как быть ума не приложу. Вопрос такой: Как считывать данные, которые приходят на ардуино, с порта USB, которые шлет игра с функцией FFB(Обратная связь)? Моторчики будут вибрировать, тем самым создавать вибрацию в руле.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.07.2020, 16:10
Ответы с готовыми решениями:

Описание компонентов платы Arduino Pro Micro
Здравствуйте, только начинаю разбираться в принципе работы платы, и очень хотелось бы чтобы знающий...

Arduino Pro Micro. Отображение в Диспетчере устройств и в Свойства-Оборудование
Добрый день, Делаю в подарок ручник для симрейсинга на базе Ардуино про микро + переменный ...

Помигать внешним диодом на Си. Arduino pro micro.
Приветствую. Вопрос следующий. Как помигать диодом с помощь ножек и не используя arduino IDE?...

Модуль распознавания речи + Arduino Pro mini + Arduino MP3-Sheild
Список компонентов: 1).Модуль распознавания речи.(напряжение питания от 4,5 до 5,5 Вольт DC)...

31
2402 / 1721 / 356
Регистрация: 11.09.2009
Сообщений: 6,321
05.07.2020, 07:54 2
Цитата Сообщение от _iFoR_ Посмотреть сообщение
Сделал руль и педали, всё работает.
"Всё" - то есть подключено по USB и определяется игрой как руль?
0
0 / 0 / 1
Регистрация: 28.10.2018
Сообщений: 42
06.07.2020, 00:07  [ТС] 3
i8085, Arduino распознается как игровое устройство
0
2402 / 1721 / 356
Регистрация: 11.09.2009
Сообщений: 6,321
06.07.2020, 19:56 4
_iFoR_, если вы разобрались с этим, то реализовать FeedBack вообще не должно быть для вас проблемой.
Или не разобрались, а "натянули" чей-то "скетч"? Тогда помочь весьма проблематично.
Какой случай ваш? Какую помощь ждёте?
0
Эксперт .NET
6860 / 4464 / 1072
Регистрация: 25.05.2015
Сообщений: 13,645
Записей в блоге: 13
06.07.2020, 20:08 5
Цитата Сообщение от i8085 Посмотреть сообщение
Какой случай ваш?
......
Цитата Сообщение от _iFoR_ Посмотреть сообщение
Но ведь код не мой, а известного среди электронщиком и DIY ютубера, он точно должен корректно работать и к тому же на видео, где он собственно и делал этот руль, всё работает без проблем
0
2402 / 1721 / 356
Регистрация: 11.09.2009
Сообщений: 6,321
07.07.2020, 02:32 6
Цитата Сообщение от Rius Посмотреть сообщение
Сообщение от _iFoR_
Понятно.
0
0 / 0 / 1
Регистрация: 28.10.2018
Сообщений: 42
07.07.2020, 09:51  [ТС] 7
i8085, По итогу мне было проще написать свой код. В нем работают и кнопки и потенциометры.Я посидел денек, дабы разобраться в этой теме, разобрался и написал свой рабочий код. FeedBack просто не пойму как написать надо, потому что ни разу не сталкивался с этим, а в инете нормального кода не нашел. Имеется два моторчика, "+" и "-" которого подсоединен к ардуине, а сигнал на эти моторчики передается при помощи шим. Теперь задача стоит в том, чтобы получать от игры хоть какой нибудь сигнал. А как его получать вообще не знаю. Функции там, может библиотеку стороннюю подтянуть надо, вообщем не знаю Вот и пишу сюда)
0
2573 / 1165 / 152
Регистрация: 28.10.2011
Сообщений: 4,135
Записей в блоге: 6
07.07.2020, 11:52 8
Цитата Сообщение от _iFoR_ Посмотреть сообщение
FeedBack просто не пойму как написать надо, потому что ни разу не сталкивался с этим
В сети есть примеры. https://cxem.net/mc/mc207.php
В основной программе принимаем данные от хоста и по первому байту сортируем: если $11 (dec 17), то включаем мотор и выставляем ШИМ, если $13 (dec 19) - выключаем мотор:
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
SELECT CASE _usb_rx_buffer(2)   'Тип данных
 
CASE 17
 
IF _usb_rx_buffer(3) = 8 THEN   'Данные ШИМ для мотора
 
Pwm2 = _usb_rx_buffer(4)
 
Ffb_motor = 1   'Включение мотора
 
END IF
 
CASE 19   'Выключение мотора
 
Pwm2 = 128
 
Ffb_motor = 0
 
END SELECT
В конце статьи ссылка на исходники. https://cxem.net/mc/files/mc207_FFB.zip
0
0 / 0 / 1
Регистрация: 28.10.2018
Сообщений: 42
07.07.2020, 11:57  [ТС] 9
locm, Это что за язык программирования?

Добавлено через 1 минуту
locm, Я же в Arduino прошивку заливаю, а там C#
0
Эксперт .NET
6860 / 4464 / 1072
Регистрация: 25.05.2015
Сообщений: 13,645
Записей в блоге: 13
07.07.2020, 12:09 10
Цитата Сообщение от _iFoR_ Посмотреть сообщение
Я же в Arduino прошивку заливаю, а там C#
Там - C/C++ с макросами ардуины.
Цитата Сообщение от _iFoR_ Посмотреть сообщение
Это что за язык программирования?
Bascom-AVR
0
0 / 0 / 1
Регистрация: 28.10.2018
Сообщений: 42
07.07.2020, 12:11  [ТС] 11
locm, Я кстати тоже эту статью читал)

Добавлено через 1 минуту
Rius, Хорошо, мне скинули код на языке Bascom-AVR, как я должен загрузить его в Arduino если там C/C++
0
Эксперт .NET
6860 / 4464 / 1072
Регистрация: 25.05.2015
Сообщений: 13,645
Записей в блоге: 13
07.07.2020, 12:17 12
_iFoR_, вы должны пользоваться своими мозгами и писать код самостоятельно. Можно подглядывать на алгоритмы, реализованные другими. Тогда их язык не будет иметь никакого значения.
Сейчас же вы тупо копипастите.

Я вот про этот Bascom-AVR впервые слышу, но смысл кода всё равно понятен.
0
2573 / 1165 / 152
Регистрация: 28.10.2011
Сообщений: 4,135
Записей в блоге: 6
07.07.2020, 12:26 13
Цитата Сообщение от _iFoR_ Посмотреть сообщение
Хорошо, мне скинули код на языке Bascom-AVR, как я должен загрузить его в Arduino если там C/C++
Заливаете hex файл в микроконтроллер и все работает. https://habr.com/ru/post/151544/
Но я дал ссылку на статью для того чтобы вы посмотрели как реализована обратная связь. Там не так много кода и его можно переписать под ардуину.
По приему данных считываете первый байт из конечной точки если он равен 17 и во втором принятом байте число 8, значит пришли в третьем байте данные для ШИМ. Если в первом байте 19 значит мотор нужно выключить.
0
Эксперт .NET
6860 / 4464 / 1072
Регистрация: 25.05.2015
Сообщений: 13,645
Записей в блоге: 13
07.07.2020, 13:32 14
Чтобы что-то принять с ПК, у устройства должен быть правильно сформированный HID дескриптор.
Скопипастить не получится.
0
0 / 0 / 1
Регистрация: 28.10.2018
Сообщений: 42
07.07.2020, 13:36  [ТС] 15
Rius, Тк всё работает, устройство распознается как "Игровое", в игре ATS тоже всё работает, вот сейчас только проверял. Руль, педали, всё в норме, кроме обратной связи.
0
Эксперт .NET
6860 / 4464 / 1072
Регистрация: 25.05.2015
Сообщений: 13,645
Записей в блоге: 13
07.07.2020, 13:38 16
_iFoR_, обратная связь предусмотрена программой, которую вы взяли у кого-то?
Скиньте ссылку на исходный проект.
0
0 / 0 / 1
Регистрация: 28.10.2018
Сообщений: 42
07.07.2020, 13:45  [ТС] 17
Rius, Я код сам решил написать

Добавлено через 1 минуту
Rius, Вот он:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <HID-Project.h>
 
int Clutch, Back, Foward, Wheel;
 
void setup() {
  Serial.begin(9600);
  Gamepad.begin();
}
 
void loop() {    
  Wheel = map(analogRead(0), 0, 1023, -32768, 32767);
  Wheel = constrain(Wheel, -32768, 32767);
  Gamepad.xAxis(Wheel);
  
  Clutch = map(analogRead(1), 0, 1023, -128, 127);
  Clutch = constrain(Clutch, -128, 127);
  Gamepad.zAxis(Clutch);
 
  Back = map(analogRead(2), 0, 1023, -32768, 32767);
  Back = constrain(Back, -32768, 32767);
  Gamepad.ryAxis(Back);
  
  Foward = map(analogRead(3), 0, 1023, -128, 127);
  Foward = constrain(Foward, -128, 127);
  Gamepad.rzAxis(Foward);
  Gamepad.write();
}
Добавлено через 1 минуту
Rius, А через этот код я пытаюсь хоть что-то да получить из игры, но всё без успешно
C++ (Qt)
1
2
3
4
5
6
if (Serial.available() > 0) {  //если есть доступные данные 
        // отсылаем то, что получили
        Serial.print("I received: ");
        Serial.println(Serial.read(), DEC);
        Serial.println("=======================");
    }
0
Эксперт .NET
6860 / 4464 / 1072
Регистрация: 25.05.2015
Сообщений: 13,645
Записей в блоге: 13
07.07.2020, 13:52 18
Причём тут сериал? Где дескриптор?
0
2573 / 1165 / 152
Регистрация: 28.10.2011
Сообщений: 4,135
Записей в блоге: 6
07.07.2020, 14:09 19
Нужен дескриптор интерфейса чтобы посмотреть как настроены конечные точки и HID Report Descriptor.
Если в нем нет информации что устройство поддерживает обратную связь, ее не будет.
0
0 / 0 / 1
Регистрация: 28.10.2018
Сообщений: 42
07.07.2020, 14:18  [ТС] 20
locm, А как написать этот дескриптор?
И куда его заливать?
И где его писать?

Добавлено через 7 минут
Что самое интересное моя Arduino работает на частоте 8 MHz и по началу, при первом подключении, я выбрал в IDE Micro, вылезла ошибка дескриптора. Через двое суток разобрался в проблеме. Arduino распознается пк как Arduino LilyPad Usb и в IDE тоже нужно выбирать Arduino LilyPad Usb и всё заработает. В программе MMJOY2 Вообще ошибку выдает, как раз таки из-за того что она не правильно распознается.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.07.2020, 14:18

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Прошивка ATMega32U4 Pro Micro
Добрый день всем. Нашел схему в интернете по эмуляции рулевых кнопок BMW в индроиде. купил...

Дисплей TFT 160x128 RGB и плата Arduino Mega 2560 + WiFi ESP8266 (micro usb)
Здравствуйте. Пользуясь случаем задам в этой теме вопрос. Есть дисплей TFT 160x128 RGB и плата...

Наручные часы: zs-042, pro micro, Oled 0,96" 2ic
Итак есть: zs-042, pro micro, Oled 0,96&quot; 2ic на 4 пина. Я могу подсоединить zs-042 или Oled...

Как подключить зарядку к Pro Micro через штатный MicroUSB?
Начал делать клавиатуру с bluetooth 4.0. Прошил CC2541 в HID-профайл (подробности тут: Turning...

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

обратная связь
почему пакеты из 192.168.0.0 (справа) через Router доходят до PC0 а пакеты из 193.168.1.0 (слева)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.