Перейти к публикации

Рекомендованные сообщения

Опубликовано:

 

12.01.2020 в 13:40, propeler сказал:

двигатели от гироскутера

 

Урвал пару.

 

 

 

12.01.2020 в 13:40, propeler сказал:

использовать ременной редуктор

 

Вот тут по подробнее. Где брать шкивы? Хотелосьбы готовое и не дорого. Зашел в неоднократно спасавшие вазовские автозапчасти, ну там. 800р и выше. Значительно выше!

 

Уже думаю что а не проще ли распечатать. 100% заполнение должно дать достаточную прочность.

  • Поддерживаю! 1
Опубликовано: (изменено)
10 часов назад, Johnet сказал:

У рулей Ligitech G27, G29, G290 как раз стоят два мотора на ременной передаче

У Logitech не ременная транмиссия.

 

50 минут назад, l3VGV сказал:

Где брать шкивы?

Ali Express

Изменено пользователем StorkNet
Опубликовано:
30 минут назад, StorkNet сказал:

Ali Express

 

Прошу привести пример лота.

Опубликовано:

 

15 часов назад, l3VGV сказал:
12.01.2020 в 16:40, propeler сказал:

двигатели от гироскутера

 

Урвал пару.

О это здорово, поздравляю. Интересная тема с этми двигателями, сам часто думал о них. Буду следить за твоим проектом, что получится в итоге. В первую очередь интересует, смогут ли они создать равномерное сопротивление, без прыжков по магнитам. Возможно, придется развязывать обмотки друг от друга и писать свои контроллер. Но даже при это оно того стоит.

Опубликовано:
23 часа назад, l3VGV сказал:

Или это, ну а также ещё и усилие в 2 раза поднять.

помнится вам ссылку скидывал по изготовлению рулей. Дык там прочитал, что выпускаются комплекты для изготовления рулей с прямым приводом (т.е. руль ставится на вал то ли мотора, то ли планетарного мотор редуктора (кстати находил прецизионные мотор-редукторы)). Т. о. вопрос о габаритах в колонках рулей не стоит. 

15 часов назад, StorkNet сказал:

У Logitech не ременная транмиссия.

Угу, ошибался. Там стоит прямозубая.

Опубликовано:

Ясщиат - это прекрасно

 

IMG_1678.thumb.JPG.9cacf085d5eca7764d9fa3770c5fdbfc.JPG

29 минут назад, a69 сказал:

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

 

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

Вот что смущает так это механическая часть. Не спалось до 6 утра, придумал как сделать шкивы и не разориться. И общий проект макета.

 

А пока едут детали - потренеруюсь на логитешках. У меня детская травма от дескрипторов, освою для начала програмную часть.

Также думаю, нужно ли делать полный комплект эфектов. Может хватит только констант форса для умной загрузки? Имею фантазию так и назвать - Smart Force.

  • Поддерживаю! 2
Опубликовано: (изменено)
2 часа назад, a69 сказал:

двигатели от гироскутера

Чтоб долго не думал как с ним поступать.

 

Вал надо немного сточить дремелем и сделать пропил для проводов:

IMG_20200919_140244.jpg.8eae53a4d2e76af460f90904861d58eb.jpg

 

В корпусе продрать отверстие чуть более чем на диаметр подшипника:

IMG_20200919_140254.jpg.d2c8d3672f0ce035fcfbf912f9d8cb80.jpg

 

распечатать подставку под енкодер:

IMG_20200919_141403.jpg.58366df8412f84d08b7cd03080cd3bd8.jpg

 

IMG_20200919_141340.jpg.de464c34ab549c0979d2ebf395f22be7.jpg

 

 

магнит в холдер:

IMG_20200919_141414.jpg.a3855737ad874436121bf5bf1905f7f3.jpgIMG_20200919_141424.jpg.8b80d23e3cd5e2f656a77412a3a55f84.jpg

 

провода от енкодера через вал наружу:

IMG_20200924_204826.jpg.a6e4ac4afbd997fa75e23978aacd1eb3.jpg

 

И вуаля :)

imgpsh_fullsize.thumb.jpg.5921194b484b5d6e6d75b080fb063491.jpg

Изменено пользователем propeler
  • Нравится 3
  • Спасибо! 1
  • ХА-ХА 1
Опубликовано:
32 минуты назад, propeler сказал:

Чтоб долго не думал как с ним поступать

Ого, зачет. 10 картинок и руль готов. А я свой джой год делаю-переделываю.

 

2 часа назад, l3VGV сказал:

полный комплект эфектов. Может хватит только констант форса для умной загрузки?

Не думай об этом, оставь на потом - гемор тот еще (см. видео).

 

 

Кстати, программное отключение люфта совсем не айс - в руку бьет так, будто там зажим хуже клещей. Нужно сразу избавляться от всех люфтов в механике, электроника тут совсем не помощник.

43 минуты назад, propeler сказал:

И вуаля :)

И все-таки, главный вопрос - как работу этого привода руки чувствуют? Плавно ли, или прыгает при прохождении полей?

Опубликовано:
Цитата

И все-таки, главный вопрос - как работу этого привода руки чувствуют? Плавно ли, или прыгает при прохождении полей?

Скоро узнаю. Жду железяки из порезки... И на джойстик тоже. Тут так все медленно делают....

Опубликовано: (изменено)

Я вам тут принёс, на всякий случай. Угадайте: кто это!?

 

Подсказка 045E:001B

 

0x05, 0x01,        // Usage Page (Generic Desktop Ctrls)
0x09, 0x04,        // Usage (Joystick)
0xA1, 0x01,        // Collection (Application)
0x85, 0x01,        //   Report ID (1)
0x09, 0x01,        //   Usage (Pointer)
0xA1, 0x00,        //   Collection (Physical)
0x66, 0x00, 0x00,  //     Unit (None)
0x55, 0x00,        //     Unit Exponent (0)
0x16, 0x00, 0xFE,  //     Logical Minimum (-512)
0x26, 0xFF, 0x01,  //     Logical Maximum (511)
0x35, 0x00,        //     Physical Minimum (0)
0x46, 0xFF, 0x03,  //     Physical Maximum (1023)
0x95, 0x01,        //     Report Count (1)
0x75, 0x0A,        //     Report Size (10)
0x09, 0x30,        //     Usage (X)
0x81, 0x02,        //     Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x75, 0x06,        //     Report Size (6)
0x81, 0x01,        //     Input (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x09, 0x31,        //     Usage (Y)
0x75, 0x0A,        //     Report Size (10)
0x81, 0x02,        //     Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x75, 0x06,        //     Report Size (6)
0x95, 0x01,        //     Report Count (1)
0x81, 0x01,        //     Input (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x15, 0xE0,        //     Logical Minimum (-32)
0x25, 0x1F,        //     Logical Maximum (31)
0x35, 0x00,        //     Physical Minimum (0)
0x45, 0x3F,        //     Physical Maximum (63)
0x66, 0x14, 0x00,  //     Unit (System: English Rotation, Length: Centimeter)
0x09, 0x35,        //     Usage (Rz)
0x81, 0x02,        //     Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x75, 0x02,        //     Report Size (2)
0x81, 0x01,        //     Input (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x66, 0x00, 0x00,  //     Unit (None)
0xC0,              //   End Collection
0x75, 0x07,        //   Report Size (7)
0x95, 0x01,        //   Report Count (1)
0x15, 0x00,        //   Logical Minimum (0)
0x25, 0x7F,        //   Logical Maximum (127)
0x35, 0x00,        //   Physical Minimum (0)
0x45, 0x7F,        //   Physical Maximum (127)
0x09, 0x36,        //   Usage (Slider)
0x81, 0x02,        //   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x75, 0x01,        //   Report Size (1)
0x81, 0x01,        //   Input (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x09, 0x39,        //   Usage (Hat switch)
0x15, 0x00,        //   Logical Minimum (0)
0x25, 0x07,        //   Logical Maximum (7)
0x35, 0x00,        //   Physical Minimum (0)
0x46, 0x3B, 0x01,  //   Physical Maximum (315)
0x66, 0x14, 0x00,  //   Unit (System: English Rotation, Length: Centimeter)
0x75, 0x04,        //   Report Size (4)
0x95, 0x01,        //   Report Count (1)
0x81, 0x42,        //   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,Null State)
0x95, 0x01,        //   Report Count (1)
0x81, 0x01,        //   Input (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x66, 0x00, 0x00,  //   Unit (None)
0x05, 0x09,        //   Usage Page (Button)
0x19, 0x01,        //   Usage Minimum (0x01)
0x29, 0x08,        //   Usage Maximum (0x08)
0x15, 0x00,        //   Logical Minimum (0)
0x25, 0x01,        //   Logical Maximum (1)
0x35, 0x00,        //   Physical Minimum (0)
0x45, 0x01,        //   Physical Maximum (1)
0x95, 0x08,        //   Report Count (8)
0x75, 0x01,        //   Report Size (1)
0x81, 0x02,        //   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x95, 0x04,        //   Report Count (4)
0x75, 0x08,        //   Report Size (8)
0x81, 0x01,        //   Input (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x05, 0x0F,        //   Usage Page (PID Page)
0x09, 0x92,        //   Usage (0x92)
0xA1, 0x02,        //   Collection (Logical)
0x85, 0x02,        //     Report ID (2)
0x09, 0x9F,        //     Usage (0x9F)
0x09, 0xA0,        //     Usage (0xA0)
0x09, 0xA4,        //     Usage (0xA4)
0x09, 0xA5,        //     Usage (0xA5)
0x09, 0xA6,        //     Usage (0xA6)
0x15, 0x00,        //     Logical Minimum (0)
0x25, 0x01,        //     Logical Maximum (1)
0x35, 0x00,        //     Physical Minimum (0)
0x45, 0x01,        //     Physical Maximum (1)
0x75, 0x01,        //     Report Size (1)
0x95, 0x05,        //     Report Count (5)
0x81, 0x02,        //     Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x95, 0x03,        //     Report Count (3)
0x81, 0x03,        //     Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x09, 0x94,        //     Usage (0x94)
0x15, 0x00,        //     Logical Minimum (0)
0x25, 0x01,        //     Logical Maximum (1)
0x35, 0x00,        //     Physical Minimum (0)
0x45, 0x01,        //     Physical Maximum (1)
0x75, 0x01,        //     Report Size (1)
0x95, 0x01,        //     Report Count (1)
0x81, 0x02,        //     Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x09, 0x22,        //     Usage (0x22)
0x15, 0x01,        //     Logical Minimum (1)
0x25, 0x28,        //     Logical Maximum (40)
0x35, 0x01,        //     Physical Minimum (1)
0x45, 0x28,        //     Physical Maximum (40)
0x75, 0x07,        //     Report Size (7)
0x95, 0x01,        //     Report Count (1)
0x81, 0x02,        //     Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0xC0,              //   End Collection
0x09, 0x21,        //   Usage (0x21)
0xA1, 0x02,        //   Collection (Logical)
0x85, 0x01,        //     Report ID (1)
0x09, 0x22,        //     Usage (0x22)
0x15, 0x01,        //     Logical Minimum (1)
0x25, 0x28,        //     Logical Maximum (40)
0x35, 0x01,        //     Physical Minimum (1)
0x45, 0x28,        //     Physical Maximum (40)
0x75, 0x08,        //     Report Size (8)
0x95, 0x01,        //     Report Count (1)
0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0x09, 0x25,        //     Usage (0x25)
0xA1, 0x02,        //     Collection (Logical)
0x09, 0x26,        //       Usage (0x26)
0x09, 0x27,        //       Usage (0x27)
0x09, 0x30,        //       Usage (0x30)
0x09, 0x31,        //       Usage (0x31)
0x09, 0x32,        //       Usage (0x32)
0x09, 0x33,        //       Usage (0x33)
0x09, 0x34,        //       Usage (0x34)
0x09, 0x40,        //       Usage (0x40)
0x09, 0x41,        //       Usage (0x41)
0x09, 0x42,        //       Usage (0x42)
0x09, 0x43,        //       Usage (0x43)
0x09, 0x28,        //       Usage (0x28)
0x25, 0x0C,        //       Logical Maximum (12)
0x15, 0x01,        //       Logical Minimum (1)
0x35, 0x01,        //       Physical Minimum (1)
0x45, 0x0C,        //       Physical Maximum (12)
0x75, 0x08,        //       Report Size (8)
0x95, 0x01,        //       Report Count (1)
0x91, 0x00,        //       Output (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0xC0,              //     End Collection
0x09, 0x50,        //     Usage (0x50)
0x09, 0x54,        //     Usage (0x54)
0x09, 0x51,        //     Usage (0x51)
0x15, 0x00,        //     Logical Minimum (0)
0x26, 0xFF, 0x7F,  //     Logical Maximum (32767)
0x35, 0x00,        //     Physical Minimum (0)
0x46, 0xFF, 0x7F,  //     Physical Maximum (32767)
0x66, 0x03, 0x10,  //     Unit (System: English Linear, Time: Seconds)
0x55, 0xFD,        //     Unit Exponent
0x75, 0x10,        //     Report Size (16)
0x95, 0x03,        //     Report Count (3)
0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0x55, 0x00,        //     Unit Exponent (0)
0x66, 0x00, 0x00,  //     Unit (None)
0x09, 0x52,        //     Usage (0x52)
0x15, 0x00,        //     Logical Minimum (0)
0x26, 0xFF, 0x00,  //     Logical Maximum (255)
0x35, 0x00,        //     Physical Minimum (0)
0x46, 0x10, 0x27,  //     Physical Maximum (10000)
0x75, 0x08,        //     Report Size (8)
0x95, 0x01,        //     Report Count (1)
0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0x09, 0x53,        //     Usage (0x53)
0x15, 0x01,        //     Logical Minimum (1)
0x25, 0x08,        //     Logical Maximum (8)
0x35, 0x01,        //     Physical Minimum (1)
0x45, 0x08,        //     Physical Maximum (8)
0x75, 0x08,        //     Report Size (8)
0x95, 0x01,        //     Report Count (1)
0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0x09, 0x55,        //     Usage (0x55)
0xA1, 0x02,        //     Collection (Logical)
0x05, 0x01,        //       Usage Page (Generic Desktop Ctrls)
0x09, 0x30,        //       Usage (X)
0x09, 0x31,        //       Usage (Y)
0x15, 0x00,        //       Logical Minimum (0)
0x25, 0x01,        //       Logical Maximum (1)
0x75, 0x01,        //       Report Size (1)
0x95, 0x02,        //       Report Count (2)
0x91, 0x02,        //       Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0xC0,              //     End Collection
0x05, 0x0F,        //     Usage Page (PID Page)
0x09, 0x56,        //     Usage (0x56)
0x95, 0x01,        //     Report Count (1)
0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0x95, 0x05,        //     Report Count (5)
0x91, 0x03,        //     Output (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0x09, 0x57,        //     Usage (0x57)
0xA1, 0x02,        //     Collection (Logical)
0x0B, 0x01, 0x00, 0x0A, 0x00,  //       Usage (0x0A0001)
0x0B, 0x02, 0x00, 0x0A, 0x00,  //       Usage (0x0A0002)
0x66, 0x14, 0x00,  //       Unit (System: English Rotation, Length: Centimeter)
0x55, 0xFE,        //       Unit Exponent
0x15, 0x00,        //       Logical Minimum (0)
0x26, 0xFF, 0x00,  //       Logical Maximum (255)
0x35, 0x00,        //       Physical Minimum (0)
0x47, 0xA0, 0x8C, 0x00, 0x00,  //       Physical Maximum (35999)
0x66, 0x00, 0x00,  //       Unit (None)
0x75, 0x08,        //       Report Size (8)
0x95, 0x02,        //       Report Count (2)
0x91, 0x02,        //       Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0x55, 0x00,        //       Unit Exponent (0)
0x66, 0x00, 0x00,  //       Unit (None)
0xC0,              //     End Collection
0x05, 0x0F,        //     Usage Page (PID Page)
0x09, 0xA7,        //     Usage (0xA7)
0x66, 0x03, 0x10,  //     Unit (System: English Linear, Time: Seconds)
0x55, 0xFD,        //     Unit Exponent
0x15, 0x00,        //     Logical Minimum (0)
0x26, 0xFF, 0x7F,  //     Logical Maximum (32767)
0x35, 0x00,        //     Physical Minimum (0)
0x46, 0xFF, 0x7F,  //     Physical Maximum (32767)
0x75, 0x10,        //     Report Size (16)
0x95, 0x01,        //     Report Count (1)
0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0x66, 0x00, 0x00,  //     Unit (None)
0x55, 0x00,        //     Unit Exponent (0)
0xC0,              //   End Collection
0x05, 0x0F,        //   Usage Page (PID Page)
0x09, 0x5A,        //   Usage (0x5A)
0xA1, 0x02,        //   Collection (Logical)
0x85, 0x02,        //     Report ID (2)
0x09, 0x22,        //     Usage (0x22)
0x15, 0x01,        //     Logical Minimum (1)
0x25, 0x28,        //     Logical Maximum (40)
0x35, 0x01,        //     Physical Minimum (1)
0x45, 0x28,        //     Physical Maximum (40)
0x75, 0x08,        //     Report Size (8)
0x95, 0x01,        //     Report Count (1)
0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0x09, 0x5B,        //     Usage (0x5B)
0x09, 0x5D,        //     Usage (0x5D)
0x15, 0x00,        //     Logical Minimum (0)
0x26, 0xFF, 0x00,  //     Logical Maximum (255)
0x35, 0x00,        //     Physical Minimum (0)
0x46, 0x10, 0x27,  //     Physical Maximum (10000)
0x95, 0x02,        //     Report Count (2)
0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0x09, 0x5C,        //     Usage (0x5C)
0x09, 0x5E,        //     Usage (0x5E)
0x66, 0x03, 0x10,  //     Unit (System: English Linear, Time: Seconds)
0x55, 0xFD,        //     Unit Exponent
0x26, 0xFF, 0x7F,  //     Logical Maximum (32767)
0x46, 0xFF, 0x7F,  //     Physical Maximum (32767)
0x75, 0x10,        //     Report Size (16)
0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0x45, 0x00,        //     Physical Maximum (0)
0x66, 0x00, 0x00,  //     Unit (None)
0x55, 0x00,        //     Unit Exponent (0)
0xC0,              //   End Collection
0x09, 0x5F,        //   Usage (0x5F)
0xA1, 0x02,        //   Collection (Logical)
0x85, 0x03,        //     Report ID (3)
0x09, 0x22,        //     Usage (0x22)
0x15, 0x01,        //     Logical Minimum (1)
0x25, 0x28,        //     Logical Maximum (40)
0x35, 0x01,        //     Physical Minimum (1)
0x45, 0x28,        //     Physical Maximum (40)
0x75, 0x08,        //     Report Size (8)
0x95, 0x01,        //     Report Count (1)
0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0x09, 0x23,        //     Usage (0x23)
0x15, 0x00,        //     Logical Minimum (0)
0x25, 0x01,        //     Logical Maximum (1)
0x35, 0x00,        //     Physical Minimum (0)
0x45, 0x01,        //     Physical Maximum (1)
0x75, 0x04,        //     Report Size (4)
0x95, 0x01,        //     Report Count (1)
0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0x09, 0x58,        //     Usage (0x58)
0xA1, 0x02,        //     Collection (Logical)
0x0B, 0x01, 0x00, 0x0A, 0x00,  //       Usage (0x0A0001)
0x0B, 0x02, 0x00, 0x0A, 0x00,  //       Usage (0x0A0002)
0x75, 0x02,        //       Report Size (2)
0x95, 0x02,        //       Report Count (2)
0x91, 0x02,        //       Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0xC0,              //     End Collection
0x15, 0x80,        //     Logical Minimum (-128)
0x25, 0x7F,        //     Logical Maximum (127)
0x36, 0xF0, 0xD8,  //     Physical Minimum (-10000)
0x46, 0x10, 0x27,  //     Physical Maximum (10000)
0x09, 0x60,        //     Usage (0x60)
0x75, 0x08,        //     Report Size (8)
0x95, 0x01,        //     Report Count (1)
0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0x36, 0xF0, 0xD8,  //     Physical Minimum (-10000)
0x46, 0x10, 0x27,  //     Physical Maximum (10000)
0x09, 0x61,        //     Usage (0x61)
0x09, 0x62,        //     Usage (0x62)
0x95, 0x02,        //     Report Count (2)
0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0x15, 0x00,        //     Logical Minimum (0)
0x26, 0xFF, 0x00,  //     Logical Maximum (255)
0x35, 0x00,        //     Physical Minimum (0)
0x46, 0x10, 0x27,  //     Physical Maximum (10000)
0x09, 0x63,        //     Usage (0x63)
0x09, 0x64,        //     Usage (0x64)
0x75, 0x08,        //     Report Size (8)
0x95, 0x02,        //     Report Count (2)
0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0x09, 0x65,        //     Usage (0x65)
0x46, 0x10, 0x27,  //     Physical Maximum (10000)
0x95, 0x01,        //     Report Count (1)
0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0xC0,              //   End Collection
0x09, 0x6E,        //   Usage (0x6E)
0xA1, 0x02,        //   Collection (Logical)
0x85, 0x04,        //     Report ID (4)
0x09, 0x22,        //     Usage (0x22)
0x15, 0x01,        //     Logical Minimum (1)
0x25, 0x28,        //     Logical Maximum (40)
0x35, 0x01,        //     Physical Minimum (1)
0x45, 0x28,        //     Physical Maximum (40)
0x75, 0x08,        //     Report Size (8)
0x95, 0x01,        //     Report Count (1)
0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0x09, 0x70,        //     Usage (0x70)
0x15, 0x00,        //     Logical Minimum (0)
0x26, 0xFF, 0x00,  //     Logical Maximum (255)
0x35, 0x00,        //     Physical Minimum (0)
0x46, 0x10, 0x27,  //     Physical Maximum (10000)
0x75, 0x08,        //     Report Size (8)
0x95, 0x01,        //     Report Count (1)
0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0x09, 0x6F,        //     Usage (0x6F)
0x15, 0x80,        //     Logical Minimum (-128)
0x25, 0x7F,        //     Logical Maximum (127)
0x36, 0xF0, 0xD8,  //     Physical Minimum (-10000)
0x46, 0x10, 0x27,  //     Physical Maximum (10000)
0x95, 0x01,        //     Report Count (1)
0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0x09, 0x71,        //     Usage (0x71)
0x66, 0x14, 0x00,  //     Unit (System: English Rotation, Length: Centimeter)
0x55, 0xFE,        //     Unit Exponent
0x15, 0x00,        //     Logical Minimum (0)
0x26, 0xFF, 0x00,  //     Logical Maximum (255)
0x35, 0x00,        //     Physical Minimum (0)
0x47, 0xA0, 0x8C, 0x00, 0x00,  //     Physical Maximum (35999)
0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0x09, 0x72,        //     Usage (0x72)
0x26, 0xFF, 0x7F,  //     Logical Maximum (32767)
0x46, 0xFF, 0x7F,  //     Physical Maximum (32767)
0x66, 0x03, 0x10,  //     Unit (System: English Linear, Time: Seconds)
0x55, 0xFD,        //     Unit Exponent
0x75, 0x10,        //     Report Size (16)
0x95, 0x01,        //     Report Count (1)
0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0x66, 0x00, 0x00,  //     Unit (None)
0x55, 0x00,        //     Unit Exponent (0)
0xC0,              //   End Collection
0x09, 0x73,        //   Usage (0x73)
0xA1, 0x02,        //   Collection (Logical)
0x85, 0x05,        //     Report ID (5)
0x09, 0x22,        //     Usage (0x22)
0x15, 0x01,        //     Logical Minimum (1)
0x25, 0x28,        //     Logical Maximum (40)
0x35, 0x01,        //     Physical Minimum (1)
0x45, 0x28,        //     Physical Maximum (40)
0x75, 0x08,        //     Report Size (8)
0x95, 0x01,        //     Report Count (1)
0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0x09, 0x70,        //     Usage (0x70)
0x16, 0x01, 0xFF,  //     Logical Minimum (-255)
0x26, 0xFF, 0x00,  //     Logical Maximum (255)
0x36, 0xF0, 0xD8,  //     Physical Minimum (-10000)
0x46, 0x10, 0x27,  //     Physical Maximum (10000)
0x75, 0x10,        //     Report Size (16)
0x95, 0x01,        //     Report Count (1)
0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0xC0,              //   End Collection
0x09, 0x74,        //   Usage (0x74)
0xA1, 0x02,        //   Collection (Logical)
0x85, 0x06,        //     Report ID (6)
0x09, 0x22,        //     Usage (0x22)
0x15, 0x01,        //     Logical Minimum (1)
0x25, 0x28,        //     Logical Maximum (40)
0x35, 0x01,        //     Physical Minimum (1)
0x45, 0x28,        //     Physical Maximum (40)
0x75, 0x08,        //     Report Size (8)
0x95, 0x01,        //     Report Count (1)
0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0x09, 0x75,        //     Usage (0x75)
0x09, 0x76,        //     Usage (0x76)
0x15, 0x80,        //     Logical Minimum (-128)
0x25, 0x7F,        //     Logical Maximum (127)
0x36, 0xF0, 0xD8,  //     Physical Minimum (-10000)
0x46, 0x10, 0x27,  //     Physical Maximum (10000)
0x75, 0x08,        //     Report Size (8)
0x95, 0x02,        //     Report Count (2)
0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0xC0,              //   End Collection
0x09, 0x68,        //   Usage (0x68)
0xA1, 0x02,        //   Collection (Logical)
0x85, 0x07,        //     Report ID (7)
0x09, 0x22,        //     Usage (0x22)
0x15, 0x01,        //     Logical Minimum (1)
0x25, 0x28,        //     Logical Maximum (40)
0x35, 0x01,        //     Physical Minimum (1)
0x45, 0x28,        //     Physical Maximum (40)
0x75, 0x08,        //     Report Size (8)
0x95, 0x01,        //     Report Count (1)
0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0x09, 0x6C,        //     Usage (0x6C)
0x15, 0x00,        //     Logical Minimum (0)
0x26, 0x10, 0x27,  //     Logical Maximum (10000)
0x35, 0x00,        //     Physical Minimum (0)
0x46, 0x10, 0x27,  //     Physical Maximum (10000)
0x75, 0x10,        //     Report Size (16)
0x95, 0x01,        //     Report Count (1)
0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0x09, 0x69,        //     Usage (0x69)
0x15, 0x81,        //     Logical Minimum (-127)
0x25, 0x7F,        //     Logical Maximum (127)
0x35, 0x00,        //     Physical Minimum (0)
0x46, 0xFF, 0x00,  //     Physical Maximum (255)
0x75, 0x08,        //     Report Size (8)
0x95, 0x0C,        //     Report Count (12)
0x92, 0x02, 0x01,  //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile,Buffered Bytes)
0xC0,              //   End Collection
0x09, 0x66,        //   Usage (0x66)
0xA1, 0x02,        //   Collection (Logical)
0x85, 0x08,        //     Report ID (8)
0x05, 0x01,        //     Usage Page (Generic Desktop Ctrls)
0x09, 0x30,        //     Usage (X)
0x09, 0x31,        //     Usage (Y)
0x15, 0x81,        //     Logical Minimum (-127)
0x25, 0x7F,        //     Logical Maximum (127)
0x35, 0x00,        //     Physical Minimum (0)
0x46, 0xFF, 0x00,  //     Physical Maximum (255)
0x75, 0x08,        //     Report Size (8)
0x95, 0x02,        //     Report Count (2)
0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0xC0,              //   End Collection
0x05, 0x0F,        //   Usage Page (PID Page)
0x09, 0x77,        //   Usage (0x77)
0xA1, 0x02,        //   Collection (Logical)
0x85, 0x0A,        //     Report ID (10)
0x09, 0x22,        //     Usage (0x22)
0x15, 0x01,        //     Logical Minimum (1)
0x25, 0x28,        //     Logical Maximum (40)
0x35, 0x01,        //     Physical Minimum (1)
0x45, 0x28,        //     Physical Maximum (40)
0x75, 0x08,        //     Report Size (8)
0x95, 0x01,        //     Report Count (1)
0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0x09, 0x78,        //     Usage (0x78)
0xA1, 0x02,        //     Collection (Logical)
0x09, 0x79,        //       Usage (0x79)
0x09, 0x7A,        //       Usage (0x7A)
0x09, 0x7B,        //       Usage (0x7B)
0x15, 0x01,        //       Logical Minimum (1)
0x25, 0x03,        //       Logical Maximum (3)
0x75, 0x08,        //       Report Size (8)
0x95, 0x01,        //       Report Count (1)
0x91, 0x00,        //       Output (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0xC0,              //     End Collection
0x09, 0x7C,        //     Usage (0x7C)
0x15, 0x00,        //     Logical Minimum (0)
0x26, 0xFF, 0x00,  //     Logical Maximum (255)
0x35, 0x00,        //     Physical Minimum (0)
0x46, 0xFF, 0x00,  //     Physical Maximum (255)
0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0xC0,              //   End Collection
0x09, 0x90,        //   Usage (0x90)
0xA1, 0x02,        //   Collection (Logical)
0x85, 0x0B,        //     Report ID (11)
0x09, 0x22,        //     Usage (0x22)
0x25, 0x28,        //     Logical Maximum (40)
0x15, 0x01,        //     Logical Minimum (1)
0x35, 0x01,        //     Physical Minimum (1)
0x45, 0x28,        //     Physical Maximum (40)
0x75, 0x08,        //     Report Size (8)
0x95, 0x01,        //     Report Count (1)
0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0xC0,              //   End Collection
0x09, 0x96,        //   Usage (0x96)
0xA1, 0x02,        //   Collection (Logical)
0x85, 0x0C,        //     Report ID (12)
0x09, 0x97,        //     Usage (0x97)
0x09, 0x98,        //     Usage (0x98)
0x09, 0x99,        //     Usage (0x99)
0x09, 0x9A,        //     Usage (0x9A)
0x09, 0x9B,        //     Usage (0x9B)
0x09, 0x9C,        //     Usage (0x9C)
0x15, 0x01,        //     Logical Minimum (1)
0x25, 0x06,        //     Logical Maximum (6)
0x75, 0x08,        //     Report Size (8)
0x95, 0x01,        //     Report Count (1)
0x91, 0x00,        //     Output (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0xC0,              //   End Collection
0x09, 0x7D,        //   Usage (0x7D)
0xA1, 0x02,        //   Collection (Logical)
0x85, 0x0D,        //     Report ID (13)
0x09, 0x7E,        //     Usage (0x7E)
0x15, 0x00,        //     Logical Minimum (0)
0x26, 0xFF, 0x00,  //     Logical Maximum (255)
0x35, 0x00,        //     Physical Minimum (0)
0x46, 0x10, 0x27,  //     Physical Maximum (10000)
0x75, 0x08,        //     Report Size (8)
0x95, 0x01,        //     Report Count (1)
0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0xC0,              //   End Collection
0x09, 0x6B,        //   Usage (0x6B)
0xA1, 0x02,        //   Collection (Logical)
0x85, 0x0E,        //     Report ID (14)
0x09, 0x22,        //     Usage (0x22)
0x15, 0x01,        //     Logical Minimum (1)
0x25, 0x28,        //     Logical Maximum (40)
0x35, 0x01,        //     Physical Minimum (1)
0x45, 0x28,        //     Physical Maximum (40)
0x75, 0x08,        //     Report Size (8)
0x95, 0x01,        //     Report Count (1)
0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0x09, 0x6D,        //     Usage (0x6D)
0x15, 0x00,        //     Logical Minimum (0)
0x26, 0xFF, 0x00,  //     Logical Maximum (255)
0x35, 0x00,        //     Physical Minimum (0)
0x46, 0xFF, 0x00,  //     Physical Maximum (255)
0x75, 0x08,        //     Report Size (8)
0x95, 0x01,        //     Report Count (1)
0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0x09, 0x51,        //     Usage (0x51)
0x66, 0x03, 0x10,  //     Unit (System: English Linear, Time: Seconds)
0x55, 0xFD,        //     Unit Exponent
0x15, 0x00,        //     Logical Minimum (0)
0x26, 0xFF, 0x7F,  //     Logical Maximum (32767)
0x35, 0x00,        //     Physical Minimum (0)
0x46, 0xFF, 0x7F,  //     Physical Maximum (32767)
0x75, 0x10,        //     Report Size (16)
0x95, 0x01,        //     Report Count (1)
0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0x55, 0x00,        //     Unit Exponent (0)
0x66, 0x00, 0x00,  //     Unit (None)
0xC0,              //   End Collection
0x09, 0xAB,        //   Usage (0xAB)
0xA1, 0x02,        //   Collection (Logical)
0x85, 0x01,        //     Report ID (1)
0x09, 0x25,        //     Usage (0x25)
0xA1, 0x02,        //     Collection (Logical)
0x09, 0x26,        //       Usage (0x26)
0x09, 0x27,        //       Usage (0x27)
0x09, 0x30,        //       Usage (0x30)
0x09, 0x31,        //       Usage (0x31)
0x09, 0x32,        //       Usage (0x32)
0x09, 0x33,        //       Usage (0x33)
0x09, 0x34,        //       Usage (0x34)
0x09, 0x40,        //       Usage (0x40)
0x09, 0x41,        //       Usage (0x41)
0x09, 0x42,        //       Usage (0x42)
0x09, 0x43,        //       Usage (0x43)
0x09, 0x28,        //       Usage (0x28)
0x25, 0x0C,        //       Logical Maximum (12)
0x15, 0x01,        //       Logical Minimum (1)
0x35, 0x01,        //       Physical Minimum (1)
0x45, 0x0C,        //       Physical Maximum (12)
0x75, 0x08,        //       Report Size (8)
0x95, 0x01,        //       Report Count (1)
0xB1, 0x00,        //       Feature (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0xC0,              //     End Collection
0x05, 0x01,        //     Usage Page (Generic Desktop Ctrls)
0x09, 0x3B,        //     Usage (Byte Count)
0x15, 0x00,        //     Logical Minimum (0)
0x26, 0xFF, 0x01,  //     Logical Maximum (511)
0x35, 0x00,        //     Physical Minimum (0)
0x46, 0xFF, 0x01,  //     Physical Maximum (511)
0x75, 0x0A,        //     Report Size (10)
0x95, 0x01,        //     Report Count (1)
0xB1, 0x02,        //     Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0x75, 0x06,        //     Report Size (6)
0xB1, 0x01,        //     Feature (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0xC0,              //   End Collection
0x05, 0x0F,        //   Usage Page (PID Page)
0x09, 0x89,        //   Usage (0x89)
0xA1, 0x02,        //   Collection (Logical)
0x85, 0x02,        //     Report ID (2)
0x09, 0x22,        //     Usage (0x22)
0x25, 0x28,        //     Logical Maximum (40)
0x15, 0x01,        //     Logical Minimum (1)
0x35, 0x01,        //     Physical Minimum (1)
0x45, 0x28,        //     Physical Maximum (40)
0x75, 0x08,        //     Report Size (8)
0x95, 0x01,        //     Report Count (1)
0xB1, 0x02,        //     Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0x09, 0x8B,        //     Usage (0x8B)
0xA1, 0x02,        //     Collection (Logical)
0x09, 0x8C,        //       Usage (0x8C)
0x09, 0x8D,        //       Usage (0x8D)
0x09, 0x8E,        //       Usage (0x8E)
0x25, 0x03,        //       Logical Maximum (3)
0x15, 0x01,        //       Logical Minimum (1)
0x35, 0x01,        //       Physical Minimum (1)
0x45, 0x03,        //       Physical Maximum (3)
0x75, 0x08,        //       Report Size (8)
0x95, 0x01,        //       Report Count (1)
0xB1, 0x00,        //       Feature (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0xC0,              //     End Collection
0x09, 0xAC,        //     Usage (0xAC)
0x15, 0x00,        //     Logical Minimum (0)
0x27, 0xFF, 0xFF, 0x00, 0x00,  //     Logical Maximum (65534)
0x35, 0x00,        //     Physical Minimum (0)
0x47, 0xFF, 0xFF, 0x00, 0x00,  //     Physical Maximum (65534)
0x75, 0x10,        //     Report Size (16)
0x95, 0x01,        //     Report Count (1)
0xB1, 0x00,        //     Feature (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0xC0,              //   End Collection
0x09, 0x7F,        //   Usage (0x7F)
0xA1, 0x02,        //   Collection (Logical)
0x85, 0x03,        //     Report ID (3)
0x09, 0x80,        //     Usage (0x80)
0x75, 0x10,        //     Report Size (16)
0x95, 0x01,        //     Report Count (1)
0x15, 0x00,        //     Logical Minimum (0)
0x35, 0x00,        //     Physical Minimum (0)
0x27, 0xFF, 0xFF, 0x00, 0x00,  //     Logical Maximum (65534)
0x47, 0xFF, 0xFF, 0x00, 0x00,  //     Physical Maximum (65534)
0xB1, 0x02,        //     Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0x09, 0x83,        //     Usage (0x83)
0x26, 0xFF, 0x00,  //     Logical Maximum (255)
0x46, 0xFF, 0x00,  //     Physical Maximum (255)
0x75, 0x08,        //     Report Size (8)
0x95, 0x01,        //     Report Count (1)
0xB1, 0x02,        //     Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0x09, 0xA9,        //     Usage (0xA9)
0x09, 0xAA,        //     Usage (0xAA)
0x75, 0x01,        //     Report Size (1)
0x95, 0x02,        //     Report Count (2)
0x15, 0x00,        //     Logical Minimum (0)
0x25, 0x01,        //     Logical Maximum (1)
0x35, 0x00,        //     Physical Minimum (0)
0x45, 0x01,        //     Physical Maximum (1)
0xB1, 0x02,        //     Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0x75, 0x06,        //     Report Size (6)
0x95, 0x01,        //     Report Count (1)
0xB1, 0x03,        //     Feature (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0xC0,              //   End Collection
0xC0,              // End Collection

// 1343 bytes

 

Изменено пользователем l3VGV
Опубликовано:
6 минут назад, l3VGV сказал:

Я вам тут принёс, на всякий случай. Угадайте: кто это!?

 

Подсказка 045E:001B

 

Взял у однокурсника конспект. Похоже тут все на эльфийском, не могу  прочесть... | Пикабу

 

Можно подробнее?

Опубликовано:

Лично вот этими самыми руками, сдампил дескриптор с вот этого своего ms ffb2, вот этим вот своим линупсом.

 

Раз уж мы все на него ровняемся, полезно знать как оно общается.

  • Спасибо! 1
Опубликовано: (изменено)
59 минут назад, l3VGV сказал:

сдампил

Реверсивная инженерия - дело трудное. Вообще анализ и доработка чужого кода может затянутся надолго.
Имхо, лучше писать свое, с девственно чистым сознанием)
То, что я имел ввиду гемор - это доводка тактильных ощущений. То, что на видео работает замечательно и как надо, рука в полете чувствует как езду по колдоебинам. Всетаки мы, кожанные мешки, не железные. В общем, еще одно знание получать надо, не знаю как оно называется... взаимодействие оборудования с человеками, как то так.

Изменено пользователем a69
Опубликовано:
3 минуты назад, a69 сказал:

Реверсивная инженерия - дело трудное. Вообще анализ и доработка чужого кода может затянутся надолго.
Имхо, лучше писать свое, с девственно чистым сознанием)

 

У нас не тот случай. Внятной документации от MS и USBF чтобы писать своё с нуля - нет. Тратить человекогоды на отладку и ковыяние я не готов. Тут нужно обязательно применять чужой опыт. Тогда будут и совместимость и приемлимые затраты по времени.

 

  • Поддерживаю! 1
Опубликовано: (изменено)

Какие языки ты знаешь? Мне низкоуровневые не знакомы, поэтому даже не пытаюсь лезть в это. Если каждый из нас будет делать то, что может, то мы действительно сможем сделать народный FFB. Тем более Петрович ясно сказал, чтобы сами возились с тем что есть.

Изменено пользователем a69
Опубликовано:
27 минут назад, a69 сказал:

Какие языки ты знаешь?

 

Языки дело простое, не стоит на этом останавливаться. А вот протоколы распространенных устройств - совсем другое дело.

Для наших целей С хватит с головой. ASM тут не нужен нигде.

 

 

28 минут назад, a69 сказал:

Петрович ясно сказал, чтобы сами возились с тем что есть

 

Можно ссылку?

Опубликовано: (изменено)
22.10.2020 в 01:50, l3VGV сказал:

 

Прошу привести пример лота.

"Заграница нам поможет ..." ;)

 

Но я бы искал шкивы с кевларом - может оно и подороже, но тянуться и "размазывать" эффекты не будет ...

 

И, кстати, очень неплохой пример реализации 2-х каскадной передачи ("всё украдено до нас") - и не нужно стрелять из пушки по воробьям - моторами от гироскутеров ... ;)

Компактно и эффективно - одна ось проходит через шестерню (они все на подшипниках) и вращает датчик угла ...

3 часа назад, l3VGV сказал:

Лично вот этими самыми руками, сдампил дескриптор с вот этого своего ms ffb2, вот этим вот своим линупсом.

 

Раз уж мы все на него ровняемся, полезно знать как оно общается.

 

Ну структуры ты сдампил, а логику работы с ними где возьмёшь? В курсе, что у МСФФБ2, например, есть автоцентрирование?

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

 

ИМХО - самый простой способ - это сэмулировать (как здесь) на новом процессоре 045E:001B мелкософтовским дровам + сдампить передачу эффектов (с помощью утилит тестирования FFB-эффектов) - и их закодить (ну т.е. притвориться МСФФБ2 ;) ) - но как на это посмотрят мелкомягкие ...

Изменено пользователем =FX=HeXyaH
  • Нравится 1
Опубликовано: (изменено)
8 минут назад, =FX=HeXyaH сказал:

я бы

 

Разверну свой вопрос. Я хочу сделать усилие в районе 5кг на рычаге в 40см. Пусть для удобства это будет 25Нм. Эти крохотные колескики с милыми зубчиками - порвут ремни, если туда подать такое усилие. Т.е. их нужно паралелить, а это геморой и рост затрат.

 

Тамже на али есть такиеже люминевые шкивы большого диаметра под более серьезные ремни, но ценник слишком конский. 

 

Я тут насмотрелся юпупа, и принял решение просто напечатать, а по пермиетру чемто усилю, может закажу резку лазером.

 

 

Обратите внимание, что у него на колесе.

 

 

 

 

 

С этого просто орал в голос.

 

 

Изменено пользователем l3VGV
Опубликовано:

Бывают короткие ремни от авто. Преимущества:

Огромный запас мощности

Огромный ресурс

Доступность как ремня, так и его шкива в своем же городе

Приемлемая цена

Можно стрелять из пушки по воробьям)
https://www.drive2.ru/l/547489171741081739/

Опубликовано:

Вот такие шкивы я и хотел купить в автозапчастях. Ценник оказался в чтото районе 2500+ за большой. Жадность сказала - нет. А вот ремни - поставлю.

 

1 минуту назад, a69 сказал:

 

Опубликовано:

Гораздо лучше их распечатать. Если диаметр шкива более 30мм, то пластиковый шкив прослужит вечно. Можно распечатать и не весь шкив, а только рабочую поверхность с углублением выше 7мм. А внутри - что угодно.

Опубликовано: (изменено)
Цитата

С этого просто орал в голос.

А чего с него орать? Норм идея - сделать мотор самому. Много народу пилит собственные моторы из пластин статоров и магнитов мотор колес разного рода. 

 

Цитата

Я хочу сделать усилие в районе 5кг на рычаге в 40см

Дешево с такими запросами не обойтись. Сама механика будет испытывать конские нагрузки, а значит - метал. А метал это всегда не бюджетно. 

Изменено пользователем propeler
Опубликовано:
2 минуты назад, propeler сказал:

Много народу пилит собственные моторы

Кстати да. Я с электродвигателями дела не имел, не щупал, поэтому мне эта тема трудно дается - какой тип двигателя как ведет себя. Жалею что не поработал в свое время в этой области. Например наткнулся на вот такой вот интересный двигатель. Интересно, как у него обстоят дела с плавностью хода при сопротивлении?
https://www.youtube.com/watch?v=O13j-5SatLQ

Опубликовано:
Цитата

ты ковырял telemetryDevice

Я даже не знаю что это))) Забот с прошивкой хватает пока)

Опубликовано:
11.01.2020 в 17:50, propeler сказал:

Подумываю о том чтобы отойти от FFB протокола и сделать обратную связь собственную, на основе данных експорта из игры

 

UDP telemetrydevice - индикаторы самолета, в т.ч. скорость

UDP motiondevice - углы изменения положения, ускорения ЛА во все стороны от самого себя.
И вот этот telemetrydevice жестко подвел...

Опубликовано:
19 минут назад, a69 сказал:

Гораздо лучше их распечатать. Если диаметр шкива более 30мм, то пластиковый шкив прослужит вечно. Можно распечатать и не весь шкив, а только рабочую поверхность с углублением выше 7мм. А внутри - что угодно.

 

Так и планирую. Ведомые сделать скажем 280мм диаметром(больше принтер не могет), ведущие так чтобы набрать лучше чем 3к1. 

 

 

19 минут назад, propeler сказал:

Сама механика будет испытывать конские нагрузки, а значит - метал. А метал это всегда не бюджетно. 

 

Сама качалка - да, металл. А вот шиквы, рабочий периметр - 3д печать + усиление. Думаю - фанерой. Диаметр шкивов делать большой, чтобы нагрузка на них была поменьше. В итоге получится обычный размен размеры-цена. Но для подстульника, не критично. Плюс всёравно кудато надо прятать б.п., драйверы моторов, сами моторы... 

 

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

 

 

18 минут назад, a69 сказал:

Например наткнулся на вот такой вот интересный двигатель. Интересно, как у него обстоят дела с плавностью хода при сопротивлении?
https://www.youtube.com/watch?v=O13j-5SatLQ

 

С виду обычный BLDC, то что там магниты хитро набраны даст просто сильно выраженное нелинейное поле для каждого полюса. Чтобы были меньше рывки нужно чтобы был угол между магнитами и обмотками.  Если я верно понял вопрос. 

 

Я вообще планирую накачивать током четко в зависимости от положения ротора. Не дискретно 6 позиций, а сделать датчик угла, и обмотки возбуждать так чтобы усилие всегда было равномерным. Нужно будет делать некоторую калибровку, чтобы контролер знал на какой угол сколько вешать, но это не выглядит проблемой(пока не занялся и не знаешь деталей - всё так просто!).

Опубликовано:
1 час назад, =FX=HeXyaH сказал:

Ну структуры ты сдампил, а логику работы с ними где возьмёшь?

 

Замечание полностью верное. Протоколом сейчас и занят. Это действительно наиболее непонятный этап. Если разберусь - запилю пост.

Хочется уже к механике поскорее перейти, там столько интересного!

 

 

1 час назад, =FX=HeXyaH сказал:

ИМХО - самый простой способ - это сэмулировать (как здесь) на новом процессоре 045E:001B мелкософтовским дровам + сдампить передачу эффектов (с помощью утилит тестирования FFB-эффектов) - и их закодить (ну т.е. притвориться МСФФБ2 ;) )

 

Такой вариант рассматривается.

Причем по эффектам, в  минимальном виде: только констант форс, необходимый для понимания затяжеления.

А вот все скорости обработки наоборот, форсировать до предела. Может тогда и фризы от совместной в тракиром работы уйдут?

 

В 10ке то нет никаких драйверов для ффб2, видится как обычное устройство. Но это не исключает варианта что внутри стандартных HID.dll и прочих, нет под него своих веток кода.

 

 

1 час назад, =FX=HeXyaH сказал:

как на это посмотрят мелкомягкие

 

Мимо посмотрят. Пока не начнём продавать хотябы тысячными тиражами.

  • Поддерживаю! 2
Опубликовано: (изменено)
1 час назад, l3VGV сказал:

Такой вариант рассматривается.

Причем по эффектам, в  минимальном виде: только констант форс, необходимый для понимания затяжеления.

А вот все скорости обработки наоборот, форсировать до предела. Может тогда и фризы от совместной в тракиром работы уйдут?

В 10ке то нет никаких драйверов для ффб2, видится как обычное устройство. Но это не исключает варианта что внутри стандартных HID.dll и прочих, нет под него своих веток кода.

Мимо посмотрят. Пока не начнём продавать хотябы тысячными тиражами.

Вот по эффектам - не соглашусь: для меня в ФФБ чувствовать начало срыва - может быть даже важнее, чем переменная загрузка, т.к. на срывных режимах загрузка уже почти никакая ... Так что тряска нужна обязательно!

Фризы не привязаны к конкретно МСФФБ2 - это проблема директ-икса и синхронизации видеовывода, т.к. необязательно даже подключать МСФФБ2 - достаточно в игре поставить галку ФФБ, и всё, приплыли - трэкир лагает - и с другими ФФБ джоями тоже ...

Драйверы есть, но таки да - в inf-файле к стандартному HID - все МС-устройства, в т.ч. и с  ФФБ. Но если нужны оригинальные (там есть кнопочные макросы, регулировка МЗ/линейности и уровня усилия) - лучше дампить из-под ХР ...

ИМХО - если хотя бы сделать конструктор такой прошивки и сделать общедоступным, уже будет "нерукотворный памятник" автору ... ;) И йух с ними, с МС ...

Изменено пользователем =FX=HeXyaH
  • Поддерживаю! 2
Опубликовано: (изменено)
Цитата

ИМХО - если хотя бы сделать конструктор такой прошивки и сделать общедоступным, уже будет "нерукотворный памятник" автору

Уже все есть :) 

https://github.com/Ultrawipf/OpenFFBoard/tree/master/Firmware

https://github.com/SimuCUBE/SimuCUBE-OpenSource-Firmware

https://github.com/nervTeh/ForceFeedback-core-library

https://github.com/hoantv/VNWheel

 

Из этого копипастятся куски и собираются в рабочее решение. Или в каком виде вам нужен конструктор? :) Прошивка будет доступна в скором будущем, когда допишу програмку для конфигурирования еффектов. В ней работают все  еффекты.

Изменено пользователем propeler
  • Спасибо! 4
Опубликовано:
1 час назад, =FX=HeXyaH сказал:

Фризы не привязаны к конкретно МСФФБ2 - это проблема директ-икса и синхронизации видеовывода, т.к. необязательно даже подключать МСФФБ2 - достаточно в игре поставить галку ФФБ, и всё, приплыли - трэкир лагает - и с другими ФФБ джоями тоже ...

 

У меня фризить начинает только если есть активные эфекты. Если без джоя поставить галку - фризов нет. Если включить и стоять на стоянке - фризов нет. А когда начинаеш летать и джою надо подрожать - тогда фризит.

 

Врятли проблема с видеовыводом.

Проблема вообще имеет неясные для меня корни. Еслибы допустим разработчики ошиблись и делали вызовы из того потока в котором и рендеринг, то блокирующие вызовы фризили бы и без тракира.

Тракир без ффб не фризит.

Такое ощущение что у них есть какойто общий разделяемя ресурс, который они пытаются захватить. Страшно будет если это чтото внутри их драйверов, но что?

 

Сами вызовы фидбека это не более чем SetFeature/GetFeature - обычные HID контрол трансферы. Я пробовал вклюить бомбардировку моего контроллера этими передачами. Примерно 200 в секунду, никаких фризов не замечено. 

 

 

Вобщем эта задача требует себе отдельного героя.

Опубликовано:
2 часа назад, l3VGV сказал:

то самое, посерьезней и сразу сурово дороже. 

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

Опубликовано:
12 часов назад, propeler сказал:

 

 

16 часов назад, l3VGV сказал:

 

Ребят, я все понимаю -- но почему не использовать вместо шестерен, ремней и шкивов пружины? Само же собой решение напрашивается! 

Опубликовано: (изменено)
12 часов назад, propeler сказал:

Уже все есть :) 

Из этого копипастятся куски и собираются в рабочее решение. Или в каком виде вам нужен конструктор? :) Прошивка будет доступна в скором будущем, когда допишу програмку для конфигурирования еффектов. В ней работают все  еффекты.

Ну, в моём понимании, это что-то, уже не нужно собирать из разных кусков исходников разных библиотек, потом пытаться компилировать и отлаживать, попутно причёсывая структуры разных данных ... ;)

Скетч для ардуино, предварительно сконфигурированный с помощью *.h -файлов - уже вполне приемлемо ... ;)

Ну и файлы для травления платы силовой обвязки приводов моторов - куда ж без этого с ФФБ ...

34 минуты назад, Shade сказал:

Ребят, я все понимаю -- но почему не использовать вместо шестерен, ремней и шкивов пружины? Само же собой решение напрашивается! 

Я уже где-то высказывался, что самый идеальный привод ФФБ джоя для игровых применений - это (ИМХО) такой же как актуатор HDD - ни шестерён, ни ремней и прецезионное позиционирование с регулировкой тока в широких пределах ...

Изменено пользователем =FX=HeXyaH
Опубликовано: (изменено)
Цитата

Ребят, я все понимаю -- но почему не использовать вместо шестерен, ремней и шкивов пружины? Само же собой решение напрашивается! 

Цитата

Я уже где-то высказывался, что самый идеальный привод ФФБ джоя для игровых применений - это (ИМХО) такой же как актуатор HDD - ни шестерён, ни ремней и прецезионное позиционирование с регулировкой тока в широких пределах ...

Сорри гайз, но ваши предложения - это просто "а поговорить". Если у вас есть готовое решение, доступное, не за космические деньги, с интересующими нас показателями усилия - давайте ссылки, чертежи, описания. На первый взгляд очень многие решения могут показаться очевидными, но попробовав их реализовать в РЕАЛЬНОМ МИРЕ с условиями того что в нем можно купить и изготовить все становиться не настолько очевидным.

 

Я считаю, что лучшее решение - это решение которое можно воплотить в жизнь в условиях того что доступно простому смертному, потратив на это не все деньги мира.

Изменено пользователем propeler
  • Нравится 1
  • Спасибо! 1
  • Поддерживаю! 2
Опубликовано: (изменено)
32 минуты назад, =FX=HeXyaH сказал:

Я уже где-то высказывался, что самый идеальный привод ФФБ джоя для игровых применений - это (ИМХО) такой же как актуатор HDD

 

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

 

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

 

image.png.c5543f5140412cf87373668dddbbe6ca.png

 

 

Две катушки будет на подвижной части, а ещё 2 - на неподвижной. Т.е. ротор и статор. 

 

image.png.5e7c5d0af8a312b3be29fca10df41b61.png

 

 

Управлять такой машиной нужно также как и обычно. теперь например, создаем N поле на статоре и S на роторе (или наоборот) - встали в центр. На статор N S, а на роторе S - пошли влево. И так далее. Плюсы тут в том что можно работать от датчика на оси. Директ драйв, полная плавность. А вот токи, для создания вменяемых усилий нужны будет - конские. Дальше можно начинать прикидывать, сколько магнитного потока будет вылетать наружу и куда, даже если сделать скромно, скажем на 1Т.

 

Вариант дороже но магнитные поля наружу полезут меньше, это статор выполнить из тора, с вырезанным пазом. Т.е. берется обычный трансформатор ТОР, там делает прорезь под размеры электромагнитов которые будут на роторе. 

 

Размеры и вес таких конструкций даже думать страшно:) Ну, для какихто вменяемых усилий на рычаге.

Не говоря уже про цену как самой магнитной системы так и драйверов для неё(но то я жадный, а настоящих энтузаистов это не остановит!). 

 

Цены за электричество опятьже.

 

Зато можно сделать водяное охлаждение катушек. Такое вообще редко где встречается!

 

 

Изменено пользователем l3VGV
Опубликовано:
11 минут назад, l3VGV сказал:

Вариант дороже но магнитные поля наружу полезут меньше, это статор выполнить из тора, с вырезанным пазом. Т.е. берется обычный трансформатор ТОР, там делает прорезь под размеры электромагнитов которые будут на роторе. 

Размеры и вес таких конструкций даже думать страшно:) Ну, для какихто вменяемых усилий на рычаге.

Есть другой, почти готовый вариант ;)

Передача 183:1, но таки шестерёнки, жужжать будут, и люфтить ... ;)

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
×
×
  • Создать...