Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

projektewise1718:jackthematepublic:start

Jack the Mate

entwickelt von Celine Reichel und Franziska Seibusch

Einführung

Idee

Jack the Mate der neue, komfortable Hilfsroboter für jeder Mann.

Hierbei handelt es sich um einen motorisierten Roboter, der Personen zu tragende Dinge (eine Tasche, Bücher, einen Laptop etc.) abnehmen kann und diese für den Eigentümer, durch Fahrbewegung, transportieren soll. Während der Fahrt soll es zu keiner Kollision mit Gegenständen oder Personen kommen, so dass es Jack erlaubt ist, durch die Hilfe eines Ultraschallmoduls, die Umgebung „abzuscannen“ und, wenn nötig, auszuweichen.

Umsetzung

Physis

Abbildungen 1-3: Physis Jack the Mate (zur Detailansicht auf Bildlink klicken)

Das Grundgerüst des Roboters besteht aus einer quadratischen Holzkonstruktion, welche die Maße von 29,5 cm x 28 cm x 40 cm besitzt und die Basis (Grundplatte) für die weitere Technik darstellt, sowie den Transportraum für Gegenstände bildet. Die Entscheidung hierbei zu Holz zu greifen, fiel uns leicht, da dieses leicht in Form zu bringen ist und nicht zu viel Gewicht mit sich bringt.

Abbildung 4: Acrylglasklappe

Auf der Oberseite der Konstruktion befindet sich eine transparente Acrylglasklappe (Maße: 25cm x 34cm), welche sich mit hilfe von zwei (hinten angebrachten) Metallscharnieren und einem flachen Holzgriff (Durchmesser: 4,5 cm) öffnen lässt und somit die Einlage- und Herausnahmemöglichkeit bildet. Damit die Acrylglasplatte nicht in die Kontruktion absinkt, wird sie im vorderen Bereich jeweils auf der rechten und linken Seite von einem Metalldübel (Durchmesser: 0,6 cm) gehalten. Hierbei entschieden wir uns für Acrylglas, da dieses kaum Gewicht mit sich bringt, gut zu bearbeiten ist und man, durch die Transparenz der Klappe, in den Roboter blicken kann und sehen kann, ob der Roboterplatz belegt ist.

Innerhalb des Roboters befindet sich eine weitere, kleinere Holzkonstruktion - eine Abdeckung, welche aus zwei Holzplatten, die im 90° Winkel miteinander verschraubt sind, besteht ( Maße : 26cm x 15,5cm x 19,5cm). Diese dient in erster Hinsicht zum Schutz der darunter liegenden Technik, vor Feuchtigkeit oder Beschädigungen und bildet gleichzeitig eine Ablagemöglichkeit innerhalb des Transportraums, z.B. für ein Buch.

Materialien:

  • Holz
  • Schrauben
  • Muttern
  • Acrylglasplatte
  • zwei Scharniere
  • Holzdübel
  • zwei Metalldübel

Elektronik

Abbildung 5: Verbindung der Komponenten, Fritzing (zur Detailansicht auf Bildlink klicken)

Die vorhandene Elektronik mit der Jack the Mate angetrieben wird, setzt sich aus den beiden Getriebemotoren auf der Unterseite der Konstruktion, den beiden Abstandsmessungssensoren (Infrarotsensor und Ultraschallsensor) auf der Vorderseite, sowie dem Arduino Nano + Evaluationsplatine, einem Motortreiber und einem Lipo-Akkupack zusammen.

Detaillierte Erklärungen in den einzelnen Kapiteln:

Räder und Getriebemotoren Infrarotsender LED und - empfänger Ultraschallmodul

Räder und Getriebemotoren

Zur Fortbewegung des Roboters sind auf der Unterseite der Holzkonstruktion drei Räder angebracht. Das vordere, mittig angebrachte Rad (Durchmesser: 3,8 cm) dient als freibewegliches, stabilisierendes Stützrad, während die beiden hinteren, motorisierbaren Räder (Durchmesser: 11 cm) jeweils durch einen Getriebemotor betrieben werden und für die Aufgaben der Fortbewegung und Lenkung verantwortlich sind. Die beiden Getriebemotoren haben eine Umsetzung von 1 zu 75 und werden mit hilfe eines Motortreibers und einem Lipo- Akkupack mit 7,4 Volt betrieben.

Der linke Getriebemotor ist über den Motortreiber an die digitalen Pins 9 und 10 mit dem Arduino Nano verbunden:

const int IN1 = 9;
const int IN2 = 10;

Während der rechte Getriebemotor über den Motortreiber die digitalen Pins 5 und 6 am Arduino Nano einnimmt:

const int IN3 = 5;
const int IN4 = 6;

Hierbei ist zu beachten, dass die digitalen Pins 9 und 5 zur Geschwindigkeitsbestimmung (PWM = Pulsweitenmodulation) benötigt werden und mit dem Befehl analogWrite () angesteuert werden, während die Pins 10 und 6 zur Bestimmung der Lenkrichtung dienen und mit dem Befehl digitalWrite() im Setup angesteuert werden.

analogWrite(IN1, pwm);
digitalWrite(IN2, LOW);
analogWrite(IN3, pwm);
digitalWrite(IN4, LOW);

Jack the Mate besitzt insgesamt vier Lenkrichtungen, welche er im späteren Vorgang abrufen kann:

Vorwärts, rückwärts, vorwärts rechts und vorwärts links.

Videoaufnahme 1: Erster Durchlauf, Ansteuerung der Motoren

Hierbei haben wir bewusst auf die Links- und Rechtsbewegung während der Rückwärtsfahrt verzichtet, da ein Ausweichmanöver durch Zurücksetzen und Richtungswechsel nach vorn bewerkstelligt werden kann.

Jede Richtung, in welche sich der Roboter bewegen soll, wird je durch eine einzelne Funktion bestimmt. Diese Richtungsangaben und Richtungsänderungen gelingen durch das gezielte Ansteuern der einzelnen Bewegungs-Pins der Getriebemotoren. :

Vorwärts:

int moveforward(int pwm); 

digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
analogWrite(IN2, pwm);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
analogWrite(IN4, pwm);

Vorwärts links:

int moveforwardleft(int pwm);
 
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
analogWrite(IN2, pwm);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
analogWrite(IN4, 0);

Vorwärts rechts:

int moveforwardright(int pwm);

digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
analogWrite(IN2, 0);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
analogWrite(IN4, pwm);

Rückwärts:

int movebackward(int pwm); 

digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
analogWrite(IN2, pwm);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
analogWrite(IN4, pwm);

Die Lenkrichtung, sowie die Geschwindigkeit der Fortbewegung sollen mit hilfe des Ultraschallmoduls und Infrarotmoduls bestimmt.

Materialien:

  • zwei Getriebemotoren
  • zwei motorisierte Räder
  • freibewegliches Stützrad
  • Motortreiber
  • Lipo - Akku 7,4 Volt
  • Arduino Nano
  • Arduino Evaluationsplatine
  • Kabel

Infrarotsender LED und Infrarotempfänger

Jack the Mate benötigt zum Ausführen seiner Tätigkeit eine/n Bezugspunkt/-person, um sich orientieren und Fahrt aufnehmen zu können. Dies gelingt durch eine Infrarotsender LED - Infrarotempfänger Modul.

Hierbei ist die „Bezugsperson“ im Besitz der Infrarotsender LED, welche an einem zweiten Arduino Nano, durch die Pins 12 (digital) und Ground (GND) betrieben wird. Jedoch muss hier darauf geachtet werden, dass in der Schaltung ein Wiederstand eingebaut wird, da die Infrarot-LED sonst in der Gefahr läuft durchzubrennen. Abbildung 6: Infrarotsender LED - Anschluss, Fritzing (zur Detailansicht auf Bildlink klicken)

Sobald der digitale Pin 12 im Setup in Betrieb genommen wurde, ist es nun möglich, ein infrarotes Licht mit einer Frequenz von 38.000 Hertz (Hz), durch den Loop, mit der Infrarotsender-LED zu erzeugen.

pinMode (12, HIGH);
tone (12, 38000);

Damit dieses infrarote Licht nun empfangen werden kann und ein Nutzen aus diesem gezogen werden kann, ist auf der Vorderseite des Roboters der passende Infrarotempfänger angebracht. Abbildung 7: Infrarotempfänger - Anschluss, Fritzing (zur Detailansicht auf Bildlink klicken)

Dieser Empfänger wird durch die Arduino Pins 3 (digital), Ground (GND) und 5 Volt (5V) angetrieben und läuft in einer Infrarot-Bibliothek. Zudem wird eine Variable benötigt, die zum späteren Zeitpunkt die Möglichkeit gibt, den Empfänger auslesen bzw. decodieren zu können. Der sogenannte „Decoder“. Dieser entspringt einer Klasse, welche von der Infrarotbibliothek zur Verfügung gestellt wird und uns durch die Funktion decode() das Auslesen der Daten ermöglicht.:

#include "IRLibAll.h" //Infrarot Bibliothek
IRrecvPCI myReceiver(3);
IRdecode myDecoder;

Um nun die infrarote Strahlung einzufangen, wird der Infrarot-„Receiver“ gestartet, sodass daraufhin dann die Decoder-Funktion die Frequenzwerte auslesen kann und der Vorgang von vorne beginnen kann.

void setup() {
  Serial.begin(9600);
  myReceiver.enableIRIn();
}

void loop() {
  if (myReceiver.getResults()) {
    myDecoder.decode();           
    myDecoder.dumpResults(true);  
    myReceiver.enableIRIn();      
    Serial.println("detected");
  }
}

Damit nun die Verfolgung einer Person aufgenommen werden kann und, für diese, Dinge transportiert werden können, sollen der Sourcecode des Infrarotmoduls und der Sourcecode der Bewegung in Verbindung gebracht werden.

Materialien:

  • Infrarotsender LED
  • Infrarotempfänger
  • zwei Arduino Nano
  • zwei Arduino Evaluationsplatinen
  • Akku (Powerbank)
  • Wiederstand
  • Kabel

Ultraschallmodul

Damit Jack the Mate keine Schäden aus seinem Nutzen zieht und keine Berührungen mit anderen Hindernissen entstehen („Kollisionsschutz“), befindet sich auf der Vorderseite der Holzkonstruktion ein Ultraschallsensor/-modul (HC-SR04), durch welches eine berührungslose Abstandsmessung bewerkstelligt werden kann. Abbildung 8: Ultraschallmodul - Anschluss, Fritzing (zur Detailansicht auf Bildlink klicken)

Dieser Ultraschallsensor besitzt einen Trigger-Pin (Ausgang, bei uns am digitalen Pin = 11), einen Echo-Pin (Eingang, bei uns am digitalen Pin = 12),beide Pins werden im Setup angesteuert/aktiviert, sowie einen Ground-Pin und einen VCC-Pin (5V). Mit hilfe des Trigger-Pins erzeugen wir im Loop zunächst die Möglichkeit auf ein rauschfreies Signal, in dem für fünf Millisekunden die Spannung genommen wird und erst daraufhin die Ultraschallwelle mit einer Dauer von zehn Millisekunden erzeugt wird. Diese Ultraschallwelle wird dann beendet, wobei der Echo-Pin nun, kombiniert mit dem Befehl pulseIn(), die Zeit (in Mikrosekunden) bis zum Zeitpunkt des Eintreffen, vom zurückgegebenen Schall, zählt.

  digitalWrite(trigger, LOW); 
  delay(5); 
  digitalWrite(trigger, HIGH); 
  delay(10); 
  digitalWrite(trigger, LOW);
  dauer = pulseIn(echo, HIGH);

Um nun aus den gezählten Mikrosekunden einen genauen Abstand in Zentimetern zu bestimmen, wird die empfangene Zeit durch zwei geteilt (zwei, weil nur eine Strecke berechnet werden muss) und mit der Schallgeschwindigkeit (cm/ms) multipliziert.

entfernung = (dauer / 2) * 0.03432;

Damit Kollisionen vermieden werden können, besitzt Jack the Made in seinem Sourcecode die Funktion, bei zu geringem Abstand zu stoppen und sich abzuwenden. Dies soll durch die Verbindung des Ultraschallmoduls mit der Lenkbewegung und der Geschwindigkeitsregelung von Jack the Mate bewerkstelligt werden.

Materialien:

  • Ultraschallmodul
  • Arduino Nano
  • Arduino Evaluationsplatine
  • Kabel

Code und Rohdaten

Sourcecode

Pinbelegungstabelle

Bauelement Pins
Getriebemotor A 9 + 10
Getriebemotor B 5 + 6
Motortreiber GND + 5V
Ultraschallsensor Trig + Echo 11 + 12
Ultraschallsensor GND + 5V
Infrarotempfänger 3 + GND + 5V
Andere Evaluationsplatine mit zweitem Arduino
Infrarotsender LED 12 + GND

Tabelle 1: Pinbelegung

Materialliste (insgesamt)

Material Kosten (in €) Quelle
Holz 8 Privat (Bauhaus)
Schrauben 5 Privat (Bauhaus)
Muttern + Unterlegscheiben 5 Privat (Bauhaus)
Metallscharniere 2,50 Privat (Bauhaus)
Dübel 2,50 Privat (Bauhaus)
Holzgriff 1 Privat (Bauhaus)
Acrylplatte 2,50 Privat (Bauhaus)
Kabel 5 Robotiklabor
Getriebemotoren 80 Robotiklabor
Motortreiber 70 (Conrad) Robotiklabor
motorisierbare Geländeräder 20 Robotiklabor
Stützrad 0,80 Privat (Bauhaus)
Lipo - Guard 7,4 Volt 40 Privat (Conrad Electronic)
2 Arduino Nano 60 (Conrad) Robotiklabor
2 Arduino Evaluationsplatine 20 (RS Online) Robotiklabor
Ultraschallmodul 4 Privat (Eckstein)
Infrarotsender / -empfänger 1 (Funduino) Robotiklabor
Insgesamt: ~ 327,50€

Tabelle 2 : Materialliste und Kosten

Ergebnis

Nach Beendigung des Projekts Jack the Mate können wir sagen, dass wir als Team fast alles geschafft haben, was wir uns zu Beginn des Projekts vorgenommen haben. Jack the Mate erfüllt an sich die einzelnen Aufgaben und kann Gegenstände für seinen Besitzer transportieren, während er einen vorgegebenen Weg fährt. Durch die Hilfe des Ultraschallsensor bleiben Kollisionen mit anderen Gegenständen/Personen aus. Die Konstruktion machte uns keine Probleme, war schnell, leicht und stabil gebaut, und hält, wenn nötig, auch kleinere Kollisionen aus. Die Elektronik bzw. Technik, im Innenraum, konnte übersichtlich und simpel zusammengesetzt/angeschlossen werden und wird durch die Innenkonstruktion geschützt und gleichzeitig gehalten.

Am meisten Probleme bereitet/e uns der Sourcecode, welcher innerhalb der einzelnen Komponenten (Funktion und Auslesen des Ultraschallsensor + Infrarotsensor und Bewegung der Motoren in verschiedene Richtungen) perfekt funktionierte, jedoch nach dem Zusammensetzen Probleme bei den Schnittstellen aufwies und immer noch aufweist.

Eventuelle Ausarbeitungsmöglichkeiten könnten zum Beispiel ein Display auf der Vorderseite der Konstruktion sein, durch welches der Besitzer in Empfang genommen wird. In Verbindung mit einer Infrarotschranke im Inneren des Roboters, könnten auch Informationen über den Transportraum ausgegeben werden (besetzt/nicht besetzt). Des Weiteren könnte man mithilfe eines Bewegungssensors und einem Servo-Motor, auf der Oberseite der Konstruktion, die Acrylglasklappe automatisch öffnen und schließen lassen. Ebenfalls sehr hilfreich wäre ein An- und Ausschalter, damit Jack the Mate bei bestehender Stromversorgung nicht direkt los fährt, sowie ein beweglicher Ultraschallsensor auf der Vorderseite bzw. Sensoren an den Seiten, damit direkt andere „freie“ Richtungen gefunden werden können.

Abbildung 9: „Jack the Mate“

projektewise1718/jackthematepublic/start.txt · Zuletzt geändert: 2018/05/17 10:20 von d.golovko