Liste mit Befehlen zu Cerea

  • Hier soll eine List mit allen Kommandos und Kommunikationbefehlen zu Cerea entstehen ,

    jeder ist eingeladen diese Auflistung zu vervollständigen.


    Hier eine Übersicht für Tastaturanschläge (kopiert aus der configuracion.txt zu finden im Hauptordner der Cerea Software)


    Wenn jemand noch Befehle kennt oder Fehler feststellt bitte melden , um diese Aufstellung ergänzen zu können.


    beim drücken des jeweiligen Buchstaben, Zahl oder Symbols werden folgende Funktionen ausgeführt :



    Auto:a Lenkung aktivieren/deaktivieren

    Marcar:7 bearbeitete Fläche markieren ein/aus

    Contorno:4 Aussengrenzen des Feldes aufzeichnen

    Ancho:1 Maschinen Einstellungen aufrufen

    Nuevo:0 Archiv aufrufen

    Cargar:r Werkzeuge aufrufen

    Conectar:9 GPS Verbinden

    S:s Fahrrichtung umkehren

    GPS:u A B Menü aufrufen

    Salir:6 Cerea beenden

    A:w A-Punkt setzten

    B:e B-Punkt setzten

    C:2 keine Funktion festgestellt

    Disp_right:+ Spurversatz nach links um den eingestellten Wert

    Disp_left:- Spurversatz nach rechts um den eingestellten Wert

    Zoom+:k Display reinzoomen

    Zoom-:l Display rauszoomen

    Dimension:. 2D/3D unschalten

    Horizonte:* keine Funktion festgestellt

    Teclas:/ keine Funktion festgestellt

    Turn_right:p nach rechts automatisch wenden einleiten

    Turn_left:o nach links automatisch wenden einleiten




    zusätzlich zum Steuern im Simulationsmodus:


    F links lenken

    H rechts lenken

    T Fahrgeschwindigkeit erhöhen

    V Fahrgeschwindigkeit verringern




    Serial.print Befehle (kopiert aus dem Beitrag vom Mitglied aortner vonm 13.03.2017)


    Mögliche Befehle:

    // on marc

    // on contur

    // on new

    // on a

    // on b

    // on auto

    // on left

    // on right

    // on turn left

    // on turn right


    Beispiel Schalte marc ein

    Serial.print ("@SDOSE;1;0;0;0;0;0;0;0;0;0;0;END");

    Serial.print ('\r');

    Serial.print ('\n');



    Befehle für Teilbreiten (Spritze an Cerea)

    Serial.print ("@BOOMBOX;1;1;1;1;0;0;0;0;0;0;END");

  • Nachdem ich hier vor zwei Monaten als blutiger Cerea Anfänger gestartet bin, hab ich viel über die Programmierung der Arduinos lernen müssen.


    Damit die nächsten es etwas einfacher haben, hab ich hier mal alles zusammengeschrieben, was wichtig sein könnte.


    Vielleicht hilfts dem ein oder anderen ja dabei, sein Projekt um zu setzen.


    Für Fehlerfreiheit kann ich nicht garantieren, grundsätzlich hat aber bisher alles damit funktioniert.

    Viel Spass und Viel Erfolg!!



    Grundsätzlich gibt es zwei Kommunikationsrichtungen.

    Von Cerea zum Arduino und umgekehrt.

    Die Befehle sind immer identisch aufgebaut:

    Es beginnt mit dem Zeichen „@“, gefolgt von einer Adresse in Form von einem Wort (immer in GROSSBUCHSTABEN).

    Anhand dieser Adresse kann der Empfänger zuordnen, was gerade mitgeteilt werden soll.

    Danach folgt ein „ ; “, und danach mehrere Zahlen, jeweils getrennt durch ein Semikolon.

    Jede Zahl beinhaltet eine gewisse Information, mit der weitergearbeitet werden kann.

    Am Ende kommt dann noch das in Grossbuchstaben geschriebene Wörtchen „END“, damit der Empfänger weiß dass dieser Befehl zu Ende ist.

    Als Beispiel:

    @STATUSAM;1;0;END

    Wie beim Computer üblich steht die „1“ für „Ein“ und die „0“ für „Aus“,

    oder es wird eine Zahl übertragen, da zählt dann der Wert dieser Zahl zB bei km/h.


    Befehle von Cerea an den Arduino:


    @STATUSAM;1;0;END

    (Diesen Befehl sendet allerdings nur die Version für die Kupplung)

    Mit dieser Zeichenfolge teilt Cerea einem Arduino zwei Informationen mit.

    Die „1“ ist hier als Beispiel für den eingeschaltenen Zustand der „Auto“ Funktion innerhalb Cerea,

    wäre Auto deaktiviert würde dort eine „0“ stehen.

    Wobei im Beispiel die „0“ für ein deaktiviertes „Markieren“ steht. ( Aktiviert dann also „1“)

    -------------------------------------------------------------------------------------------------------

    @CEREA;5.44;-1;0;0;0;0;0;0;0;0;0;0;END

    Diese Zeichenfolge ist rund um die Programmierung für einen Spritzcomputer und ähnlichem interessant.

    12 Informationen werden übermittelt!

    „5.44“ ist hier wahllos als Beispiel für die Aktuelle Geschwindigkeit eingetragen.

    „-1“ ist ein freier Wert (dem Autor ist auch noch nicht bekannt für was, vermutlich aber für zB Soll Liter pro ha)

    Danach folgen 10 durch Semikolon getrennte „0“. Jede Null steht für den Schaltzustand einer Teilbreite. Die Erste „0“ steht dabei für die Teilbreite ganz links. Zehn genau deshalb, weil Cerea bis zu Zehn Teilbreiten verwalten kann. Sind die Teilbreiten aktiv, steht an der Stelle für die aktive Teilbreite eine „1“.

    Und hier kommt etwas das man wissen muss. Sind für das entsprechende Anbaugerät nur drei Teilbreiten in Cerea eingestellt, reduziert sich die Zeichenfolge um 7 Positionen.

    Es werden immer nur so viele Teilbreiten geschickt wie auch aktiv sind.

    Demnach sähe die Zeichenfolge mit der mittleren TB aktiv dann so aus.

    @CEREA;5.44;-1;0;1;0;END


    @HIDRAU;1;END

    Dieser Befehl wird von Cerea gesendet wenn man bei aktivierter Funktion Markieren auf einen schon bearbeiteten Bereich kommt. Damit könnte man ein Ventil Steuern (zb die einen Zylinder der etwas aus hebt, oder ähnliches)



    Befehle vom Arduino an Cerea


    Wir müssen mit dem Arduino eine Zeichenfolge generieren, die wir über den USB Port an Cerea senden.

    Grundsätzlich gilt dabei für alle:

    „@“ gefolgt von der Adresse in Grossbuchstaben mit den Informationen getrennt durch Semikolon.

    Das Ende der Information wird durch ein „END“ markiert

    Der Arduino gehorcht bei diesem senden aber seinen eigenen Regeln die sich wie folgt darstellen

    Das Kommando zum senden auf dem USB Port heißt „Serial.print(xxxx);“ die xxxx stehen für die Info. Diese kann Text als solcher sein, dann muss dieser in Anführungszeichen stehen, oder zB der Wert einer Variablen. Hierbei wird einfach die Bezeichnung der Variablen in die Klammern gesetzt ohne weitere Zeichen. Man findet auch schonmal ein Serial.println(xxxx) was aber in diesem Zusammenhang gleichbedeutend ist.

    Danach folgt noch :


    Serial.print('\r');

    Serial.print('\n');


    Anhand dessen erkennt Cerea dass der Befehl vollständig übertragen ist.


    Beispiel:


    Serial.print ("@BOOMBOX;1;1;0;0;0;0;0;0;0;0;END");

    Serial.print('\r');

    Serial.print('\n');



    Man kann das auch mischen:


    Serial.print ("@BOOMBOX;"+BTB1+BTB2+"0;0;0;0;0;0;0;0;END");

    Serial.print ('\r');

    Serial.print ('\n');


    In diesem Beispiel werden die Beiden „1“ durch den Inhalt einer Variablen „BTB1“ bzw „BTB2“ ersetzt.



    Hier die einzelnen Befehle die an Cerea gesendet werden können:


    Um Cerea von extern zu steuern gibt es den Befehl


    @SDOSE;A;B;C;D;E;F;G;H;I;J;K; END


    Jeder der Buchstaben A bis K steht für eine Funktion innerhalb Cerea, und kann entweder den Wert 1 oder 0 haben, wobei die eins für „Ausführen“ steht

    Der Befehl muss hierbei aber immer komplett ausgefüllt abgeschickt werden, kann also nicht verkürzt werden. Das ist auch der Grund warum er nicht so gerne verwendet wird, da das zu Programmierproblemen führen kann.

    A - Markieren

    B - Kontur

    C - (mir unbekannt)

    D - (mir unbekannt)

    E - A Punkt

    F - B Punkt

    G - Auto

    H - Nach links verschieben

    I - nach rechts verschieben

    J - drehen nach links

    K - drehen nach rechts


    Marc

    Ist die Miniform um Markieren Ein oder Aus zu schalten. Hierbei wird kein Wert benötigt.

    Dieser Befehl so abgesendet verändert einfach nur den Zustand von Markieren. Also von Ein zu Aus und umgekehrt.

    Gleiches gilt für @AUTO



    @BOOMBOX;0;0;0;0;0;0;0;0;0;0;END

    Schaltet die Teilbreiten einzeln ein oder aus. Zehn „0“ stehen für zehn mögliche Teilbreiten die Cerea verwalten kann. „0“ schaltet die Teilbreite aus, „1“ ein. Der Befehl muss immer komplett übertragen werden, d.h. die übrigen nicht vorhandenen Teilbreiten müssen auf „0“ gestellt werden.




    Die folgenden Vier Befehle dienen nur dafür einen Wert an Cerea zu übermitteln, den man sich im Arbeitsbildschirm einblenden lassen kann.


    Zum Beispiel den aktuellen Spritzdruck, die L/ha …

    Dazu muss in der Config unter BOOMs die boomBoxControl auf den Wert 1 geändert werden

    In den folgenden Befehlen steht das „x“ immer für den Wert der übertragen werden soll.

    Dieser sollte im Arduino einer Variablen entsprechen, die man iwie erzeugt.


    @PRESION;x;END vermutlich für den DRUCK


    @CAUDAL;x;END vermutlich L/min


    @APLICADO;x;END vermutlich L/ha


    @WE;x;END frei wählbar

  • Hallo zusammen,

    versuche gerade die serielle Kommunikatin zwischen Arduino und Cerea zu programmieren, bekomme aber keine Kommunikation zustande.

    Meine Frage: muss in der Cerea Software die Schnittstelle aktiviert werden?

    Beim Scan der Schnittstellen (unter GPS verbinden) in der Software wird nur die Schnittselle der Antenne, Motor phd und IMU mit "OK" bestätigt.

    Oder gibt es einen Eintrag in der Configuration.txt?


    Grüße

    Carsten

  • Hallo,

    bin neu in den Themea Arduino,

    Habe ein 12 Volt/ 3 Pin Stecker an unseren Trecker den ich über das Vorgewendemanagment am Joystick unter Spannung/ Spannungslos schalten kann. Darüber möchte ich dann Cerea Aktivieren (Auto) oder Deaktivieren.

    Nun meine Frage: Wie bekomme ich die 12V bzw 0 Volt zu einen Trigger, das Cerea aktiviert wird? Ist das mit Ardunino möglich? Welcher Arduninotyp wird da empfohlen? Danke im Vorraus.

  • Hallo,

    muss nochmal nachhaken bezüglich der Kommunikation Cerea - Arduino.

    Die Werte in der configuration.txt sind richtig gesetzt. Über einen USB-Analyser kann man sehen, das auch eine Kommunikation nach dem "GPS Verbinden" über den Arduino Port läuft. Allerdings ist das dann auch alles.

    Hat evtl. noch jemand eine Idee?

  • Hallo zusammen,
    ich habe folgendes Problem bei meinem SectionControl mit CEREA:

    Teilbreiten schaltet geht einwandfrei. Jetzt würde ich gerne Markieren auch über den Arduino schalten. Dazu habe ich den Hauptschalter meiner Spritze mit dem Arduino verbunden (Digitaler Pin) der mir dann eine Zustand detektiert.
    Dabei habe ich folgendes Testscript geschrieben:




    Im Seriellen Monitor sieht das soweit auch alles gut aus. Der sendet mir die Befehle. In Cerea schaltet er mir aber nur Markieren auf EIN und nicht wieder aus.

    Auch wenn ich Serial.print("MARC") durch Seriel.print("@SDOSE;0;0;0;0;0;0;0;0;0;0;0;END") bzw Seriel.print("@SDOSE;1;0;0;0;0;0;0;0;0;0;0;END") ersetzte klappt überhaupt kein Schalten von Markieren.
    Auch mit verschiedenen Geräten in CEREA bringt keine Besserung.


    Was habe ich noch falsch gemacht?

    In der Configuracion.txt ist Port und Baudrate korrekt eingestellt.

  • Hat du da auch Serial.... verwendet, oder wie angegeben Seriel?

    Da hat sich ein Tippfehler beim Beitrag erstellen eingeschlichen.
    Habe natürlich Serial verwendet.
    Kann es sein das es mit der neusten Version von Cerea nicht funktioniert? Weil dort die Clutch immer eingeschaltet ist (und auch die Fehlermeldung kommt das er Port 90 nicht findet)?


    Das werde ich heute Abend mal testen.

  • Hattest du während deines Versuchs GPS Verbindung?

    Ich habe es gerade mit der neusten Version im Büro getestet.

    Ohne Hardware (Antenne) ging es bei mir nicht, obwohl ich per Hand auf dem Tablet Markieren ein- und ausschalten kann.

    Da ich nun keine Hardware hier habe, habe ich es im Simulationsmodus probiert, da ging es.

  • Hallo zusammen, ich habe da Mal eine kurze Frage.

    Wenn ich über den Arduino (nano) einen A Punkt setzen will muss ich ja den Befehl @SDOSE;0;0;0;0;1;0... END an Cerea senden.

    Nun habe ich das Problem das Cerea wohl einen Punkt setzt aber irgendwie ist das kein normaler A Punkt, wenn schon eine Kurve existierte wird beim drücken des Knopfes ein Punkt auf die aktuelle Position gesetzt und die Kurve bis zu diesem Punkt verlängert. Der A-Button auf dem Bildschirm wird auch nicht blau markiert.

    Hat irgendwer einen Tip für mich.


    MfG Hermann

  • Hallo,

    ich bekomme leider keine Ausgabe von Cerea an den Adruino. Ich verwende einen Portspitter und folgende configuration.


    ------

    SOFTIDOSE

    ------

    softidoseActivated:1

    PORTSoftidose:10

    BAUDSoftidose:9600


    Die Portnummer passt. Hat jemand eine Idee, an was es liegen könnte?


    Cerea zeigt in der Statusleiste "Can not open port for clutch: 90" an, hat das damit was zu tun?