- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 10 von 30

Thema: Tamiya Linienfolger entsteht...

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Genie Avatar von oderlachs
    Registriert seit
    17.05.2010
    Ort
    Oderberg
    Alter
    74
    Beiträge
    1.175
    Blog-Einträge
    1

    Tamiya Linienfolger entsteht...

    Nachdem ich einiges im Web gesehen hatte, wie man mit Tamiya Baugruppen auch Roberter bauen kann, habe ich mich auch dazu entschlossen.
    Durch die Tatsache nur Online kaufen zu können, weil nächster Händler fast 100km weiter ist, ist es natürlich auch um einiges schwieriger ,gleich das Passende zu finden, bzw. noch Fehlendes nachzukaufen.

    Verwenden tue ich eine Grundplatte, Kettenantrieb und Doppelgetriebebox von Tamiya. Der SteuerComputer ist ein Arduino Pro Mini (5v/16Mhz), die Motoren werden von einem Pololu MiniMotortreiber gesteuert. Ein Selbstbau Liniensensor und 4 Taster an der Roboterfront, sorgen für die Steuerung der Fahrtrichtungs- bzw. Kollosionserkennung.

    Hier einige Fotos von meinem Baugeschehen (wird lfd erneuert)

    Für verbessernde Hinweise bin ich Euch allen dankbar.

    Der Arduino-Code wird demnächst vorgestellt

    Gerhard

    Arduino-Code ( Entwurf, unfertig)
    Code:
    /* ========================================================================== */
    /*                                                                            */
    /*       Linienfolger mit Arduino Pro Mini und Tamiya Chassis & Antrieb       */
    /*                                                                            */
    /* ========================================================================== */
    /*                                                                            */
    /*   tamiya_lf.c                                                              */
    /*   (c) 2013 Gerhard Hinze                                                   */
    /*                                                                            */
    /*   Beschreibung:                                                            */
    /*   Tamiya Chassis und Ketten Antrieb als Lininienfolger                     */
    /*   (auch als Radmodell verwendbar )                                         */  
    /*                                                                            */
    /* ========================================================================== */
    /*   verwendetete Tamiya Baugruppen :                                         */ 
    /* ========================================================================== */ 
    /*                                                                            */
    /*   1x Double Gear-Box             ITEM 70168                                */
    /*   1x Universal-Plate Set         ITEM 70098                                */
    /*   1x Universal-Plate Set         ITEM 70157 *)                             */
    /*   1x TRUCK and Wheel Set         ITEM 70100                                */
    /*   1x Truck Tire Set              ITEM 70101 *)                             */
    /*                                                                            */
    /* ========================================================================== */
    /*                                                                            */
    /*   Pololu Ball Caster 3/8" m. Kunststoffkugel *)                            */
    /*                                                                            */
    /*   *) je nach Bedarf (als Radmodell, andere Erweiterungen usw..)            */
    /* ========================================================================== */
    /*                                                                            */
    /*   Elektrische Komponenten:                                                 */
    /* ========================================================================== */
    /*   Arduino Pro Mini 5V/16-MHz                                               */
    /*   FETB6612 Miniatur - Motortreiber von  robotikhardware.de                 */
    /*   2 x TCRT5000 Optosensor (Linienfolger) Eigenbaumodul                     */
    /*   1 Batteriehalter für 3xAA 1,5V  als Motorspannung                        */
    /*   Batterieblock 9V mit Anschluss Clip, (f.Elektronikspannung)              */
    /*   Baustein mit LS7805, als 5V Regelung U-Betr. für Elektronik, Eigenbau    */ 
    /*                                                                            */
    /* ========================================================================== */
    /*                                                                            */
    /*  Beschreibungen unter http://robot.oderlachs.de                            */
    /*                                                                            */
    /* ========================================================================== */
    /*                                                                            */
    /* #include usw...                                                            */
    /*                                                                            */
    /* ========================================================================== */
    /*                                                                            */
    /* Bezeichnung     Pin Arduino   Erklaerung zur Bezeichnung                   */
    /*                                                                            */
    /* ========================================================================== */
    #define M1_SPEED      5     // Motor left  Speed
    #define M2_SPEED      6     // Motor right Speed
    #define AIN_1         4     // Motordirektion 1_1
    #define AIN_2         7     // Motordirektion 1_2
    #define BIN_1         8     // Motordirektion 2_1
    #define BIN_2         9     // Motordirektion 2_2
    #define STANDBY       10    // Motordriver Standby(ON))  = LOW
    #define IRS_LEFT      14    // IR Linien Sensor left, analog Eingang A0
    #define IRS_RIGHT     15    // IR Linien Sensor right, analog Eingang A1
    #define LED_1         12    // IRS left = LOW 
    #define LED_2         13    // IRS right = LOW
    #define BUMP_L        16    // Frontkollosion left
    #define BUMP_R        17    // Frontkollosion right
    #define INT_0         2     // External Interrupt 0
    #define INT_1         3     // External Interrupt 1
    /* ========================================================================== */
    /*     Änderungen bei Verwendung der L298 Dual Bridge  ( Bodo )               */
    /* ========================================================================== */
    /*  #define STANDBY      10   Motordriver Standby entfällt, also "//" davor   */
    /*                                                                            */
    /*  alle Codezeilen mit STANDBY im Programm-CODE sind zu löschen!             */
    /*                                                                            */
    /* ========================================================================== */
    /*  die 4 oberen #define  ( AIN_1..., AIN_2, BIN_1, BIN_2 )                   */
    /*  sind hiermit zu ersetzen :                                                */
    /*                                                                            */
    /*  #define IN_1         4     // Motordirektion 1_1                          */
    /*  #define IN_2         7     // Motordirektion 1_2                          */
    /*  #define IN_3         8     // Motordirektion 2_1                          */
    /*  #define IN_4         9     // Motordirektion 2_2                          */
    /*                                                                            */
    /*  #define EN_A         5     // vorher M1_SPEED  Motor left  Speed          */
    /*  #define EN_B         6     // vorher M2_SPEED  Motor right Speed          */
    /*                                                                            */
    /*  Die nun anderen #define-Variablennamen sind im Code                       */
    /*  dementsprechend zu aendern, Suchen/Ersetzen funktion verwenden            */
    /*                                                                            */
    /* ========================================================================== */
    /*          Werte der Variablen voreinstellen  im Hex-Format                  */
    /* ========================================================================== */
    #define SPEED_NULL    0x00  // Speed Wert NULL
    #define SPEED_MAX     0xFF  // Speed Wert Maximum
    #define SPEED_HALF    0x80  // Speed Wert halbeKraft
    #define SPEED_KURV    0xC8  // Speed Wert für Kurvenfahrt (opt. Wert ermitteln)
    #define IRS_OFFSET    0x00  // optm. Wert ermitteln, Speed = Speed - IRS_OFFSET
    /* ========================================================================== */
    /* IRS_OFFSETT :                                                              */
    /* Befinden sich beide Sensoren über den schwarzen Streifen, sind             */
    /* beide IRS Ausgänge auf HIGH, schaltet einer der Sensoren auf LOW, d.h. Ab- */
    /* weichung von der Mitte, wird jeweils der Motorspeed der anderen Seite um   */
    /* den IRS_OFFSETT Wert vermindert. Experimentell zu ermitteln 0x00...0x80    */
    /*                                                                            */
    /* ========================================================================== */
    
    void setup()
    //
    {
    pinMode(M1_SPEED,OUTPUT);
    pinMode(M2_SPEED,OUTPUT);
    pinMode(AIN_1,OUTPUT);
    pinMode(AIN_2,OUTPUT);
    pinMode(BIN_1,OUTPUT);
    pinMode(BIN_2,OUTPUT);
    pinMode(LED_1,OUTPUT);
    pinMode(LED_2,OUTPUT);
    pinMode(STANDBY,OUTPUT);
    pinMode(IRS_LEFT,INPUT);
    pinMode(IRS_RIGHT,INPUT);
    pinMode(BUMP_L,INPUT);
    pinMode(BUMP_R,INPUT);
    digitalWrite(STANDBY,HIGH);
    }
    
    void m1_forw()                // Motor 1 (left) forward
    {
    digitalWrite(AIN_1, LOW);
    digitalWrite(AIN_2, HIGH);
    }
    
    void m1_rew()                 // Motor 1 (left) reverse
    {
    digitalWrite(AIN_1, HIGH);
    digitalWrite(AIN_2, LOW);
    digitalWrite(STANDBY, HIGH);
    }
    
    void m2_forw()                // Motor 2 (right) forward
    {
    digitalWrite(BIN_1, LOW);
    digitalWrite(BIN_2, HIGH);
    digitalWrite(STANDBY, HIGH);
    }
    
    void m2_rew()                 // Motor 2 (right) reverse
    {
    digitalWrite(BIN_1, HIGH);
    digitalWrite(BIN_2, LOW);
    digitalWrite(STANDBY, HIGH);
    }
    
    void stopp()                  // Motor 1 + 2  stopp
    {
    digitalWrite(STANDBY, LOW);
    analogWrite(M1_SPEED, 0x00);
    analogWrite(M2_SPEED, 0x00);
    }
    
    void speed(int m1, int m2)    // Speed Motor 1 und 2
    {
    analogWrite(M1_SPEED, m1);
    analogWrite(M2_SPEED, m2);
    }
    
    void coll_l()                 // Collosion left
    {
    stopp();
    delay(500);
    m2_rew();
    speed(0,SPEED_KURV);
    delay(500);
    stopp();
    }
    
    void coll_r()                 // Collosion right
    {
    stopp();
    delay(500);
    m1_rew();
    speed(SPEED_KURV,0);
    delay(500);
    stopp();
    }
    
    void coll_c()                 // Collosion center
    {
    stopp();
    delay(500);
    m1_rew();
    m2_rew();
    speed(SPEED_HALF,SPEED_HALF);
    delay(500);
    stopp();
    }
    void brake_l()                // Bremse left 
    {
      ;
    }
    
    void brake_r()                // Bremse right
    {
      ;
    }
    
    void loop()
    // Ab hier wird "gearbeitet ;)"
    {
      m1_forw();                   // Motor1(links) vorwärtz
      m2_forw();                   // Motor2(rechts) vorwärtz
     digitalWrite(STANDBY, HIGH);  // Motortreiber aus denm Standby aufwecken
      speed(SPEED_MAX,SPEED_MAX);  // Beide Motoren mit 255 ansteuern: 0xFF
    }
    Geändert von oderlachs (31.03.2013 um 11:55 Uhr)
    Arduinos, STK-500(AVR), EasyPIC-40, PICKIT 3 & MPLABX-IDE , Linux Mint

Ähnliche Themen

  1. Eigenschaften des Tamiya 70097 bzw Tamiya 70168
    Von chop.suey94 im Forum Motoren
    Antworten: 3
    Letzter Beitrag: 12.04.2012, 17:10
  2. Tamiya Kettensatz gesucht!
    Von bnitram im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 4
    Letzter Beitrag: 05.01.2011, 15:28
  3. Tamiya TSU-02 Servo hacken
    Von sfreak im Forum Motoren
    Antworten: 1
    Letzter Beitrag: 27.08.2008, 09:42
  4. Tamiya Doppelmotorset Achsendurchmesser
    Von waldwichtel im Forum Motoren
    Antworten: 6
    Letzter Beitrag: 11.09.2006, 21:45
  5. Was ist das und wie entsteht es?
    Von sonic im Forum Kopfnüsse / Wissensquiz
    Antworten: 8
    Letzter Beitrag: 24.10.2004, 20:57

Berechtigungen

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

Solar Speicher und Akkus Tests