-         

Ergebnis 1 bis 4 von 4

Thema: Asuro erlernt Signal einer Fernbedienung

  1. #1

    Asuro erlernt Signal einer Fernbedienung

    Anzeige

    Hallo,
    Ich bin fange gerade erst mit der Programmierung des Asuros an. Ich versuche ein Programm für den Asuro zu schreiben, mit dem es möglich ist, 4 verschiedene Signale (für je 4 verschiedene Fahrtrichtungen) einer Fernbedienung zu speichern und auf diese später richtig zu reagieren. Leider funktionert dieses Programm noch nicht ganz. Kann mir vielleicht jemand helfen und mir sagen, was ich falsch gemacht habe?
    Code:
     /*
    NAME: Fernbedinung.c
    Autor: Matthias Hüther
    Beschreibung: Programm zur Steuerung der Asuros mittels einer TV-Fernbedienung.
    				Es werden 4 Signale für je 4 Fahrtrichtungen gespeichert.
    				Anschließend soll der Asuro auf die 4 Signale entsprechend reagieren.
    */
    
    
    #include "asuro.h"
    
    unsigned char right[20], left[20], fwd[20], back[20], signal[20];
    int i, a;
    
    void pre(void){
    	for(i=0;i<=100;i++) Sleep(255);  //vorbeireiten auf neues signal
    	MotorDir(BREAK,BREAK);
    	StatusLED(RED);
    	}
    void checkok(void){			//bei erhalt des Signals blinken
    	a = 3;
    	while(a<=3){ 
          StatusLED(GREEN); 
          BackLED(ON,ON); 
          FrontLED(ON); 
          for(i=0;i<=40;i++) 
             Sleep(255);  
          BackLED(OFF,OFF); 
          FrontLED(OFF); 
          for(i=0;i<=40;i++) 
             Sleep(255); 
          a++; 
       } 
    }
    
    int main(void)
    {
    	Init();
    	//lerne Signal für rechts
    	MotorDir(FWD,RWD);
    	MotorSpeed(250,250);
    	pre();
    	SerRead(right,20,0);
    	checkok();
    	
    	//lerne Signal für links
    	
    	MotorDir(RWD,FWD);
    	MotorSpeed(250,250);
    	pre();
    	SerRead(left,20,0);
    	checkok();
    	
    	//lerne Signal für vor
    	
    	MotorDir(FWD,FWD);
    	MotorSpeed(250,250);
    	pre();
    	SerRead(fwd,20,0);
    	checkok();
    	
    	//lerne Signal für back
    	
    	MotorDir(RWD,RWD);
    	MotorSpeed(250,250);
    	pre();
    	SerRead(back,20,0);
    	checkok();
    	
    	while(1){
    	//fahre auf signal
    	pre();
    	SerRead(signal,20,0);
    	if(signal==right){
    	StatusLED(GREEN);
    	MotorDir(FWD,RWD);
    	MotorSpeed(250,250);
    	for(i=0;i<=100;i++) Sleep(255);
    	}
    	if(signal==left){
    	StatusLED(GREEN);
    	MotorDir(RWD,FWD);
    	MotorSpeed(250,250);
    	for(i=0;i<=100;i++) Sleep(255);
    	}
    	if(signal==fwd){
    	StatusLED(GREEN);
    	MotorDir(FWD,FWD);
    	MotorSpeed(250,250);
    	}
    	if(signal==left){
    	StatusLED(GREEN);
    	MotorDir(RWD,RWD);
    	MotorSpeed(250,250);
    	}
    	}
    	return 0;
    }
    Gruß Mathbot

  2. #2

    ????

    Hat denn keiner eine Idee?????
    Soweit funzt das Programm ja. Er speichert die 4 verschiedenen Signale ab.. und ... naja dann kommt das eigentliche Problem: Er erkennt anscheinend kein Signal wieder. Woran kann das liegen?

  3. #3
    Erfahrener Benutzer Roboter Genie Avatar von m.a.r.v.i.n
    Registriert seit
    24.07.2005
    Ort
    Berlin
    Beiträge
    1.247
    Hallo mathbot,

    ich glaub nicht, dass das so funktionieren kann. Eine Fernbedienung sendet ja keine UART Signale sondern z.B. RC5 Code. Wenn dir diese Begriffe nichts sagen, solltest du mal danach googlen oder hier im Forum oder im Wiki danach suchen.

    Hast du dir den Beispielcode 'IRDemo.c' auf der Asuro CD mal angeschaut?
    Das Programm könnte man entsprechend anpassen, um damit dem Asuro Fernbedien Codes anzulernen.

    Hier gibt es auch einen Thread zu dem gleichen Thema.

    Gruß m.a.r.v.i.n

  4. #4
    Oh supa
    Vielen dank.. ich kenn mich damit noch nicht so besonders aus.
    Werde mich jetzt mal genauer informieren

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •