Pin Belegung Schleifensender V2

@Stefan: ein Screenshot (pfodApp->Plot->Perimeter) genau wenn er das macht wäre hilfreich :)

Ideen:
- Mähmotor oder Getriebemotor zu nah an der Spule/LM386 bzw. Spule zu weit weg vom LM386. Um so einen Fehler zu finden, Roboter z.B. einfach mal ohne laufende Motoren in die Mitte der Wiese setzen und über längere Zeit beobachten ob es dann auch wechselt.
- Filter-Signal ('mag' im pfodApp-Plot) ist nicht "klar" genug (weist "Spikes" auf): Roboter ohne laufende Motoren in die Mitte der Wiese setzen und langsam am Sender-Poti drehen bis das 'mag' Signal keine Spikes mehr hat. http://wiki.ardumower.de/images/1/10/PerimeterV2screenshot.png http://wiki.ardumower.de/images/2/2a/Ardumower_perimeter2_test.jpg

Beide Punkte können einen IN/OUT Wechsel hervorrufen.
 
Ich brauche echt mehr zeit zum testen.

heute im Dunkeln mit Taschenlampe hab ich den Schleifensender neu Kalibriert und siehe da es geht.

Da die Schleife aber recht kurz ist, ca 25mtr. Wird der Motortreiber sehr heiß und schaltet ab. Ich werde mal ein anders Netzteil verwenden und den Sender nur noch mit 5V statt 12 V Betreiben.

Stefan
 
@Stefan: ich bin mir nicht 100% sicher, ob wir es optimal umgesetzt haben. Mit dem Sender-Poti kann man das Ausgangssignal für den Mototreiber PWM modulieren lassen und stellt mit dem Poti damit die Pulsweite ein: http://wiki.ardumower.de/images/4/46/Perimeter2_receiver_coil_pwm.jpg
Indirekt stellt man also die Leistung ein. Im Prinzip ähnlich wie die Eingangsspannung reduzieren, nur der Ansatz ist anders (Signal wird "zerhackt").

Bei meiner langen Schleife (120m) musste ich das Poti soweit aufdrehen, dass ich 100% Pulsbreite hatte (also keine PWM Modulation mehr stattfand). Erst dann waren gelegentliche IN/OUT-Wechsel weg.

Der Motortreiber selber reagiert ähnlich wenn der Strom zu hoch ist und fängt zunächst an das Signal zu modulieren (sehr kurze Aussetzer). Später erst schaltet er dann auch komplett ab.

Vielleicht sollten wir besser ein Modul zur Strombegrenzung ( Konstantstrom ) verwenden welches automatisch/passend die Eingangsspannung reduziert?
 
Man kann doch aber über das PWM Signal die Ausgangsspannug einstellen.
Da habe ich beim testen nicht darauf geachtet, wie sich das Signal bzw die Spannung bei Änderung am Poti verhält. Meine Schleife zum Test war auch nur sehr kurz, 25 mtr ca. da mein Whiper das andere Kabel zerhackt hatte :)

20 W ist schon eine Menge Leistung, damit kannst du im Amateurfunk schon DX Betrieb machen!

Ich komme mit der Software nur nicht klar, dein Code ist so Komplex das ich Ihn nicht mehr verstehe.
Ich hatte versucht eine RC Signal Erkennung einzubauen aber blicke nicht durch wie das RC Signal verarbeitet wird.

Ich häng nochmal den Ossi an die Schleife und sehe mir den Spannungsverlauf an.

Wir müssen auch aufpassen, das das Signal nicht zu stark wird und wir Störungen produzieren. Denn wenn der Funkmessdienst kommt wird es teuer.

Stefan
 
@Stefan: völlig richtig - deshalb haben wir uns beim Entwickeln an einen bekannten deutschen Mähroboter-Hersteller gehalten :) Dort wird dasselbe Signal generiert (etwas anderer Code) mit genau derselben maximalen Ausgangsleistung (Amplitude Spitze-Spitze). Einen EMV-Test werden wir aber trotzdem noch bald durchführen.

Die Funktionsweise des RC-Empfangs könntest Du an diesem Beispiel studieren: https://code.google.com/p/ardumower/source/browse/trunk/tests/rcmotor/rcmotor.ino
Prinzip: Ein RC-Kanal löst bei einem Zustands-Wechsel (HIGH/LOW) einen Interrupt aus, der Arduino springt dann in einen gemeinsamen (für alle RC-Kanäle) Interrupt-Handler (ISR-Funktion), liest den aktuellen Zustand (HIGH/LOW) aller Kanäle und die Zeit ein. Die Funktion "setRemotePPMState" prüft dann für jeden Kanal, ob sich der Zustand geändert hat. Falls er auf HIGH gegangen ist, wird die Pulsbreite (ms) des Signals ermittelt und in den entsprechenden Variablen (remoteSpeed, remoteSteer etc.) als Prozentwert (0..100) abgelegt. Das Hauptprogramm setzt dann die Prozentwerte um in die entsprechenden Aktionen.
 
Die Stromregelung im Sender ist doch aber ausreichend ... oder wo liegen da die Probleme?

Ich habe übrigens auch einen kleinen Flecken (etwa 1-2 m²) in der Nähe der Mitte der Rasenfläche, wo der Mäher nur in 2 von 3 Fällen das IN erkennt. Aber das schlimmste was passiert, ist, dass er halt umdreht und so tut, als ob er das Kabel gefunden hätte. Er hat sich dort noch nicht mit ERR ausgeschaltet. Allerdings liefert mein Netzteil auch nur maximal 1,3A, sodass ich momentan mit 12V und 1,3A also 15,6W die Schleife betreibe. Ich werde nochmal ein stärkeres Netzteil anklemmen, das dann defintiv mehr kann (24V, 40A) und wahrscheinlich ist dann der MC oder der Step-Down-Wandler der schwächste Part :)

Lässt du deine Schleife mit vollen 2A laufen, die der MC kann?

Gruß,
Jem
 
@Jem: ich weiss nicht genau ob das Signal noch ausreichend gut ist wenn es am Ausgang "zerhackt" wird (PWM im MC-Treiber). Besser wäre es am Eingang zu machen (Versorgungsspannung). Bei Motoren ist das egal, aber bei einem Signal welches wieder ausgelesen werden soll, könnte das für die Signalqualität eine Rolle spielen. Nicht zuletzt könnte es auch Störungen (EMV) verursachen.

Meine 120m Schleife läuft mit 20W, also 1,6A bei 12V. Aufgrund des hohen Widerstands meiner Schleife (ca. 8 Ohm) wird dann auch der Motortreiber nicht mehr warm.
 
Können wir nicht die MC-Eingangsseite mit einem MOSFET und PWM zerhacken und einem Elko wieder glätten und die Regelung des PWM-Signals über einen Stromsensor eingangsseitig vom Step-Down-Regler her durchführen?
 
Da der Motortreiber mit meiner kurzen Testschleife (ca. 20mtr) Heiß wurde und dann immer abgeschaltet hat. Habe ich gestern mal den Schleifensender mit 5V betrieben.

Sah alles auch gut aus. smag in der Mitte der Schleife zeigte ein kräftiges Signal aber die In / Out Erkennung funktionierte nicht mehr. Diereckt über der Schleife wurde kurz ein Signal wechsel angezeigt aber dann weiter Außerhalb zeigte er wieder In an.
Das Merkwürdige auch wenn ich Innerhalb der Schleife die Spule gedreht habe wurde weiter In angezeigt.
Kann das an der geringen Spannung liegen ?

Ich werde heute noch mal 12V versuchen aber schade wenn man nicht auch mit 5V bei kurzen Schleifen arbeiten könnte.

Stefan
 
@Stefan: kannst Du mal ein Screenshot vom Perimeter-Plot machen? (ein Bild erklärt mehr als...)

"außerhalb zeigte er wieder in an": wie weit außerhalb? (cm) - das Signal nimmt nach außen stark ab, das wäre also normales Verhalten...nur im Randbereich der Schleife is die Detektion für "out" vorhanden (und für uns auch notwendig).

"Spule gedreht": die Stromrichtung ändert sich wenn man die Spule dreht, die Erkennung "in/out" sollte sich also umkehren: http://wiki.ardumower.de/images/6/68/Fluxdirections.png
Evtl. die ADC-Kalibrierung im Roboter (mit ausgeschalteter Schleife) nochmal durchführen?

Ansonsten die Spannung etwas erhöhen (was ist eigentlich die Minimum-Spannung mit die der MC-Motortreiber arbeitet, 5V?), mehr ist besser :). Dann fällt mir nur noch eine Variante für sehr kurze Kabellängen ein, welche ich in der Wohnung ausprobiert habe ("Simulation einer langen Schleife"), da ich mit 3 Meter Kabel dasselbe Problem beim Testen hatte:



Code:
Simulationsschaltung einer langen Schleife
Für Tests in der Wohnung sollte man eine längere Schleife (150m) simulieren, damit das Signal ähnlich ist. 
Die benötigte Spule kann mich sich schnell selber bauen: einen Ferritkern ca. 30 mal mit Kabel umwickeln 
(so dass sich eine Induktivität von ca. 200 µH +/- 50% ergibt ). Der Motortreiber sollte für diesen Fall 
mit 5V betrieben werden.

sender 'long perimeter simulation' circuit:
MC motor driver M1OUT1 o---------- 8 Ohm resistor 20W --- coil (200 µH, 1.7A) --------------------+
                                                                                                  |
MC motor driver M1OUT2 o--------------------  perimeter loop (1-5 meters)  -----------------------+
...
 
Hier mal ein Aufruf an alle :):

Wer von euch hat bereits Perimeter v2 (also die neue Schleifen-Sender Version) im Einsatz? Wie sind eure Erfahrungen bisher? (funktioniert gut/schlecht...). Wie lang ist eure Schleife? Mit welcher Spannung betreibt ihr eure Schleife?

Ich mache mal einen Anfang:

120m Schleife (8 Ohm), 12V - läuft perfekt


Oder sollte ich der einzige sein bei dem die Schleife ordentlich läuft ...?
 
90m - 1,3 Ohm - 12,2V und Duty von 60% - Begrenzung auf 1,6A durch das Netzteil

Ergebnis: Alles gut, bis auf ein etwa 1,5m² großes Stück, etwa in der Mitte der Fläche, die nicht sicher erkannt wird (Quote liegt etwa bei 50% für korrekte Erkennung).

Gruß,
Jem
 
So ich hab heute die Schleife nochmal mit 12 V getestet.

Ich hab keine Ahnung wo bei mir das Problem liegt.

Hier mal Ein Video. Leider schlecht zu erkennen. Das Ossi hängt direkt an den Pins des Arduino, also das Empfangene Signal sieht gut aus.

[video width=425 height=344 type=youtube]hvOgdaIoYxQ[/video]

Ich habe die Empfängerspule über den Draht hin und her bewegt (In/Out) Das Siganl auf dem Ossi zeigt das auch deutlich. Über dem Draht fast null über die App zeigt den Wechsel nicht.

In Out Erkennung klappt nicht. hier noch der Screenshot.

Es wurde dabei nicht mal erkannt, das die Schleife an ist, obwohl ein Signal als auch der smag Wert angezeigt wird.

Ein anderes mal wird dann zwar Angezeigt das ein die Schleife an ist aber auch keine Erkennung In Out.

Ich hatte das schon mal, dann ging es wieder und ist das Problem wieder aufgetaucht.


Screenshot_2014-11-02-13-31-37.png


Screenshot_2014-11-02-13-30-27.png




Er zeigt nicht mal an das die Schleife an ist und obwohl der der Mower sich nicht bewegt wird ein ein In Out Wechsel Angezeigt ?

Wenn ich auf Home gehe sieht es ganz anders aus


Screenshot_2014-11-01-14-37-33.png


Er Tanzt dann wild in der Gegend rum und irgenwann macht er dann Autorotate overflow

Irgendwie stelle ich mich zu Blöd an ;)

Stefan
Attachment: https://forum.ardumower.de/data/media/kunena/attachments/1535/Screenshot_2014-11-02-13-31-37.png/
 
Zuletzt bearbeitet von einem Moderator:
@Stefan: Eigentlich kann das auch nicht funktionieren: dein Signal ist nicht symmetrisch um Null (d.h. die maximalen Ausschläge ins positive sollten etwa die gleiche maximale Amplitude ins negative haben)

So sieht es aus wenn es symmetrisch um Null ist:
http://wiki.ardumower.de/images/1/10/PerimeterV2screenshot.png
Ich würde die Schleife abstellen, dann nochmal die ADC-Kalibrierung durchführen. Hattest Du das schon probiert?
 
Ja hab ich schon mehrmals probiert.

Schleife aus Kalibriert und das selbe Ergebniss.

Ich hatte ja noch den zweiten Schleifen Empfänger, den gewechselt und das gleiche ?

Stefan
 
Ok, aber ohne symmetrisches Signal kommen wir nicht weiter. Solange das Signal nicht symmetrisch ist, wird beim "Matching Filter" immer eine Seite (inside/outside) "gewinnen" und damit bevorzugt.
http://wiki.ardumower.de/images/c/cc/Ardumower_perimeter2.jpg
Wenn die Schleife ausgestellt ist, sollte der LM386 typischerweise ca. 2,5V an seinem Ausgang haben. Da die Module sehr unterschiedlich sind (einige haben bei "Stille" 2V, andere haben 3V), müssen wir die exakte Null-Position kalibrieren. Dabei wird der ADC-Wert für "Stille" ermittelt und im Arduino EEPROM abgespeichert. Dieser Wert wird dann von allen Messwerten abgezogen.

Wenn also das Schleifensignal ausgeschaltet ist, sollte der kalibrierte Wert im Plot ("sig") irgendwo um Null (0) herum liegen - macht er das?

Ansonsten fällt mir noch ein: LM386 wechseln.
 
Offensichtlich hab ich hier Massive Störungen.

Der Screenshot ist bei Abgeschalteter Schleife, nach erneuter Kalibriierung und Neustart des Mower gemacht worden.

Da kann ich lange Probieren. Ich hab auch schon einen Verdacht was das ein könnte.
Screenshot_2014-11-02-17-51-13.png


Ein Lokal auf dem Nachbargründstück macht auch Probleme mit der Zentralverriegelung vom Auto meiner besseren Hälfte.

Ich werde morgen früh, wenn die zu haben nochmal kurz Probieren.

Stefan
Attachment: https://forum.ardumower.de/data/media/kunena/attachments/1535/Screenshot_2014-11-02-17-51-13.png/
 
Zuletzt bearbeitet von einem Moderator:
Kann man evtl. davon ausgehen, dass Nachbarn ebenfalls einen Roboter mit Schleifen-Sender haben? Verläuft deren Schleife vielleicht in direkter Nähe? Nach der Kalibrierung macht das zwar nichts aus (wir arbeiten mit Filtern), während der Kalibrierung ist das aber schlecht.

Das könnte ziemlich gut erklären warum bei "Stille" immer noch ein Signal empfangen wird.

Die Null-Kalibrierung kann man übrings auch ohne Spule durchführen. Das wäre in Deinem Fall wohl sinnvoller. Den LM386-Eingang einfach auf Masse legen ("offen lassen" wäre wieder problematisch, da kein festes Potential). Nach der Kalibrierung dann die Spule dran machen.
Alternativ kann man die Spule für die Kalibrierung auch in eine dicke Eisenbüchse legen.
 
Oben