- Labornetzteil AliExpress         
Ergebnis 1 bis 10 von 20

Thema: Brauche dringend hilfe!TV remote mit linienverfolgung einprogrammieren

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.11.2010
    Beiträge
    773
    Mensch Rolf, mal ein wenig freundlicher!?
    Bitamen ist erstens neu hier und zweitens neu in der Materie, wie er schon geschrieben hat...

    Danke Dir!

    Vielleicht könntest Du für uns Neulinge das "idling" erklären? Ist ja erst mal nur das Stillegen, oder?

  2. #2
    Erfahrener Benutzer Roboter-Spezialist Avatar von RolfD
    Registriert seit
    07.02.2011
    Beiträge
    414
    Erstens bin ich nicht unfreundlich und zweitens das Idling ist quasi die Stelle im Programm wo die Abfragen auf Tasten erfolgt sind... aber bevor eine neue Runde Keys einlesen/auswerten gestartet wird.

    Idle heisst nicht stilllegen sondern ruhen, also da wo man z.B. auch weitere Dinge im Ablauf hinzufügen würde nachdem die zu erledigende Arbeit gemacht ist. Aber dazu muss man sich eben den Ablauf des Programms als System ausarbeiten, daher mein Hinweis, ein Ablaufdiagram zu erstellen.

    Und nebenbei... dieses Forum .. viele die hier aktiv schreiben.. mich eingeschlossen ... sind sicher immer gern bereit zu helfen. Dazu gehört aber auch, das man sich als Hilfesuchender klar macht was man eigentlich will.... Probleme nachvollziehbar beschreibt ... usw.
    Für eine einfache Beschreibung ist das genannte Problem - nämlich 2 Programme sinnvoll zu vereinigen - zu komplex für ein Forenbeitrag.

    Wenn ich unfreundlich rüber kommen sollte, bitte ich um Verzeihung. Ich sehe allerdings kein Grund dafür.
    Sind Sie auch ambivalent?

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    18.05.2011
    Ort
    Mannheim
    Beiträge
    11
    Hi RolfD,
    habe von keinem hier verlangt das er mir das Programm schreibt zum ersten.
    habe fabqu das programm mal geschickt habe soeben wieder was probiert und bin dank Fabqu ein stückchen weitergekommen,
    danke nochmal fabqu.
    Muss mal jetzt ein bisschen pausieren da ich nächste woche eine Prüfung schreibe.
    Werde in den nächsten tagen mal das tv remote soweit ich komme umschreiben wenn ich durchs lernen noch zeit haben werde,mal schauen werde das programm dann mal posten wird
    sicherlich ein paar tage dauern.
    Werde euch beiden berichten,danke nochmals

  4. #4
    Erfahrener Benutzer Roboter-Spezialist Avatar von RolfD
    Registriert seit
    07.02.2011
    Beiträge
    414
    Zitat Zitat von Bitanem14 Beitrag anzeigen
    Wäre super nett wenn einer wenigstens nur den ansatz püosten könnte.
    Naja daraus las ich "wenigstens den ansatz - gerne auch das fertige Programm".
    Aber ist ja auch so ok.. ihr scheint das unter euch aus zu machen.
    Hab ich nix gegen... und wenn das Ergebnis wie gewünscht funktioniert: Bravo.
    Sind Sie auch ambivalent?

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    18.05.2011
    Ort
    Mannheim
    Beiträge
    11
    Rolfd für jede nützliche hilfe/tipps auch von dir sehr dankbar nicht falsch verstehen,keiner ist als Programmierer auf die Welt gekommen.
    Im netz gibt es viele sachen und auch die Examples sind nicht schlecht aber für Anfänger doch eine Nummer zu groß finde ich bis mann sich da durchgekaut hat
    dauert es ziemlich lange.
    Danke nochmal für alle wie gesagt werde das Programm irgendwann mal posten.

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    18.05.2011
    Ort
    Mannheim
    Beiträge
    11
    Zitat Zitat von Bitanem14 Beitrag anzeigen
    Rolfd für jede nützliche hilfe/tipps auch von dir sehr dankbar nicht falsch verstehen,keiner ist als Programmierer auf die Welt gekommen.
    Im netz gibt es viele sachen und auch die Examples sind nicht schlecht aber für Anfänger doch eine Nummer zu groß finde ich bis mann sich da durchgekaut hat
    dauert es ziemlich lange.
    Danke nochmal für alle wie gesagt werde das Programm irgendwann mal posten.
    Bevor ich es vergesse slyd hat auch so paar nützliche tipps gegeben danke nochmals

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    18.05.2011
    Ort
    Mannheim
    Beiträge
    11
    Hi Jungs ich bin es wieder,
    wie versprochen habe jetzt nun ein programm geschrieben,
    alles funzt,jetzt habe ich das nächste problem das er ins modus2linienverfolgung reinspringt und anfängt zu stottern bis mir der RP6Loader einen fehler raus bringt.
    Der fehler heißt Motor current check motioncontrol was kann das sein.
    Vermute irgendwas wird zeitgleich aufgerufen aber was?
    Hoffe irgenjemand kann mir da helfen
    Code:
    #include "RP6RobotBaseLib.h" 
    
    #define RC_PROMO8
    
    
    #ifdef RC_PROMO8
    
    
    #define RC5_KEY_vorwaertsm		2
    #define RC5_KEY_rueckwaertsm	8
    #define RC5_KEY_linksm			4
    #define RC5_KEY_rechtsm			6
    #define RC5_KEY_Ledanm			32
    #define RC5_KEY_Ledausm			33 
    #define RC5_KEY_modus1fernbedienung	7
    #define RC5_KEY_modus2linieverfolgen 9
    
    
    #endif
    
    
    uint8_t vorwaertsm;
    uint8_t rueckwaertsm;
    uint8_t rechtsm;
    uint8_t linksm;
    uint8_t	Ledanm;
    uint8_t	Ledausm;
    uint8_t	Resetm;
    uint8_t mleftptmp;
    uint8_t mrightptmp;
    uint8_t power_links; 
    uint8_t power_rechts;
    uint8_t mleft_ptmp; 
    uint8_t mright_ptmp;
    
    uint8_t modus1fernbedienung;
    uint8_t modus2linieverfolgen;
    
    
    
    void ruecksetzen(void)
    			{
    				if(getStopwatch2() > 200)
    					{
    					vorwaertsm=0;
    					rueckwaertsm=0;
    					linksm=0;
    					rechtsm=0;
    				
    					setStopwatch2(0);
    					}
    			
    			}
    
    
    void receiveRC5Data(RC5data_t rc5data)
    
    	
    		{writeString_P("Toggle Bit:");
    		writeChar(rc5data.toggle_bit + '0');
    		writeString_P(" | Device Address:");
    		writeInteger(rc5data.device, DEC);
    		writeString_P(" | Key Code:");
    		writeInteger(rc5data.key_code, DEC);
    		writeChar('\n');
            
            
            
    		
    		switch(rc5data.key_code)
    		
    			{
    			case RC5_KEY_vorwaertsm:
    					writeString_P("vorwaertsm: ");
    					writeIntegerLength(vorwaertsm, DEC, 4);
    					writeChar('\n');
    					writeChar('\n');
    					vorwaertsm=1;								//vorwärts fahren
    					if(vorwaertsm==1&&modus1fernbedienung==1)
    					{
    					move(200,FWD,DIST_MM(150),0);
    					}
    					break;
    			case RC5_KEY_rueckwaertsm:
    					writeString_P("rueckwaertsm: ");
    					writeIntegerLength(rueckwaertsm, DEC, 4);
    					writeChar('\n');
    					writeChar('\n');
    					rueckwaertsm=1;								//rückwärts fahren
    					if(rueckwaertsm==1&&modus1fernbedienung==1)
    					{
    					move(200,BWD,DIST_MM(150),0);
    					}
    					break;
    			case RC5_KEY_rechtsm:
    					writeString_P("rechtsm: ");
    					writeIntegerLength(linksm, DEC, 4);
    					writeChar('\n');
    					writeChar('\n');
    					rechtsm=1;								//rechts fahren
    					if(rechtsm==1&&modus1fernbedienung==1)
    					{
    					rotate(50, RIGHT, 55, 0);
    					}
    					break;
    			case RC5_KEY_linksm:
    					writeString_P("linksm: ");
    					writeIntegerLength(linksm, DEC, 4);
    					writeChar('\n');
    					writeChar('\n');
    					linksm=1;								//links fahren
    					if(linksm==1&&modus1fernbedienung==1)
    					{
    					rotate(50, LEFT, 55, 0);
    					}
    					break;
    			case RC5_KEY_Ledanm:
    					writeString_P("Ledanm: ");
    					writeIntegerLength(linksm, DEC, 4);
    					writeChar('\n');
    					writeChar('\n');
    					Ledanm=1;									// Ledan:
    					if(Ledanm==1&&modus2linieverfolgen==1)
    					{
    					DDRA|=(E_INT1);
    					PORTA|=E_INT1;
    					}
    					break;
    			case RC5_KEY_Ledausm:
    					writeString_P("Ledausm: ");
    					writeIntegerLength(linksm, DEC, 4);
    					writeChar('\n');
    					writeChar('\n');
    					Ledausm=1;
    					if(Ledausm==1&&modus2linieverfolgen==1)
    					{											// Ledaus:
    					DDRA|=(E_INT1);
    					PORTA &= ~E_INT1;
    					}
    					break;
    			case RC5_KEY_modus1fernbedienung:	
    					writeString_P("modus1fernbedienung: ");
    					writeIntegerLength(modus1fernbedienung,DEC, 4);
    					writeChar('\n');
    					writeChar('\n');											//Fernbedienung
    					modus1fernbedienung=1;
    					modus2linieverfolgen=0;
    					break;	
    				
    			case RC5_KEY_modus2linieverfolgen:	
    					writeString_P("modus2linieverfolgen: ");
    					writeIntegerLength(modus2linieverfolgen,DEC, 4);
    					writeChar('\n');
    					writeChar('\n');		                                   //Linieverfolgen
    					modus2linieverfolgen=1;
    					modus1fernbedienung=0;
    					break;
    			
    					
    				}
    
    			}
    			
    			
    			
    					
    	
    					void setMotorPWM(void)
    
    				{
    					
    				if(power_links > 210) power_links = 210;
    				if(power_rechts > 210) power_rechts = 210;
    				mleft_power=mleft_ptmp=power_links;
    				mright_power=mright_ptmp=power_rechts;
    
    				OCR1BL = power_links;
    				OCR1AL = power_rechts;
    
    				if(power_links || power_rechts)
    				TCCR1A = (1 << WGM11) | (1 << COM1A1) | (1 << COM1B1);
    				else
    				TCCR1A = 0;
    				
    				}
    				
    				
    				
    				
    				void lichtsensoren (void)
    				
    				{					  
    				writeInteger(readADC(ADC_LS_L), 10);
    				writeString_P(" - ");
    				writeInteger(readADC(ADC_LS_R), 10);
    				writeString_P("\n\r");
    				if (readADC(ADC_LS_L) > readADC(ADC_LS_R))
    				{
    				setLEDs(4);
    				setMotorPower(100,50);
    				}
    				else
    				{
    				setLEDs(32);
    				setMotorPower(50,100);
    				}
    				mSleep(100);
    				}
    				
    
    			
    
    
    			
    			
    					
    				
    
    			
    			int main(void)
    {
    	initRobotBase(); 
    	
    	setLEDs(0b111111);
    	writeChar('\n');
        writeString_P("RP6 controlled by RC5 TV Remote\n");
    	writeString_P("___________________________\n");
    	mSleep(500);	 
    	setLEDs(0b000000); 
    	powerON();
    	
    	
    	startStopwatch2();// Stopuhr 2 wird gestartet
    	
    	// Set the RC5 Receive Handler:
    	IRCOMM_setRC5DataReadyHandler(receiveRC5Data);
    	
    	
    	// Main loop 
    	while(true) 
    	{
    	if(modus2linieverfolgen==1)
    		{
    		setMotorPWM();
    		lichtsensoren();
    		
    		}
    	
    		task_RP6System();
    		
    		// Motion Control tasks etc.
    	}	  // "
    		//Reset();	
    	
    	return 0;
    }
    Geändert von radbruch (27.05.2011 um 16:25 Uhr) Grund: Code-Tags richtig eingefügt.

Ähnliche Themen

  1. Brauche Dringend HILFE!!!!
    Von RP6 Noob im Forum Robby RP6
    Antworten: 16
    Letzter Beitrag: 14.08.2009, 19:48
  2. Linienverfolgung... brauche hilfe
    Von Fouwe im Forum Asuro
    Antworten: 12
    Letzter Beitrag: 21.06.2009, 17:49
  3. Brauche dringend Hilfe!!!!!!!!!!
    Von leuchti im Forum Asuro
    Antworten: 10
    Letzter Beitrag: 26.06.2007, 12:21
  4. Brauche dringend Hilfe!!!!!! Linienverfolgung
    Von astrotiger im Forum Asuro
    Antworten: 5
    Letzter Beitrag: 12.04.2007, 12:34
  5. Brauche dringend hilfe!!!!!
    Von Swaliste im Forum PIC Controller
    Antworten: 1
    Letzter Beitrag: 15.01.2007, 11:12

Stichworte

Berechtigungen

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

12V Akku bauen