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

RomanST

Рейсеры
  • Публикации

    1463
  • Зарегистрирован

  • Посещение

  • Дней в лидерах

    32

Все публикации пользователя RomanST

  1. Не то вы тестируете, вот на что надо обзор запилить! Как рулится, плюсы, минусы и т.д. И для сравнения еще вот эту:
  2. Это да :) Я так и не понял что я там неправильно сделал, прозванивал все цепи перед тем как в розетку включать и микроскопом все смотрел... Видимо там на линию USB 25 вольт прилетело...
  3. Бывают удачные дни, а бывают - как вчера... В общем, процесс ремонта несколько затягивается... Заодно придется чинить USB-хаб и мышку... Слава богу комп не пострадал...
  4. Приехали детальки, опять пол-ночи с паяльником сидеть :) Будем надеяться, что оно сразу резко оживет и все будет круто... А так я все смотрю на эти рули внутри и уже хочется свой замутить... Только кто же его покупать будет? :)
  5. mini Din 6Pin - хреновые разъемы, ну, по крайней мере те, которые у меня есть. Паять неудобно.
  6. Был у меня знакомый, работал в журнале "Автозвук". Статьи его я оценить не могу, так как не аудиофил ни разу, могу сказать только нравится/не нравится. Но впечатлило, что товарищ ездил на убитой тойоте очень-очень лохматого года, в которой автозвука наверное вообще никакого не было, да и дома у него тоже не было даже переносного магнитофона...
  7. Из того, что я понял просто изучая интернет: База опрашивает баранку по SPI. Баранка передает базе 24 бита. Первые несколько бит (возможно 8) - фиксированы. Возможно по ним база определяет что это за баранка. У меня есть образец данных для баранки 458 Italia и есть баранка Ильи, которая отличается по внутренностям, но скорее всего работает аналогично. Осталось спаять переходник и проверить, что именно передает та баранка, которая у меня есть. После этого я смогу более определенно сказать, нужна ли баранка ф1. Возможно получится просто подобрать идентификатор для нее. Но здесь уже желательно иметь рабочую базу. В общем, подождите немного, скоро будет больше информации. Платы внутри разные кстати. Вот TX RW, тут все просто и понятно: А вот внутри баранки Ильи: Это тайваньский 8-битный OTP контроллер, думаю, самый дешевый, который только можно было найти: Верхняя баранка видимо как раз 458 Italia, раз они совместимы - значит, протокол должен быть одинаковый. Но есть еще одна нога, которая в верхней баранке не искользуется. Скорее всего это MOSI (Master-Out-Slave-In) и что по ней передается - еще предстоит разобраться. Green – not used (reserved for MOSI?) Blue – GND (ground) White – MISO (master-in-serial-out, this is a serial data line from wheel to base) Orange – SS (slave select, also called PL – parallel load) Red – SCK (clock) Black +VCC (wheelbase uses +3.3V) Небольшое дополнение: /* Ver. 1.03 beta 2016-08-05 This sketch emulates Thrustmaster F1 Wheel addon allowing to connect arduino (Arduino Pro Mini) to TX RW wheelbase (may work for T500/T300 as well) and emulate button presses - up to 17 buttons +4 emulated (D-Pad) buttons can be connected to arduino. !!! There are 2 flavours of arduino boards - powered by +5 volts or +3.3 volts !!! !!! If you have +5V Arduino version - disconnect it from USB before connecting to a wheelbase !!! !!! Just power your arduino from TX RW wheelbase Black pin - it supplies +3.3V voltage (should be enough) !!! !!! don't connect USB +5V wire to TX RW wheelbase Black +3.3V - you'll get a collision !!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!! Tested with Arduino Mini Pro (ATMEGA 328P) at 3V 12MHz !!! Thrustmaster Wheelbase cable pinout (PS/2 connector, also known as mini-Din 6pin female): 1 - Green - MOSI Don't connect 2 - Blue - GND (ground) 3 - White - MISO (master in, slave out - to read the data from the wheel) 4 - Orange - SS (slave select, or PL - parallel load, set it to 0 when you want to read the data) 5 - Red - CLK (clock impulses) 6 - Black - +VCC (+3.3 volts! if you have Arduino 5V version - use external +3.3V power or use the wheelbase power!!!) Arduino UNO pins -> TX RW wheelbase cable pins MISO - used for button 2 Gear Up Arduino GND -> TWRX Blue wire (2) Arduino pin 12 (MOSI) -> TXRW White wire (3) (data from wheel to base) Arduino pin 10 (SS) -> TXRW Orange wire pin (4) Arduino pin 13 (SCK) -> TXRW Red wire (5) Arduino +5V -> TXRW Black wire (6) (it gives 3.3V, but must be connected into +5V socket on arduino uno side) Button mappings Read out with unpushed buttons 1100 1111 | 1111 1111 | 1111 1111 | 1111 1111 | 0000 0000 | 0000 0000 | 0110 0000 | 0100 0000 | Byte 1 1-8 5 (DRS) - (A) --> 11 (PortB bit2) 1-7 static 1 ??? 1-6 static 0 ??? 1-5 static 0 ??? 1-4 1 (gear down) - (LB) --> A3 (PortC bit3) 1-3 2 (gear up) - (RB) --> A2 (PortC bit2) 1-2 3 (N) - (X) --> A1 (PortC bit1) 1-1 4 (PIT) - (A) --> A0 (PortC bit0) Byte 2 2-8 13 (START sw) - (A) --> 7 (PortD bit7) (It has soldered same function up and down) 2-7 6 (10+) - (LB) --> 6 (PortD bit6) 2-6 7 (BO sw) - (VIEW) --> 5 (PortD bit5) (It has soldered same function up and down) 2-5 8 (WET sw) - (MENU) --> 4 (PortD bit4) (It has soldered same function up and down) 2-4 9 (PL) - (B) --> 3 (PortD bit3) 2-3 10 (K) - (Y) --> 2 (PortD bit2) 2-2 11 (PUMP) - (A) --> TX/1 (PortD bit1) 2-1 12 (1-) - (RB) --> RX/0 (PortD bit0) Byte 3 3-8 21 (BP up) - (Same as D-Pad) (PortC bit6) R1=10K Ohm 3-7 D-pad down - (D-Pad) ------> JOY_X // JOY_X: GND --[====/===]-- Vcc 3-6 D-pad right - (D-Pad) ------> JOY_Y | 3-5 D-pad left - (D-Pad) ------> JOY_Y |A5 (PortC 5) R2=10K Ohm // JOY_X: GND --[====/===]-- Vcc 3-4 D-pad up - (D-Pad) ------> JOY_X A6 | 3-3 20 (BP down) - (Same as D-Pad) (PortC bit5) 3-2 19 (BP right) - (Same as D-Pad) (PortB bit1) 3-1 18 (BP left) - (Same as D-Pad) (PortB bit0) Byte 4 Not Implemented yet 4-7 16 (CHRG down) (rotary encoder flag bit) 4-6 14 (DIF IN up) (rotary encoder flag bit) 4-5 15 (DIF IN down) (rotary encoder flag bit) 4-4 17 (CHRG up) (rotary encoder flag bit) 4-3 static 1 ??? 4-2 static 1 ??? 4-1 static 1 ??? 4-0 static 1 ??? Byte 5 Not Implemented yet It shows DIF IN rotary enc steps. Rotate up: xxxx 1111 Rotate down: xxxx 0000 xxxx shows how much step was from last read out, but I can't count exactly. Byte 6 Not Implemented yet It shows CHRG rotary enc steps. Rotate up xxxx 1111 Rotate down xxxx 0000 Byte 7 static Byte 8 static Ah, each push button has 2 pins - you connect one to Arduino, another to the Ground :) Pressed button gives you "0" (grounded signal), released = "1" (pulled-up to +VCC) For D-pad use an Analog mini joy 10kOhm Feel free to modify and use it for your needs. This sketch and the documentation above provided "AS IS" under the BSD New license. http://opensource.org/licenses/BSD-3-Clause Based on (c) Taras Ivaniukovich (blog@rr-m.org) April 2015 Istvan Virag Aug 2016 added some F1 wheel function http://rr-m.org/blog/hacking-a-thrustmaster-tx-rw-wheelbase-with-arduino-uno-part-2/ */ //#include "pins_arduino.h" // not necessary in 1.6.3? #include <SPI.h> #define D_padX A6 #define D_padY A7 #define treshold_min 75 // treshold limits of buttons 0-255 (1 Byte) #define treshold_mincent 100 // You can setup as you like it #define treshold_maxcent 156 // #define treshold_max 181 // byte wait; volatile byte wheelState[16]; volatile byte pos = 1; volatile boolean SSlast = HIGH; // SS last flag. volatile boolean ReadFlag = HIGH; volatile byte AnalogValue; volatile byte D_Pad_State = B11111111; volatile byte analogD_padX = 128; volatile byte analogD_padY = 128; void setup () { sei(); //enable global interrupts DDRB |= B00001011; // digital pins 8,9,11 used as inputs with a pull-up to +VCC PORTB |= B00001011; DDRC |= B00111111; // pins 14-19 (A0 - A5) also used as digital inputs PORTC |= B00111111; // pulled-up to +VCC via internal 100k resistors DDRD |= B11111111; // digital pins 0,1,3,4,5,6,7 used as inputs PORTD |= B11111111; // pulled-up to +VCC via internal 100k resistors wheelState[0] = B11001111; // TX RW Ferrari 458 Italia Wheel first data byte wheelState[1] = B11111111; // second data byte - buttons wheelState[2] = B11111111; // third data byte - buttons wheelState[3] = B11111111; // this and below - not used, but wheelbase reads all 8 bytes... wheelState[4] = B00000000; wheelState[5] = B00000000; wheelState[6] = B01100000; wheelState[7] = B01000000; wheelState[8] = 0x00; // Just for more compability to the future wheelState[9] = 0x00; wheelState[10] = 0x00; wheelState[11] = 0x00; wheelState[12] = 0x00; wheelState[13] = 0x00; wheelState[14] = 0x00; wheelState[15] = 0x00; // SPI parameters SPCR = B11000000; //SPI Slave setup pinMode(MISO, OUTPUT); // Slave device /* Pin Change Interrupt services * PCICR |= PCIE0 1 * PCMSK = PCINT7-0 PCINT6-0 PCINT5-0 PCINT4-0 PCINT3-0 PCINT2-1 PCINT1-0 PCINT0-0 */ PCICR = B00000001; //Configure PCINT2 PCMSK0 = B00000100; // Interrupt on SS pin } // PinChange Interrupt for start SPI communication ISR (PCINT0_vect) { if (!(PINB & B00000100)) { SPDR = wheelState[0]; // load first byte into SPI data register pos = 1; } } // SPI interrupt routine ISR (SPI_STC_vect) { SPDR = wheelState[pos++]; // load the next byte to SPI output register and return. } // Interrupt service routine for the Analog reading ISR (ADC_vect) { switch (ADMUX & B00000001) { case 0x00: analogD_padX = ADCH; // 8 bit AD conversion is enough break; case 0x01: analogD_padY = ADCH; break; } ADCSRA = B00000100; // Stop ADC ReadFlag = HIGH; } void loop() { // scan the button presses if (ReadFlag) { // Start Next Analog Read switch (ADMUX & B00000001) { case 0x00: ADMUX = B01100111; ReadFlag = LOW; ADCSRA = B11001100; // ADC setup, start break; case 0x01: ADMUX = B01100110; ReadFlag = LOW; ADCSRA = B11001100; // ADC setup, start break; } // analog joy 1 X coordinate if (analogD_padX < treshold_min) { //0XX1PPPP go down D_Pad_State &= B01110000; D_Pad_State |= B00010000; } else if ( analogD_padX > treshold_max) { //1XX0PPPP go up D_Pad_State &= B11101111; D_Pad_State |= B10000000; } else if ( (analogD_padX > treshold_mincent) & (analogD_padX < treshold_maxcent)) { //1XX1PPPP stay D_Pad_State |= B10010000; } // analog joy 1 Y coordinate if (analogD_padY < treshold_min) { //X10XPPPP go left D_Pad_State &= B11011111; D_Pad_State |= B01000000; } else if ( analogD_padY > treshold_max) { //X01XPPPP go right D_Pad_State &= B10111111; D_Pad_State |= B00100000; } else if ( (analogD_padY > treshold_mincent) & (analogD_padY < treshold_maxcent)) { //X11XPPPP stay D_Pad_State |= B01100000; } } wheelState[0] = (B01000000 | ((PINB << 4) & B10000000) | (PINC & B00001111)); wheelState[1] = PIND; // take 8 bits from PORTD wheelState[2] = (((D_Pad_State >> 1) & B01111000) | (PINB & B00000011) | ((PINC << 2) & B10000000) | ((PINC >> 2) & B00000100)) ; // wheelState [8] = analogD_padX; // You can setup treshold limits with a Raspberry Pi // wheelState [9] = analogD_padY; // wheelState [10] = D_Pad_State; } // end of main loop()
  8. Илья, все проблемы решаемы! Спасибо тебе за руль, он нам очень пригодится! Завтра-послезавтра приедут новые транзисторы и драйвер трехфазника, надеюсь что это решит проблему с электроникой. Если нет - ну проковыряюсь немного дольше, мне не сложно Да и опрос кнопок баранки можно замутить имея только саму баранку и крепление, думаю, этого будет достаточно. ЗЫ: Расколотые детали я склеил эпоксидкой, сначала думал, что этого будет достаточно, но потом посмотрел на ютубе как калибруются исправные T300 - это пц какой то, как можно было ТАК руль делать?
  9. Вот нашел тут на просторах интернета (не из этого руля, но, наверное, способ разрушения был такой же): ЗЫ: начал закупаться детальками для ребилда платы руля. Надо было еще сопротивление обмоток у мотора померять, что то я сразу не догадался... PS: набрал в ютубе "Thrustmaster T300RS Calibration problem", да там тысячи совершенно одинаковых роликов!
  10. Здесь скорее экономия на концевиках, скорее всего дело было так (смотрим видео Ильи): 1. вылетает один из силовых транзисторов, руль влево при калибровке не крутится. 2. контроллер считает, что влево руль "припаркован", и начинает его крутить на три оборота вправо, причем, поскольку это "крайнее левое положение", то крутить быстро. 3. руль со всей дури молотит в крайнее правое положение и разбивает в хлам весь пластик. Если бы эту поделку я проектировал - поставил бы по краям оптические концевики, а весь механизм сделал бы из алюминиевого сплава. Но стоило бы дороже...
  11. Трэшачок: http://www.isrtv.com/forums/topic/18453-bought-a-used-tx-oh-dear/ Наверное это нужно в тему по трэшмастерам перенести...
  12. А, нет, был не прав, с электроникой тоже косяки... Надо смотреть что там... Скушно не будет :)
  13. Вот насчет хрустмастера - это прямо попадание в яблочко... У кого этот самый хрустмастер - очень не советую выкручивать всякие эффекты в 100500 процентов от нормы...
  14. Так, ну судя по всему такая штука нафиг никому не нужна. Ок. Следующий вопрос, реализация GIMX(https://blog.gimx.fr/) на одной плате интересна? Выглядеть будет как коробка с несколькими USB дырками, подключаете несколько устройств - получаете одно виртуальное. Стоить будет дорого, так как внутри будет фактически USB hub и контроллер с двумя USB интерфейсами (host + device). Аналог DriveHub короче... Бгг: https://leonardo.osnova.io/afdce8c6-aff2-616f-e6db-85c36f8806c3/-/format/mp4/
  15. Обгони Ричарда Бернса в школе.. Классика...
  16. A grid girls? Опять нет?
  17. Ну да, это не EMS, которые медленнее чем обычная почта... :baseball: Походу реально нахрустелся. Думаю в выходные вскрывать и смотреть что там с ним...
  18. 3-я партия почти распродана, 4-я застряла на складе EMS. Если кто вроде бы хотел, но пока не решился - есть время подумать :) Набросал тут корпус по быстрому, сам распечатать сейчас не могу, только модельки отдать. Скачать можно отсюда: https://www.thingiverse.com/thing:2753618/#files
  19. Ну паяльник у меня годный, точнее это станция на жалах Hakko T12. Но глаза устают пц. Поэтому все, что хорошо продается, теперь собирается по новой модной технологии - сборка китайцами. Естественно, это тоже влияет на стоимость. Зато здоровья больше остается...
  20. INA122 мелкими партиями примерно по два доллара, купил десяток на пробу. В 10 долларов у нас может уложиться только один специалист, я не смогу. Да и считать только себестоимость мне не очень интересно. Полтора доллара за плату, два - за контроллер, еще два - за усилитель. Разъемы, конденсаторы, светодиоды и резисторы почему то тоже денег стоят, причем дешево они только в катушках по несколько тысяч штук, а если покупать поштучно - в разы дороже. Регулятор напряжения тоже небольшую копеечку стоит. Как ни странно, паяльная паста тоже не бесплатная, да и катушка припоя с флюсом для выводного монтажа - тоже. А если продавать - еще пакетик, пупырка и коробка. Ну и услуги почты. В общем, придется доплачивать чтобы в десятку вписаться. Ну и работать бесплатно...
  21. Как говорится покажи сиськи или на выход. В смысле жду фото готовой платы и текст в стиле "продам за 10 баксов".
  22. Нет, не дешевле. Если говорить именно о готовой красивой плате, а не о страшном колхозе с торчащими соплями. AD627 я уже пробовал и они точно работают, так что скорее всего их.
×
×
  • Создать...