-         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 13 von 13

Thema: Bräuchte Hilfe! Servo über 2 Taster 3 Positionen anfahren lassen. Mit Arduino

  1. #11
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2013
    Ort
    Region Basel
    Alter
    61
    Beiträge
    2.435
    Anzeige

    Hallo,
    Zitat Zitat von kleinfranke Beitrag anzeigen
    Genau so soll es sein =)
    Es soll für ein rennkart werden für ein Viertel Meilen Rennen.
    Es gibt Sowas für karts aber das kostet 900 Euro
    Also, du musst das Problem zuerst in zwei Teile zerlegen.
    1. Der Tasten-Klapperatismus.
    Du hast das Problem, dass die Tasten prellen. Das Teil schaltet nicht wirklich sauber, sondern erzeugt im Bereich von etwa 10ms eine Menge Impulse. Die Elektronik ist schnell genug um diese als einzelne Impulse zu erkennen. Das will man aber nicht. Du musst also z.B. mit Timern sicherstellen, dass dies nur als einzelner Impuls ausgewertet wird. Die Prellzeit hängt auch noch von der Tastenkonstruktion und dem Alter der Taste ab.

    Vorstellen kannst du dir das bei einem Springkontakt folgendermassen:
    Der Kontakt wird zuerst mit einer Feder vorgespannt und schnellt dann auf den anderen Kontakt. Dort hüpft er dann wie ein Ball mehrfach auf und ab und unterbricht dabei immer wieder den Kontakt.

    Es gibt auch Schiebekontakte, wie z.B. bei Schiebeschaltern. Dabei wird der Kontakt beim Betätigen über den anderen Kontakt geschleift. Mikroskopisch ist so eine Oberfläche aber nicht Glatt, sondern ähnelt mehr den Alpen. Das ruckelt und hüpft dann eben auch.

    Ein anderes Problem ist dann noch, dass die Tasten unterschiedlich lang gedrückt werden können, möglicherweise sogar länger als sie Schaltzeit des Getriebes ist. Da musst du dir auch erst einmal Gedanken machen, was in einem solchen Fall geschehen soll.

    Und dann musst du noch mit Störungen rechnen. Meistens verwendet man keine Dieselmotoren, also ist da eine Zündkerze, welche mit Hochspannung betrieben wird. Der Name "Funk", für Radio usw., kommt daher, dass man in den Anfängen Funken-Sender benutzt hat, damit konnte man aber nur Morsen. Jeder Draht ist aber auch eine Antenne und die Elektronik weiss dann nicht, ob die Taste gedrückt wurde oder es ein Störsignal ist.
    Das muss man dann durch entsprechende Dimensionierung und Filter-Kondensatoren unterdrücken, sonst schaltet dein Motorrad grundlos in einen anderen Gang!

    Eine mögliche Lösung wäre, das ganze mit Timern auszuwerten:
    a. Taste kürzer gedrückt als T1 --> Störung oder Prellen
    b. Taste mindestens länger als T2 gedrückt --> Schaltvorgang auslösen.
    c. Option: Taste länger als T3 gedrückt --> weiteren Schaltvorgang auslösen.
    d. Taste länger als T4 gedrückt --> Dauerkontakt, Defekt, Kurzschluss

    So jetzt haben wir das mal für EINE Taste.
    Was ist wenn BEIDE Tasten gleichzeitig gedrückt werden?
    Was ist wenn man 2x schneller Drückt als vom Getriebe ausgeführt werden kann? Wird dann der zweite Tastendruck ignoriert oder zwichen gespeichert um 2 Gänge weiter zu schalten?
    Das sind aber sicher noch nicht alle Bedingen.

    2. Schaltwerk
    In der realen Welt bracht Bewegung immer Zeit. So ein Mikroprozesserchen verbringt die meiste Zeit sowieso nur mit auf Warten auf ein Ereignis.
    Wenn du dem Servo den Befehl gibst sich um 90° zu Bewegen, musst du ihm auch entsprechend Zeit lassen dies umzusetzen. Erst dann kannst du ihm sagen, dass er wieder in die Grundposition gehen soll. Um einen Schaltvorgang auszulösen, muss sich der Servo aber in der Grundposition befinden. Mechanik hat die Eigenschaft sich je nach Temperatur unterschiedlich leicht zu bewegen, das beeinflusst aber auch die maximale Geschwindigkeit mit welcher der Servo sich bewegt. Hinzu kommt auch noch die Abhängigkeit des Servomotors von der Spannung.
    Hier ist es Hilfreich, wenn man eine Rückmeldung der Servostellung hat, in deinem Fall also Grundstellung, Schaltpunkt + und Schaltpunkt -.
    Dann kann man warten bis das entsprechende Signal kommt, egal wie schnell der Servo dies gerade umsetzen kann.
    Zudem sollte man auch die Zeit überwachen. Kann das der Servo nicht in einer maximalen Zeitspanne erreichen, ist was defekt, klemmt etwas oder es liegt sonst ein Fehler vor.

    3. Reset
    Du hast ein Schrittschaltwerk vorliegen. Je nachdem wann die Spannung abgeschaltet wurde, weisst du nicht welcher Gang mechanisch eingelegt ist. Eine Möglichkeit wäre, beim Einschalten einfach mal 10 Gänge runter zu schalten, dann bist du garantiert im 1. Was ist dann aber mitten im Rennen, bei einer Störung, welche einen Kurzen Stromausfall erzeugt und somit einen Reset auslöst? Bei Tempo 150 machst du dann schnell den Abstieg über den Lenker, was zudem ungesund sein soll!
    Also wäre es einfacher noch den aktuell eingelegten Gang messtechnisch zu erfassen.
    Um Programm-Abstürze zu erkennen, mit welchen durch Störungen immer zu rechnen ist, sollte man noch den Watchdog-Timer aktivieren.

    4. Weiteres
    Wünschenswert ist sicher noch eine 7-Segmentanzeige für den gerade eingelegten Gang. Vermutlich noch besser wäre eine doppelte Anzeige, einmal für den gewählten und einmal für den gerade mechanisch eingelegten Gang.

    Also, zuerst einmal viel zu Bedenken und eine Menge Papierkram, um das ganze Verhalten erst einmal festzulegen.
    Dabei spielen die Programmiersprache, verwendete Hardware usw., noch gar keine Rolle.
    Ganz wichtig dabei ist es auch noch daran zu denken, dass auch einmal etwas schief gehen kann (Störsignale)! OK, diese Zeit hat man dann auch später im Gipsbett, aber es zerrt sehr an den Nerven, wenn man eine Lösung hat, diese ausprobieren möchte aber ans Bett gefesselt ist.

    MfG Peter(TOO)


    Aber du hast ein Pflichtenheft für das weitere vorgehen.
    Manchmal frage ich mich, wieso meine Generation Geräte ohne Simulation entwickeln konnte?

  2. #12
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    51
    Beiträge
    2.813
    Hallo kleinfranke,

    Du brauchst mir keine PN oder Mails zu senden.

    Das hier ist ein Forum,
    https://de.wikipedia.org/wiki/Forum_(Kultur)
    hier kann man seine Fragen posten.

    Einen Schaltplan hast du immer noch nicht gepostet, ich hatte Dir ein PDF Verlinkt und noch die Seitenzahlen angegeben, wo Du das zur Not einfach abzeichnen kannst.
    Dann hast Du (nicht nur von mir) diverse Fragen erhalten was unter welchen Bedingungen passieren soll.
    und ich hatte Dich aufgefordert Deinen Programmablauf einfach mal als Text zu beschreiben. Das dann in konkreten Code zu fassen ist zwar auch keine Kleinigkeit, aber wir hier im Forum sehen dann das Du Dich damit befasst und wo Deine Schwächen sind.
    Privat biete ich hier Hilfe zu Selbsthilfe.
    Beruflich biete ich Entwichklungs- und Ingenieurleistungen an.
    Da sollte dann von Dir aber eine ordentliche Angebotsanfrage mit Pflichten-/Lastenheft kommen, dann kann ich das meinem Vertrieb geben und du bekämst ein konkretes, bepreistes Angebot von meiner Firma.
    Ich habe täglich mit Kunden zu tun die den Ferrari zum Preis vom Fiat Panda haben wollen.
    Und auch hier kommen immer wieder welche die Nichts tun wollen und gerne ein Projekt für lau entwickelt bekommen möchten.

    Von daher, hier noch mal der Post von oberallgeier, denn ich halte es genauso.

    Zitat Zitat von oberallgeier Beitrag anzeigen
    Willkommen im Forum.
    Das klingt danach, dass man das Projekt für Dich erledigen soll. Irgendwo in den Beiträgen von radbruch steht dazu etwas und wird auch von PICture in dessen Signatur zitiert: Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch)

    Mehr bräuchte man nicht dazu zu schreiben. Ich setze eins drauf und empfehle Dir mal mit den ersten Schritten am Arduino anzufangen - darüber hättest Du bei ein wenig eigener Motivation selbst stolpern können
    Erklärung was der arduino ist
    Erste Schritte mit demselben
    Wenn Du dann die ersten grundlegenden Schritte selbst erledigt hast und den arduino zu einer minimalen Funktion gebracht hast - z.B. ne Leuchtdiode blinken lassen - dann wird Dir auf entsprechende Fragen sicher weitergeholfen. Aber selbst das müsste nicht sein, weil hier, im RNWissen, die Ansteuerung von Servos ja ziemlich gut erklärt ist.

    Übrigens - klick mal =>hier<=

  3. #13
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.043
    Nur mal zur Info - Ein paar Grundlagen.
    So ein Servo wird mit Impulsen auf der Impulsleitung angesteuert.
    Die Impulslänge liegt dabei zwischen 1 und 2ms. Alle 20ms wird so ein Impuls an das Servo ausgegeben.
    Ich mach das in "C" mit einem Timer der mir den Impuls und die Pause über Comparematch Interrupts generiert.
    Arduino hab ich nicht, dort könnte es eine fertige Library geben.
    Die gewünschte Impulslänge musst du so lange ausgeben, bis das Servo die Lage auch erreichen kann ( wurde weiter vorher schon angesprochen ).
    Das mit dem Entprellen der Tasten wurde auch schon angesprochen.
    Ich mach das meistens so, das ich bei einer Änderung nach 10...100ms "nachsehe" ob die Taste noch gedrückt ist.
    Ist das der Fall, wird dies als Tastendruck akzeptiert. Das gleiche passiert auch beim Loslassen der Taste.
    Hat das Getriebe nich auch nen Schalter der bei Neutral geschlossen ist ? Den könnte man abfragen.
    Die relativ große Zeitspanne der Wartezeit ist von der Qualität der Taster abhängig und deshalb u.U. experimentell zu ermitteln.
    Ein weiteres Problem hast Du anscheinend noch nicht auf dem Schirm und zwar das Kuppeln.
    Ich denke mal, das bei jedem Schaltvorgang die Kupplung betätigt werden muß.
    Ist das Gefährt schon mal in Fahrt kann man die Kupplung wohl reinknallen.
    Beim Anfahren wirst Du dabei wohl den Motor abwürgen.
    Also wirst du drehzahlabhängig eine Einkuppelkurve anlegen müssen um erstmal vom Fleck zu kommen.

    Ich seh das so, das Du einen Drehzahlsensor, einen Geschwindigkeitssensor, 2 Taster, evtl. 1 bis 2 Anzeigen und 2 bis 3 Servos bedienen musst.

    Im Prinzip kein Problem, das Hauptproblem seh ich da in der Entwicklung der " Kennfelder " um möglichst schnell voran zu kommen.
    Das dürfte wohl die meiste Zeit verschlingen.

Seite 2 von 2 ErsteErste 12

Ähnliche Themen

  1. Brauche Hilfe! Servo über 2 Taster 3 Positionen anfahren lassen. Welchen Controller??
    Von Toni13 im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 7
    Letzter Beitrag: 19.04.2013, 20:40
  2. Servo 3 positionen anfahren lassen
    Von Christian3 im Forum Robby RP6
    Antworten: 2
    Letzter Beitrag: 15.08.2009, 23:08
  3. LEDs über Taster dauerhaft leuchten lassen
    Von JensK im Forum Elektronik
    Antworten: 14
    Letzter Beitrag: 15.12.2008, 15:53
  4. Motor langsam anfahren lassen ...
    Von H3llGhost im Forum Asuro
    Antworten: 4
    Letzter Beitrag: 08.01.2008, 17:04
  5. Bräuchte Hilfe bei LCD-Ansteuerung
    Von Spartakaktus im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 31.01.2005, 17:26

Stichworte

Berechtigungen

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