- SF800 Solar Speicher Tutorial         
Ergebnis 1 bis 10 von 390

Thema: Rasenrobo mit Induktionsschleife, Schaltbilder, Hallsensor

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    14.05.2006
    Beiträge
    260
    Hallo,

    Bilder gibts auf Seite 14 und 31

    https://www.roboternetz.de/community...lsensor/page14
    https://www.roboternetz.de/community...lsensor/page31

    Die Sensoren sind noch immer die selben. Hochstehende Spule. Codeschnitzel kann ich wohl erst am Mittwoch raussuchen. Ansonsten habe ich den rasenrobo vereinfacht. Nur noch ein Akku mit 12 Zellen, die 5 V für den MC über einen Schaltregler. 3 Bumper (vorne, rechts und links), Kompass, WiFly statt easy-radio, ein Sensor (magnetisch) am Vorderrad rechts für Odometrie, ein Sensor(optisch) für den Rasenmähermotor.

    Keine sharp-, US- oder sonstige Sensoren. Kein Display.

    Christian

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    30.05.2013
    Beiträge
    21
    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

  3. #3
    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

  4. #4
    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)

  5. #5
    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

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

  7. #7
    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)

Berechtigungen

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

12V Akku bauen