Беспроводной джойстик Defender Scorpion RS3 (без передатчика) (PS3 ? )
- Войдите на сайт для отправки комментариев
Халявой досталась такая вещь....без адаптера usb.
Не наковыряв решений в инете, решив взглянуть по ближе.
Имеем внутри:
маркировок гугл не знает....
центральная P3U-8500-XM-TX-1 (есть atmel101 (93c46))
аналоги PS3-8500 VR ( с боку RSF (White Label 98002C1 ))
кнопки P3U-8500-XM-L1 P3U-8500-XM-R1
гироскоп P3U-8500-XM-SENSOR (KXSC4)
радио модуль MRF007A-v2.0 (он же RFM73 )
(Людям ковырявшим PS2/3 не знакомы такие пины? а то вдруг всё проще чем кажется...)
Радио модуль :
http://www.hoperf.com/upload/rf/RFM73-Datasheet-V2.0.pdf
Решил взглянуть по глубже. Заказал RF24L01 (дабы как то попадал на информацию что их сопряжение возможно.)
Воспользовался статейкой: http://forum.amperka.ru/threads/nrf24l01-%D0%BF%D0%BE%D0%B1%D0%B5%D0%B6%D0%B4%D0%B0%D0%B5%D0%BC-%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C.3205/
Ну и как бы при сканировании эфира, я понял что я чего то не понял....
Код со статейки:
#include <SPI.h> #include "nRF24L01.h" #include "RF24.h" #define CE_PIN 9 //!!!!!!!!!!! Для Уно. Здесь установить для ваших плат! #define CSN_PIN 10 //!!!!!!!!!!! Для Уно. Здесь установить для ваших плат! RF24 radio(CE_PIN, CSN_PIN); // Для Уно //RF24 radio(9,53);// Для Меги const uint8_t num_channels = 128; uint8_t values[num_channels]; void setup(void) { Serial.begin(57600); printf_begin(); radio.begin(); radio.setDataRate(RF24_250KBPS); radio.setPALevel(RF24_PA_MAX); radio.setAutoAck(false); radio.startListening(); radio.printDetails(); // Вот эта строка напечатает нам что-то, если все правильно соединили. delay(5000); // И посмотрим на это пять секунд. radio.stopListening(); int i = 0; // А это напечатает нам заголовки всех 127 каналов while ( i < num_channels ) { printf("%x",i>>4); ++i; } printf("\n\r"); i = 0; while ( i < num_channels ) { printf("%x",i&0xf); ++i; } printf("\n\r"); } const int num_reps = 100; void loop(void) { memset(values,0,sizeof(values)); int rep_counter = num_reps; while (rep_counter--) { int i = num_channels; while (i--) { radio.setChannel(i); radio.startListening(); delayMicroseconds(128); radio.stopListening(); if ( radio.testCarrier() ) ++values[i]; } } int i = 0; while ( i < num_channels ) { printf("%x",min(0xf,values[i]&0xf)); ++i; } printf("\n\r"); } int serial_putc( char c, FILE * ) { Serial.write( c ); return c; } void printf_begin(void) { fdevopen( &serial_putc, 0 ); }
Самое странное что модуль не отреагировал на :
radio.setDataRate(RF24_250KBPS);
radio.setPALevel(RF24_PA_MAX);
Вот такая вещь....
P/S цитирую техподдержку ответившую через 2 месяца после обращения "Добрый день! Отдельно ресивер приобрести невозможно, сожалеем("
А вопросы такие:
1. Ошибки в настройках модуля? потому не вижу ничего когда джойстик ищет приёмник?
2. Реально ли их сдружить? ( интересна степень фантастичности гемороя которым я заинтересовался...)
3. Возможны ли варианты упрощения этой проблемы? Полагаюсь именно на товарищей колупавших PS2/3 жойстики, ибо этот аппарат имеет совместимость...
ну или имел, пока был приёмник )))
Идём дальше. С модулем разобрались, (видимо разболталась макетка), видим помехи по каналам при нажатии MODE(поиск сопряжения (4канала возможно) и близком физическом расположении).
Будем подбирать...