- 3D-Druck Einstieg und Tipps         
Seite 37 von 39 ErsteErste ... 273536373839 LetzteLetzte
Ergebnis 361 bis 370 von 390

Thema: Rasenrobo mit Induktionsschleife, Schaltbilder, Hallsensor

  1. #361
    Neuer Benutzer Öfters hier
    Registriert seit
    30.05.2013
    Beiträge
    21
    Anzeige

    Powerstation Test
    hat jemand einen stromsensor verbaut? um zu messen, ob der mäh- oder fahrmotor mehr leistung anfordert und um dann darauf zu reagieren?
    der sabo macht eine kreisfahrt, sobald er "dicken graswuchs" erkennt. d.h. vermutlich, wenn der mähmotor mehr kraft braucht.
    müsste man auch für die fahrmotoren so machen, wenn der robo sich festfährt, oder?

    gruss, ozett

  2. #362
    Neuer Benutzer Öfters hier
    Registriert seit
    30.05.2013
    Beiträge
    21
    bin jetzt kurz vor einem teilekauf, da habe ich mir die motoren und berechnung der notwenigen kraft nochmal angesehen.
    die 385er von damfino und robitobi mit etwa 200:1 scheinen ok (wo kauft ihr die?).
    aber der emg30 aus dem roboshop müsste schneckenlahm laufen. vielleicht kräftig, aber den werten nach und im vergleich statt möglicher 2km/h bei den 386er nur 0,2 km/h

    @jguerthe:
    kann das sein? ist dein robi so langsam unterwegs?

    oder habe ich was übersehen.

    gruss, ozett

  3. #363
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    14.05.2006
    Beiträge
    260
    @ozett,

    hast vor kurzem nach Codeschnitzel gefragt um die Sensoren auszuwerten:

    Code:
    Do
    .
    Dein Programm
    .
    B0 = S0 : B1 = S1 : B2 = S2 : B3 = S3
    B0 = B0 + S0 : B1 = B1 + S1 : B2 = B2 + S2 : B3 = B3 + S3
    B0 = B0 / 2 : B1 = B1 / 2 : B2 = B2 / 2 : B3 = B3 / 2
    Ms0 = B0 + 100 : Ms1 = B1 + 100 : Ms2 = B2 + 100 : Ms3 = B3 + 100
    Ss0 = B0 - 100 : Ss1 = B1 - 100 : Ss2 = B2 - 100 : Ss3 = B3 - 100
    For I = 1 To 4500
       Svr = S0
          If Svr > Ms0 Or Svr < Ss0 Then
          Svr = S0 : Shl = S1 : Shr = S2 : Svl = S3 : Exit For
          End If
       Shl = S1 :
          If Shl > Ms1 Or Shl < Ss1 Then
           Svr = S0 : Shl = S1 : Shr = S2 : Svl = S3 : Exit For
         End If
       Shr = S2 :
          If Shr > Ms2 Or Shr < Ss2 Then
           Svr = S0 : Shl = S1 : Shr = S2 : Svl = S3 : Exit For
          End If
       Svl = S3
          If Svl > Ms3 Or Svl < Ss3 Then
           Svr = S0 : Shl = S1 : Shr = S2 : Svl = S3 : Exit For
          End If
    Next
    
    If i >=4500 then Notaus
    Svr = Svr - B0
    Shl = Shl - B1
    Shr = Shr - B2
    Svl = Svl - B3
    
    .
    Dein Programm
    .
    Loop


    S0 bis S3 sind die per ADC gemessenen Sensorenwerte. Die Bs sind Mittelwerte um die Streuung etwas zu reduzieren. Tritt zum Zeitpunkt der For:next Schleife ein Spike auf, wird von einem der Sensoren dieser Mittelwert über- oder unterschritten. Daraufhin werden alle Sensorenwerte währen des Spikes erfaßt und die For-Next Schleife verlassen. Das Timing ist also wichtig, auf dass ein spike währen der for-Next-Schleife auftritt. Ist aber nicht kompliziert. Die Schleife gibt bei mir alle 0,2 sec einen Spike ab. Die For-Next-Schleife läuft die 500 etwa in 0,5 sec durch. Das restliche Programm braucht etwa 0,15 sec. So wird also ein Spike abgefangen. Kommt kein spike, läuft i bis 500 (nach 0,5 sec) und es ist klar, dass die Schleife ausgefallen sein muß.

    Grüße

    Christian
    Geändert von Christian H (10.07.2013 um 20:21 Uhr)

  4. #364
    Neuer Benutzer Öfters hier
    Registriert seit
    30.05.2013
    Beiträge
    21
    ok. danke. super.
    also jeder spike wird _immer_ von den spulen erfasst, solange sich der robo _innerhalb_, d.h. auf dem rasen im breich der induktionsschleifeneingrenzung befindet (und diese nicht durchtrennt ist oder der spike-generator defekt) ist.
    sehe ich das richtig?
    oder wird vom spike in einer der spulen _nur_ dann stom induziert, wenn eine der verbauten spulen am robo in etwa in 50cm nähe/abstand des drahtes ist?

    je nachdem ist mir der reaktionsalgorythmus nicht ganz klar.

    das ganze robo-programm braucht 0,15s, dazu kommt periodisch die for-next-schleife mit 0,5s. nur wenn die for-next-schleife läuft, kann der robo die spulen abfragen und feststellen, ob er sich gerade auf dem draht befindet. ist das richtig verstanden?

    danke und gruss,
    ozett

  5. #365
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    14.05.2006
    Beiträge
    260
    @ ozett, stimmt so. Ein Signal gibt´s auf dem ganzen Rasen.

  6. #366
    Neuer Benutzer Öfters hier
    Registriert seit
    30.05.2013
    Beiträge
    21
    ich hab' jetzt nochmal den ersten Post gelesen, weil ich nicht erkennen kann, ob du auch auf die polaritätsumkehr in der spule reagierst. (macht du nicht, oder?)

    Ich glaube verstanden zu haben, dass du an allen vier ecken des roboters spulen hast und wenn eine der spulen (theroretisch" direkt oberhalb des begrenzungsdrahtes steht, ist in dieser spule das spike-signal im vergleich zu einem referenz-mittelwert (und in diesem Augenblick auch den anderen spulen) stärker.
    d.h. der robo prüft quasi in Fahrt alle 0,20 sec (laufzeit des gesamten programm-loops), ob eine der spulen ein stärkeres signal emfängt als die anderen _und_ als der (laufend gemittelte?) referenzwert. stimmt das?
    ein stärkerer signalimpuls an einer der spulen (eben im vergleich zum mittelwert und den anderen spulen) dürfte aber sicherlich auch schon einige 10cm vor erreichen des drahtes (nicht erst direkt darüber) so sein, oder? richtige annahme?

    wenn dann also in deinem for-next-loop ein (immer im vergleich) stärkerer signalausschlag an einer der spulen erkannt ist, dann erfasst du nochmal alle sensorwerte (warum?) und die for-next-schleife wird verlassen.
    der robo kann jetzt eigenlich 180° gegen die spulenposition (vl,vr,hl,hr) umsteuern (oder im zufallswinkel, des chaos wegen. oder des entkommens...) um wieder in das Rasenfeld einzufahren.

    wenn es ein signal auf dem ganzen rasen gibt, dann müssten innerhalb des Rasenfeldes (also nicht im randbereich, in dem der draht liegt), das wohl nicht immer gleichförmig rund oder quadratisch ist, sonder ausgrenzungen (bäume, teich..) hat, der impulsempfang in allen 4 spulen gleichzeitig von etwas gleicher stärke sein. stimmt das auch? wenn eine der spulen ausfällt oder (keine ahnung warum, aber denkbar) im Rasenfeld die spulen den impuls nicht gleich bewerten (metallplatte im boden?), müsste der robo innerhalb auch des rasenfeldes seine fahrtrichtung mal ändern.

    ist das alles so richtig - oder hab' ich da einige denkfehler gemacht?
    Geändert von ozett (20.06.2013 um 09:36 Uhr)

  7. #367
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    14.05.2006
    Beiträge
    260
    uff,

    eigentlich hatte ich, bereits als der Artikel fürs RN-Wissen geschrieben wurde, gedacht, es wäre ausreichend erklärt. Also, die Polarität der Spikes ist natürlich wichtig zu erfassen, da diese eben innen und aussen unterscheidet. Die Signalintensität ist erst mal nicht wichtig. Es geht nur um die Polarität. Dass man eben über die Schleife fährt, ergibt sich einfach daraus, dass die Polarität umschlägt. Genau genommen ergeben sich ja 2 Spikes hintereinander, der erste, wenn sich das Magnetfeld während des Impulses aufbaut(kurz und stark) und ein zweiter mit umgekehrter Polarität (schwächer und dafür länger), wenn es wieder verschwindet. In RN-Wissen findet sich hierzu auch ein Diagramm. Es wird einfach immer der erste auftretende Impuls und dessen Richtung erfaßt.

  8. #368
    Neuer Benutzer Öfters hier
    Registriert seit
    30.05.2013
    Beiträge
    21
    also erstmal ganz herzlichen dank für die antwort.
    ich habe jetzt den rn-artikel nochmal _langsam_ nachgelesen. hätte ich vielleicht vor meinem posting machen sollen, ja,ja, geht mir auch so: ufff!
    ich würde mich freuen, wenn ich nochmal versuchen dürfte das zu verstehen? ich glaube, für die schmitt-trigger nachbildung in software fehlen mir grundlagen ....

    also im ADC erhält man Werte bei jedem auftretenden spike. jeder spike-impuls (z.bsp. mit dauer von 150 ms) baut ein magnetfeld auf, das in der spule (je nach polung und/oder aufenhalt der spule innen/aussen) eine spannung mit polarität erzeugt.
    am ende des spike-impules, durch den abfall des magnetfeldes, wird in der spule eine spannung mit umgekehrter polarität (und kürzerer dauer als beim aufbau) erzeugt.

    durch die im rn-artikel gezeigte emfangselektronik können am ADC diese spannungen als entweder oberhalb 1/2 Vcc oder unterhalb 1/2 Vcc gemessen werden.
    theoretisch also mit einsetzen des spikes (als positiver Impuls, je nach polung der spule oder lage innen/aussen) zwischen 2,5-5V
    und mit Ende des spikes zwischen 2,5V und 0V für den negativ-Impuls beim Abbau des magnetfeldes, am ende von z.bsp. 150ms.
    -- oder ist dieser ende-impuls zu kurz und wird nicht erfasst?

    1/2 Vcc (also 2,5V) läge am ADC nur unter dieser bedingung an: (von hier)
    "Wird keine Spannung in L induziert, stellt sich deshalb am Ausgang ebenfalls etwa 1/2 Vcc ein."
    in den spannungslosen zustand kommt die spule aber nur, wenn keine induktion stattfindet (draht oder impulsgeber defekt), oder
    "Befindet sich die Spule genau über der Schleife wird keine Spannung induziert."
    UFFF!
    Kommt jetzt die programmtechnische auswertung, ob dauerhaft innen oder aussen. also der schmitt-trigger in software?
    oder fehlt hier irgendwie eine sinus-kurve?

    "An- und Abschalten der Spannung an der Induktionsschleife erzeugen jeweils eine, weniger als 0,1 ms dauernde, Spannungsänderung (positiver oder negativer Spike) am Ausgang des OPV. Das Ausgangssignal wird im Mikrocontroller über den ADC ausgewertet"
    was ist denn mit "negativer Spike" gemeint? Habe ich irgendwo eine sinus-modulation übersehen?

    ich verstehe das bislang so, dass die werte am ADC in der impulsbreit von 150ms zwischen oberhalb und unterhalb 1/2Vcc pendeln? Also mit induktion einsetzendem Spike und induktion mit umgekehrter polarität durch spike-ende (=spannungsabfall).

    in dem code-schnipsel (von hier)
    Code:
    Svr = Svr - A0: Svl = Svl – A1	 'Differenzen Impuls - Ausgangswerte 'z.B. positiv innen, negativ aussen
    wird der aktuelle spike-wert von "'A0= Ausgangswerte der Sensoren (ohne Impuls)" abgezogen.

    macht man das mit ADC-Werten von 0-255 für 0-5V (1/2 Vcc wären dann etwa 125),
    dann würde durch den Wechsel von positiver Spulenspannung mit Spike-anfang und negativer spannung zu Spike-ende der Wert von "Svr" doch mit jedem Impuls alle 150ms wechseln, oder nicht?
    Also zwischen z.Bsp. +55 und -45, nimmt man mal werte wie diese an: 180-125=+55 und 80-125=-45.
    beim schmitt-trigger in elektronik kämen aber dauerhaft +4,5 und 0V für innen und aussen raus, oder?

    ich habe sicher wieder was nicht verstanden oder übersehen (laufzeit der schleife?), oder? bitte, wäre wirklich dankbar für einen kleinen klapps auf den Hinterkopf....

    danke danke und gruss,
    ozett

    Nachtrag (Lösung?): deinen letzten Post auch nochmal _langsam_ gelesen.
    also die for-next-schleife wird ja verlassen, wenn ein Spike erkannt wird. d.h. die negative induktion zum spike-ende wird gar nicht ausgewertet.
    sondern nur der Aufbau des magnetfeldes mit einsetzen des Spike. und das ist der kasus-knacktus!

    Code:
    Svr = Svr - A0: Svl = Svl – A1	 'Differenzen Impuls - Ausgangswerte 'z.B. positiv innen, negativ aussen
    Der ADC-Wert der jeweiligen Spule hat immer nur die Anfangspolarität beim einsetzen des Spikes. dann Abbruch der Spulenabfrage.
    Und die Anfangspolarität ist entweder "innen" oder "aussen". Am besten halt "innen", damit der Robo das Gras mäht, und nicht die Blumen.
    Kann das so sein?
    Geändert von ozett (20.06.2013 um 21:44 Uhr)

  9. #369
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    14.05.2006
    Beiträge
    260
    Der Nachtrag von Dir fast das Prinzip nochmal sehr richtig und prägnant zusammen. Nur noch eine kurze Anmerkung zu der Dauer der Spikes. Ein Stromimpuls wird natürlich nur ganz kurz, für Millisekunden durch die Spule geschickt und wiederholt sich z.B. alle 0,2 sec. Sprich innerhalb von ms baut sich das Magnetfeld auf (positiver spike) und fällt dann wieder zusammen (negativer spike, etwas langsamer s.o.). Die meiste Zeit ist also "Funkstille, bzw. gar kein Magnetfeld da".

  10. #370
    Neuer Benutzer Öfters hier
    Registriert seit
    30.05.2013
    Beiträge
    21
    Hallo,
    ich versuche gerade mal einige Details der einzelnen Mähroboter aus den verteilten Threads zusammen zutragen auf:
    http://www.rasenroboter-wiki.at/Rasenroboter_Projekte

    Dabei lese ich einiges zum zweiten mal und stelle meine grossen Wissenlücken fest.
    Ich habe die Unterscheidung zwischen dem "Spike"-Verfahren und dem "Ambrogio-Sinus" erst jetzt wirklich gesehen.

    Daher die Frage an ChristianH:
    Warum hast du das Spike-Verfahren 'erfunden', wo es beim Robi2Mow doch schonn eine Empfängerschaltung gab?
    Es gab sicher gute Gründe, oder?

    (Bin immer noch auf Suche und für meine geschätzte Kabellänge von ca. 300-400m gilt scheinbar das Ambrogio-Sinus als weniger fehlerträchtig.
    Bei vielen kommerziellen Modell wird häufig auch 250m Kabellänge erstmal als maximum angegeben.)

    danke und gruss,
    ozett

Seite 37 von 39 ErsteErste ... 273536373839 LetzteLetzte

Berechtigungen

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

Solar Speicher und Akkus Tests