- 12V Akku mit 280 Ah bauen         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 37

Thema: Start mit Arduino?

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    21.05.2014
    Alter
    57
    Beiträge
    25
    also im gewissen Sinne "verteilte Inteligenz" - klingt nicht schlecht Wie kommunizieren die arduinos?
    Gruss ahave

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.01.2014
    Beiträge
    454
    Blog-Einträge
    3
    Wie kommunizieren die arduinos?
    z.B. über UART, Software-Serial, Funk, Bluetooth, I2C...

    Tipp: Wenn du dir die 'Löt-Allergie' abgewöhnen kannst, reicht 1 UNO zum Testen. Der 2.(3. ...) Arduino kann z.B. ein Pro Mini sein. Die gibts aus China für unter 3 Euro/Stück, haben zwar kein USB, können aber mit einem UNO programmiert werden.

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    21.05.2014
    Alter
    57
    Beiträge
    25
    Zitat Zitat von Sisor Beitrag anzeigen
    Wenn du dir die 'Löt-Allergie' abgewöhnen kannst
    naja, So eine richtige Allergie ist ja auch nicht, ich mache es halt nur ungern...

    Also ich rekapituliere mal, bevor ich mich ans Bestellen mache:

    mit einem UNO (Chinesisch geht auch?) und einem Motor-shield (da steht sowas in der Beschreibung: Can drive 4 DC motors or 2 Stepper motors or 2 Servo - ist es immer "entweder / oder"?) kann ich:

    - die 4 Motoren des Chassis steuern
    - mit einem SR04 oder Sharp Sensor Hindernisse erkennen und ausweichen
    - dazu brauche ich noch einen Servo
    - accu des Chassis überwachen
    - Bumper (Endschalter mit langem Hebel) überwachen

    und es bleibt noch Reserve z.B. für BT?
    Gruß ahave

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    56
    Beiträge
    2.213
    Uno vom Chinesen geht-zumindest wenn er von Sainsmart ist.
    Deren aktuelle Version ist meiner Meinung nach besser als das Original, weil sie nicht nur die Steckerleisten rausgeführt haben, sondern die meisten Pins auch noch schön als dreipolige Anschlüsse. Zudem kann man das Ding auf 3.3V umschalten.
    Es gibt auch ausgesprochen schlechte Nachbauten, die schon mal ihre Problemchen haben. Kannst auch den Mega 2560 von dem Laden nehmen- das Motorshield passt auch auf den!
    Das Motorshield ist ne ältere Version, und richtig: die kann nicht alles gleichzeitig.
    Meins bedient derzeit zwei Motoren UND nen Servo-kein Problem. Das Ding ist nicht übel, aber es belegt, grade beim UNO, fast alle Pins (von oben zugänglich sind dann nur noch die analogen, die auch nicht benutzt werden, und ein digitaler, deswegen ist der Mega besser, da hast du noch zwei Dutzend freie Pins dann. Kostet auch nich viel mehr..
    mit nem Uno kannst du: das Motorshield betreiben, dazu einen hc-sr04 (der braucht zwei Pins), Akku überwachen geht auch noch, da du noch vier analoge frei hast.
    Blauzahn must du gucken, was die brauchen (mach ich nix mit), wenn du was I2C-fähiges auftreiben kannst, geht auch das (der I2C-Bus wäre noch frei). Stosstange langt digital- einen solchen Pin hast du ebenfalls oben zugänglich auf dem Motorshield.
    Allerdings musst du schon da doch bisschen löten: die Analogpins sind zwar auf dem Motorshield da, aber keine Steckerleisten. Die musst du selber einlöten-ebenso den digitalen.

    Das mit dem Servo (ich nehme an, dass du den Sensor schwenken willst) würd ich an deiner Stelle aber _erstmal_ lassen, es sei denn, du magst Herausforderungen-das wird eine!
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    21.05.2014
    Alter
    57
    Beiträge
    25
    Hallo Rabenauge,

    danke erstmal für die ausführlichen Erläuterungen. Sehr aufschlussreich...

    das mit dem Servo muss ja nicht sofort sein, es reicht wenn der US-Sensor erstmal nach vorne ausgerichtet ist...

    Ich möchte ja im Prinzip erstmal mit Bewegungen und Kollisionsvermeidung anfangen. Sainsmart bietet ein Kit, welches diese Anforderungen abdecken würde. Könntest Du Dir das bitte noch einmal anschauen?

    Was mich dort irritiert ist: Die bieten 4 Getriebemotoren an und nur ein Motorshield (es gehen nur zwei Motoren / Shield, oder habe ich es missverstanden?), an dem Foto sieht man aber 4 Ausgänge (zu den Motoren?). Auch scheint dieses Ding nicht steckbar zu sein?

    noch eine Frage: Wäre ein Buch zu Arduino sinnvoll, oder soll/ kann ich mir das alles im Internet anlesen?
    Gruß ahave

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    56
    Beiträge
    2.213
    Naja- der Sensor kann, wenn er gradeaus guckt, nur vermeiden, dass das Fahrzeug gegen ne Wand (oder die Katze, Oma, Staubsauger....) fährt.
    Oder eben rausfinden, ob der Weg die nächsten Meter frei ist (hbs grad nicht im Kopf aber ich glaub, der Sensor schafft 4m). Er kann so nicht erkennen, ob er ebsser nach links oder rechts abbiegen sollte. Das müsste man dann per Software lösen (einfach auf der Stelle drehn und nachgucken)- für den Anfang reichts aber so. Später kannst du zweie montieren, die schräg vor gucken,d as geht dann besser. Und nach hinten auch noch welche- im Dutzend sind die Dinger billiger, und der Mega kann die auch alle ansteuern..

    Ja, das Set ist nen recht brauchbarer Einstieg, denke ich. Und du hast recht: dort ist _nicht_ das-vergleichsweise bessere-Motorshield dabei, sondern nur ein Treiberbaustein für zwei Motoren.
    Dafür aber ist der stärker- das Motorshield kann nur kurzzeitig ungefähr die Hälfte, Dauer ist mit 600mA angegeben.
    Ausserdem kannst du auch höhere Spannungen einspeisen, beim Motorshield gehts, glaub ich, nur bis 9V.
    Falls du nun Bedenken hast wegen den vier Motoren in dem Fahrzeug: es läuft sowieso auf ne Panzerlenkung hinaus, du kannst also die zwei Motoren einer Seite zusammen an einen Motorausgang schliessen.
    Damit passt das alles soweit.
    Das Sensorshield- naja. Ich persönlich halt das Ding für überflüssig, aber da du ja möglichst wenig löten willst- auch nützlich.

    Was du wohl aber zusätzlich noch brauchen wirst sind nen paar Kabel, um alles zu verbinden, da seh ich nun nix bei..sowas z.B: http://www.ebay.de/itm/Female-To-Fem...item3f356acfe4
    Gibts mit Männchen, Weibchen, und gemischt.

    Achja: mir kommt das zusammen da jetzt bisschen teuer vor-such mal obs das Roboter-Bündel nicht auch günstiger gibt, oder im Einzelkauf- die Chinesen haben mitunter merkwürdige Preisgestaltungen.
    Teilweise ists echt so, dass drei Stück "irgendwas" zusammen weniger kosten als ein einzelnes..

    Was _ich persönlich_ unbedingt zukaufen würde ist ein Display.
    Dem kleinen Autochen würd nen mini-Oled gut stehen- ist billiger und besser als alles andere- wenn man so kleines noch lesen kann jedenfalls-notfalls können die auch grössere Schrift...
    Aber: musst du selber wissen ob du eins willst, brauchst oder nich..
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    56
    Beiträge
    2.213
    Such mal -Sainsmart hat _auch_ ein DE-Warenhaus. Allerdings gibts da nicht alles. Musst mal auf deren Webseite schauen. Lass dir aber nix von Holland schicken von denen-das dauert doppelt so lange wie aus China. Wahrscheinlich warten die Holländer immer, bis zufällig ne Postkutsc he in die passende Richtung fährt und gebens da mit oder was...
    Und: die zwei Wochen hälste das aus...die Software kannst du dir ja schonmal besorgen (ich hab den Link grad nicht zur Hand, wo die den ganzen Kram liegen haben), und bisschen programmieren auch, da vergeht die Zeit schnell.

    Buch kaufen-hm. Kann man natürlich machen aber: ich hab keins, und habs auch nie vermisst. Es gibt nen recht gutes deutsches Unterforum bei Arduino, wo man auch nicht unbedingt was gegen Nachbauten (erlaubt isses schliesslich, so wie Sainsmart es handhabt) hat, und einem immer geholfen wird.
    Naja-und hier kannste ja auch fragen.
    Wenn du nen Buch willst, kauf dir was- da gibts jede Menge aber: meist sind die entweder jetzt schon veraltet oder demnächst dann. Im Grunde findet man im Internet alles nötige, und vieles auch auf deutsch.
    Kannst ja auch mal in ne Leihbücherei schauen, vielleicht haben die was, da kannst du erstmal reingucken und dann entscheiden.

    Zu den Rädern: denk mal nach. Welchen Sinn sollte es machen, die alle vier einzeln anzusteuern?
    Rein theoretisch könnte man da die Kurven _vielleicht_ noch etwas effektiver nehmen, aber wenn du die beiden linken rückwärts laufen lässt und die beiden rechten vorwärts, dreht das Ding auf der Stelle. Und wenn du die rechten Vollgas vorwärts, und die linken halbgas vorwärts ansteuerst, wirds nen Bogen fahren- da das annähernd stufenlos möglich ist, reicht das doch?
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    21.05.2014
    Alter
    57
    Beiträge
    25
    an dem Anderen bin ichn noch dran, habe aber ein Schaltplan für das Modul gefunden

    Klicke auf die Grafik für eine größere Ansicht

Name:	sainsmart_motor_driver_schematics.jpg
Hits:	17
Größe:	33,7 KB
ID:	28367

    - - - Aktualisiert - - -

    so, jetzt habe ich folgendes gemacht:

    von dieser webseite:

    mit dieser einstellung:

    Jumpers:
    ENA Removed
    ENB Removed
    PWM1 Installed - wahrscheinlich durch die Verbindung ENA - Arduino3
    PWM2 Installed - ENB verbunden mit Arduino6

    On the header:
    GND ==> GND on Arduino
    5V ==> N/C (5V Logic power is available from on-board regulator)
    ENB ==> Arduino 6
    ENA ==> Arduino 3
    IN1 ==> Arduino 2
    IN2 ==> Arduino 4
    IN3 ==> Arduino 7
    IN4 ==> Arduino 8

    Power Terminal Block:
    5V ==> N/C
    GND ==> Ground on Motor Power Supply
    VCC ==> +12V (for 12 volt motor)

    OUT1 Terminal Block:
    Pin1 ==> Motor 1 +
    Pin2 ==> Motor 1 -

    OUT2 Terminal Block:
    Pin1 ==> Motor 2 +
    Pin2 ==> Motor 2 -
    diesen
    Code:
        /*
          L298N Test Code
          hacker.instanet.net
          Tim Laren timl@instanet.com
          This example code is in the public domain.
         */
    
        #define OUT1PIN1 2    // H-bridge OUT1.1
        #define OUT1PIN2 4    // H-bridge OUT1.2
        #define ENABLE1  3    // H-bridge Ena 1
        #define OUT2PIN1 7    // H-bridge OUT2.1
        #define OUT2PIN2 8    // H-bridge OUT2.2
        #define ENABLE2  6    // H-bridge Ena 2
    
    
        void setup() {
          // setup motor pins
          pinMode(OUT1PIN1, OUTPUT);
          pinMode(OUT1PIN2, OUTPUT);
          pinMode(ENABLE1, OUTPUT);
    
          digitalWrite(ENABLE1, HIGH);   // set the enables to high
        }
    
    
        void loop() {
          digitalWrite(OUT1PIN1, LOW);   // set leg 1 of the H-bridge low
          digitalWrite(OUT1PIN2, HIGH);  // set leg 2 of the H-bridge high
    
          delay(5000);
    
          digitalWrite(OUT1PIN1, HIGH);  // set leg 1 of the H-bridge high
          digitalWrite(OUT1PIN2, LOW);   // set leg 2 of the H-bridge low
    
          delay(5000);
        }
    Motor RH dreht ca. 5sec, stoppt und dreht 5sec in andere Richtung

    jetzt werde ich versuchen das für zwei Motoren zu erweitern...


    edit:

    zunächstmal geht auch Beschleunigung - mit diesem
    Code:
       /*
          L298N Test Code w/ Speed Control
          hacker.instanet.net
          Tim Laren timl@instanet.com
          This example code is in the public domain.
         */
    
        #define OUT1PIN1 2    // H-bridge OUT1.1
        #define OUT1PIN2 4    // H-bridge OUT1.2
        #define ENABLE1  3    // H-bridge Ena 1
        #define OUT2PIN1 7    // H-bridge OUT2.1
        #define OUT2PIN2 8    // H-bridge OUT2.2
        #define ENABLE2  6    // H-bridge Ena 2
    
        void setup() {
          // setup Motor 1 pins
          pinMode(OUT1PIN1, OUTPUT);
          pinMode(OUT1PIN2, OUTPUT);
         
          // setup Motor 2 pins
          pinMode(OUT2PIN1, OUTPUT);
          pinMode(OUT2PIN2, OUTPUT);
        }
    
        void loop() {
          digitalWrite(OUT1PIN1, LOW);   // set leg 1 of the H-bridge low
          digitalWrite(OUT1PIN2, HIGH);  // set leg 2 of the H-bridge high
          Ramp(ENABLE1,0,255,1,10);
          Ramp(ENABLE1,255,0,-1,10);
          digitalWrite(OUT1PIN1, HIGH);  // set leg 1 of the H-bridge high
          digitalWrite(OUT1PIN2, LOW);   // set leg 2 of the H-bridge low
          Ramp(ENABLE1,0,255,1,10);
          Ramp(ENABLE1,255,0,-1,10);
        }
    
        void Ramp(int Motor, int Start, int End, int Inc, int Del) {
          /* Ramps from PWM of Start to End
             adding Inc each time
             delay of Del MS each time thru the loop
          */
          for(int i=Start;i<End;i = i + Inc) {
            analogWrite(Motor, i);       // Motor 1 Speed
            delay(Del);
          }
        }
    Geändert von ahave (11.06.2014 um 14:31 Uhr)
    Gruß ahave

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    21.05.2014
    Alter
    57
    Beiträge
    25
    hallo,

    ich habe die Teile nun bekommen, zusammengebaut und mache jetzt die ersten Tests mit den Motoren allein. Bei diesem code, den ich im Netz gefunden habe
    Code:
    #include <AFMotor.h>
    
    
    //declaring the pins for the IN pins on the L298N
    const int rightForwardPin = 6;//4;
    const int rightBackwardPin = 7; //2;
    const int leftBackwardPin = 8; //7;
    const int leftForwardPin = 9; //5
    
    int runTime = 5000;
    
    void setup() {
      //Stating that the pins are OUTPUT
      pinMode(rightForwardPin, OUTPUT);
      pinMode(rightBackwardPin, OUTPUT);
      pinMode(leftForwardPin, OUTPUT);
      pinMode(leftBackwardPin, OUTPUT);
    }
    
    //Looping to test the wheels of the car
    void loop() {
    
      forward();
     
      stopCar();
     
      backward();
     
      stopCar();
     
      left();
     
      stopCar();
     
      right();
     
      stopCar();
    }
    
    //Setting the wheels to go forward by setting the forward pins to HIGH
    void forward(){
      digitalWrite(rightForwardPin, HIGH);
      digitalWrite(rightBackwardPin, LOW);
      digitalWrite(leftForwardPin, HIGH);
      digitalWrite(leftBackwardPin, LOW);
      delay(runTime);
    }
    
    //Setting the wheels to go backward by setting the backward pins to HIGH
    void backward(){
      digitalWrite(rightForwardPin, LOW);
      digitalWrite(rightBackwardPin, HIGH);
      digitalWrite(leftForwardPin, LOW);
      digitalWrite(leftBackwardPin, HIGH);
      delay(runTime);
    }
    
    //Setting the wheels to go right by setting the rightBackwardPin and leftForwardPin to HIGH
    void right(){
      digitalWrite(rightForwardPin, LOW);
      digitalWrite(rightBackwardPin, HIGH);
      digitalWrite(leftForwardPin, HIGH);
      digitalWrite(leftBackwardPin, LOW);
      delay(runTime);
    }
    
    //Setting the wheels to go left by setting the rightForwardPin and leftBackwardPin to HIGH
    void left(){
      digitalWrite(rightForwardPin, HIGH);
      digitalWrite(rightBackwardPin, LOW);
      digitalWrite(leftForwardPin, LOW);
      digitalWrite(leftBackwardPin, HIGH);
      delay(runTime);
    }
    
    //Setting the wheels to go stop by setting all the pins to LOW
    void stopCar(){
      digitalWrite(rightForwardPin, LOW);
      digitalWrite(rightBackwardPin, LOW);
      digitalWrite(leftForwardPin, LOW);
      digitalWrite(leftBackwardPin, LOW);
      delay(1000);
    }
    passiert ja nun noch nicht sehr viel. Der Roboter soll vorwärts fahren, halten, rückwärts fahren, auf der Stelle drehen usw. So weit so gut...

    stelle ich ihn hoch, so dass die Räder frei durchdrehen können, ist alles ok, wenn er auf dem Boden steht, fährt er nur vor und zurück und wenn er drehen soll, zuckt er nur kurz in die Richtung in die er drehen soll. Im hochgebockten Zustand lassen sich auch die Räder relativ leicht mit der Hand anhalten - also ich hätte mehr "Power" erwartet...
    Der Akku ist vollgeladen, hat 6xAA Zellen, 2000mAh...

    woran kann das Liegen? Ich meine ich habe alles richtig verdrahtet...

    könnte mir bitte jemand einen Tipp geben woran es liegen könnte?
    Gruß ahave

  10. #10
    Erfahrener Benutzer Robotik Einstein Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    56
    Beiträge
    2.213
    Am Programm.
    Glaub ehrlich gesagt nicht, dass das zu deinem Motorshield überhaupt passt.
    Das "alte" Motorshield erwartet nämlich auch PWM-Werte-in deinem "Programm" da seh ich nirgends sowas wie eine Drehzahlvorgabe.
    WENN du das weiter oben genannte Motorshield hast (das Ding von Sainsmart, V 1.2 oder so) dann probiere mal das Programm unter Beispiele, AfMotor-> MotorTest.
    Das Beispielprogramm zeigt sehr einfach, wie so nen Motor mit _diesem_ Shield angesteuert bzw. programmiert wird.
    Ist kinderleicht auf alle vier Motoren zu erweitern.
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. [ERLEDIGT] [ARDUINO] 2 Motoren + Servo mit dem Arduino Uno steuern
    Von Torrentula im Forum C - Programmierung (GCC u.a.)
    Antworten: 0
    Letzter Beitrag: 31.08.2011, 16:31
  2. Problem mit Start/Stop Taster
    Von Zizibee im Forum Robby RP6
    Antworten: 13
    Letzter Beitrag: 22.04.2010, 10:09
  3. Antworten: 7
    Letzter Beitrag: 15.06.2009, 16:30
  4. Start mit Programmsprache C??
    Von Pilotzi im Forum PIC Controller
    Antworten: 14
    Letzter Beitrag: 29.02.2008, 13:40
  5. Simulator start mit ad port
    Von der noob im Forum Controller- und Roboterboards von Conrad.de
    Antworten: 4
    Letzter Beitrag: 17.08.2004, 12:14

Berechtigungen

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

12V Akku bauen