Ich möchte über meine Arbeit und unser gemeinsames Haustierprojekt sprechen - einen mobilen Innenroboter, der auf einer Reihe von ARDUINO-Mikroprozessorplatinen (ATMEGA328 - wie Sie besser sehen), ESP8266 und Raspberry Pi basiert. Meine Freunde und ich nannten ihn MIRO - von "Mobile Intelligent RObot".

Inhaltsverzeichnis:
Teil 1 ,
Teil 2 ,
Teil 3 ,
Teil 4 ,
Teil 5 .
Ich bin Leiter des Trainings- und Forschungszentrums für Robotik an der Pacific State University und gleichzeitig unser lokaler kleiner Hackspace EastMaker. Unser Universitätszentrum besteht seit dem fünften Jahr. Formal sind wir eine strukturelle Einheit der Universität, die (unerwartet) zwei Hauptaktivitätsvektoren hat: akademische und wissenschaftliche. Die wissenschaftliche Tätigkeit bezieht sich bislang hauptsächlich auf das verfügbare Gepäck - Navigations- und Kommunikationssysteme für die Unterwasserrobotik. Schon vor dem Erscheinen unseres Zentrums existierte das Labor für Intelligente Technologien und Systeme (LITiS) am Department of Computing Engineering, einem gemeinsamen Labor mit dem Institut für Probleme der Meerestechnologie, Zweigstelle Fernost der Russischen Akademie der Wissenschaften. Und es existiert immer noch. Als das Zentrum gegründet wurde, wurde der Leiter dieses Labors sein wissenschaftlicher Leiter, und das Robotikzentrum wurde zu einer Ressourcenbasis für LITiS.
Die zweite Komponente der Aktivität ist Bildung. Der Bildungsprozess im Zentrum wird im Rahmen der Projektaktivitäten von Schülern und Schülern aufgebaut (wir beziehen Schulkinder in eine Reihe von Projekten ein). Sowohl Studenten als auch Doktoranden aus fast allen technischen Bereichen arbeiten an Projekten.


Unser Zentrum ist abteilungsübergreifend und keiner Abteilung zugeordnet. Projekte, Forschung und Entwicklung auf unserer technischen Basis können von Studenten und Mitarbeitern der gesamten Universität durchgeführt werden. Wenn es nur einen Wunsch gäbe und diese Basis genug wäre.
Zusammen mit dieser Aktivität gründeten meine Freunde und ich eine private Schule für Robotik und angewandtes Ingenieurwissen für Kinder in Chabarowsk. Und für pädagogische Aktivitäten in der Schule und im Zentrum für Robotik wurde fast sofort klar, dass eine Art junger Kampfkurs erforderlich war, der die Grundlagen in den folgenden Bereichen enthüllte:
- Grundlagen der Mikroprozessortechnologie;
- einfache Sensoren (Funktionsprinzipien, Verwendungsmerkmale);
- Grundlagen der Materialbearbeitungstechnologien (Fräsen, Laserschneiden, 3D-Druck);
- Steuerungsszenarien und einfache Algorithmen aus dem Bereich der mobilen Robotik.
Dann schien es mir sehr richtig, dass das Objekt dieses Kurses eine Art billiger ARDUINO-Roboter sein sollte.
Wir haben uns angesehen, was auf dem Markt ist. Und sie entdeckten die folgende Seltsamkeit. Es gab wirklich gute ARDUINO Roboter und Kits. Oft recht teuer. Aber sie hatten normalerweise zwei große Minuspunkte:
- die Verwendung eines bestimmten "originalen" Bügeleisens (oft das gleiche ARDUINO, jedoch in der Version des Autors, bei dem ausschließlich Bretter von einem Hersteller gekauft werden);
- Mangel an Unterrichtsmaterial (dies ist im Allgemeinen eine interessante Sache - die Leute stellen ausgezeichnete Kits und Kits für die Ausbildung her, aber es ist ihnen überhaupt nicht wichtig, elementare Dinge zu veröffentlichen: Handbücher, Lektionen, Arbeitsbücher (falls erforderlich)).
Vor fast vier Jahren erschien MIRO. Aber gerade erschienen. Im Laufe der Zeit hat sich die Logik dieses Projekts vollständig geändert.
Zunächst haben wir einen Bildungskomplex basierend auf unserem Roboter erstellt. Und dort gab es kein ESP und keinen Raspberry Pi. Es gab ARDUINO und ein Bluetooth-Modul. Hier ist der allererste Wagen:

Mit diesem Wagen wussten wir, was wir mit Schülern machen sollten. Selbst beim ROBOMECH-Festival, das wir in Chabarowsk organisiert haben, haben sie einen kleinen Robofootball für Besucher zusammengestellt.

Nach einiger Zeit haben wir die zweite Version erstellt, die im Prinzip nicht anders war, abgesehen von der Form und einigen Verbesserungen im Layout. Zu diesem Zeitpunkt haben wir auch den 3D-Druck vollständig aufgegeben - alle Halter und Halterungen wurden durch Laserschneiden aus zwei Plattenmaterialien (Acryl und Sperrholz) hergestellt.

Wir hatten bereits ausgezeichnete illustrierte Anweisungen für die Zusammenstellung des Kits, eine Art Bildungsprogramm mit Handbüchern und Arbeitsbüchern, und wir bildeten Schulkinder und Schüler aktiv aus, führten Meisterkurse an Tagen der offenen Tür und an Feiertagen in der Stadt durch.
Um diese Zeit wurde der Markt mit verschiedenen Entscheidungen zu diesem Thema überschwemmt. Und die Fähigkeiten von ATMEGA328 in der realen Robotik, selbst für die Ausbildung, sind zu unbedeutend geworden. Dann wurde das neue MIRO-Konzept für Innenroboter geboren, eine offene Lösung für das schnelle Prototyping von mobilen Innen- und Außenrobotern mit ausreichend funktionaler Hardware, mit der Sie in OpenCV und ROS und alle Arten von IOT eintauchen können.
Das Wesentliche des heutigen MIRO-Konzepts.
Erstens ist MIRO ein kleiner mobiler Roboter mit vollständig Open Source (bis zu den verwendeten vorgefertigten seriellen Komponenten und Karten - wenn der Hersteller keine Quelle bereitstellt, haben wir diese auch nicht), der unter der CC Attribution Share Alike 4.0-Lizenz vertrieben wird.
Der Körper des Roboters wird durch 3D-Druck und Laserschneiden hergestellt. Um die Kosten zu senken, wollten wir nach der ersten Version des Roboters im Allgemeinen keinen 3D-Druck in der Produktionstechnologie einsetzen. Nachdem ich in der zweiten Version unter Blattmaterialien gelitten hatte, gab ich die Idee, die Kosten zum Nachteil von Qualität und Funktionalität zu senken, vollständig auf. Und heute ist MIRO zu 90% mit 3D-Druck fertiggestellt. Mechanisch viel zuverlässiger und angenehmer zu bedienen. Das einzige Ziel, das wir bei der Gestaltung von Körperteilen unterstützt haben, ist die einfache Druckbarkeit. Ich wollte komplizierte Stützen und „krumme“ Abschnitte vermeiden - damit wir auch auf einem billigen 3D-Drucker ein gutes Ergebnis erzielen. Mit Blick auf die Zukunft werde ich sagen, dass wir dies erreicht haben - der Kontrolldruck ohne Änderungen an den absoluten ANET A6-Konsumgütern hat dies bestätigt.
MIRO hat eine gewisse Modularität.

Das vordere Sensormodul kann ganz einfach ausgetauscht werden, ohne den Roboter zu zerlegen. Darüber hinaus ist das Design des Roboters so konzipiert, dass fast alle Komponenten leicht zugänglich und leicht austauschbar sind. Sie suchten genau die Bequemlichkeit der Bedienung und Modifikation. Ich werde etwas später darüber sprechen.
Zweitens sind MIRO entwickelte Softwaretools:
- Roboter-API für ATMEGA328 mit einer Kommunikationsbibliothek mit Raspberry Pi (noch in der Entwicklung) oder mit einem Host über UART (aber fertig).
- Beispiele für Lektionen und Programme von den einfachsten Motordrehungen bis hin zum technischen Sehen mit der Übertragung eines Videostreams oder der Videoverarbeitungsergebnisse an einen Host. Machen Sie in naher Zukunft eine Reihe von Beispielen unter ROS.
- Vorgefertigte Raspbian- Images mit vorinstallierten Bibliotheken und Software, virtuelle VirtualBox- Maschinen auch mit vorinstallierter Entwicklungssoftware.
Zusätzlich schreiben wir eine detaillierte
Karte der Produktion des Roboters, damit jeder ihn zu Hause / in einem Kreis / CMIT / Universität zusammenbauen kann.
Derzeit wird im Beta-Test eine
Site mit der Möglichkeit, ihre Projekte für MIRO zu veröffentlichen. Bisher können dort nur kleine Dateien gehostet werden, aber im Laufe der Zeit werden wir uns wohl herausarbeiten.
Jetzt wird es eine Reihe von Artikeln über MIRO geben, in denen ich mit allen Details ausführlicher darauf eingehen werde.
Ehrlich gesagt ist das Materialvolumen bereits so groß, dass es für mich schwierig ist, die Repositorys rechtzeitig zu aktualisieren (dies ist immer noch nicht die Hauptarbeit). Aus diesem Grund kann es zu Fehlern und Auslassungen in den Materialien kommen. Außerdem habe ich absolut keine Erfahrung in der Unterstützung von Open Source-Projekten. Ich hoffe, das alles bald zu lernen.
Außerdem ist geplant, alle Materialien ins Englische zu übersetzen. Dies ist eine separate große Arbeit für uns und wir hatten einfach noch keine Zeit dafür.
Einige der Materialien aus der Artikelserie werden durch meine Anweisungen aus den Repositories dupliziert, aber an einigen Stellen werden sie detaillierter sein.
Lassen Sie uns heute die Hardware des Roboters durchgehen.Der MIRO-Roboter basiert auf drei gängigen Mikroprozessorsystemen:
- ARDUINO (basierend auf Atmel ATMEGA328, AVR-Kern)
- ESP8266
- Raspberry Pi (welche Version ist momentan nicht wichtig).
Der MIRO-Roboter wird von einer Batterie mit einer Nennversorgungsspannung von 7,4 V (Li-Ion 2S) gespeist. Um die 5 V zu erhalten, die von den meisten Mikroprozessorgeräten des Roboters benötigt werden, wird ein LM2596S-Wandler verwendet.
Standardmäßig werden alle Sensoren und Aktoren von ATMEGA328 gesteuert.
Der ESP8266 ermöglicht die drahtlose Programmierung des ATMEGA328-Chips aus der ARDUINO IDE-Umgebung und dient auch als SERIAL-WIFI-Brücke, die den drahtlosen Datenaustausch mit der seriellen ATMEGA328-Schnittstelle (UART) über das TELNET-Protokoll ermöglicht. Offensichtlich sind ATMEGA328 und ESP8266 über RX / TX-Leitungen verbunden.
Um den ATMEGA328-Chip drahtlos zu implementieren, wird die RESET-Leitung dieses Chips mit der GPIO2-Leitung des ESP8266-Mikrocontrollers verbunden.
Somit enthält MIRO auch ohne Raspberry Pi eine entwickelte und praktische Architektur für die Entwicklung.
In der Grundkonfiguration des Roboters mit dem Frontmodul SENS1 sind folgende Sensoren und Geräte an den ATMEGA328-Mikrocontroller angeschlossen:
- Digitale Kilometerzählersensoren (linkes und rechtes Rad)
- Treiber des linken und rechten Motors auf L9110S-Chips
- Ultraschallleitungssensor HC-SR04
- Photoresistive Lichtsensoren (links und rechts)
- Piezo Sound Emitter
- LEDs für Frontlicht (links und rechts)
- Liniensensoren (links, rechts und Mitte)
- Kamera-Neigungsservomotor
Die Geräte 3-7 sind optional und können durch beliebige Sensoren oder Geräte ersetzt werden. Sie können Ihr eigenes Frontmodul als Gegenleistung für das vorgeschlagene Modul (in den Dokumenten als SENS1 bezeichnet) mit Ihren Aufgaben und Geräten entwerfen und herstellen.
Die Geräte 1, 2 und 8 sind für die Funktion des Roboters obligatorisch und beinhalten kein Herunterfahren. Es ist verständlich - ohne die Motortreiber kann sich der Roboter nicht bewegen, und ohne Kilometerzählersensoren können Sie nichts über die Art der Bewegung des Roboters sagen und Sie können seine Bewegung nicht genau steuern. Nun, die Kameraaufhängung (wenn man es so nennen kann) ist wahrscheinlich auch ein wesentlicher Bestandteil.
Der Raspberry Pi ist über I2C (TWI) mit dem ATMEGA328 verbunden. Eine Raspberry Pi Camera v1.3-Kamera ist an die Raspberry Pi-Karte angeschlossen.
Ich möchte auf die seriellen Komponenten achten, die jetzt in MIRO verwendet werden. Grundsätzlich haben wir uns auf einen chinesisch-russischen Hersteller konzentriert (in der Produktionskarte, in der Liste der seriellen Komponenten, sehen Sie den Namen des Unternehmens). Dies wurde teilweise absichtlich gemacht. Die Chinesen haben viele Module von Hochtönern, Pfeifen und anderen Konsumgütern. Dieselben Typen repräsentieren zumindest einige Marken mit Nomenklaturbezeichnungen. Und Sie können zumindest irgendwie angeben, was genau das Stück Eisen in dem einen oder anderen Knoten des Roboters sein soll. Obwohl sie die gleichen Konsumgüter für wenig Geld verkaufen. Ich habe sie mir genau angesehen und war beeindruckt, dass es sich um eine russische Firma handelt. Und die Botschaft, die sie auf ihrer Website veröffentlichen, inspirierte ihn zu Hoffnungen, dass die Jungs "für alles Schöne". In Wirklichkeit ist anscheinend alles ein bisschen nicht so gut. Der Schaltplan zumindest der UNO + WiFi-Karte dieses Herstellers hält keiner Kritik stand.

Es ist nicht vollständig und wird mit vielen Fehlern ausgeführt. Demnach konnten wir nicht alle Komponenten der Platine bestimmen, mit denen verbunden ist.
In der Platine selbst haben Designer einen nutzlosen Fehler / eine nutzlose Funktion zusammengenäht: eine einzelne ATMEGA328- und ESP8266-Rücksetzschaltung. Dies bedeutet, dass es auf dieser Karte unmöglich ist, die drahtlose ATMEGA328-Firmware über ESP8266 zu organisieren. Wenn ESP8266 versucht, ATMEGA zurückzusetzen, wird eine eigene Rücksetzleitung gezogen. Gleichzeitig verfügt die Karte über eine separate Taste zum Zurücksetzen des ESP und eine allgemeine Reset-Taste für alle Controller gleichzeitig. Darüber hinaus ist der DIP-Schalter für 8 Leitungen auf die Platine gelötet. Und der achte Schalter ist nicht beteiligt. Am Ende habe ich die ESP-Rücksetzleitung unterbrochen und es möglich gemacht, sie mit diesem achten Schalter über das Montagekabel an die gemeinsame Rücksetzschaltung anzuschließen. Das heißt, wenn Schalter 8 ausgeschaltet ist, kann ESP nur durch Drücken der ESP RESET-Taste zurückgesetzt werden, und ein Signal auf der gemeinsamen RST-Leitung oder Drücken der allgemeinen Reset-Taste setzt das ESP nicht zurück. Wenn der Schalter eingeschaltet ist, kehrt alles in den Zustand vor der Änderung der Karte zurück.
Es bleibt abzuwarten, wie die Rücksetzschaltung unterbrochen werden kann. Ich fand die schmerzloseste Lösung.
- Löten Sie die D3-Diode in der Nähe des Steckers, um eine externe Antenne anzuschließen.
- Löten Sie den Kondensator zwischen dem Schenkel der gelöteten Diode (3,3 V) und der Masse.
Wenn Sie jetzt die Reset-Taste drücken, wird ESP nicht zurückgesetzt.
Ich erinnerte mich an die Nachricht auf der Website und schrieb ihnen einen Vorschlag, um diese „Funktion“ zu korrigieren. Aber sie haben mir nicht einmal geantwortet.
Ich wollte mein Stück Eisen überhaupt nicht machen, aber anscheinend musste ich es. Auch unter einer offenen Lizenz.
Es gibt eine alternative Lösung - die übliche Arduino UNO und eine solche Erweiterungskarte (oder so ähnlich).

Hier ist es jedoch etwas unpraktisch mit der ESP-Firmware. Die ESP-Firmware in ihrer aktuellen Rolle in MIRO ist jedoch ein ziemlich seltenes Verfahren.
In jedem Fall müssen Sie den GPIO2 ESP8266 an die Reset-Leitung des ATMEGA328-Controllers für drahtlose Firmware anschließen. Sie können ein anderes GPIO auswählen, aber es ist GPIO2, das im MIRO-Code registriert ist (oder der Code muss korrigiert werden). Aus Unerfahrenheit wählten sie zunächst das erste, was zur Hand war, wie sie sagten: GPIO0. Aber sie erkannten schnell ihren Fehler - für die ESP-Firmware musste dieser Jumper getrennt / entfernt werden, da die GPIO0-Leitung in ESP in der Firmware-Prozedur verwendet wurde.
Allgemeines Fazit: Bei der Montage von MIRO können Sie beliebige Karten aller Hersteller verwenden, mit denen Sie die Anforderungen des Schaltschemas erfüllen können.
Das vollständige Schaltbild des MIRO-Roboters wird in einem der genannten
Repositories präsentiert .
Sofort eine banale Frage. Gibt es ähnliche Lösungen auf dem Markt? Natürlich gibt es. Aber teuer. Übrigens haben die Leute, die hier eine Reihe von
Artikeln über den ROS-Wagen veröffentlicht haben, auch das Fehlen einer mehr oder weniger zugänglichen „Eisen“ -Lösung festgestellt. Es wird großartig sein, wenn die Autoren und ich ihre Ergebnisse auf MIRO verkörpern.
Nun im Allgemeinen zu den Plänen. Für die Entwicklung von allem und jedem vor der dritten Version erhielt das Projekt die Unterstützung des Staates. Finanzierung. Der Fonds zur Förderung der Innovation. Dafür vielen Dank an ihn. Ohne dieses Geld hätten wir ihn wahrscheinlich bei uns gelassen und in einer ganz anderen Qualität. Ich möchte wirklich, dass der Roboter eine Plattform für Prototyping, Training und Experimente wird, die die Grundlage für eine echte Interaktion von CMITs (FabLabs, Hacks) in unserem Land bildet. Es wurde zu einem besonderen Punkt gemeinsamer Bemühungen, bei dem der Beitrag eines jeden zum Vorteil aller wird. Ich verstehe klar, dass ich auf Einheiten von Teams zähle, für die es interessant wird. Aber auch eine solche Interaktion wird ein Erfolg sein. Ich bin sehr ermutigt darüber, wie es im Westen ausgeht - wie an einem praktisch leeren Ort und auf Initiative einiger gelangweilter Menschen entsteht ein riesiges Ökosystem. Was ist, wenn es klappt? Es gibt viele Anwendungspunkte.
Die aktuelle Entwicklungs-Roadmap liegt meines Erachtens auf dem Kanban-Board von
GitHub .
Wir haben auch einige Projektentwicklungsrichtlinien entwickelt. Jede Plattform impliziert bestimmte Einschränkungen, "Flags". Ohne sie verwandelt sich alles in Anarchie, und die Plattform entsteht nicht, und wenn ja, lebt sie nicht lange. Auf demselben GitHub befindet sich ein
Dokument , so etwas wie ein Manifest der Plattformentwicklung. Im Laufe der Zeit wird sich dies mit ziemlicher Sicherheit ändern - die Erfahrung wird einfach anpassen, wie bequem es für alle (Benutzer, Entwickler) ist.
Das kommerzielle Potenzial hat das Projekt sicherlich, und das Team und ich werden auch versuchen, es zu nutzen. Wie? Am einfachsten ist die Herstellung und der Verkauf von Montagesätzen. Letztendlich ist es auch eine Möglichkeit, das Publikum von Benutzern zu erweitern, die sich nicht wirklich mit der Produktion beschäftigen möchten. Ohne zu zögern wurde nun beschlossen, eine Vorbestellung von vorgefertigten Robotern auf der Baustelle zu eröffnen.
Vielen Dank für Ihre Aufmerksamkeit und ich freue mich über konstruktive Fragen und Initiativen, die bei der Entwicklung des Projekts helfen.
Der nächste Artikel befasst sich mit der Mechanik, Konstruktion und Herstellung des Rumpfes.
Ein paar Fotos von Robotern.


PS Auf dem Weg wurde das Projekt von Menschen begleitet, die mir sehr am Herzen liegen und zu verschiedenen Zeiten Teil des Teams wurden und bei der Entwicklung des Projekts mithalfen. Unsere beruflichen Wege gingen mit jemandem auseinander, aber ich kann ihren Beitrag nur zur Kenntnis nehmen. Lassen Sie ihre Namen fast niemandem etwas sagen, aber ich hoffe, sie werden sich freuen. Dies ist Jewgeni Ledkow, der jetzt an der FEFU in der Direktion für Bildungsprogramme arbeitet, der den ersten Geschäftsplan für das geschrieben hat, was im Wesentlichen noch nicht war, und das Projekt von ganzem Herzen ertränkt hat. Und Pavel Efimov, der ebenfalls an die FEFU wechselte, in das Robotiklabor, der nur viel direkt oder indirekt mit dem Projekt zu tun hatte. Und Bair Dambaev, der in seine Heimat in Ulan-Ude zurückgekehrt ist und jetzt Kinder in dem von ihm eingerichteten Kinderzentrum unterrichtet. Und noch ein paar Leute, die ihre Arbeit einfach gut gemacht haben.