- Akku Tests und Balkonkraftwerk Speicher         
Seite 3 von 5 ErsteErste 12345 LetzteLetzte
Ergebnis 21 bis 30 von 46

Thema: Code aus dem Band I für US funktioniert nicht mit neuer Lib

  1. #21
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    76
    Beiträge
    2.180
    Anzeige

    Powerstation Test
    Zitat Zitat von ehenkes
    Wir checken zunächst Dein Ultraschallortungssystem:
    Code:
    #include "asuro.h"
    int abstand=0;
    
    int main(void)
    {
      Init();
      SerWrite("\r\n  --- ultrasonic test ---",29);
      Msleep(1000);
      
      do
      {
        abstand=Chirp();
        SerWrite("\r\n distanz in cm: ",20);
        Msleep(500);
        PrintInt(abstand);
      }
      while(1);
      return 0;
    }
    Probiere mal, welche Werte bei Dir ankommen, und justiere Dein System so, dass die angegebenen Werte der Realität entsprechen.
    wie justieren? womit?

    das programm läuft, ergebnis - entfernung 0
    Vielleicht musst Du auch noch an dem 1MOhm-Trimmer des RC-Gliedes drehen. Bei mir steht der Widerstand etwa in der Mitte.
    das ist ja das einzige was an der us-erweiterung "justierbar" ist...trotz verstellungen am poti, StatusLED leuchtet grün, entfernung 0 wird im hyperterminal geschrieben, sonst nix...
    Dann vielleicht das hier:

    Code:
    #include "asuro.h"
    #define MAXDIFF 90
    
    int main(void)
    {
      int abstand, abstand_alt, diff, zaehler=0;
      Init();
      abstand = Chirp();
       
      while(TRUE)
      {
        abstand_alt = abstand;
    	abstand = Chirp();	++zaehler;
    	diff = abstand - abstand_alt;
    	
    	if( (abstand>15) && (abs(diff)<MAXDIFF) )
    	{
    	  StatusLED(GREEN);
    	  MotorDir(FWD, FWD);
    	  MotorSpeed(150, 150);
    	}
    	else if( (abstand>10) && (abstand<=15) && (abs(diff)<MAXDIFF) )
    	{
    	  StatusLED(YELLOW);
    	  MotorDir(FWD, FWD);
    	  MotorSpeed(150, 100);
    	  Msleep(10);
    	}
    	else
    	{
    	  StatusLED(RED);
    	  MotorDir(RWD, RWD);
    	  MotorSpeed(150, 100);
    	  Msleep(10);
    	}
    	
    	if (zaehler > 800)
    	{
    		StatusLED(RED);
    		BackLED(ON,ON);
    	    MotorDir(RWD, RWD);
    	    MotorSpeed(200, 250);
    	    Msleep(10);
    		BackLED(OFF,OFF);
    	}
    	if (zaehler > 810)
    	{
    		StatusLED(RED);
    		BackLED(ON,ON);
    	    MotorDir(RWD, RWD);
    	    MotorSpeed(250, 200);
    	    Msleep(10);
    		BackLED(OFF,OFF);
    				
    		if(zaehler > 820)
    		  zaehler = 0;
    	}
      }
      return 0;
    }
    hier leuchtet die StatusLED rot, die räder drehen so als wollte der asuro nach hinten fahren, von zeit zu zeit - ziemlich regelmäßig - leuchten die BackLED´s kurz auf, die motoren drehen kurz auf und dann geht das ganze von vorne los...
    Ich vermute hardwareprobleme in der erweiterung. Kann mir bitte jemand vielleicht sagen, was ich mit einem multimeter wo messen kann (und was dort gemessen werden sollte) um die erweiterung zu überprüfen?
    danke im voraus...
    gruß inka

  2. #22
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    76
    Beiträge
    2.180
    hi allerseits,
    ich teste wieder einmal meine hardware , versuche mit folgendem programm aussreiser bei entfernungsmessungen festzumachen, festzustellen wie oft sie vorkommen um sie letztendlich irgendwie "rauszurechnen"...
    Code:
    /*ladestation_anfahren*/
    
    #include "asuro.h"
    #include "inka.h"
    
    int  abstand,abst_1, abst_2, abst_3;
    int main (void)
    {
    Init();
    
    WaitforStart();
    
    while(1)
    {
    
      {	
      	abst_1=Chirp();
    	Msleep(200);
    	abst_2=Chirp();
    	Msleep(200);
    	abst_3=Chirp();
    	abstand=(abst_1+abst_2+abst_3)/3;
        SerPrint("\r\n distanz in cm: ");
    	SerPrint(" ");
        Msleep(500); 
        PrintInt (abst_1);
    	SerPrint(" ");
    	PrintInt (abst_2);
    	SerPrint(" ");
    	PrintInt (abst_3);
    	SerPrint(" ");
    	PrintInt (abstand); 
    	
    	if (abstand<10)
    	{
    	EncoderInit();
    	Go (-100,150);
    	StatusLED(RED);
    	Turn (-90, 150);
    	Msleep(200);
    	}
    	else {
    	EncoderInit();
    	Go (100, 150);
    	StatusLED(GREEN);
    	Msleep(200);
    	}
    	abstand=Chirp();
    	if (abstand<10)
    	{
    	EncoderInit();
    	Go (-100, 150);
    	Turn (-90, 150);
    	StatusLED(RED);
    	Msleep(200);
    	}
    	else {
    	EncoderInit();
    	Turn (90, 150);
    	StatusLED(GREEN);
    	Msleep(200);
    	}
      }
    }
    return 0;
    }
    folgendes ergebnis:
    Code:
     distanz in cm:  144 118 126 129                                
     distanz in cm:  151 0 138 96                             
     distanz in cm:  123 127 147 132                                
     distanz in cm:  152 143 130 141                                
     distanz in cm:  140 147 136 141                                
     distanz in cm:  147 148 139 144                                
     distanz in cm:  145 125 136 135                                
     distanz in cm:  0 122 0 40                           
     distanz in cm:  123 138 120 127                                
     distanz in cm:  132 137 137 135                                
     distanz in cm:  116 118 127 120                                
     distanz in cm:  0 0 0 0                        
     distanz in cm:  146 157 137 146                                
     distanz in cm:  146 147 127 140                                
     distanz in cm:  141 148 146 145                                
     distanz in cm:  140 137 147 141                                
     distanz in cm:  0 0 0 0                        
     distanz in cm:  0 0 0 0                        
     distanz in cm:  121 127 118 122                                
     distanz in cm:  121 136 135 130                                
     distanz in cm:  134 133 121 129                                
     distanz in cm:  120 114 126 120                                
     distanz in cm:  138 134 118 130                                
     distanz in cm:  0 0 0 0                        
     distanz in cm:  127 135 127 129                                
     distanz in cm:  138 133 119 130                                
     distanz in cm:  118 126 137 127                                
     distanz in cm:  120 118 127 121                                
     distanz in cm:  125 0 128 84                             
     distanz in cm:  0 136 140 92                             
     distanz in cm:  149 133 0 94                             
     distanz in cm:  123 118 120 120                                
     distanz in cm:  0 118 11                        
     distanz in cm:  121 0 137 86                             
     distanz in cm:  133 146 128 135                                
     distanz in cm:  0 0 0 0                        
     distanz in cm:  130 146 136 137                                
     distanz in cm:  0 134 0 44                           
     distanz in cm:  142 118 0 86                             
     distanz in cm:  132 157 137 142                                
     distanz in cm:  0 127 136 87                             
     distanz in cm:  112 105 112 109                                
     distanz in cm:  118 140 134 130                                
     distanz in cm:  131 128 119 126                                
     distanz in cm:  0 0 0 0                        
     distanz in cm:  126 128 128 127                                
     distanz in cm:  109 112 118 113                                
     distanz in cm:  109 0 118 75                             
     distanz in cm:  105 118 127 116                                
     distanz in cm:  112 0 11                        
     distanz in cm:  0 176 184 120                              
     distanz in cm:  0 118 129 82                             
     distanz in cm:  140 146 137 141                                
     distanz in cm:  110 126 0 78                             
     distanz in cm:  122 0 140 87                             
     distanz in cm:  121 117 137 125
     distanz in cm:  140 137 137 138
     distanz in cm:  131 126 146 134
     distanz in cm:  123 125 135 127
     distanz in cm:  142 135 137 138
     distanz in cm:  121 0 0 40
     distanz in cm:  128 117 136 127
     distanz in cm:  127 110 130 122
     distanz in cm:  109 131 137 125
     distanz in cm:  134 0 129 87
     distanz in cm:  0 0 0 0
     distanz in cm:  142 137 118 132
     distanz in cm:  123 128 127 126
     distanz in cm:  0 0 133 44
     distanz in cm:  138 135 127 133
     distanz in cm:  0 140 0 46
     distanz in cm:  0 0 131 43
     distanz in cm:  134 136 145 138
     distanz in cm:  145 0 0 48
     distanz in cm:  133 125 118 125
     distanz in cm:  0 115 128 81
     distanz in cm:  0 116 0 38
     distanz in cm:  126 0 130 85
    der asuro steht aufgebockt, im bereich der us-kapseln vor ihm passiert nichts. Trotzdem misst er zwischendurch abstand 0!! Woher kann das kommen?
    gruß inka

  3. #23
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    37
    Beiträge
    4.063
    das könnt epassieren wenn er anstatt dem echo sein eigenes signal direkt empfängt...
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  4. #24
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    14.04.2007
    Ort
    Einhausen
    Alter
    68
    Beiträge
    697
    Sieht doch schon besser aus. Abstand 0 könnte der geometrische Kurzschluss zwischen Sender und Empfänger sein, den man über die e-Kurve abfangen will. Könnte auch eine Reflektion über den Boden sein. Verändere das Poti solange, bis die 0 verschwindet.

    Ich muss meine Kiste auch mal wieder aktivieren. Vielleicht gewinnen wir gemeinsame Erkenntnisse.

  5. #25
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    76
    Beiträge
    2.180
    selbst mit dieser abschirmung ist es nicht gelungen die falschmessungen wegzubekommen...

    Bild hier  
    da muss ich also noch dran arbeiten
    andere frage:
    kann das sein, dass der einstellpoti probleme mit metallschraubenzieher hat?
    gruß inka

  6. #26
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    37
    Beiträge
    4.063
    sollte eigentlich kein problem sein. sieh den schraubenzieher wieder raus

    nein, ehrlich: du verdrehst ja nur den plastik teil, das eigentliche poti ist innen drin.

    das bisschen schaustoff wird für den (erstaunlich lauten) ultraschallton nicht viel helfen. aber sieht sehr hübsch aus
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  7. #27
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    76
    Beiträge
    2.180
    sagt meine tochter auch, erinnert irgedwie an ET...

    ich dachte weil der schaumstoff ja recht weich ist, dämmt er auch. Auch die oberfläche, es sind ja offene bläschen, also ich habe da diese eierkartons als dämm-material in erinnerung?
    gruß inka

  8. #28
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    37
    Beiträge
    4.063
    probieren geht über studieren. aber denke daran, das signal ist wirklich SEHR laut, es wird nur von menschen nicht gehört. wenn du ein datenblatt findest zu den ultraschallkapseln, kannst du ja mal nachsehen, wie laut. dass da ein bisschen schaumstoff nicht reicht ist klar...
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  9. #29
    Erfahrener Benutzer Roboter Genie Avatar von pinsel120866
    Registriert seit
    18.12.2007
    Ort
    Hohenems
    Alter
    57
    Beiträge
    847
    Hallo Zusammen,

    ich beginne jetzt mit dem Zusammenlöten des eBay-US-Bausatzes.

    mal vorab dazu ein paar Fragen:

    - falls ihr den Selben Bausatz habt, was muss ich beim Zusammenbau beachten?
    - wie nahe soll der ASURO an das Hindernis herankommen um den vorhandenen Raum gut auszunützen?
    - Müssen Sender und Empfänger genau parallel stehen oder kann man das noch Optimieren?

    Es wäre schön wenn ihr mir eure Erfahrungen mitteilt.

    Gruß
    Pinsel

  10. #30
    Erfahrener Benutzer Roboter Genie Avatar von pinsel120866
    Registriert seit
    18.12.2007
    Ort
    Hohenems
    Alter
    57
    Beiträge
    847
    Und gleich noch eine Frage:

    ich habe gerade versucht mit der Lib 2.71 den US-Code der Homepage von Dr.Henkes (ich hoffe er hat nichts dagegen) zu kompilieren:

    Code:
    /*
          Bewegung auf Basis Ultraschallortung 
          Dr. Erhard Henkes, Mai 2007 
    */
    #include "asuro.h" // incl. der Funktionen InitUltrasonics, RestoreAsuro, Chirp von "dopez" (roboternetz)
    #define MAXDIFF 80 // Sehr große Sprünge zunächst ausblenden
    
    int main(void) 
    { 
      int abstand, abstand_alt, diff, zaehler=0; 
      Init(); 
      abstand = Chirp(); 
        
      while(TRUE) 
      { 
       abstand_alt = abstand; 
       abstand = Chirp();   
       ++zaehler; 
       diff = abstand - abstand_alt; 
        
       if( (abstand>15) && (abs(diff)<MAXDIFF) ) 
       { 
         StatusLED(GREEN); 
         MotorDir(FWD, FWD); 
         MotorSpeed(150, 150); 
       } 
       else if( (abstand>10) && (abstand<=15) && (abs(diff)<MAXDIFF) ) 
       { 
         StatusLED(GREEN); 
         MotorDir(FWD, FWD); 
         MotorSpeed(100, 150); 
         Msleep(30); 
       } 
       else 
       { 
         StatusLED(RED); 
         MotorDir(RWD, RWD); 
         MotorSpeed(150, 100); 
         Msleep(100); 
       } 
        
       if (zaehler > 400) 
       { 
         StatusLED(RED); 
         BackLED(ON,ON); 
         MotorDir(RWD, RWD); 
         MotorSpeed(200, 250); 
         Msleep(10); 
         BackLED(OFF,OFF); 
       } 
       
       if (zaehler > 405) 
       { 
         StatusLED(RED); 
         BackLED(ON,ON); 
         MotorDir(RWD, RWD); 
         MotorSpeed(250, 200); 
         Msleep(10); 
         BackLED(OFF,OFF); 
                 
         if(zaehler > 410) 
           zaehler = 0; 
       } 
    
      } 
      return 0; 
    }
    und kriege folgende Fehler:

    C:\ASURO_SRC\asurolib\examples\FirstTry/test.c:12: undefined reference to `Chirp'
    C:\ASURO_SRC\asurolib\examples\FirstTry/test.c:17: undefined reference to `Chirp'

    Kann mir bitte jemand sagen wo ich den "Chirp" herkriege bzw. wo ich ihn einbinden muss?

Seite 3 von 5 ErsteErste 12345 LetzteLetzte

Berechtigungen

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

12V Akku bauen