- 12V Akku mit 280 Ah bauen         
Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 25

Thema: Asuro-Radschutz

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

    Powerstation Test
    hi hans,
    meine US-erweiterung liegt erstmal "in der ecke", weil sie überhaupt nicht funktioniert, ich vermute ein hardwareproblem...Habe es erstmal mit IR-ortung ersetzt...
    Warum sollten die taster beim US-modul nicht zusätzlich funktionieren?
    gruß inka

  2. #12
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    38
    Beiträge
    4.064
    die taster funktionieren. warum denn nicht?

    das problem ist, dass die us-kapseln keine eigenständien Sensoren sind welceh melden, dass sie ein echo empfangen haben, sondern prinzipiell wie mikrofone zu betrachten sind, welche ihren widerstand bei bestimmten schallfrequenzen verändern (...denke ich).

    wenn beide parallel geschaltet werden, dann passiert nicht viel, weil dann strom durch beide kapseln fliesst. das signal der einen kapsel wird dann durch das signal der anderen kapsel verfälscht.
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  3. #13
    Benutzer Stammmitglied
    Registriert seit
    03.10.2007
    Beiträge
    45
    Hallo Inka,hallo damaltor.Dass die Taster bei US nicht funktionieren,hab`ich dem Buch S.103 so entnommen.Oder wie ist das zu verstehen? Bei meiner Überlegung mit zwei Empfängern könnte man die zweite Kapsel auch noch mit der gleichen Transistorstufe versehen,und über den Trennkondensator auf den OP gehen.Aber hier geht probieren über studieren.Ich hab`allerdings die grossen 16 mm.Kapseln von C. Ich müsste mal die Abstrahldiagramme der verschiedenen Kapseln vergleichen.---An Inka: Ist die IR-Ortung auch auf einer Zusatzplatine,und wie sind Deine Erfahrungen damit?

    Gruss an euch Beide

    Hans aus Bremen

  4. #14
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    hi hans,
    für die IR-ortung verwende ich die original IR diode und transistor, sie sind halt nicht an der originalstelle, sondern nach vorne gerichtet und mit leitungen mit den originalanschluss-stellen verbunden (dien IR diode sitzt inzwischen nicht mehr auf den widerständen, sondern ist auf einem kleinen platinchen auf dem anderen großen kondensator mit heisskleber befestigt)...
    https://www.roboternetz.de/phpBB2/vi...97eb82ac2ea6e7

    als software habe ich folgendes ausprobiert:
    Code:
    //Programm zum Umfahren von Hindernissen mithilfe der Infrarot-Hinderniserkennung von waste
    //zusammengestellt und programmiert von julien
    
    #include "asuro.h" 
    #include <stdlib.h>
    #include "inka.h" 
    
    int main(void) 
    { 
       float puls;
       int hindernis=0;
       int richt=0, wegr=0, wegl=0, vorher=0, auswl=0, auswr=0, schritt=0;
       unsigned int Rmin = 1024, Rmax = 0, Lmin = 1024, Lmax = 0, Rmitte = 512, Lmitte = 512, lspeed=185, data[2];  
       unsigned char flagl=FALSE, flagr=FALSE;
       Init();
       WaitforStart();
       DDRD |= (1 << DDD1);      // Port D1 als Ausgang 
       PORTD &= ~(1 << PD1);      // PD1 auf LOW 
       puls = 1; 
    while(1) 
    {
          if (PIND & (1 << PD0)){
             StatusLED(GREEN);   // kein Hindernis
    		 } else {
    		 vorher=(int)(puls);
    		hindernis=1;
    		StatusLED(RED);      // Hindernis erkannt
    		}
           
       puls = 1.02 * puls;      // Pulsbreite wird um 2% erhöht 
       if (puls > 10){
       if (PIND & (1 << PD0)) hindernis=0;
       puls = 1;
       }
       OCR2 = 255 - (int)(puls);
       
       if(hindernis==1){ //"gucken", wo noch ein freier Weg ist und diesen dann fahren
       if(schritt==0){ //nach rechts "gucken"
       MotorDir(FWD,RWD);
       Msleep(100);
       }
       if(schritt==1){ 
       auswr=(int)(puls);
       }
       if(schritt==2){ //nach links gucken
       MotorDir(RWD,FWD);
       Msleep(100);
       }
       if(schritt==3){
       auswl=(int)(puls);
       }
       if(schritt==4){ //richtigen weg fahren
        if(auswr>auswl) richt=1;
    	if(auswr<auswl) richt=2;
    	if(auswr==auswl) richt=3;
    	}
    	if(schritt<4) schritt++;
    	}
       
       if(hindernis==0){ //kein Hindernis in Sicht - geradeaus fahren
       richt=0;
       schritt=0;
               OdometrieData(data); // 0. links, 1. rechts        
            // max links 
            if (data[0] > Lmax) 
                Lmax += (data[0] - Lmax) / 2; 
            // min links 
            if (data[0] < Lmin) 
                Lmin -= (Lmin - data[0]) / 2; 
            // max rechts 
            if (data[1] > Rmax) 
                Rmax += (data[1] - Rmax) / 2; 
            // min rechts 
            if (data[1] < Rmin) 
                Rmin -= (Rmin - data[1]) / 2; 
        Rmitte=(Rmax+Rmin)/2; 
        Lmitte=(Lmin+Lmax)/2; 
          if ((data[0] < Lmitte) && (flagl == TRUE)) { 
          flagl = FALSE; 
          wegl++; 
          } 
          if ((data[0] > Lmitte) && (flagl == FALSE)) { 
          flagl = TRUE; 
          wegl++; 
          } 
          if ((data[1] < Rmitte) && (flagr == TRUE)) { 
          flagr = FALSE; 
          wegr++; 
          } 
          if ((data[1] > Rmitte) && (flagr == FALSE)) { 
          flagr = TRUE; 
          wegr++; 
          }
    	if(wegl<wegr) lspeed++;
    	if(wegl>wegr) lspeed--;
    	if(wegl>=1000){ wegl=0; wegr=wegr-1000; } //zurücksetzen, damit kein Überlauf nach
    	if(wegr>=1000){ wegr=0; wegl=wegl-1000; } //längeren Fahrten passiert
    	}
    	if(richt==0) MotorDir(FWD,FWD); //geradeaus
        if(richt==1) MotorDir(RWD,FWD); //links
    	if(richt==2) MotorDir(FWD,RWD); //rechts
    	if(richt==3) MotorDir(RWD,RWD); //zurück
    
        MotorSpeed(lspeed,155);
      }
       return 0; 
    }
    es funktioniert
    gruß inka

  5. #15
    Benutzer Stammmitglied
    Registriert seit
    03.10.2007
    Beiträge
    45
    Hi,Inka,stimmt,das hab`ich ja auch schon gesehen,und wie funktioniert`s ?
    Die Abstrahlwinkel der US-Kapseln hab`ich auch schon herausgefunden. Die 40LT12 hat 85 Grad,und die 40LT16,die ich habe nur 55 Grad.Das macht ja nun schon etwas aus,denke ich.Ansonsten ist US ja eine feine Sache.Was fehlt denn Deinem US-Sensor,kann ich Dir helfen? Wie ihr wisst fällt mir die hardware leichter.Welche Messmittel hast Du zur Hand?

    Hans

  6. #16
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    hi hans,
    die IR hinderniserkennung funktioniert sehr gut, schwarze gegenstände sieht der asueo nicht, aber das liegt ja in natur der sache .
    btw: den satz über die taster habe ich doch glatt überlesen!! Wäre die frage, ob das mit der neuen lib 2.7.1 auch noch so ist, oder nur bei der alten lib aus dem buch?
    die hilfe beim us-sensor würde ich gerne annehmen: Es ist so, dass die erweiterung auf keinem meiner zwei asuros funktioniert. Weder mit der urspünglichen lib, noch mit der neuen. Messen? ja einen digitalen multimeter habe ich, aber ich bin von beruf her eigentlich eher ein mechaniker, zwar mit grundkenntnissen in elektronik, aber wenn es um die frage geht wo, an welcher stelle einer schlatung was zu messen ist, da muss ich passen. Ich habe zwar schon mal was vom Kirchhof gehört, aber...
    sollten wir vielleicht per mail? inka@a-g-k.com...
    würde mich freuen...
    gruß inka

  7. #17
    Benutzer Stammmitglied
    Registriert seit
    03.10.2007
    Beiträge
    45
    Hallo Inka,so machen wir das.Per e-mail kann man doch etwas mehr und schneller reagieren.
    Ich melde mich.

    Bis gleich Hans

  8. #18
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    38
    Beiträge
    4.064
    habe das Buch nicht greifbar, warum gehen die taster denn nicht mehr?
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  9. #19
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    ausriss:
    ist zu beachten, dass die funktion LocalInit() den AD wandler des prozessors abschaltet, sodass eine kollisionsdetection über die taster oder ein bestimmen der geschwindigkeit über odometrie nicht möglich ist, ohne de wandler wieder in betrieb zu nehmen.
    gruß inka

  10. #20
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    38
    Beiträge
    4.064
    achso, na gut. weiss auch jemand warum der AD wandler deaktiviert wird? =)
    Read... or die.
    ff.mud.de:7600
    Bild hier  

Seite 2 von 3 ErsteErste 123 LetzteLetzte

Berechtigungen

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

Labornetzteil AliExpress