- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 6 von 6

Thema: Panzer/Raupe mit 2-Achs Joystick

  1. #1

    Panzer/Raupe mit 2-Achs Joystick

    Anzeige

    E-Bike
    Hallo,

    ich bin ganz neu hier
    Ich habe schon ganz fleisig hier gelesen und so langsam stehen die Pläne für den ersten eigenen Roboter.
    Ich studiere Informatik und habe etwas erfahrung mit μC ...

    Ich werde mir in den nächsten Tagen das RP5/RP6 Fahrgestell zulegen. Die Steuerung soll ein ATMega16 oder 32 übernehmen.

    Das ganze soll via W-Lan gesteuert werden und nach und nach Autonom werden.

    Ich berete gerade schon die gesammte Server-Client Stuerung vor.

    Ich habe eben eine Funktoion zum Auslesen eines PlayStation Controllers (am USB Adapter) geschrieben... damit will ich den bot bedienen.

    Nun bräuchte ich mal eure Hilfe.

    Ich möchte einen 2-Achsen-Joystick zur Steuerung nutzen und muss das auf die Werte für die Motoren umrechnen.
    Gibt es da eine art von Norm-Umrechnung?

    Also meine Stick-Achsen gehen jeweils von -10 bis 10.
    was klar sein dürfte ist:
    x=10, y=0 ↦ beide Motoren 100% vorwärts
    x=5, y=0 ↦ beide Motoren 50% vorwärts
    x=-10, y=0 ↦ beide Motoren 100% rückwärts
    x=-5, y=0 ↦ beide Motoren 50% rückwärts

    interresant wird es bei
    x=10, y=10 ↦ ein Motor 100% einer 50% ???
    x=0, y=10 ↦ ein Motor 100% der andere 0% oder Bremsen oder Rückwärts ???

    das Bremsen könnte man auch mit extra Tasten (L1,R1 am PS2 Controller) realisieren...

    Ich hoffe ihr versteht mein Problem?
    Wie habt ihr das den gelöst?

    Ich habe wie gesagt noch keinen Bot und kann es noch nicht testen... würde aber gerne bis ende der Woche die Kommunikation mit dem Controller und die Steuerung fertig haben.

    vielen Dank schon mal im Vorraus.

    Philipp aka goerdy

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    31.05.2009
    Ort
    Stralsund
    Alter
    33
    Beiträge
    436
    Hast dir da ein schönes Startprojekt ausgesucht, so kannst überall was mitnehmen
    Planst du die Elektronik selbst zu bauen?

    Zur Steuerung, ich hab noch nie was von einer Normierung in dieser Sache gehört.
    Ich würde aber sagen, dass bei x=0, y=10 die Motoren 100% entgegengesetzt laufen, ist am praktischsten. Bei einem diagonalen Knüppeleinschlag also |x|=|y| würde ich nur einen Motor laufen lassen, je nach dem wie groß x bzw. y ist, entsprechend schneller oder langsamer. Erreichst du überhaupt x=10, y=10 mit dem Playstationcontroller, also von der Hardwareseite? Das Gehäuse sollte das doch unterbinden.

    Bremsen brauchst du die Motoren nicht, die bremsen sich selbst genug Wenn sie keinen Saft bekommen, sollten die stur genug sein, um nicht mit zu laufen.

  3. #3
    Hallo und vielen Dank für die Antwort!

    Planst du die Elektronik selbst zu bauen?
    ersmal soll das Pollin AtMEGA Board als Hauptplatine drauf, zumindest bis ich endlich wieder Geld auf dem Giro habe.
    Die Motoren sollen mit einem L293 getrieben werden, das schaffe ich noch zu löten und alles andere kommt nach und nach.

    Erreichst du überhaupt x=10, y=10 mit dem Playstationcontroller, also von der Hardwareseite? Das Gehäuse sollte das doch unterbinden.
    also ich bekomme vom PS2⇒USB Adapter (HID) bei vollem Einschlag einen Wert von (-)32767 den ich durch 3276.7 teile (ich denke 10 Stufen reichen erstmal). bei einem 45° Diagonal Einschlag bekomme ich bei den Analog-Sticks je nach Seite und Druck x10y10 oder x9y10 oder x10y9... also das geht. Wenn man das Digital Steuerkreutz nutzt geht nur 0 oder (-)10 je Achse, demnach geht auch hier x10y10.

    Bremsen brauchst du die Motoren nicht, die bremsen sich selbst genug Wenn sie keinen Saft bekommen, sollten die stur genug sein, um nicht mit zu laufen.
    Hmm ok, dann könnte ich mir ja die 2 Ports für die Motoren sparen. Im Wiki steht, das man bei Kettenfahrzeugen immer gerne den Motor bremsen will.

    Zur Frage zurück:
    x10 y10 = A=100% B=100%
    x0 y10 = A= -100% B=100%
    x10 y10 = A=0% B=100%

    Ich versuche gerade das in Pseudo-C-code zu packen
    Code:
    //Für Motor A:
    if(y>0)
    {
      A=x;
    }
    else
    {
      if(x>0)
      {
        A=x-abs(y)
      }
      else
      {
        A=x+abs(y)
      }
    }
    
    //Für Motor B
    if(y<0)
    {
      B=x;
    }
    else
    {
      if(x>0)
      {
        B=x-abs(y)
      }
      else
      {
        B=x+abs(y)
      }
    }
    
    //Um die Angabe in % der Maximalleistung zu haben:
    A=A*10
    B=B*10
    Das klingt zumindest in meinem Kopf gerade logisch... werde das mal in meinem Steuerprogramm implementieren und mir irgendwie visualisieren... mal sehenob ich einen Denkfehler drin habe.
    Auf jeden Fall wäre das sehr einfach zu implementieren.

    wenn noch jemand nen Tipp hat, immer raus damit.

    An sonsten schonmal vielen Dank!

    lg goerdy

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    31.05.2009
    Ort
    Stralsund
    Alter
    33
    Beiträge
    436
    Dein Code sollte nicht klappen.
    Was passiert bei
    x=0 y=10 ? A=0 B=100
    x=10 y=10 ? A=100 B=0

    Nicht ganz das Ziel

    Zur Frage zurück:
    x10 y10 = A=100% B=100%
    x0 y10 = A= -100% B=100%
    x10 y10 = A=0% B=100%
    sollte auch ehr
    x10 y0 = A=100% B=100%
    x0 y10 = A= -100% B=100%
    x10 y10 = A=0% B=100%
    lauten

    Es sollte auch mal festgelegt werden, wer A und B ist.
    In meiner Ansicht ist A in Fahrtrichtung rechts.
    pos y = links
    pos x = vorwärts

    Aber warte bis du alles zusammen hast und probiere es aus, ist viel cooler, wenn man selbst die Fehler findet. Was soll denn passieren?

  5. #5
    Erfahrener Benutzer Begeisterter Techniker Avatar von Slowly
    Registriert seit
    08.05.2004
    Ort
    24558
    Alter
    56
    Beiträge
    271
    Dafür habe ich mal ein Programm in Tiger Basic geschrieben und Suche das morgen heraus. Deine Gedankengänge kann ich nachvollziehen da ich vor dem gleichen Problem stand. Es hat nur eine Weile gedauert zu verstehen was bei Dir X und Y ist. Koordinatenkreuz ist eigentlich X links/rechts und Y oben/unten.
    Viele Grüße
    Slow

  6. #6
    Hallo,

    also Asche über mein Haupt!
    Habe selbst mitlerweile rausgefunden das es SO nicht klappt^^ Wahrheitstabellen sind was wert.

    Was x und y angeht... das ast Mathe und Mathe ist ein A-Loch.

    Bin gerade am Finnanzen Checken und fahre morgen evtl. zum blauen C.

    Habe eben im Schwimmbad nochmal alles ausgearbeitet bin jetzt aber zu faul es abzutippen.

    Vielen Vielen Dank für eure Hilfe.

    @Slowly dein Code ürde mich natürlich trotzdem interesieren.

    lg

    goerdy

Ähnliche Themen

  1. 5 Achs Joystick Servos Steuern
    Von Projekt 2252 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 16.05.2012, 00:29
  2. Doppelfahrtregler für RC Raupe
    Von manu_r im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 1
    Letzter Beitrag: 23.01.2012, 23:04
  3. Kettengeschwindigkeiten (von Raupe) aus Joystickdaten berech
    Von HaTa im Forum Software, Algorithmen und KI
    Antworten: 5
    Letzter Beitrag: 30.12.2009, 19:11
  4. 9-Achs Roboter-/Greifarm (mit Joystick-Funksteuerung)
    Von Pr0gm4n im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 12
    Letzter Beitrag: 30.11.2008, 13:05
  5. YABO.07 - Raupe nähert sich der Fertigstellung
    Von Raolin im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 25
    Letzter Beitrag: 15.10.2007, 17:59

Berechtigungen

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

Solar Speicher und Akkus Tests