- fchao-Sinus-Wechselrichter AliExpress         
Seite 2 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 11 bis 20 von 39

Thema: Programmierung C - Asuro

  1. #11
    Benutzer Stammmitglied
    Registriert seit
    02.01.2012
    Beiträge
    31
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Vielen Dank er fährt jetzt so wie ich das möchte.
    Jetzt wollte ich eine kleine Modifikation machen und mal was mit den Kollisionsdinger machen:

    Code:
    #include "asuro.h"
    
    int i;
    
    int main(void)
    {
    	
    	Init();
    	
    	MotorDir(FWD,FWD);
    	MotorSpeed(200,200);
    	StatusLED(GREEN);
    	if ((PollSwitch()!=0) || (PollSwitch()!=0) || (PollSwitch()!=0))
    	{
    	  MotorDir(BREAK,BREAK);
    	  MotorSpeed(0,0);
    	  StatusLED(RED);
    	for(i=0; i<1000; i++) Sleep(72);
    	  MotorDir(FWD,BREAK);
    	  MotorSpeed(100,0);
    	  StatusLED(GREEN);
    	}
    	while(1);
    	return(0);
    Jedoch fährt er mir jetzt durch, was nicht sein sollte - aber laut einem anderem Forum, soll man die Abfrage mehrmals, oder so wie oben machen, da verschiedene Werte zurückkommen und man das so umgehen könnte (suchs euch nochmals raus, wenn ihr wollt).

    Weiters hab ich eine generelle Frage - arbeitet ihr noch immer in der test.c? Welche Dateien von der Original-Cd sind essentiell? Hab diese hier rüberkopiert:

    file:///home/davidb/Asuro/AsuroFl.ini
    file:///home/davidb/Asuro/Test-all.bat
    file:///home/davidb/Asuro/Test-clean.bat
    file:///home/davidb/Asuro/asuro.c
    file:///home/davidb/Asuro/asuro.d
    file:///home/davidb/Asuro/asuro.h
    file:///home/davidb/Asuro/asuro.lst
    file:///home/davidb/Asuro/asuro.o
    file:///home/davidb/Asuro/makefile
    file:///home/davidb/Asuro/test.c
    file:///home/davidb/Asuro/test.c~
    file:///home/davidb/Asuro/test.d
    file:///home/davidb/Asuro/test.eep
    file:///home/davidb/Asuro/test.elf
    file:///home/davidb/Asuro/test.hex
    file:///home/davidb/Asuro/test.lss
    file:///home/davidb/Asuro/test.lst
    file:///home/davidb/Asuro/test.map
    file:///home/davidb/Asuro/test.o
    file:///home/davidb/Asuro/test_original.c

    Brauch ich da wirklich alles? test.c ist ja meine und asuro.h brauch ich ja auch...

    Macht ihr euch eigentlich eigene Programme? Was müsste ich dazu beachten. Ist es überhaupt ratsam, weil normal reicht es ja aus, wenn man immer in der test.c arbeitet, man kann sie anders abspeichern wenn man verschiedene Programme abspielen will...

  2. #12
    Benutzer Stammmitglied
    Registriert seit
    02.01.2012
    Beiträge
    31
    So jetzt hab ich noch eine Modifikation gemacht, doch das If wird bei Kollision trotzdem nicht ausgeführt. Fahren tut er brav!
    Code:
    #include "asuro.h"
    
    int i;
    
    int main(void)
    {
    	
    	Init();
    	
    	if (PollSwitch()==0 && PollSwitch()==0 && PollSwitch()==0 && PollSwitch()==0) 
    	{
    	MotorDir(FWD,FWD);
    	MotorSpeed(200,200);
    	BackLED(ON,ON);
    	}
    	
    	if (PollSwitch()!=0 && PollSwitch()!=0 && PollSwitch()!=0 && PollSwitch()!=0) 
    	{
    	  MotorDir(BREAK,BREAK);
    	  MotorSpeed(0,0);
    	  StatusLED(RED);
    	  MotorDir(FWD,BREAK);
    	  MotorSpeed(100,0);
    	  StatusLED(GREEN);
    	}
    	
    	while(1);
    	return(0);
    }
    Geändert von brandy_000 (04.01.2012 um 19:32 Uhr)

  3. #13
    Neuer Benutzer Öfters hier
    Registriert seit
    11.12.2011
    Beiträge
    10
    Hallo,

    du musst die If-Abfrage in die while-Schleife tun, sonst fragt er nur beim Starten die Taster ab und bleibt danach in der Endlosschleife.

    Grüße,
    oernie97

  4. #14
    Benutzer Stammmitglied
    Registriert seit
    02.01.2012
    Beiträge
    31
    Ja das hab ich jetzt schon gemacht - jedoch auch ohne Ergebnis - er fährt einfach nicht los:

    Code:
    #include "asuro.h"
    
    int i;
    
    int main(void)
    {
    	
    	Init();	
    	while(1);
    	if (PollSwitch()==0 && PollSwitch()==0 && PollSwitch()==0 && PollSwitch()==0) 
    	{
    	MotorDir(FWD,FWD);
    	MotorSpeed(200,200);
    	BackLED(ON,ON);
    	StatusLED (GREEN);
    	}
    	else 
    	{
    	  MotorDir(BREAK,BREAK);
    	  MotorSpeed(0,0);
    	  BackLED(OFF,OFF);
    	  StatusLED(RED);
    	  MotorDir(FWD,BREAK);
    	  MotorSpeed(100,0);
    	}
    	return(0);
    }

  5. #15
    Neuer Benutzer Öfters hier
    Registriert seit
    11.12.2011
    Beiträge
    10
    Ich meine _in_ die while-Schleife (bedeutet, das Semikolon hinter while (1) wird zu einer geöffneten geschweiften Klammer und vor return(0); wird eine geschlossene geschweifte Klammer eingefügt).

  6. #16
    Benutzer Stammmitglied
    Registriert seit
    02.01.2012
    Beiträge
    31
    Ups mein Fehler!

  7. #17
    Benutzer Stammmitglied
    Registriert seit
    02.01.2012
    Beiträge
    31
    Dieser Code hier funktioniert. Zuerst fährt er brav vorwärts, bei Kollision (also Drücken eines Kollisionsschalter) dreht sich auch ein Rad nach hinten. Jedoch bleibt er mir hin- und wieder in einer Schleife stecken, in der sich beide Räder nach vorne drehen oder zB auch nur eines nach hinten. Dann bleibt er mal komplett stehen und das Status-LED beginnt zu blinken. Einmal hat sich sogar das untere LED eingeschaltet, als er stehengeblieben ist.
    Was passiert da?

    Code:
    #include "asuro.h"
    
    int i;
    
    int main(void)
    {
    	
    	Init();	
    	while(1){
    	if (PollSwitch()==0 && PollSwitch()==0) 
    	{
    	MotorDir(FWD,FWD);
    	MotorSpeed(200,200);
    	BackLED(ON,ON);
    	StatusLED (GREEN);
    	}
    	else 
    	{
    	  MotorDir(BREAK,BREAK);
    	  MotorSpeed(0,0);
    	  BackLED(OFF,OFF);
    	  StatusLED(RED);
    	  MotorDir(RWD,BREAK);
    	  MotorSpeed(150,0);
    	}
    	}
    	return(0);
    }
    /*for(i=0; i<2000; i++) Sleep(72);*/

  8. #18
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    "Dann bleibt er mal komplett stehen und das Status-LED beginnt zu blinken."

    Halt dann mal den Transceiver über den asuro und schaue ins Terminalfenster. Vermutlich erscheint dann endlos "VLVLVLVLVL..". Das würde für Unterspannung (Voltage Low) stehen und sich aus der Belastung der Akkus beim Fahren und auch beim schnellen Richtungswechsel der Antriebe erklären. Spannungseinbrüche könnten auch die anderen seltsamen Erscheinungen erklären. (Anleitung Seite 29 Kapitel 6.3.3.)
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  9. #19
    Benutzer Stammmitglied
    Registriert seit
    02.01.2012
    Beiträge
    31
    Ok bekomm schöne VLs ausgegeben - Was kann man dagegen tun?
    Hab nachdem ich ihn fertiggebaut habe neue Batterien reingegeben - vielleicht sind die auch schon zu schwach...

  10. #20
    Benutzer Stammmitglied
    Registriert seit
    02.01.2012
    Beiträge
    31
    Muss an den Batterien liegen - hab gerade ein Programm geschrieben, wo er 5 Sekunden geradeausfährt, kurz stehenbleibt und sich dreht und bei jedem Stück und jeder Drehung sehe ich wie er an den Batterien zehrt...

Seite 2 von 4 ErsteErste 1234 LetzteLetzte

Ähnliche Themen

  1. Asuro Programmierung
    Von Berghuhn im Forum Asuro
    Antworten: 18
    Letzter Beitrag: 15.10.2010, 07:04
  2. Asuro Programmierung
    Von Hannes1984 im Forum Asuro
    Antworten: 0
    Letzter Beitrag: 12.05.2009, 22:35
  3. ASURO Programmierung
    Von teufeldd im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 2
    Letzter Beitrag: 04.04.2007, 11:02
  4. Probleme mit Asuro programmierung
    Von Paripah im Forum Asuro
    Antworten: 2
    Letzter Beitrag: 12.05.2006, 15:10
  5. ASURO-Programmierung
    Von baschi-1,3 im Forum Asuro
    Antworten: 3
    Letzter Beitrag: 20.04.2006, 13:48

Berechtigungen

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

Solar Speicher und Akkus Tests