====== Projektdokumentation M-O ====== === Ein Projekt von Jana Alexandra & Tim Alexander Bekkin, MINTgrün Orientierungsstudium 2023/24 === \\ ===== Themenbeschreibung ===== Unser Roboter ist dem kleinen fanatisch-, neurotischen Putzroboter „M-O“ – die Kurzform für „Microbe Obliterator“ – \\ aus dem Walt-Disney Film „Wall-E – Der Letzte räumt die Erde auf“ nachempfunden.\\ {{:projektesose24:m-o:wall-e_der_letzte_raeumt_die_erde_auf.jpg?nolink|Walt-Disney Animationsfilm: Wall-E - Der Letzte räumt die Erde auf}} > **Abbildung 1:** Walt-Disney Animationsfilm "Wall-E - Der Letzte räumt die Erde auf" {{:projektesose24:m-o:wall-e_m-o.jpg?nolink&300|M-O - Microbe Obliterator}} > **Abbildung 2:** Putzroboter M-O "Microbe Obliterator" Seine Hauptaufgabe ist es, einer zuvor definierten Strecke in Form einer schwarzen Linie auf einer möglichst ebenen Oberfläche zu folgen und dabei mittels einer an den Armen angebrachten Rolle die besagte Oberfläche zu reinigen. Das Ziel ist es, eine möglichst originalgetreue Abbildung seines Verhaltens aus dem Film zu erschaffen. Dies wird in erster Linie durch den begrenzten Arbeitsbereich ermöglicht, da M-O im Film seine Arbeit ebenfalls nur im Bereich einer klar definierten Linie verrichten darf.\\ Das allein reicht jedoch nicht aus, um eine originalgetreue Abbildung von M-O darzustellen, weshalb weitere Überschneidungen von Verhalten und Aussehen zum Film benötigt werden. Um den Beginn seines Arbeitsprozesses, sowie seine Arbeitsbereitschaft anzukündigen, soll er zudem - wie im Film - seine Arme samt der Rolle bewegen können. In unserem Fall soll er die Arme zu Beginn enthusiastisch hochwerfen und anschließend wieder runternehmen, um mit seiner Aufgabe anzufangen. Um mehr Emotionen beim Arbeitsprozess zeigen zu können, soll er aber auch - im Einklang mit den Armen - seinen Kopf bewegen können. Ähnlich wie bei den Armen soll der Kopf seine Arbeitsbereitschaft zu Beginn durch einen schnellen Blick nach oben (Richtung Putzrolle) darstellen. Anschließend soll er - wenn die Arme die Rolle wieder nach unten befördert haben - gezielt nach unten schauen, um eine konzentrierte Verfolgung seiner Aufgabe ersichtlich zu machen.\\ Doch dieses Gefühl soll auch durch sein Aussehen sichtbar gemacht werden. So sollen die Augen des Roboters durch LED-Matrizen generiert werden, um seinen jeweiligen Gemütszustand bei der Arbeit noch präziser darzustellen und um eine weitere Ähnlichkeit zum Film zu erschaffen. Zuletzt soll er auch noch konkrete Audioausschnitte, bzw. MP3-Dateien aus dem Film, im Verlauf seiner Haupttätigkeit, abspielen können, um ihm wortwörtlich eine Stimme zu geben, die seinen Charakter und seine Emotionen gezielt hervorbringen kann.\\ Aus diesen Funktionen wird ersichtlich, dass das Augenmerk unseres Projekts weniger auf seiner Funktion als Putzroboter, sondern vielmehr auf den ausgestrahlten Emotionen und Verhaltensweisen liegt. Das Ziel ist es letztendlich, eine möglichst originalgetreue Abbildung von M-O, mit dem Fokus auf sein Verhalten und weniger auf seine Funktion gerichtet zu erschaffen.\\ ===== Methodenteil ===== ==== Überblick über das Gesamtsystem ==== Unser Roboter besteht grundlegend aus den folgenden vier Baugruppen: - Linienerkennung - Fortbewegung - Gestikulation - Ausgabe von Audiodateien im MP3-Format Aufgrund von Zeitmangel, unzureichendem Programmierspeicherplatz sowie ausgelasteten Digitalpins, konnte die ursprünglich geplante fünfte Baugruppe nicht umgesetzt werden: Das **Generieren von Augen über LED-Matrizen**. {{:projektesose24:m-o:m-o_angeschlossen_an_akku_und_powerbank.jpg?nolink&300|M-O angeschlossen an Akku und Powerbank}} {{:projektesose24:m-o:m-o_aufbau.jpg?nolink&300|M-O Aufbau}} {{:projektesose24:m-o:schaltung_3.jpg?nolink&300|M-O Innenleben - Schaltung}}\\ > **Abbildung 3:** Aufnahmen von unserem gegenwärtigen Roboter, M-O. ==== Systembestandteile im Detail ==== **1.) Linienerkennung**\\ \\ Zu Beginn der Projektphase hatten wir ursprünglich Ultraschallsensoren zur Hinderniserkennung und räumlichen Orientierung eingeplant. Doch alsbald erinnerten wir uns daran, wie M-O sich im Film fortbewegt: Er folgt einer fest definierten Strecke, um seine Putzarbeit zu verrichten. Es ist ihm untersagt vom Weg abzuweichen. Aus diesem Grund haben wir uns dafür entschieden einen Infrarotsensor anstelle eines Ultraschallsensors zu integrieren. Infrarotsensoren nutzen den photoelektrischen Effekt zur Detektion. Das vom Sensor ausgehende Infrarotlicht wird von einem Objekt reflektiert und vom Phototransistor empfangen. Die Reflexion kann hierbei durch ein Objekt oder eine unterschiedlich gefärbte Fläche entstehen. Somit lassen sich Infrarotsensoren u.a. zur Linienerkennung einsetzen. Für eine erfolgreiche Linienerkennung, musste zunächst die Reichweite der Infrarotsensoren ermittelt werden, welche von Modell zu Modell unterschiedlich ausfällt. Durch Ausprobieren, Nachjustieren und Verstellen der Stellschraube (Potentiometer) konnten wir die Sensorreichweite, welche nur wenige Millimeter beträgt, ausmachen. Der Programmcode zum Ansteuern und Testen der Infrarotsensoren befindet sich unter den [[projektdokumentation#Programmcode und Rohdaten|Rohdaten]] dieser Seite. **2.) Fortbewegung**\\ \\ Die Art der Fortbewegung durch den Raum wurde im ersten Aufgabenpaket geklärt. Nun galt es diese auch zu ermöglichen durch erfolgreiches Ansteuern der mit LEGO-Rädern bestückten Schrittmotoren. Das größte Aufgabenpaket bestand darin, die Nema 11 Schrittmotoren mit den DRV8834 Schrittmotortreiberträgern zu verbinden. Insbesondere musste die Spulenanordnung der Schrittmotoren berücksichtigt werden: Die Pins B2/B1 des Drivers werden mit der Spule D/B des Schrittmotors verbunden. A1/A2 entsprechend mit A/C. Diese Aufgabe stellte insofern eine kleine Herausforderung dar als das wir zu Beginn des Projekts zunächst mit einem anderen Driver, dem DRV8825, zu Testzwecken gearbeitet haben.\\ Eine weitere Aufgabe bestand darin, die Strombegrenzung für den Driver zu berechnen und am Potentiometer einzustellen. Dieser Schritt ist wichtig, denn wenn eine zu hohe Referenzspannung beim Driver vorliegt, können Schäden am Motor, aufgrund einer zu hohen Schrittrate, entstehen. Unser Motor zieht bei jeder Phase 0.67 Ampere bei 3.8 Volt. Die Referenzspannung am Driver ergibt sich aus der Division des Nennstroms mit zwei: 0.67 Ampere / 2 = 0.335. Mithilfe eines Multimeters können wir die am Driver anliegende Spannung messen und durch Drehen der Stellschraube korrekt einstellen.\\ Obwohl alle Einstellungen von uns mehrfach geprüft wurden, fuhr M-O noch nicht erwartungsgemäß einer Linie hinterher. Dies hing mit der Einstellung der Schritte pro Umdrehung im Programmcode zusammen.\\ Zunächst mussten wir feststellen, welches der Räder sich nach vorne bewegen würde. Aufgrund der spiegelverkehrten Befestigung, drehte sich ein Schrittmotor zwangsläufig in die entgegengesetzte Richtung. Dementsprechend musste entweder die Schrittzahl vom linken oder vom rechten Rad negativ gesetzt werden. Dies ließ sich durch schlichtes Ausprobieren schnell ausmachen. Um eine Kurvendrehung zu ermöglichen, musste zuletzt die Schrittzahl des entsprechenden Rades herabgesetzt werden, in welche Richtung M-O sich bewegt. Wenn M-O bspw. nach links abbiegen soll, so muss das linke Rad deutlich weniger Schritte pro Umdrehung ausführen als das rechte Rad, um ein Abbiegen zu ermöglichen.\\ {{:projektesose24:m-o:drv8834_schaltung.png?nolink|Schaltplan für den Anschluss eines Mikrocontrollers an einen DRV8834 Schrittmotortreiberträger}} > **Abbildung 4:** Schaltplan für den Anschluss eines Mikrocontrollers an einen DRV8834 Schrittmotortreiberträger. [[projektdokumentation#Quellenverzeichnis|1.)]] {{:projektesose24:m-o:nema_11_schrittmotor_spulenanordnung.png?nolink|Schaltplan des bipolaren Schrittmotors - Spulenanordnung}}\\ > **Abbildung 5:** Schaltplan des bipolaren Schrittmotors. Die Anordnung der Spulen ist beim Anschluss des Schrittmotors an den Driver zu beachten. [[projektdokumentation#Quellenverzeichnis|2.)]] **3.) Gestikulation**\\ \\ Unter Gestikulation verstehen wir die Arm- und Kopfbewegungen von M-O während einzelner Phasen seines Lebenszyklus. So soll er bspw. seine Arme samt Putzrolle emporheben, um seine Arbeitsbereitschaft zu signalisieren. Diese Gesten unterstreichen seine Persönlichkeit und sind Szenen aus dem Film nachempfunden. Um diese Bewegungen zu ermöglichen, müssen jedoch die Standardpositionen der Servomotoren aufeinander abgestimmt werden. Der linke und rechte Servomotor hatten jeweils eine andere Ausgangseinstellung, was bei der Befestigung der Arme berücksichtigt werden musste. Durch ständiges Nachjustieren der Arme und Verändern der Gradzahl im Programmcode, konnten die Servomotoren schließlich aufeinander abgestimmt werden, sodass beide Arme synchron nach oben bewegt wurden. Die gleiche Herangehensweise verwendeten wir, um die Auf- und Abbewegung des Kopfes einzustellen. **4.) Ausgabe von Audiodateien im MP3-Format**\\ \\ Um dem Bild von M-O möglichst nahe zu kommen, konnten wir nicht auf seine einzigartige, niedliche Stimme verzichten! Bei der letzten umgesetzten Baugruppe bestand die Aufgabe darin, Audioausgaben über einen Arduino Nano und unter Verwendung eines simplen Piezolautsprechers zu ermöglichen. Wir entschieden uns für drei Audioausschnitte, die während einzelner Phasen seines Lebenszyklus abgespielt werden sollten:\\ \\ {{:projektesose24:m-o:m-o_name.mp3|M-O_Name}}\\ {{:projektesose24:m-o:m-o_scream.mp3|M-O_Scream}}\\ {{:projektesose24:m-o:m-o_confirmation.mp3|M-O_Confirmation}}\\ > Nicht eingebundene Audiodateien:\\ {{:projektesose24:m-o:m-o_woah.mp3|M-O_Woah}}\\ {{:projektesose24:m-o:m-o_complain_and_scream.mp3|M-O_Complain and Scream}}\\ Nicht eingebundene Audiodateien stellten Alternativen zu den bestehenden dar. Um kurze Audioausschnitte auf einem Arduino Nano abspielen zu können, müssen wir zunächst die Größe der MP3-Dateien anpassen. Mithilfe des kostenlosen Audio-Editors Audacity, stellen wir ein 16-bit-Format ein und setzen die Projektrate auf das kleinstmöglichste Niveau (8000 Hz). Anschließend exportieren wir die Dateien. Um die Dateien nun einbinden zu können, dekodieren wir sie mithilfe einer Software genannt „EncodeAudio“ für Windows. Der dekodierte Code wird direkt in die Zwischenablage kopiert und kann einfach im Programmcode eingefügt werden. Einzig verändert werden musste die eingebundene Bibliothek „PCM.h“. Aufgrund der Inkompatibilität der Bibliotheken „Servo.h“ und „PCM.h“, bedingt durch gleiche Timer-Konfiguration (Timer 1), mussten wir auf die alternative Bibliothek „FlagPCM.h“ umsteigen, welche einen anderen Timer verwendet, um nicht in Konflikt mit der Servo-Bibliothek zu geraten.\\ Das Abspielen von Audiodateien nimmt mit Abstand den größten Teil vom Programmierspeicherplatz ein. Unter Berücksichtigung der anderen Baugruppen, werden 95% des Speichers für M-Os Anwendung belegt. Dies ist einer der Gründe, weshalb die nächste Baugruppe - mit einem Programmierspeicherplatz von 8% - nicht implementiert wurde. **5.) Generieren von Augen über LED-Matrizen**\\ \\ Die Augen generierenden LED-Matrizen hätten M-Os Bild vervollständigt. An sich ist der Programmcode fertig. Es gibt drei verschiedene Modi, um seinen Gemütszustand auszudrücken: neutral, wütend und angestrengt/konzentriert. Der Code müsste lediglich in Zusammenhang mit dem Hauptprogramm gebracht werden, gäbe es da nicht das Problem mit dem mangelnden Speicherplatz. Zudem ist unklar, ob erneut Bibliotheken in Konflikt geraten, aufgrund gleicher Timer-Konfigurationen. Außerdem könnte sich die Schaltung ans Breadboard als schwierig erweisen, zudem so gut wie alle Digitalpins am Arduino Nano belegt sind. Möglicherweise gelingt es zukünftigen Gruppen, Ideen für diese Probleme zu entwickeln. ---- {{ :projektesose24:m-o:schaltplan_m-o_steckplatine.png?nolink |Steckplatine M-O}} > **Abbildung 6:** Steckplatine von M-O erstellt mit dem open-source Programm [[https://fritzing.org/|Fritzing]]. \\ Da die LED-Matrizen noch nicht im Gesamtsystem integriert sind, werden sie im gegenwärtigen Schaltplan nicht aufgeführt. ^Pinbelegung am Arduino Nano ^^ |**D2**|Step-Pin DRV8834 - Schrittmotor L | |**D3**|Dir-Pin DRV8834 - Schrittmotor L | |**D4**|Step-Pin DRV8834 - Schrittmotor R | |**D5**|Dir-Pin DRV8834 - Schrittmotor R | |**D6**|Digital-Output Infrarotsensor L | |**D7**|Digital-Output Infrarotsensor R | |**D8**|Signal/PWM Servomotor L - Arm | |**D9**|Signal/PWM Servomotor R - Arm | |**D10**|Signal/PWM Servomotor - Kopf | |**D11**|Base-Pin Transistor | > **Abbildung 7:** Pinbelegungstabelle. Ausschließliche Verwendung von Digitalpins. ---- ==== Liste verwendeter Bauteile ==== > **Elektrotechnische Bestandteile** * zwei Breadboards/Steckplatinen * ein Arduino Nano Mikrocontroller ATmega328P (Old Bootloader) * drei Micro-Servomotoren SG92R mit entsprechenden Aufsätzen * zwei bipolare Stepper-/Schrittmotoren der Baugröße Nema 11, SY28STH32-0674, 200 Schritte pro Umdrehung, 28x32mm, 3.8 Volt, 0.67 Ampere/Phase * zwei Niederspannungs-Schrittmotor-Treiberträger DRV8834, geeignet für Nema 8 & 11 Modelle * zwei Kondensatoren mit 100 Mikrofarad, 25 Volt * zwei Infrarot-LED-Sensoren KY-033 TCRT 5000, fungieren als line-tracking-Sensoren * ein Piezolautsprecher und ein Transistor zum Verstärken niedriger elektrischer Spannungen * zwei 8x8-LED-Matrizen, spiegelverkehrt miteinander verbunden * mehrere, möglichst farblich verschiedene Überbrückungskabel * externe Stromversorgung der Schrittmotoren über einen 7.4 Volt LiPo-Akku * externe Stromversorgung des Arduinos über eine 5 Volt Powerbank > **Konstruktion** * zwei an den Schrittmotoren angebrachte LEGO-Räder * ein sich frei drehendes Rollrad, um den Richtungswechsel zu ermöglichen * eine kleine Farbrolle sowie zwei dünne Holzstifte zur Verbindung mit den Armen * **Holzbasiertes Gerüst:** * zwei ca. 12,5 cm breite quadratische Grundflächen * Untere Basis für die Steckplatinen/Schaltung * Obere Basis für die Kopfkonstruktion * zwei ca. 14 cm hohe Holzbalken/-platten als Verbindung der unteren und oberen Basis * zwei 23 cm lange, relativ dünne Holzstifte als M-Os Arme * ein ca. 15 cm langer Holzstift für die Kopfkonstruktion, mittig im Gehäuse des Kopfes platziert * ein ca. 13 cm langer Holzstift als Gegengewicht für die LED-Matrizen, angebracht am Hinterkopf des Gehäuses * mehrere Holzstifte und Blöcke für diverse Funktionen: * Servomotor-Anhöhe für die Kopfkonstruktion * Verbindungselement zwischen den Schrittmotoren Das Zusammenfügen der Einzelbestandteile erfolgte mittels einer Heißklebepistole. Zur Verbesserung der Stabilität der Konstruktion, empfehlen wir Nachbau-Interessierten, den Einsatz von Schrauben und Ähnlichem. Um die Verkabelung der elektrotechnischen Bestandteile mit der Steckplatine zu ermöglichen, wurden mehrere Löcher in die obere und untere Holzbasis gebohrt. * **Gehäuse:** * mehrere DIN-A3 Blätter harte Pappe, Orientierung an einem Papiermodell von [[https://paper-replika.com/index.php/disney/m-o-paper-model|Paper Replika]]. [[projektdokumentation#Quellenverzeichnis|4.)]] ===== Ergebnis und Diskussion ===== Aus eigener Sicht haben wir ca. 90% des Projekts abgeschlossen. Zuerst der Überblick, wozu unser Roboter jetzt in der Lage ist: M-O kann den gesamten geplanten Arbeitszyklus, trotz einiger Mängel, durchführen. Das bedeutet, dass er mittels den angebrachten Motoren und Line-Tracking-Sensoren eine bestimmte, durch eine schwarze Linie gekennzeichnete Strecke ablaufen kann. Er ist dabei in der Lage, Kurven zu erkennen und er kann seine Tätigkeit beim Auftreffen auf eine schwarze Oberfläche beenden. Bei den zuletzt durchgeführten Testfahrten gab es keine größeren Probleme hinsichtlich der Stabilität der Räder und er konnte die gegebene Strecke relativ gleichmäßig abfahren. Nur bei den ersten Testfahrten gab es einige Konstruktions-Pannen, dazu später mehr.\\ Während des Arbeitszyklus verlaufen die Bewegungen des Kopfes und der Arme größtenteils plangemäß, was bedeutet, dass alle Winkel der Servomotoren korrekt konfiguriert sind und gleichmäßige Bewegungen stattfinden. Die von den Armen getragene Rolle erfüllt grundlegend ihre Aufgabe. Sie schleift zwar mehr über den Boden als dass sie rollt, doch dies reicht aus, da das Putzen wie bereits gesagt nicht unsere Priorität bei diesem Projekt war. Er ist ebenfalls in der Lage, die von uns ausgewählten Audiodateien über den Piezolautsprecher auszugeben. Zwar lässt die Audioqualität etwas zu wünschen übrig, doch vorerst reichte es uns aus, dass die gewählten Dateien zum richtigen Zeitpunkt und größtenteils verständlich abgespielt wurden. Mit dem originalgetreu aussehenden Gehäuse und den großen LED-Matrizen, die sich am Kopf des Roboters befinden, ist auch das optische Erscheinungsbild zu einem gelungenen Ergebnis gekommen. Gleichzeitig sind Gehäuse und Gerüst im Inneren stabil genug, um das Gleichgewicht der gesamten Konstruktion zu halten, wodurch er bei den Testfahrten nicht so aussieht, als ob er jederzeit umfallen könnte. Zwar besteht das Gehäuse, dessen Herstellung relativ zeitaufwendig war, nur aus Pappe, doch es ist stabil genug und beeinträchtigt bei Fahrten nicht.\\ Es gibt dennoch einige Mängel, die den finalen Entwurf eben nicht perfekt machen: Wie bereits erwähnt, gab es einige Pannen bei den Testfahrten, die sich auf den Zusammenbau unserer Konstruktion zurückführen lassen. Da wir für die Befestigung der Konstruktion ausschließlich Heißkleber verwendeten, bildet das Gerüst des Körpers zwar eine stabile Basis, doch die außen angefügten Räder fielen des Öfteren von den Motoren ab. An dieser Stelle wollten wir genug Kleber für einen festen Halt aber auch nicht zu viel Kleber am Motor verwenden, aufgrund der Sorge, dass die Räder verkleben könnten und sich nicht mehr an den Motor drücken lassen. Dies passierte ebenfalls einige Male und war nicht so leicht zu kurieren. Dadurch fielen die Räder allerdings auch ab und eine andere Methode zur Befestigung, wie zum Beispiel Schrauben, wäre möglicherweise idealer gewesen. Doch auch an den Armen und vor allem dem Kopf wäre eine stabilere Verbindung praktisch gewesen. Hier reichte der Heißkleber zum Verbinden am Gerüst aus, doch die kleinen Mikro-Servomotoren, die wir verwendeten, sind nicht für größere Gewichte geeignet. Bei den Testfahrten reichten die Motoren zwar aus, um Arme und Kopf zu bewegen, doch der Kopf fing des Öfteren, aufgrund der ruckartigen Bewegung, an hin- und her zu wackeln. Größere und stabilere Motoren könnten das Problem lösen, doch die Mikro-Servos reichen für unsere Zwecke trotzdem aus.\\ Zusammengefasst gab es einige Herausforderungen in der Konstruktion, die durch eine bessere Planung leichter zu lösen gewesen wären. Doch die Konstruktion hält und das Projekt ist größtenteils funktionsfähig. Ansonsten gibt es noch einige Aspekte, die wir, aufgrund von Zeitgründen, nicht ausbauen konnten. Diese könnten zukünftig von uns, oder einer anderen Gruppe erweitert werden:\\ Das Erste was fehlt ist ein festliegender Akku für die Schrittmotoren, sowie die externe Stromquelle für den Arduino Nano. Wie in den Videos zu sehen ist, mussten wir bis zuletzt Powerbank und Akku bei jeder Testfahrt mithalten, da wir noch keinen Platz für eine Befestigung finden konnten (der Innenraum ist mit den technischen Bestandteilen ausgelastet). Dann wäre da das Gehäuse für die Arme. M-O besitzt eigentlich noch rundliche Arme, für die ein weiteres Gehäuse, vorzugsweise auch aus Pappe, angebracht werden müsste. Aus Zeitgründen und aufgrund von Prioritäten, war dies allerdings nebensächlich. Des Weiteren fehlt noch die Inbetriebnahme der LED-Matrizen. Zwar befinden sich die LED-Matrizen bereits im Kopf, doch wir konnten sie bisher noch nicht verkabeln. Beide von uns verwendeten Breadboards sind nahezu vollständig ausgenutzt, weshalb es schwierig ist, sämtliche Kabel der LEDs anzubringen. Ein weiteres Breadboard wäre vermutlich vonnöten, doch auch die begrenzte Anzahl an digitalen Pins auf dem Arduino Nano stellt ein Problem dar. Die LED-Matrizen haben wir bereits vollständig programmiert, doch selbst dann gibt es noch das Problem, dass wir bereits ca. 95% des Arduino-Speicherplatzes verwenden und der LED-Code benötigt weitere 8%. Dies liegt vor allem an der Größe der Audiodateien, die wir verwenden, da diese einen Großteil des Speicherplatzes ausnutzen. Da der Code zur Verfügung steht, müsste lediglich der Gesamtcode komprimiert werden, um mehr Speicherplatz freizugeben. Stattdessen könnte der verfügbare Speicherplatz selbst erhöht werden bspw. durch den Einsatz eines anderen Mikrocontrollers (Arduino Uno) oder mithilfe einer zusätzlichen SD-Karte. Zuletzt könnte in Zukunft der Lebenszyklus des Roboters erweitert werden. In unserem Fall besitzt der Roboter einen Arbeitsstrang, der beim Auftreffen auf eine schwarze Oberfläche endet, doch es könnten noch Erweiterungen, wie zum Beispiel eine alternative Startsequenz, etabliert werden, wie es in unserem ursprünglichen Plan gedacht war. \\ {{:projektesose24:m-o:m-o_testfahrt_auf_gerader_strecke.mp4|M-O: Testfahrt auf gerader Strecke}}\\ > **Video 1:** Jungfernfahrt auf gerader Strecke. Aufgrund der im Abschnitt [[projektdokumentation#Systembestandteile im Detail|Systembestandteile im Detail]] unter dem Punkt Fortbewegung genannten Hindernisse, ist das Abbiegen zu diesem Zeitpunkt noch nicht geglückt.\\ {{:projektesose24:m-o:m-o_testfahrt_-_fehlgeschlagenes_abbiegen.mp4|M-O: Testfahrt im Kreis}}\\ > **Video 2:** Testfahrt im Kreis. Weiterhin nicht in der Lage abzubiegen.\\ {{:projektesose24:m-o:m-o_testfahrt_im_kreis_-_kurvenerkennung.mp4|M-O: Testfahrt im Kreis mit erfolgreicher Linienverfolgung}}\\ > **Video 3:** Weitere Testfahrt im Kreis. Nach Veränderung der Schrittzahl, ist die Linienverfolgung geglückt.\\ ===== Programmcode und Rohdaten ===== * {{:projektesose24:m-o:m-o_programmcode.zip|}}\\ * {{:projektesose24:m-o:m-o_rohdaten.zip|}}\\ * {{:projektesose24:m-o:encodeaudio-windows.zip|}}\\ ===== Quellenverzeichnis ===== * Pololu - DRV8834 Low-Voltage Stepper Motor Driver Carrier **1.)** * https://www.pololu.com/product/2134 * Pololu - Stepper Motor: Bipolar, 200 Steps/Rev, 28×32mm, 3.8V, 0.67 A/Phase **2.)** * https://www.pololu.com/product/1205/ * https://www.mintgruen.tu-berlin.de/robotikWiki/doku.php?id=inventar * https://www.mintgruen.tu-berlin.de/robotikWiki/doku.php?id=inventar:motoren_und_antriebe * Inbetriebnahme/Ansteuerung der LED-Matrizen (u.a. verwendete Bibliotheken): **3.)** * https://randomnerdtutorials.com/guide-for-8x8-dot-matrix-max7219-with-arduino-pong-game/ * https://newbiely.com/tutorials/arduino-nano/arduino-nano-led-matrix * Line-Following-Robot – Inspiration zur eigenen Umsetzung: * https://projecthub.arduino.cc/lightthedreams/line-following-robot-34b1d3 * Ansteuerung eines Nema 11 Schrittmotors mit einem 8825 Driver: * https://www.makerguides.com/drv8825-stepper-motor-driver-arduino-tutorial/ * Audioausgabe über einen Piezolautsprecher mit einem Arduino Nano ermöglichen: * https://youtu.be/XvcQ6HXSCk8 (hilfreiches YouTube-Video) * Paper Replika - Papiermodell von M-O zum Nachbauen **4.)** * https://paper-replika.com/index.php/disney/m-o-paper-model