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

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

04.07.2020, 16:10. Просмотров 604. Ответов 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
2573 / 1165 / 152
Регистрация: 28.10.2011
Сообщений: 4,130
Записей в блоге: 6
07.07.2020, 14:24 21
Цитата Сообщение от _iFoR_ Посмотреть сообщение
А как написать этот дескриптор?
Ссылку на статью дал выше. Там все есть.
HID дескриптор джойстика.
QBasic/QuickBASIC
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
DATA &H05 , &H01                                            '  Usage Page (Desktop),
DATA &H09 , &H04                                            '  Usage (Joystik),
DATA &HA1 , &H01                                            '  Collection (Application),
DATA &HA1 , &H02                                            '      Collection (Logical),
DATA &H75 , &H08                                            '          Report Size (8 bit),
DATA &H95 , &H05                                            '          Report Count (5 field),
DATA &H15 , &H00                                            '          Logical Minimum (0),
DATA &H26 , &HFF , &H00                                     '          Logical Maximum (255),
DATA &H35 , &H00                                            '          Physical Minimum (0),
DATA &H46 , &HFF , &H00                                     '          Physical Maximum (255),
DATA &H09 , &H30                                            '          Usage (X),
DATA &H09 , &H31                                            '          Usage (Y),
DATA &H09 , &H32                                            '          Usage (Z),
DATA &H09 , &H32                                            '          Usage (Z),
DATA &H09 , &H35                                            '          Usage (Rz),
DATA &H81 , &H02                                            '              >>>> Input (Variable), *** Joysticks ***
DATA &H75 , &H04                                            '          Report Size (4 bit),
DATA &H95 , &H01                                            '          Report Count (1 field),
DATA &H25 , &H07                                            '          Logical Maximum (7),
DATA &H46 , &H3B , &H01                                     '          Physical Maximum (315),
DATA &H65 , &H14                                            '          Unit (Degrees),
DATA &H09 , &H39                                            '          Usage (Hat Switch),
DATA &H81 , &H42                                            '              >>>> Input (Variable), *** Hat ***
DATA &H65 , &H00                                            '          Unit (0),
DATA &H75 , &H01                                            '          Report Size (1 bit),
DATA &H95 , &H0C                                            '          Report Count (12 fields),
DATA &H25 , &H01                                            '          Logical Maximum (1),
DATA &H45 , &H01                                            '          Physical Maximum (1),
DATA &H05 , &H09                                            '          Usage Page (Button),
DATA &H19 , &H01                                            '          Usage Minimum (1),
DATA &H29 , &H0C                                            '          Usage Maximum (12),
DATA &H81 , &H02                                            '              >>>> Input (Variable), *** Buttons ***
DATA &H06 , &H00 , &HFF                                     '          Usage Page (Vendor defined),
DATA &H75 , &H01                                            '          Report Size (1 bit),
DATA &H95 , &H08                                            '          Report Count (8 field),
DATA &H25 , &H01                                            '          Logical Maximum (1),
DATA &H45 , &H01                                            '          Physical Maximum (1),
DATA &H09 , &H01                                            '          Usage (1),
DATA &H81 , &H02                                            '              >>>> Input (Variable),
DATA &HC0                                                   '      End Collection,
DATA &HA1 , &H02                                            '      Collection (Logical),
DATA &H75 , &H08                                            '          Report Size (8 bit),
DATA &H95 , &H07                                            '          Report Count (7 fields),
DATA &H46 , &HFF , &H00                                     '          Physical Maximum (255),
DATA &H26 , &HFF , &H00                                     '          Logical Maximum (255),
DATA &H09 , &H02                                            '          Usage (2),
DATA &H91 , &H02                                            '              <<<< Output (Variable), *** Vibration & Control ***
DATA &HC0                                                   '      End Collection,
DATA &HC0                                                   '  End Collection
За обратную связь отвечает.
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
DATA &HA1 , &H02                                            '      Collection (Logical),
DATA &H75 , &H08                                            '          Report Size (8 bit),
DATA &H95 , &H07                                            '          Report Count (7 fields),
DATA &H46 , &HFF , &H00                                     '          Physical Maximum (255),
DATA &H26 , &HFF , &H00                                     '          Logical Maximum (255),
DATA &H09 , &H02                                            '          Usage (2),
DATA &H91 , &H02                                            '              <<<< Output (Variable), *** Vibration & Control ***
DATA &HC0                                                   '      End Collection,
Цитата Сообщение от _iFoR_ Посмотреть сообщение
И где его писать?
В коде. Открывайте HID библиотеку ардуины и ищите в ней дескрипторы. Как найдете, модифицируйте их под обратную связь.
0
Эксперт .NET
6860 / 4464 / 1072
Регистрация: 25.05.2015
Сообщений: 13,643
Записей в блоге: 13
07.07.2020, 14:51 22
Он уже написан тем, у кого вы этот код взяли готовый.
Где-то в скетчах.

Нельзя просто так взять и модифицировать дескриптор, если знаний нет...

Добавлено через 22 минуты
_iFoR_, Интерфейс USB. Практика использования и программирования - Павел Агуров, хотя бы 1 и 8 главы прочитайте.
0
0 / 0 / 1
Регистрация: 28.10.2018
Сообщений: 42
07.07.2020, 16:18  [ТС] 23
locm, Я нашел вот это:
C++ (Qt)
1
2
3
4
5
6
7
8
9
    0x05, 0x01,                         /*   USAGE_PAGE (Generic Desktop) */
    0x09, 0x39,                         /*   USAGE (Hat switch) */
    0x09, 0x39,                         /*   USAGE (Hat switch) */
    0x15, 0x01,                         /*   LOGICAL_MINIMUM (1) */
    0x25, 0x08,                         /*   LOGICAL_MAXIMUM (8) */
    0x95, 0x02,                         /*   REPORT_COUNT (2) */
    0x75, 0x04,                         /*   REPORT_SIZE (4) */
    0x81, 0x02,                         /*   INPUT (Data,Var,Abs) */
    0xc0                                /* END_COLLECTION */
Добавлено через 36 секунд
locm, Это было в библиотеке HID-master
0
2573 / 1165 / 152
Регистрация: 28.10.2011
Сообщений: 4,130
Записей в блоге: 6
07.07.2020, 16:44 24
Это описание передачи из устройства в комп (INPUT), а не наоборот (OUTPUT) и вообще не соответствует формату который я привел выше.
0
0 / 0 / 1
Регистрация: 28.10.2018
Сообщений: 42
07.07.2020, 16:51  [ТС] 25
locm, А я не могу найти формат данных который начинался бы с &H** они все начинаются с 0x** как быть?
0
2573 / 1165 / 152
Регистрация: 28.10.2011
Сообщений: 4,130
Записей в блоге: 6
07.07.2020, 16:58 26
Это особенности языка. В баскоме &H. В Си 0x.
Дело не в символах с которых начинается шестнадцатеричное число, а в данных дескриптора. Анализируя их комп понимает что за устройство к нему подключено, какие данные и в каком формате оно передает и что ему нужно отправлять и в каком формате.
0
0 / 0 / 1
Регистрация: 28.10.2018
Сообщений: 42
07.07.2020, 17:00  [ТС] 27
locm, Я не понимаю связь баскома и Arduino. В Arduino ведь язык "Си" как там баском оказался?
0
2573 / 1165 / 152
Регистрация: 28.10.2011
Сообщений: 4,130
Записей в блоге: 6
07.07.2020, 17:19 28
В Arduino микроконтроллер AVR для которого можно скомпилировать прошивку в Bascom-AVR.
Но в данном случае это совершенно неважно. USB дескрипторы одинаковые независимо от того какой микроконтроллер, т. к. они стандартизированы и передаются компу для идентификации устройства.
0
0 / 0 / 1
Регистрация: 28.10.2018
Сообщений: 42
07.07.2020, 17:21  [ТС] 29
locm, А если я компилирую туда прошивку баскома, то прошивка Cи слетит?
0
2573 / 1165 / 152
Регистрация: 28.10.2011
Сообщений: 4,130
Записей в блоге: 6
07.07.2020, 17:36 30
Прошивка может быть только одна.
Разберитесь с HID Report Descriptor добавив в него информацию что устройство поддерживает FFB и принимайте эти данные из конечной точки указанной в дескрипторе интерфейса.
0
0 / 0 / 1
Регистрация: 28.10.2018
Сообщений: 42
07.07.2020, 17:38  [ТС] 31
locm, а что нужно написать чтобы добавить ту самую информацию что устройство поддерживает FFB. И в каком файле это писать?
0
2573 / 1165 / 152
Регистрация: 28.10.2011
Сообщений: 4,130
Записей в блоге: 6
07.07.2020, 18:17 32
Цитата Сообщение от _iFoR_ Посмотреть сообщение
что нужно написать чтобы добавить ту самую информацию что устройство поддерживает FFB.
Выше я выложил данные.

Цитата Сообщение от _iFoR_ Посмотреть сообщение
И в каком файле это писать?
Смотрите библиотеки ардуины связанные с USB HID. Я не использую ArduinoIDE, т. к. пишу для STM32 и не смотрел как устроена USB библиотека в ардуине.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.07.2020, 18:17

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

Прошивка 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 (слева)...


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

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

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