Fahrtregler auf Arduino Basis

    • Offizieller Beitrag

    Bist du sicher, dass der Satellit nicht auch 5V verkraftet? Würde mich wundern, wenn in den Standard-Spectrum-Empfängern zwar 5V als Versorgungsspannung angelegt werden dürfen, für den Sat aber separat ein 3.3V-Süppchen gekocht werden muss. (?)

    (Ok, ich gebe zu...: Die Ausgangspegel des Empfängers sind bei 5V-Versorgungsspannung auch nur minimal höher als 3V (also so, dass es ein Fahrtregler mit Schmitt-Trigger gerade noch erkennt), das würde für eine 3.3V-Logik sprechen.)

  • Klappt prima ohne Pegelwandler. Der Arduino erkennt 2V schon als high. Also ich hatte noch keine Fehler. Nur zittern aber das lag an der Funke. Die Gesendeten Werte wanderten.
    Jetzt noch den Rest programmieren und einen Prototypen bauen.
    Welche Eigenschaften sind euch den wichtig an so einem kleinen Regler? Oder welche wünsche habt ihr?
    Soll kein ersatz für Reiners oder Andreas Regler werden. Nur eine alles drin alternative für Spektrum Fahrer.

    Erfahrungen sind was sehr nützliches, leider macht man sie erst kurz nachdem man sie gebraucht hätte...

    Funken: Multiplex Combi 80, Multiplex Combi 90

    Ants: Drum1 (kaputt), Drum2 (kaputt), Böse (reden wir nicht drüber)

    Bastellein: Alles so alt das die Bilder fehlen

    • Offizieller Beitrag
    Zitat

    Soll kein ersatz für Reiners oder Andreas Regler werden. Nur eine alles drin alternative für Spektrum Fahrer.


    Warum nicht?
    Ich seh' das sportlich..... ;) Je mehr Leute dass hier an den Fahrtreglern entwickeln, desto mehr know-how wird gegenseitig ausgetauscht.

  • Ist die Qualität von Orange so schlecht? Habe 5 Satelliten bestellt und 3 sind kaput!!! Könnte gerade etwas ausrasten! Die normalen Empfänger funktionieren alle.

    Erfahrungen sind was sehr nützliches, leider macht man sie erst kurz nachdem man sie gebraucht hätte...

    Funken: Multiplex Combi 80, Multiplex Combi 90

    Ants: Drum1 (kaputt), Drum2 (kaputt), Böse (reden wir nicht drüber)

    Bastellein: Alles so alt das die Bilder fehlen

  • Ich brauche nochmal Hilfe. Und zwar rückwärts funktioniert alles nur vorwärts geht nur der Vollgas Teil. Warum wo ist mein Denkfehler?

    void Motor1()
    {
    //Vorwärts
    if(CH7() <200)
    {
    analogWrite(Motor1_ruck, 0);
    delayMicroseconds(3); //<--------------------Programmunterbrechung!!!!!
    analogWrite(Motor1_vor, 255);
    }

    else if(CH7() <=504)
    {
    analogWrite(Motor1_ruck, 0);
    delayMicroseconds(3); //<--------------------Programmunterbrechung!!!!!
    analogWrite(Motor1_vor, map(CH7(), 200, 504, 255, 0) );
    }

    //Rückwärts
    else if(CH7() >840)
    {
    analogWrite(Motor1_vor, 0);
    delayMicroseconds(3); //<--------------------Programmunterbrechung!!!!!
    analogWrite(Motor1_ruck, 255);
    //digitalWrite(Motor1_ruck, HIGH);
    }

    else if(CH7() >=520)
    {
    analogWrite(Motor1_vor, 0);
    delayMicroseconds(3); //<--------------------Programmunterbrechung!!!!!
    analogWrite(Motor1_ruck, map(CH7(), 520, 840, 0, 255) );
    }

    else
    {
    analogWrite(Motor1_vor, 0);
    analogWrite(Motor1_ruck, 0);
    }
    }

    Erfahrungen sind was sehr nützliches, leider macht man sie erst kurz nachdem man sie gebraucht hätte...

    Funken: Multiplex Combi 80, Multiplex Combi 90

    Ants: Drum1 (kaputt), Drum2 (kaputt), Böse (reden wir nicht drüber)

    Bastellein: Alles so alt das die Bilder fehlen

  • Da ich nicht weiss was du bei

    analogWrite(Motor1_vor, map(CH7(), 200, 504, 255, 0) );

    machst, nur ein Verdacht. Hast du mal probiert vor der ersten if-Anweisung auch ein else zu setzen? Bei einem Wert <200 würde der Kasten doch zuerst in die erste If-Anweisung gehen und danach noch in die erste else-if-Anweisung springen. Wie gesagt, nur eine doofe Idee, aber vlt gibt es darum einen komischen Effekt...
    Ansonsten vlt. mal die Lookup-Tabelle(?) Überprüfen.

  • Habe den Fehler gefunden. Die Servo Libary verträgt sich nicht mit dem Befehl analogWrite. Jetzt muss ich eine Alternative für die Servo libary finden.

    Erfahrungen sind was sehr nützliches, leider macht man sie erst kurz nachdem man sie gebraucht hätte...

    Funken: Multiplex Combi 80, Multiplex Combi 90

    Ants: Drum1 (kaputt), Drum2 (kaputt), Böse (reden wir nicht drüber)

    Bastellein: Alles so alt das die Bilder fehlen

  • Oder doch die gleiche Servo libary. Wer lesen kann ist klar im Vorteil:

    Zitat

    On boards other than the Mega, use of the library disables analogWrite() (PWM) functionality on pins 9 and 10, whether or not there is a Servo on those pins

    Jetzt leuchten die LEDs so wie sie sollen und der Servo funktioniert auch so wie er soll.
    Fehlt erstmal die Datenfilterung. Ungültige Werte werden leider noch verarbeitet und produzieren noch Schrott. Passiert zwar sehr selten ist aber reproduzierbar. AVR gebootet und danach den Datenpin vom Satelliten eingesteckt läst komische werte entstehen. Andersrum kein Problem.
    Bei der Bremse muss ich mir auch noch was einfallen lassen.
    Aber der grobe Teil funktioniert.

    HIer ein Video: http://youtu.be/6C8whBxolSk

    Erfahrungen sind was sehr nützliches, leider macht man sie erst kurz nachdem man sie gebraucht hätte...

    Funken: Multiplex Combi 80, Multiplex Combi 90

    Ants: Drum1 (kaputt), Drum2 (kaputt), Böse (reden wir nicht drüber)

    Bastellein: Alles so alt das die Bilder fehlen

  • Kann mir jemand eine DX5i leihen? Zum was testen eine kaufen ist mir zu teuer. Da die Orangemodule die Signale etwas anders übertragen bräuchte ich was zum reverse engeniring. Keine Sorge ich zerlege die Funke nicht. Wollte da was mit dem Failsafe testen. Irgendwie verschieben sich die Kanäle und ich weis nicht warum. Ob das daran liegt das die Orange module zwei mal 16Byte übertragen?

    Erfahrungen sind was sehr nützliches, leider macht man sie erst kurz nachdem man sie gebraucht hätte...

    Funken: Multiplex Combi 80, Multiplex Combi 90

    Ants: Drum1 (kaputt), Drum2 (kaputt), Böse (reden wir nicht drüber)

    Bastellein: Alles so alt das die Bilder fehlen

  • Ist die DX5e nicht DSMX? Oder ist die DSM2? Könnte ich die mir abholen? War doch irgendwo in der Nähe von mir oder?
    Hast PN

    Erfahrungen sind was sehr nützliches, leider macht man sie erst kurz nachdem man sie gebraucht hätte...

    Funken: Multiplex Combi 80, Multiplex Combi 90

    Ants: Drum1 (kaputt), Drum2 (kaputt), Böse (reden wir nicht drüber)

    Bastellein: Alles so alt das die Bilder fehlen

  • Jetzt bin ich verwirrt. Egal ich probiere es aus. Wenn er nicht Bindet ist es DSMX Wenn ja DSM2.

    Erfahrungen sind was sehr nützliches, leider macht man sie erst kurz nachdem man sie gebraucht hätte...

    Funken: Multiplex Combi 80, Multiplex Combi 90

    Ants: Drum1 (kaputt), Drum2 (kaputt), Böse (reden wir nicht drüber)

    Bastellein: Alles so alt das die Bilder fehlen

    • Offizieller Beitrag

    Die DX5e hatte ich früher mal als "DSM1" gesehen, normalerweise wird sie als "DSM2" angeboten. Hatte sie auch mit dieser Bezeichnung gekauft.

    Naiv_Mode: Ein
    {
    Nur mal nachgehakt: Ich hatte mal aufgeschnappt, dass der Unterschied von DSM1 und DSM2 in der Belegung von dem Gasknüppel ist. Bei meiner DX5e ist das Gas links (keine Rückholfeder vom Kreuzknüppel).
    }
    Naiv_Mode: Aus

    Zitat

    Ich habe 2 DSMX DX5e sender.


    Hast Du somit andere Empfänger, als die üblichen von Spectrum (z.B. AR500) oder die preisgünstigen Orange?
    Nur aus Neugierde: Hat DSMX irgendwelche Vorteile gegenüber DSM2?

  • So es geht weiter. Die Bremse funktioniert fast so wie ich sie haben will. Eine feste Bremszeit ist leider nicht so toll. Deswegen wollte ich eine Inteligente Bremse haben. Läuft aber noch nicht.
    Sollte mein Programm noch weiter wachsen wird es bald eng. Ok dauert aber noch lange. Bin erst bei 6202Bytes von 32256Bytes.
    Langsam wirds was.

    Edit: Bremse doch einen festen Wert zugewiesen.
    Jetzt kommt das schwierigste. Zuordnen der Kanäle den Ausgängen über die Fernsteuerung.

    Problem: Aufgrund des Programmablaufs kann ich nur 0-2ms oder >21ms bremsen. Es sei denn ich halte das Programm an (break) und das wollte ich vermeiden.

    Möchte jeman sich die 266 Programmzeilen ansehen und gucken was man besser machen kann?

    Erfahrungen sind was sehr nützliches, leider macht man sie erst kurz nachdem man sie gebraucht hätte...

    Funken: Multiplex Combi 80, Multiplex Combi 90

    Ants: Drum1 (kaputt), Drum2 (kaputt), Böse (reden wir nicht drüber)

    Bastellein: Alles so alt das die Bilder fehlen

    Einmal editiert, zuletzt von Krümmel (21. Oktober 2014 um 19:01)

    • Offizieller Beitrag
    Zitat

    Deswegen wollte ich eine Inteligente Bremse haben.


    *Neugierig* Wie hätte das funktionieren sollen? Meine Erfahrung mit der Bremserei sagt, dass man die Bremspulse (Länge eines Bremspulses und Anzahl der Bremspulse) abhängig von dem Bot machen muss. Ein vierrädiger Bot bleibt schneller stehen als ein Zweirädiger. Ebenso spielt die Masse des Bots eine Rolle, wie lange die noch "nachschiebt", bevor die Bremse gelöst und die Gegenrichtung aktiviert werden kann. (Augenblicklich stelle ich die Bremse anhand des blauen Funkenflugs der Motor-Kollektoren ein. Wenn's zu viel der blauen Funken sind, wird die Pulslänge verringert, ...) Wie wolltest Du das "intelligent" lösen? (Auch wenn's nicht funktioniert, ware die "Vision" ganz interessant zu wissen.)


    Zitat

    Möchte jeman sich die 266 Programmzeilen ansehen und gucken was man besser machen kann?


    Ich bin mit dem Arduino-Sleng nicht vertraut und habe bei den Programm-Fragmenten schon immer meine liebe Not gehabt zu verstehen, was die Funktion macht. Wenn Du (so wie man das als guter Programmierer macht ;) ) hinter jeder Zeile einen Kommentar geschrieben hast, was Du da mit der Funktion treibst, dann kannste mir den Quellcode gerne mal zukommen lassen. Allerdings: Es wird ein bißchen dauern, bis ich dazu komme.... hab' derzeit noch eine andere zeit- und nervraubende Baustelle zu bearbeiten....

    Zitat

    ...was man besser machen kann?


    Es gibt viele Wege, ein Problem oder eine Aufgabenstellung zu lösen. Als Programmierer ist man "Kunstler" ;) . Es gibt keine "beste Lösung", nur andere Wege, bei denen man sich u.U. nicht eine Erweiterung verbaut, etc. ... In der Richtung kannst Du also nur Empfehlungen bekommen, wie man etwas "effizienter" oder "speicherplatz-sparender" machen könnte. Oder u.U. den berüchtigten "Spagetti-Code" ein bißchen ordnen...