ModuRobo

Wikis > ModuRobo

Liebe ModuRobo Interessierte,

auf dieser Seite findet Ihr Informationen zu dem Aufbau und zur Nutzung des ModuRobo Roboters.

Falls Du lieber mit dem Handy weiterlesen möchtest so folge bitte diesem QR-Code:

Infos zu ModuRobo

 

ModuRobo ist ein Roboter welcher weitestgehend mit sehr verbreiteten Bauelementen auskommt.

Es hat zwei Motoren mit welchem er manövrieren kann. Als “Tank” dienen ganz gewöhnliche AA Batterien mit 1,5V oder AA Akkus mit 1,2V.

Das “Gehirn” it ein Arduino UNO kompatibles Leiterplattenmodul. Der ModuRobo lässt sich per Arduion IDE Software programmieren, welches quelloffen und kostenlos ist.

Es lassen sich einige Sensoren (Distanz, Liniensensor, Ultraschall, etc.), Aktoren (Ultraschall-Schwenk-Modul, etc.), Kommunikationsmodule (bspw. Bluetooth) und auch Displays (bspw. LCD) anschließen.

Durch die Sensorik kann man den Roboter Funktionen beibringen wie das Befahren einer Linie, Hinderniserkennung anhand von optischer oder Ultraschall Sensorik und vieles weitere.

Grundsätzlicher Aufbau

Der grundsätzliche Aufbau beschreibt den Aufbau des Chassis/Grundträger (durchsichtiger PMMA Träger an welchem die Komponenten befestigt sind) und die Montage der einzelnen Komponenten.

Kabel an Motoren anlöten

Betrachte zuerst den Getriebemotor. Er ist fast symmetrisch, auf der einen Seite hat er aber einen Zapfen. Dieser ist für die Orientierung wichtig:

Deine Motoren werden entweder mit angelöteten Drähten geliefert, dann kannst Du diesen Schritt einfach überspringen. Ansonsten lege bitte die Motoren mit dem Zapfen nach unten auf eine stabile und nicht brennbare Unterlage und löte die Kable bitte so an. Achte dabei bitte auf die richtige Polung, also auf die richtigen Farben rot und schwarz an den Kontakten der Motoren:

Motoren an das Chassis anschrauben

Als nächstes schraubst Du die Motoren an das Chassis. Das nennt man im Fahzeugbau “die Hochzeit”.  So gehst Du vor:

Die durchsichtigen PMMA Kuststoffteile sind mit einer braunen Papierfolie überzogen. Falls Du einen transparenten Roboter haben möchtest so ziehe zuerst die Folien ab.

  1. Suche die vier T-förmigen kleinen PMMA Stückchen. Zwei kannst Du mit den langen Schrauben an den Motoren lose anstecken. Achtung: Zapfen am Motor nach außen.
  2. Lege den großen PMMA Träger so auf den Tisch, dass das Muster so aussieht wie auf dem Foto weiter unten
  3. Stecke von unten zwei T-förmigen kleinen PMMA Stückchen in den Grundträger, sodass diese nach oben herausragen.
  4. Verschraube nun die Motoren mit den inneren T-förmigen Stückchen indem Du diese von außen anklemmst und dann mit jeweils zwei Muttern festziehst.

Drehrad an das Chassis anschrauben

Schraube das Drehrad mit vier kurzen Schrauben an das PMMA Grundträger Chassis an, hierbei Schrauben von oben einlegen und dann von unten das Drehrad aufsetzten, dann festziehen:

Arduino UNO und Verteiler-Leiterplatte an das Chassis festschrauben

Schraube zuerst bitte die langen Bolzen in die Löcher am Arduino indem Du zuerst eine Mutter oben aufsetzst, dann per Finger fest hältst und dann von unten die Bolzen einschraubst:

Nun wird es Zeit das “Gerhin” in den Körper zu “frankensteinen”. Hierzu drehst Du das Chassis um und suchst an der Stelle des Drehrades nach dem Aufsetzten des Arduinos die richtigen Verschraubpunkte und schraubst vier Schrauben ein:

Auf das Arduino Steuermodul wird nun ein weiteres Modul gesteckt. Dieser verteilt die Signale und kümmert sich um die Versorgung. Achte dabei bitte darauf, dass die Stifte genau in die Sockel am Arduino passen:

Batteriehalter vorbereiten und auf das Chassis schrauben

Schraube bitte zuerst das rechteckige PMMA Kustoffsteil an die langen Bolzen.

Als nächsten Schritt schraube bitte den schwarzen Batteriehalter mit einer Schraube und einer Mutter an den PMMA Träger welchen Du soeben gebaut hast. In dem schwarzen Batteriehalter sind hierfür 2 Löcher angebracht, hier kannst Du die Schrauben durchstecken und dann von unten mit den Muttern den PMMA Träger anschrauben. Als nächstes schraube die beiden nun verschraubten Einheiten an das Chassis indem Du von unten Schrauben eindrehst:

Motorsteuerungsplatine an das Chassis schrauben

So wie bei der Arduino Platen kannst Du nun bitte wieder bolzen an die rote Motorsteuerung schrauben. Achte bitte darauf diesmal die kurzen Bolzen zu verwenden:

Die Platen schraubst Du nun an das Chassis

Mechanik fertig!

So sieht die Mechanik nun fertig aus:

Elektrische Verkabelung

Damit der Roboter funktioniert müssen die Motoren angeschlossen werden, die Enegieversorgung aus dem Akku verbunden werden und die Motorsteuerung mit dem Arduino vernüpft werden.

ACHTUNG: Die Kabelfarben sind nicht in allen Sets gleich. Achte daher auf die Beschreibung der PINs auf den Platinen beim Verbinden

Batterieträger mit dem Arduino Verteiler verbinden

zuerst verbinden wir den Batteriehalter mit dem Arduino Verteiler. am Besten sieht es aus, falls Du die Kabel unter dem Batteriehalter durchführst. Achte bitte unbedingt darauf, dass die die Kabel nicht falsch herum anschließt.

Motoren mit der Motorsteuerung verbinden

Bitte verbinde die beiden Motoren mit der Motorsteuerung. Achte dabei auf die farben der Kabel, hast Du diese falsch herum angeschlossen laufen die Motoren später in die falsche Richtung. Die Kabel kannst Du durch ein Loch in dem PMMA Chassis führen. Die Verbindungen sind nicht überkreuzt, Du kannst also den linken Motor links und den rechten Motor rechts an der Motorsteuerung anschließen:

Motorsteuerung mit dem Arduino Verteiler verbinden

Als nächstes müssen wir die Motorsteuerung mit dem Verteiler am Arduino verbinden. Bitte schließe die Signale IN1, IN2, IN3 und IN4 an. Die Kabelfarben können abweichen, bitte merke dir aber die Farben da diese dann am Arduino passen müssen.

Die Kabel verbindest du nun am Arduino Verteiler mit D8, D9, D10 und D11.

Hier Deine Anschlüsse:

  • D8 zu IN1

  • D9 zu IN2

  • D10 zu IN3

  • D11 zu IN4

Verlege nun, falls Du magst die Kabel unter das Batteriemodul damit es schön aussieht:

Stromversorgung Motorsteuerung mit dem Arduino Verteiler verbinden

Die Motorsteuerung hat noch keine Versorgung, nur die Signalleitungen sind angeschlossen. Ändere das nun indem Du GND und +12V mit zwei Kabeln verbindest und festschraubst. Nimm dazu am Besten die Kabel mit den silbernen Kontaktstiften auf der einen Seite und dem schwarzen Buchsen auf der anderen Seite:

Am Arduino Verteiler verbinde bitte die beiden Kabelenden mit 9V und GND.

Hier Deine Anschlüsse:

  • +12V zu 9V

  • GND zu GND

Verlege auch diese Leitungen schön unter den Betteriehalter.

Batterien einlegen und Einschalten

Nun kannst Du die Batterien einlegen und am Schalter den Roboter einschalten. Die grüne LED leuchtet sobald der Robo eingeschaltet ist. Der ModuRobo hat nun noch keine Sensoren könnte aber schon fahren. Wie Du Sensoren und Zubehör anschließen kannst erfährst Du weiter unten.

Sensoren anschließen

Spannend wird es mit dem ModuRobo sobald Du Sensoren anschließst, damit kannst Du deine Umgebung wahrnehmen und so sinnvolle Entscheidungen treffen wohin Du fahren möchtest.

Optische Hindernisserkennung links/rechts.

Du kannst am Roboter auf beiden Seiten vorne optische Sensoren anschließen. Diese melden sobald Du einen Hindernis zu nahe kommst.

Schraube zuerst die kleinen Bolzen mit einer Schraube jeweils an die beidem Infrarotsensoren.

Drehe den Roboter nun um und schraube die Sensoren von der Unterseite mit einer Schraube jeweils durch das PMMA Chassis fest.

Nun folgt die elektrische Verbindung. Hierzu schließe bitte ein 3 poliges Kabel an beiden Sensoren an GND, VCC und +OUT an. Führe die Kabel zu der Arduino Verbindungsplatine.

An der Arduino Verbindungsplatine bitte die D5, GND, 5V für den rechten Sensor und D6, GND, 5V für den linken Sensor anschließen.

Hier Deine Anschlüsse:

  • LINKS: GND zu GND

  • LINKS: D6 zu +OUT

  • LINKS: 5V zu VCC

  • RECHTS: GND zu GND

  • RECHTS: D5 zu +OUT

  • RECHTS: 5V zu VCC

Sobald die Sensoren angeschlossen sind und Du den Roboter angeschaltet hast kannst an den LEDs ablesen ob die Sensoren arbeiten. Eine LED leuchtet dauerhaft, eine zweite zeigt an, sobald ein Hindernis erkannt wird:

Pro-Tip: Du kannst die Reichweite des Sensors durch drehen des kleinen, blauen, quadratischen “Potentiometers” einstellen. Nutze einen kleinen Schraubenzieher um den grauen Einstellknopf vorsichtig zu drehen. Teste die Reichweite durch deine Hand.

Linienerkennung auf dem Boden

folgt sobald verfügbar.

Ultraschallsensor vorne – ohne Schwenkarm

folgt, sobald verfügbar.

Ultraschallsensor vorne – mit Schwenkarm

folgt, sobald verfügbar.

Display anschließen

Du kannst ein Display anschließen um Informationen direkt darzustellen oder mit bspw. einem Menschen zu interagieren.

Bitte beachte, dass Du hierzu eine spezielle Version des Arduino Verteilers benötigst welcher seitlich Stiftleisten ausgeführt hat. Du kannst entweder das Display oder eine Infrarot Fernbedienungs Modul benutzten, nicht aber beides zusammen.

weitere Infos folgen.

Bluetooth Modul anschließen

um das Bluetooth Modul anzuschließen musst Du es lediglich in den dafür vorgesehen Platz am Arduino Verteiler einstecken:

Bitte achte darauf, dass Du es richtig herum einsteckst, da das Modul oder der Roboter sonst Schaden nehmen könnte!!

Infrarot Fenbedienungs-Modul anschließen

 

Software Code für Arduino

PLATZHALTER, Inhalt folgt.

// alles was hinter "//" oder zwischen "/*" und "*/" steht ist 
// ein menschlicher Kommentar und wird vom Arduino nicht beachtet. 
// Menschliche Kommentare sind auch total langweilig 
// für Computer, die haben viel tollere eigene Kommentare, 
// bspw. Fehlermeldungen. Außer bei den "#defines".., daher 
// dort keine Kommentare. // musst du bei jeder Zeile neu schreiben
/* während das Kommentar schließen (siehe oben, sonst endet der 
Kommentar hier)
auch  über 
mehrere Zeilen
gehen*/

#include <Wire.h>                  
#include <LiquidCrystal_I2C.h>

// die wire.h braucht man um I2C auf dem Arduino nutzen zu können 

// LiquidCrystal_I2C.h ist eine "Bibliothek" um speziell dieses Display steuern zu können     

                                   // Dieser "Befehl" richtet das Display ein und beschreibt es damit du darauf zugreifen kannst
LiquidCrystal_I2C lcd(0x3f,16,2);  // 0x3f ist die I2C Adresse, je nach Variante kann es aber auch eine andere sein, da man diese wählen kann.
                                   // 16 sind die Spalten auf dem Display, also wie viele Zeichen du in einer Zeile darstellen kannst
                                   // Das Display kann 2 Zeilen darstellen, daher 2
void setup()                       // Dein Program im Setup wird nur einmal beim Starten ausgeführt
{
  lcd.begin();                     // initialisiert das Display, benutzt also die Daten oben um es verfügbar zu machen
  
  
  lcd.backlight();                 // schaltet die blaue Hintergrundbeleuchtung ein
  lcd.setCursor(1,0);              // Setzt den "Cursor", also die Position bei der geschrieben wird, du kannst also bestehende Buchstaben überschreiben
  lcd.print("ModuHase sagt");      // Schreibt in der ersten Spalte an Stelle 0
  lcd.setCursor(1,1);              // Springt in die 2. Spalte
  lcd.print("Hallo Welt!");        // Und schreibt "Hallo Welt!", das nutzen Programmierer gerne um das erste Program zu schreiben oder etwas zu testen
}                                  // Nachdem das Setup Programm durchgelaufen ist geht es direkt in die "loop()"


void loop()                        // Und hier kommt dein Hauptprogramm, dieses wird immer und immer wieder ausgeführt
{
}

Die I2C Addresse des Displays sollte “0x3f” (im Hexadezimalformat) oder “63” in unserem gewohnten 10er System lauten. Das Modul welches Display über I2C ansteuert kann man aber auch auf andere Adressen einstellen da an einem I2C-Bus jedes Modul eine einzigartige Adresse haben muss. Es dürfen also nicht zwei Module mit gleicher Adresse am I2C Bus hängen. Vielleicht hast du zwei Schüler oder Schülerinnen in deiner Klasse die den gleichen Namen haben, so kennst du das Chaos welches entsteht wenn der Lehrer “Sophie” anspricht und zwei Mädels gleichzeitig antworten und man dann beide nicht verstehen kann. Genauso ist es beim I2C Bus und so gibt es bei vielen Modulen die Möglichkeit die Adresse zu wählen. Es ist sogar teilweise so, dass Hersteller von Chips (hmmm… lecker Chips….), ich meine natürlich Computer-Chips (nicht so lecker), für Chips mit dem exakt gleichen Funktionen unterschiedliche I2C Adressen verwenden. Einfach weil es ein anderer Hersteller ist.