RSSI vom Spekrum / Orange / DSM2 Empfänger

Status
Nicht offen für weitere Antworten.

Flori444

AllwetterFlieger
#1
Hat jemand eine Möglichkeit das RSSI Signal (falls überhaupt vorhanden) am Spektrum oder Orange Empfänger abzuzweigen oder ist das nur mit dem Modul zum zwischenstecken von Flytron möglich? Möchte die Empfangsqualität der RC-Anlage evtl. am OSD anzeigen lassen.

Hat das vll. schon jemand gemacht ?
 
#2
Hay Flo, n tuturial für FASST gibts bei rc-explorer, soweit ich des verstanden hab blinkt bei den FASST empfängern eine LED wenn ein paket verloren ging. Er kann nichts zu anderen Systemen sagen aber meint das jemand mit Erfahrung und einem Oszi das rausmessen könnte. Du hast beides, das weiß ich :D
Link: http://rcexplorer.se/page14/lostp/lostp.html
P.S.: weil du in Skype nicht reagiert hast, deswegen :D
 

Flori444

AllwetterFlieger
#3
Nach langem suchen und überlegen: die Amis haben auch nix raus, dafür hab ich meinen AR9000 geloggt und ein tolles Ergebnis erhalten. Vll weis ja jmd. was damit anzufangen, ich tippe auf die 9 Kanäle + irgendein anderer Schmarn :)
Doch wie findet der Empfänger + das Modul einen freien Kanal, dazu muss doch nomal irgendwas RSSI mäßiges anfallen.
Zur Not: LED am Empfänger abzwacken, dann weis man im Video, (falls das länger sendet als RC) das vor 1 Sekunde der Empfang ausgefallen ist, falls man es nicht schon bemerkt hat :p:
Ich hoffe jedenfalls dass hier noch was rauszuholen ist, wäre ne nette Geschichte fürs OSD.
Weitere Infos folgen, denn MultiWii unterstützt ja mittlerweile Satelliten einzeln, da muss doch was zu machen sein.
 

Anhänge

NikLas_2310

Profitüftler
#4
vllt noch was zu machen an der sache ;)

bin gerade auf den Code von "MelihK" aus "rcgroups" gestoßen und vllt kennt sich jemand damit besser aus :)

ich versethe nur nicht ganz wie und von wo der atmel aufeinmal das signal fürs rssi herbekommt :O
vllt kann mir das mal einer erklären der ahnung hat :)

Code:
#include <string.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/wdt.h>
#include <util/delay.h>
#include <avr/eeprom.h> 


unsigned char	packs[40] ;
unsigned char   pack_number = 0;
unsigned char   i;

unsigned char rssi=0;

volatile unsigned char c;
volatile unsigned int say = 0;
volatile unsigned char temp;
volatile unsigned char indicator_mode=0;

#define ppm_on PORTB |= (1<<1)
#define ppm_off PORTB &= 0xFD

#define led_on PORTC |= (1<<1) 
#define led_off PORTC &= 0xFD

#define indicator_on PORTB |= (1<<1) 
#define indicator_off PORTB &= 0xFD

#define NOP(){asm volatile("nop\n\t");}


#if (defined UCSR0A)  //Atmega48 ise
 #define  UCSRA         UCSR0A
 #define  UCSRB         UCSR0B
 #define  UCSRC         UCSR0C
 #define  UBRRL         UBRR0L
 #define  UBRRH         UBRR0H
 #define  UDR           UDR0
 #define  TXC			TXC0
 #define  RXC			RXC0
 #define  WDTCR         WDTCSR
 #define  GICR         	GICSR
 #define  RXEN 			RXEN0
 #define  RXCIE 		RXCIE0
#endif



static void hardwareInit(void)
{

	DDRC = 0x03;                /* all outputs */
	PORTC = 0x00;

      
	DDRB = 0x06;
	PORTB = 0x00;
   
   
    UCSRA = (1<<U2X0);
	UCSRB = (1<<RXEN);   // Rx enable Tx Enable
	UCSRC = 0x86;   // Asyn,NoParity,1StopBit,8Bit	

	UCSRB |= (1<<RXCIE); // Enable Rx Complete Interrupt


	UBRRL = 8; //7; // 115.200 baud
	UBRRH = 0; 

	
}


void init_servo_driver(void)
{

   TCCR1A |= (1<<COM1B1);         //clear on compare match, set at bottom
   TCCR1A |= (1<<WGM11);                  //fast pwm, ICR1 is TOP
   TCCR1B |= (1<<WGM12) | (1<<WGM13);

   ICR1 = 120;

   TCCR1B |= (1<<CS10);                  //prescaler = 1

   OCR1B = 0;
  
  
} 




#ifdef UCSR0A 
ISR(USART_RX_vect)
#else
SIGNAL (SIG_UART_RECV)  // USART RX interrupt
#endif	
{	
	
	c = UDR;
	
	if (say>5)
	   {
	   packs[pack_number] = c;
	   pack_number++;
	   if (pack_number>39) pack_number = 0;
	   
	   temp = c ;
	   
	   if ((temp & 0x0C) != 0)	
			{
			led_off;
			indicator_mode = 0;
			}
			else
			{
			led_on;
			indicator_mode = 1;
			
			}

	   }
		
	say = 0;

	
}



int main(void){


wdt_enable(WDTO_1S);
hardwareInit();


_delay_ms(100);
led_off;
_delay_ms(100);
wdt_reset();
led_on;
_delay_ms(100);
led_off;
_delay_ms(100);
wdt_reset();
led_on;
_delay_ms(100);
led_off;
_delay_ms(100);
wdt_reset();

init_servo_driver();
sei();
	
led_off;
indicator_off; 



    for(;;){    /* main event loop */
	
	     
	say++;
	
	if (indicator_mode==1) 
		{
		indicator_on;
		_delay_us(500);
		indicator_off;
		_delay_us(500);
	    }
		else
		{
		indicator_off;
		_delay_ms(1);
	    }
	
	
	rssi = 0;
	
	for(i=0;i<40;i++) {
	    
	    temp = packs[i] ;
		if ((temp & 0x0C) != 0) rssi = rssi + 3 ;
		}

	OCR1B = rssi;
	
    wdt_reset();
		
	
	}
    return 0;
}
 

Thint1

Erfahrener Benutzer
#5
hi,

ich habe so einen flytron-rssi baustein - der funktioniert nicht mit meinen empfängern.
leider hatte ich in meiner auswahl an empfängern unterschiedlicher baujahre keinen dabei der genau das protokoll ausgibt welches melik abfragt :)
so wie ich melik´s auswertung verstehe ist das auch kein "echtes rssi", sondern eine auswertung der verlorenen datenpakete.

aber es gibt mittlerweile eine hoffnung: das neuere DSMX mit telemetrieschnittstelle! "kraehe2007" verkauft auf i-bäh "DORA".

leider ist meine "DORA" noch am postweg, deshalb kann ich noch nicht berichten, ob es funktioniert.

grüße Thomas
 

mumba

Team Tomato
#6
Ein DORA Baustein habe ich hier.
Ist leider erst nach dem Wechsel auf Hott angekommen.

Bei Interesse PN

Gruß
Marco
 
Status
Nicht offen für weitere Antworten.
FPV1

Banggood

Oben Unten