Young Engineers Junior
- Elegoo Smart Robot Car

Start

Die ersten zwei Modelle der Version 1.0 wurde von Christian Heinze bzw. Eric Meyer zusammengebaut. Bei der Inbetriebnahme zeigten sich mehrere Probleme.

Das Robot Car kann über Infrarot oder Funk ferngesteuert werden oder selbständig programmgesteuert fahren.
Solche Robot Cars sollen die Grundlage für eigene Wettbewerbe werden.

Folgende Aufgaben stehen nach Fertigstellung des Cars und dem Verstehen des Grundprogramm, welches am Ende beim Systemtest entwickelt wird, vor euch:
  1. Fahre zum nächsten Nachbarn.
  2. Versuche möglichst keinem Nachbarn zu nahe zu kommen.
  3. Parkplatzsuche
  4. Fahren auf einer Linie
  5. Fahren zwischen Linien
  6. Fahren im Labyrinth
  7. Feuerwehr - ...

Bausatz

Finde die folgenden Bauteile im Bausatz:
Getriebemotoren, UNO, H-Brücke mit L298D, Bluetooth-Modul, Akku's, Reflexionslichtschranken, Infrarot-Sender, Infrarot-Empfänger, Ladeeinheit mit Kabel, Servomotor mit Zubehör, Halterungen für Getriebemotoren, ....

Assembling Instruction - Montageanleitung

Montageanleitung Version 3.0

Assembling Instructions Version 1

Neben diesem Video findest du viele weitere Videos im Netz. Beispielsweise Greg Griffes: Elegoo SRC Kit

Arduino Sensor Shield V5.0 & IO expansions shield & car shield

Zum Anschluß der Aktoren und Sensoren an den Arduino wird ein Sheild verwendet.

Version 3.0: Das Car Shield - IO Expansion board

Version 2.0: Das Arduino Sensor Shield

Wire connect

Testen der elektrischen und elektronischen Komponenten

Verbinde schrittweise alle Aktoren und Sensoren mit dem Car Shield auf dem Arduino und teste deren Funktion.
Hilfestellungen findest du in den nächsten Abschnitten.

  1. Ultraschall Sensor Modul / Ultrasonic sensor module
  2. Servomotor
  3. Infrarot-Sender und -Empfänger
  4. Reflexionslichtschranken / Line tracking
  5. Motorsteuerung / Motor control - überprüfen
  6. Bluetooth - noch leer
Ultraschall Sensor Modul / Ultrasonic sensor module - Lektion: Hinternis-Vermeidung
test-ultraschall.ino | siehe auch Funduino – Kits und Anleitungen für Arduino: Nr.11 Entfernung messen
Servomotor - Lektion: Hinternis-Vermeidung
test-servo.ino | siehe auch Funduino – Kits und Anleitungen für Arduino: Nr.13 Servo ansteuern | Datenblatt SG90Servo
Infrarot-Sender und -Empfänger - Lektion: Infrarot gesteuertes Auto

Das Programm test-infrarot.ino empfängt Signale, die von der IR-Fernbedienung nach Tastendruck abgestrahlt werden.

Im Programm test-infrarot-tastencodes.ino werden die Tastencodes der IR-Fernbedienung in Konstanten zur Verfügung gestellt.

Siehe auch Funduino – Anleitungen: Nr. 12 Infrarotfernbedienung zur Ansteuerung von Arduino Mikrocontrollern!

Nachfolgend die Tastencodes der Fernbedienung als Dezimal-, Hexadezimal- und Binärzahl.

KEY_LINKS     16720605    FF22DD              1111 1111 0010 0010 1101 1101
KEY_HOCH      16736925    FF629D              1111 1111 0110 0010 1001 1101
KEY_RECHTS    16761405    FFC23D              1111 1111 1100 0010 0011 1101
KEY_RUNTER    16754775    FFA857              1111 1111 1010 1000 0101 0111
KEY_OK      3622325019  D7E84B1B    1101 0111 1110 1000 0100 1011 0001 1011
KEY_1         16738455    FF6897              1111 1111 0110 1000 1001 0111 
KEY_2         16750695    FF9867              1111 1111 1001 1000 0110 0111
KEY_3         16756815    FFB04F              1111 1111 1011 0000 0100 1111
KEY_4         16724175    FF30CF              1111 1111 0011 0000 1100 1111
KEY_5         16718055    FF18E7              1111 1111 0001 1000 1110 0111
KEY_6         16743045    FF7A85              1111 1111 0111 1010 1000 0101
KEY_7         16716015    FF10EF              1111 1111 0001 0000 1110 1111
KEY_8         16726215    FF38C7              1111 1111 0011 1000 1100 0111
KEY_9         16734885    FF5AA5              1111 1111 0101 1010 1010 0101
KEY_0         16730805    FF4AB5              1111 1111 0100 1010 1011 0101
KEY_STERN     16728765    FF42BD              1111 1111 0100 0010 1011 1101
KEY_RAUTE     16732845    FF52AD              1111 1111 0101 0010 1010 1101
Reflexionslichtschranken / Line tracking Lektion: Linienverfolgung
test-reflex-lichtschranke.ino

Motorsteuerung mit L293 Modul / Motor control

Für das Testen der Motoren wollen wir uns etwas mehr Zeit nehmen, um die Motorsteuerung und das Testen der Programme zu verstehen.
Die TinkerCAD Circuits Aufgabe Motorsteuerung mit Relais und H-Brücke L293D können dein Verständnis für die Motorsteuerung verbessern.
Stelle dein Robot Car mit der Unterseite des Chassis auf eine geeignete stabile Unterlage, so dass die vier Räder keinen Bodenkontakt mehr haben.
Diesen Aufbau werden wir ab jetzt sehr oft zur Fehlersuche und zum Testen der Hardware und deiner Programme nutzen. So kann das Car mit dem Computer per USB-Kabel verbunden bleiben und nicht versehentlich vom Tisch fahren. Es bleibt "an der Leine". Dabei lernst du auch, wie die Infrarot-Fernbedienung bzw. das Bluetooth-Modul zur Steuerung eingesetzt werden können.

  1. Im ersten Schritt wollen wir das Grundprinzip der Programmierung der Steuerung der beiden linken Motoren verstehen lernen.
    Erweitere das vorgegebene Programm für die Steuerung der beiden rechten Motoren.
    Die eingeschaltenen Motoren kennen so nur Vollgas. Das macht später das Fahren sicher nicht einfach.
    Zum Testen deines Programmes nutzt du den 'Seriellen Monitor'. Die Arbeit damit lernst du in der AG.
    Programmiere auch Möglichkeiten der Kurvenfahrt.
    Um die Ausgabe der Zeichencodes 10 und 13 der Zeilenende-Zeichen NL und CR zu unterdrücken und statt des Zeichencodes der gedrückten Taste das Zeichen selbst in der Anzeige zu erhalten, ändere die Zeile mit der Anweisung    Serial.println(zeichen);   in    if ((zeichen!=10)&&(zeichen!=13)) Serial.println(char(zeichen));
    Das bedeutet: Wenn die Variable   zeichen   nicht 10 oder nicht 13 ist, dann sende der UNO das Zeichen mit dem Code   zeichen   zum Empfänger an der seriellen Schnittstelle. Das wird vorläufug dein PC sein, später das Gerät, welches mit deinem Bluetooth-Modul auf dem Robot Car verbunden ist. Wahrscheinlich dein Handy.
  2. Jetzt werden wir "Gasgeben" lernen. Dazu sind im Programm einige Änderungen notwendig.
    Die Ausgänge ENA und ENB arbeiten nicht mehr als digitale Ausgänge, sondern sie werden als "analoge" Ausgänge betrieben. Beachte im setup die entsprechenden Änderungen. Weiterhin werden diese Ausgänge nicht mehr mit   digitalWrite()   sondern mit   analogWrite()   angesteuert. Die Werte in   analogWrite()   dürfen nur im Bereich von 0 bis 255 liegen.

    Füge einige weitere Fahrbefehle hinzu.
    Kannst du auch die Variable v über den 'Serielle Monitor' schrittweise ändern?
  3. Lerne am folgenden Beispiel, wie die Änderung der Geschwindigkeit über den seriellen Monitor zu verändern. Die einzugebenden Zeichen für die Änderungen kannst du natürlich selbst festlegen.

    Gelingt es dir, dieses Programm in dein Motorsteuerprogramm zu integrieren?
  4. Wenn die Geschwindigkeit in einem bestimmten Bereich liegt, zeigt der Motor keine merkliche Reaktion oder läuft sehr unregelmäßig.
    Deshalb sollte der Betrag der Geschwindigkeit v einen Mindestwert vmin erreichen, wenn der Fahrbefehl ausgeführt wird.

    Beachte die veränderten Zeichen für die Geschwindigkeitsänderung und das unterschiedliche Verhalten in den einzelnen Programmabschnitten.
    Wir werden dieses Programm noch gemeinsam durchsprechen.
    Versuche wieder, dieses Programm in dein Motorsteuerprogramm zu integrieren?
  5. im nächsten Schritt bauen wir beide Programmteile zusammen:

    Achtung: im loop()-Teil fehlt Befehl fahre();. Füge diesen an geeigneter Stelle ein.

Die Lektion: Motoren ... brauchst du nicht zu lesen.

Bluetooth

Nachfolgend einige Schritte zum Testen und Verstehen der BT-Verbindung.

Lektion: Bluetooth Car in englischer Sprache, trotzdem hilfreich

Systemtest

Verwende für die folgenden Abschnitte den Versuchsaufbau aus dem Abschnitt Motorsteuerung mit L293 Modul / Motor control. Das BT-Modul wird nicht aufgesteckt und bleibt vorläufig in der Bauteile-Box des Cars.
Das Car liegt somit an der Leine, sprich: Es ist aufgebockt mit dem PC über das USB-Kabel verbunden. Der Serielle Monitor übernimmt Funktionen des Bluetooth-Moduls und du die Funktion des Programm auf dem BT-Gerät, welches später dein Car steuern wird. Du entscheidest, welche Befehle das Car ausführen wird, und reagierst auf die Informationen, die auf dem Seriellen Monitor angezeigt werden. Und natürlich wird das Programm auf dem UNO auch selbst Entscheidungen geben müssen und dich über die eingegangenden Daten und die daraus abgeleiteten Entscheidungen Informieren.

Hier sit eine erste Version:

Hier sit eine zweite Version:

Beispielprogramme

Hier ist die neue Version 2018-01-07

Hier ist die Version 2017-12

  1. Eric hat folgenden Idee für die Steuerung des Robot Cars mit der IR-Fernbedienung.

    Die Tasten 2,5,8 schalten in jeweils in eine von drei Geschwindigkeitsstufen.
    Die vier Pfeiltasten legen die Bewegungsrichtung fest.
    Die Tasten 1,4 und 7 geben die Kurvenstärke in drei Schritten an.