- SF800 Solar Speicher Tutorial         
Seite 3 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 21 bis 30 von 41

Thema: RP6 Linienfolger

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Moin,

    du hast Recht, hab ganz vergessen, dass die Ansteuerung über die Base gehen muss. Ich hab jetzt einfach die beiden IIC-Programme um deine Funktion ergänzt und kann diese somit auch von der M32 aus aufrufen =)

    Das mit dem Getriebeschaden ist das, was mir nicht so behagt. Ich lasse mit setMotorPWM die Motoren maximal um eine Geschwindigkeit von 30 "springen", wäre mir aber trotzdem lieber, wenn das mindestens linear geregelt wäre. Ich habe glaube ich auch irgendwo im Quelltext gelesen, dass der implementierte Regler nur integral ist. Hat hier vielleicht schon jemand probiert einen PID-Regler zu realisieren, der besser und vor allem schneller regelt?

    Immerhin funktioniert jetzt alles so, wie ich es mir gedacht habe. Danke ^^

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    09.04.2008
    Beiträge
    384
    Ich bin auch daran um mit der RP6 einen Linienfolger zu schaffen. Bei mir geht das mit die LDR. Beleuchtet wird mit 4 rote LEDS. Wen da nicht zufiel Fremdlicht ist, geht das einigermasse. Die PWM Steurung von Motor ist relatif "Soft". In der RP6baselib.c konnen sie das verscharfen.
    Code:
    // Soft PWM adjustment and automatic PWM shutdown if motor power is 0:
    		if(speed_adjust_timer++ > 2) {//Waarde verhoogd van 2 naar 8 voor softere PWM
    			if(mright_ptmp != mright_power) {
    				if(mright_ptmp < mright_power) 
    					mright_ptmp++;
    				else 
    					mright_ptmp--;
    				OCR1AL = mright_ptmp;
    			}
    			if(mleft_ptmp != mleft_power) {
    				if(mleft_ptmp < mleft_power) 
    					mleft_ptmp++;
    				else 
    					mleft_ptmp--;
    				OCR1BL = mleft_ptmp;
    			}
    			if(mleft_ptmp || mright_ptmp)
    				TCCR1A = (1 << WGM11) | (1 << COM1A1) | (1 << COM1B1);
    			else
    				TCCR1A = 0;
    			speed_adjust_timer = 0;
    		}
    Momentan warte ich auf andere Sensoren (IR) um das ganse nach zu bessern. Allerdings ist die Geheimnis auch in die Regelparameter von Info Sensoren bis Soll Speed motoren. Er scheint mir auch wichtig das die Sensor info plausibel bleibt in eine grosse Fenster, wen moglich die ganse Breite von RP6. Wird verfolgt...

  3. #3
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    So wird wenigstens noch eine kleine Rampe beachtet, meine Lösung war da radikaler:
    Code:
    // Achtung! Die PWM-Werte werden hier OHNE Rampe verändert! 
    void setMotorPWM(uint8_t power_links, uint8_t power_rechts) 
    { 
    extern uint8_t mleft_ptmp, mright_ptmp; 
    
       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; 
    }
    PWM wird direkt gesetzt (und die nötigen Lib-Variablen werden angepasst), ohne Rücksicht auf Verluste. Mit allen Vor- und Nachteilen die diese Ansteuerung mit sich bringt.

    Gruß

    mic
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    11.02.2010
    Beiträge
    14
    hi Leute, tut mitr leid dass ich den thread ausgrabe aber ich hätte da eine Frage.

    Ich habe es so gelöst wie radbruch es beschrieben hat, also auch eine Lichtquelle vorne angebracht und ein blatt Papier als reflektor im richtigen Winkel angeklebt. Funktioniert ziemlich gut, hängt eben stark von der Position des Reflektors ab.

    Ich habe dafür den zweiten Quelltext benutzt den radbruch gepostet hat, allerdings versteh ich den Quelltext nicht wirklich. könnte jemand den Quelltext von radbruch kommentieren, damit die befehle und zeilen etwas verständlicher sind. Also so Kommentare zu den Absätzen hinzufügen damit es verständlicher ist was die Befehle nun genau machen.

    Auserdem frage ich mich was der Unterschied nun zwichen den 3 Quelltexten von radbruch ist.

    Gruß

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.12.2010
    Ort
    Dörpen
    Alter
    27
    Beiträge
    120
    keine angst, ich versteh sie auch nicht

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.11.2010
    Beiträge
    773
    Hi!
    Ich habe hier drei CNY70 rumliegen und darf kommende Woche ne Platine meiner Wahl fräsen oder auch zwei

    Daher wollte ich dafür natürlich was mitnehmen und habe eine Frage an euch:
    Wie nah sollten die CNY's nebeneinander angebracht werden? Habe momentan 2mm von CNY zu CNY eingeplant... reicht das?
    Mehr? Weniger?
    Gibts da Erfahrungswerte?

    Danke Euch!
    Fabian

  7. #7
    Erfahrener Benutzer Roboter-Spezialist Avatar von RolfD
    Registriert seit
    07.02.2011
    Beiträge
    414
    Was ist an dem Programm von radbruch denn so schwierig zu verstehen?

    if (readADC(ADC_LS_L) > readADC(ADC_LS_R))

    da liest er die LDR Sensoren ein und entscheidet je nach Lichteinfall ob er mehr nach links oder mehr nach rechts steuert.. mit Hilfe von

    setMotorPWM(100,50); und
    setMotorPWM(50,100);

    was 25% und 50% PWM Puls entweder links oder rechts gibt. Und das ganze als Schleife...
    Also einfacher gehts wirklich kaum.
    @fabqu
    Zu den CNY's
    Aus http://www.rn-wissen.de/index.php/CNY70
    Da es dort aber um einen Encoder, und bei einem Linienfolger weniger um die Absolutwerte als eher die relativen Differenzen der Sensoren geht, ist es relativ egal wie weit sie auseinander stehen... nur muss dann ggf. eben die Linienbreite angepasst werden.
    Ich würde mal grob schätzen.. Abstand der CNY=Linienbreite und min. 5mm bis max 15mm. Schwarzes oder weißes Isolierband eignet sich gut für Linien auf glatten Böden, man kann aber auch seine Musterteppiche abfahren...
    LG Rolf
    Geändert von RolfD (24.09.2012 um 14:23 Uhr)
    Sind Sie auch ambivalent?

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.11.2010
    Beiträge
    773
    Super, danke dir!
    Dann werde ich etwa 5mm einbauen.

    Grüße


    EDIT: Habe nun 8,9mm von Sensorfläche zu Sensorfläche. Sollte passen
    Geändert von fabqu (24.09.2012 um 08:49 Uhr)

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    26.10.2013
    Beiträge
    8
    Guten Tag, Suche für den Arexx RP6 V2, den Sensor, mit dem ich eine linienverfolgung machen kann, bitte um Hilfe

  10. #10
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.11.2010
    Beiträge
    773
    Hi EK9,

    also da gibts viele Möglichkeiten. Es gibt fertige module, sind aber teilweise teuer.
    Oder du baust dir einen aus den CNY70-Reflexoptokopllern, siehe z.B. im RN-Wissen, dort gibts einen extra Artikel über diese Bausteine. Auch hier.

    Am einfachsten ist wohl das Prinzip LED mit zwei Helligkeitssensoren, z.B. LDR (lichtsensitive Widerstände). Das wurde glaube ich beim ASURO so umgesetzt, da findet sich vieles Im Internet, einfach mal googlen oder im RN-Wissen suchen oder hier im Forum.

    Viele Grüße

Seite 3 von 4 ErsteErste 1234 LetzteLetzte

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress