Беспроводной джойстик 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канала возможно) и близком физическом расположении).
Будем подбирать...