[ Proxi-Roboter ] [ Seitenende ] [ Coding 1 ]

 

 

 

KOSMOS – der programmierbare Proxi-Roboter

 

 

Montage des ersten Motors

 

Wenn man das kleine Anleitungsbuch im Format DinA5 zum Proxi-Roboter aufschlägt, dann behandelt dieses ab Seite 10 den Einbau des ersten Motors. Dazu muss man aus dem Spritzbaum B die Motor-Gehäuseschale B5 mit dem Seitenschneider herausschneiden,

 

 

(Zum Vergrößern bitte auf das Bild klicken!)

 

dann die drei Zahnradachsen P11 einstecken

 

 

(Zum Vergrößern bitte auf das Bild klicken!)

 

und die vier Zahnräder P5 (weiß), P7 (pink), P6 (orange) und P8 (orange) wie folgt aufstecken:

 

 

(Zum Vergrößern bitte auf das Bild klicken!)

 

Als nächstes wird das kleine, weiße Antriebszahnrad P1 auf die Motorachse des Motors P13 mit den blauen und schwarzen Anschlussleitungen aufgesteckt und der Motor in die Motor-Gehäuseschale B5 eingesetzt:

 

 

(Zum Vergrößern bitte auf das Bild klicken!)

 

Damit Motor und Getriebe später nicht im Gehäuse umherfliegen und ihren Dienst versagen, müssen diese als Nächstes mittels der schwarzen Getriebeabdeckung B3 noch fixiert

 

 

(Zum Vergrößern bitte auf das Bild klicken!)

 

und mittels drei Schrauben P9 mit der schwarzen Gehäuseschale B5 verschraubt werden. Außerdem muss das blau und schwarze Motoranschlusskabel des Antriebsmotors P13 durch die entsprechende Gehäuseaussparung wie folgt nach außen geführt werden:

 

 

(Zum Vergrößern bitte auf das Bild klicken!)

 

Als Nächstes wird die schwarze Justier- und Fixierhilfe A15 (siehe roter Kreis) auf das orange Antriebszahnrad P8 des Motors gesetzt, die beiden schwarzen Zahnräder B9 (links) und A6 (rechts) aufgesteckt und mittels der beiden Schrauben P10 verschraubt. Dabei ist muss unbedingt beachtet werden, dass die beiden schwarzen Zahnräder B9 (links) und A6 (rechts) mit den außen liegenden V-förmigen Kerben in die schwarze Justier- und Fixierhilfe A15 (siehe roter Kreis) einrasten, sodass sich die beiden schwarzen Zahnräder B9 (links) und A6 (rechts) nicht mehr drehen lassen:

 

 

(Zum Vergrößern bitte auf das Bild klicken!)

 

Wie man ferner im nachfolgenden Bild sieht, dient das schwarze Kuppelstangendreieck B2 nicht nur dazu die beiden schwarzen Zahnräder B9 (links) und A6 (rechts) miteinander zu verbinden (siehe grüne Markierung),

 

 

(Zum Vergrößern bitte auf das Bild klicken!)

 

sondern auch dazu, die senkrechte Bewegung spurgenau zu führen! Dabei wird dann auch gleichzeitig die Drehbewegung des Motors P13 in eine senkrechte oszillierende Auf- und Abbewegung umgewandelt:

 

 

(Zum Vergrößern bitte auf das Bild klicken!)

 

Bemerkenswert dabei ist auch noch, dass das Kuppelstangendreieck B2 in seinem unteren Dreieckspunkt C am Ende der senkrechten Hub- und Schubstange eine oszillierende Kreisbewegung vollzieht! Und zwar im selben Uhrzeigersinn wie die beiden schwarzen Zahnräder B9 (links) und A6 (rechts)!

 

Da das Kuppelstangendreieck B2 sowohl eine Auf- und Abbewegung als auch eine Kreisbewegung nach rechts im Uhrzeigersinn vollzieht, heben sich jeweils drei Krabbenbeine, während sie sich dabei auch gleichzeitig kreisförmig nach vorne bewegen, um sich anschließend wieder abzusenken. Durch diese geniale Antriebsart ergibt sich dann eine entsprechende Vorwärtsbewegung mit den sich auf- und absenkenden Krabbenbeinen!

 

Auch wenn die Antriebsart mit den Krabbenbeinen als genial bezeichnet werden kann, ist sie nicht gänzlich neu. Schließlich wurde das Prinzip der Umwandlung einer oszillierenden Kreisbewegung in eine Längs- oder Vertikalbewegung einer Hub- und Schubstange bereits zu Zeiten der Erfindung und Entwicklung der Dampfmaschine entwickelt. Dabei wurde die Dampfmaschine anfangs zum Antrieb von Grubenwasserpumpen bei der sogenannten Wasserhaltung im Bergbau eingesetzt und erst später in Dampflokomotiven verbaut:

 

 

(Vergrößern: auf das Bild klicken! | Quelle: Wikipedia)

 

Bei der oben im Bild zu sehenden Schlepptenderlokomotive erfolgt der Antrieb der großen Achsräder ausgehend von der Kolbenstange 23 über die Treibstange 22 auf die Kuppelstange 20, sodass sich mittels dieser bis zu drei Achsen nebst Radsätzen antreiben lassen.

 

Die Funktion der roten Kuppelstange zu Zwecken des Antriebs des Kuppelradsatzes wird im nachfolgenden Bild besonders deutlich. Dabei wird die oszillierende Auf- und Abbewegung der Kuppelstange wie beim Proxi-Roboter antriebstechnisch nicht ausgewertet und angewendet:

 

 

(Vergrößern: auf das Bild klicken! | Quelle: Wikipedia)

 

Bei der Achsfolge 2’B im obenstehenden Bild werden zwei Radsätze mittels der roten Kuppelstange angetrieben. Dabei wird aber nur der erste große Radsatz (von links) direkt mittels der Treib- und Kolbenstange des einzylindrischen Dampfzylinders angetrieben.

 

Demzufolge werden >> bei einer Dampflokomotive (…) die Treibradsätze von den Kuppelradsätzen unterschieden. Auf die Treibradsätze wirkt die Dampfmaschine direkt durch eine Treibstange. Die Kuppelradsätze dagegen werden nicht direkt von der Dampfmaschine angetrieben, sondern nur indirekt; sie sind an die Treibradsätze angebunden, meist durch Kuppelstangen. << (Quelle: Wikipedia)

 

Im Gegensatz zu der oben gezeigten Badischen II c“-Dampflokomotive werden beim Proxi-Roboter mittels des orangenen Zahnrades P8 alle beiden schwarzen Zahnräder B9 (links) und A6 (rechts) angetrieben, sodass es nicht notweniger Weise auf die Querverbindung der roten Kuppelstange ankommt:

 

 

(Zum Vergrößern bitte auf das Bild klicken!)

 

Dass alle beiden schwarzen Zahnräder B9 (links) und A6 (rechts) mittels des orangenen Zahnrades P8 angetrieben werden macht Sinn, da sich auf diese Weise die Antriebskraft des Motors P13 auf beide Zahnräder gleichmäßig verteilt.

 

Dies ist auch zwingend notwendig, da die beteiligten Zahnräder leicht überspringen können, wenn man die senkrechte Auf- und Abbewegung der sechs Krabbenbeine am Kuppelstangendreieck B2 behindert! Und das passiert schneller als man denkt!

 

Wenn aber früher oder später eines der beiden schwarzen Zahnräder B9 (links) und A6 (rechts) mehrfach überspringt, dann gerät das Kuppelstangendreieck B2 mit der roten Kuppelstange als Querverbindung nach links oder rechts in Schieflage, sodass die oszillierende Auf- und Abbewegung der Kuppelstange nicht mehr ein kreisrunde Bewegung beschreibt,

 

 

(Zum Vergrößern bitte auf das Bild klicken!)

 

sondern vielmehr eine elliptische, eiernde Bewegung:

 

 

(Zum Vergrößern bitte auf das Bild klicken!)

 

Eigentlich müsste man die beiden Zahnräder B9 (links) und A6 (rechts) jeweils separat mit einem eigenen Motor antreiben, beide entsprechend synchronisieren, sodass sich eine Fehlstellung des Kuppelstangendreiecks B2 jederzeit korrigieren ließe. Den dabei zu berücksichtigten Korrektorwert in Form von +/- n Zahnradzähnen nach rechts oder links nennt man übrigens Offset (=Regelabweichung, Versatz). Noch besser wäre es natürlich, wenn man anstelle der herkömmlichen Gleichstrommotoren sogenannte Schrittmotoren verwenden würde. Für den kleinen Proxi-Roboter aber wäre das natürlich zu teuer, zumal die beiden Schrittmotoren auch noch digital mittels des micro:bit“-Rechner angesteuert werden müssten. Aber noch wissen wir gar nicht, wie man den Antriebsmotor P13 programmieren muss, damit er sich dreht und eine Drehbewegung ausführt.

 

 

Antriebsmotor P13 zwecks einer Drehbewegung programmieren

 

Nun ist es also an der Zeit, dass wir den kleinen micro:bit“-Rechner (= Mikrocontroller) erstmalig in Betrieb nehmen und unter Strom setzen. Dabei gilt es zu beachten, dass der Proxi-Roboter von Haus aus über seine eigene Stromversorgung in Form des Batteriefachs P15 verfügt.

 

Wenn man also den Proxi-Roboter an dem seitlichen An-/Aus-Schiebeschalter einschaltet, d.h. auf „ON“ (= Ein) stellt, dann bezieht der kleine Roboter seine Stromversorgung direkt aus dem Batteriefach P15. Dabei wird der „micro:bit“-Rechner gestartet, wobei das im nichtflüchtigen Arbeitsspeicher, engl. „RAM“ = „Random Access Memory“, d.h. „Wahlfreier Speicherzugriff“, gespeicherte Programm automatisch gestartet und ausgeführt wird. Meist handelt es sich dabei um ein werksseitig aufgespieltes Demoprogramm.

 

Wenn man früher oder später sein eigenes Programm auf den „micro:bit“-Rechner aufspielen will, dann muss man zuvor eine Datenverbindung mittels einer Datenleitung vom „Programmier“-Rechner (= Windows-PC, Notebook oder Android-Tablet-PC) zum Proxi-Roboter und seinem Mikrocontroller (= „micro:bit“-Rechner) herstellen.

 

Das zu dem Proxi-Roboter mitgelieferte „Micro-USB 2.0“-Kabel P19 muss dabei mit dem „USB 2.0“-Stecker (und eventuell einem „USB 2.0/USB 3.0 C“-Adapter) einerseits an den Windows-PC oder den Android-Tabletcomputer und andererseits an den „micro:bit“-Rechner angeschlossen, d.h. eingesteckt werden.

 

Dabei lassen sich mittels des „Micro-USB 2.0“-Kabels P19 nicht nur Daten in Form einer Datei übertragen, sondern auch die 5 Volt Stromversorgung zum „micro:bit“-Rechner herstellen!

 

Wenn man zum Programmieren ein Android-Tabletcomputer verwendet, dann muss man sich zuvor noch die „micro:bit“-App aus dem Google Playstore herunterladen und installieren:

 

 

(Zum Vergrößern bitte auf das Bild klicken!)

 

Auch wenn es zunächst den Anschein hat, als sei die Programmier-Entwicklungsumgebung, engl. „programming development environment“, des „micro:bit“-Rechners nur auf Englisch verfügbar, so erkennt diese trotzdem automatisch, dass man mit seinem Android-Tabletcomputer auf Deutsch unterwegs ist:

 

 

(Zum Vergrößern bitte auf das Bild klicken!)

 

Wenn man ein neues Programm erstellen will, dann muss man in der obenstehenden Bildschirmansicht auf die Schaltfläche <Neues Projekt> klicken und nachfolgend einen diesbezüglichen Projektnamen wie z.B. „proxi-roboter, p01“ eintasten und mittels der Schaltfläche <Erstelle> bestätigen:

 

 

(Zum Vergrößern bitte auf das Bild klicken!)

 

Im nachfolgenden Screenshot sieht man jetzt die Programmierumgebung, die im Wesentlichen aus zwei Spalten besteht.

 

Dabei werden in der linke Spalte diverse thematische, funktionelle und zusammenfassende Befehlsgruppen angezeigt, während die rechte Spalte das Programmierfeld mit einzelnen Statements (= Befehle) aufnimmt:

 

 

(Zum Vergrößern bitte auf das Bild klicken!)

 

Wenn man also wissen will, welche Befehle sich hinter der Befehlsgruppe „Grundlagen“ befinden, dann muss man nur auf die jeweilige Befehlsgruppe klicken/tippen, damit sich die entsprechende Befehlsübersicht und –auflistung in einem separaten Fenster öffnet:

 

 

(Zum Vergrößern bitte auf das Bild klicken!)

 

Wenn man das Programm „proxi-roboter, p-01“ starten will, dann muss man unten rechts in der Ecke nur auf das <Start>-Symbol  klicken, sodass das Programm im stilisierten „micro:bit“-Rechner mit der Laufschrift „Hallo, mein Name ist Proxi!“ angezeigt wird.

 

Dabei verhält es sich so, dass das Programm „proxi-roboter, p-01“ in der Programmierumgebung, d.h. innerhalb der „micro:bit“-App simuliert und als Laufschrift angezeigt wird!

 

Wenn man das Programm „proxi-roboter, p-01“ hingegen direkt auf dem „micro:bit“-Rechner ausführen und im 5 x 5 Matrix LED-Display anzeigen lassen will, dann muss man dieses aus der Entwicklungsumgebung heraus als Programmdatei „proxi-roboter, p-01.hex auf den Mikrocontroller mittels „Micro USB 2.0“-Kabel überspielen!

Zu diesem Zweck muss man unten links in der Ecke auf das Icon  klicken, sodass sich ein weiteres, kleines Kontextfenster wie folgt öffnet:

 

(Zum Vergrößern bitte auf das Bild klicken!)

 

Vor dem Herunterladen wird das ursprüngliche Quellprogramm „proxi-roboter, p-01“ der Entwicklungsumgebung in den ausführbaren, sogenannten „HEX“-Programmkode „übersetzt“, d.h. in den Maschinenkode (= Maschinensprache) des „micro:bit“-Mikroprozessors ARM Cortex M0 kompiliert. Dabei wird dem Projektnamen „proxi-roboter, p-01“ bzw. der Projektdatei die Dateinamenserweiterung .hex hinzugefügt und die kompilierte Datei „microbit-proxi-roboter-p-01.hex im

 

·        Google Android-Dateiverzeichns /storage/emulated/0/Download

 

wie folgt abgespeichert:

 

 

(Zum Vergrößern bitte auf das Bild klicken!)

 

Damit sich die aus der Entwicklungsumgebung heruntergeladene und kompilierte „HEX“-Programmdatei „microbit-proxi-roboter-p-01.hex auch direkt auf dem „micro:bit“-Rechner ausführen lässt, muss man diese aus dem

 

·        Android-Dateiverzeichns /storage/emulated/0/Download ins

 

·        Android-Dateiverzeichns /storage/2702-1974

 

kopieren oder verschieben:

 

 

(Zum Vergrößern bitte auf das Bild klicken!)

 

Jetzt wissen wir auch in welches

 

·        Android-Dateiverzeichns /storage/2702-1974

 

der „micro:bit“-Arbeitsspeicher in das Dateisystem des Android-Tabletcomputers eingebunden, engl. „mounted“, wurde!

 

Nachdem die auf dem „micro:bit“-Rechner ausführbare „HEX“-Programmdatei „microbit-proxi-roboter-p-01.hex überspielt wurde, startet sich diese selbständig auf dem Mikrocontroller, führt den kompilierten Befehlskode aus und zeigt auf der 5 x 5 Matrix großen LED-Anzeige die Laufschrift „Hallo, mein Name ist Proxi!“ an. -

 

Wie man weiter oben sieht, wurde der kompilierte Befehlskode der „HEX“-Programmdatei „microbit-proxi-roboter-p-01.hex mittels des sogenannten Total Commander vom Android-Tabletcomputer über das „Micro-USB 2.0“-Kabel P19 auf den „micro:bit“-Rechner aufgespielt. Dabei handelt es sich bei dem Total Commander um einen sehr leistungsfähigen Zwei-Fenster-Dateimanager, den es für das „Windows“- und „Android“-Betriebssystem gibt. Den Total Commander gibt es schon seit September 1993 mit inzwischen weit mehr als 10 Mio. Downloads.

 

Beim Programmieren des ersten „micro:bit“-Programms namens „proxi-roboter, p-01“ fällt beim genaueren Hinsehen auf, dass die sogenannte Programmbibliothek, engl. „library“, wider Erwarten keine Befehle zwecks Programmierung des Proxi-Roboters enthält. Dies ist auch weiter nicht verwunderlich, da es zu Zeiten der Entwicklung des micro:bit-Rechners im Jahr 2014 noch keinen „KOSMOS Proxi“-Roboter gab. Diesbezüglich stellt sich die Frage, wie man an den erweiterten Befehlssatz für den Proxi-Roboter gelangt bzw. die Progammbibliothek um entsprechende „Proxi“-Befehle erweitert.

 

Die Frage, wie man an den erweiterten Befehlssatz für den Proxi-Roboter gelangt bzw. die Progammbibliothek um entsprechende „Proxi“-Befehle erweitert, ist durchaus berechtigt. Vor allem dann, wenn es offensichtlich keine explizite Programmbibliothek, die sich jederzeit erweitern ließe, gibt! Dann ist guter Rat teuer. Aber wo ein Wille ist, ist auch ein Weg. Man muss nur wissen wie:

 

 

(Zum Vergrößern bitte auf das Bild klicken!)

 

Das was man im obenstehenden Bild sieht, ist die „micro:bit“-Entwicklungsumgebung im Browser auf einem Windows-PC. Dies hat den Vorteil, dass der Anwender kein „micro:bit“- Programm als Entwicklungsumgebung auf seinen heimischen Rechner herunterladen muss. Vielmehr muss er einfach nur die entsprechende Webseite mit dem Entwicklertool im Browser aufrufen. Selbstverständlich lässt sich die Webseite mit dem „micro:bit“-Entwicklertool auch auf dem Android-Tabletcomputer aufrufen und zum Programmieren benutzen.

 

Wie man im obenstehenden Bild sieht, gibt es in der „micro:bit“-Programmbibliothek jetzt auch eine Rubrik „KOSMOS - Proxi“ mit entsprechenden „Proxi“-Befehlen für den kleinen Roboter:

 

 

(Zum Vergrößern bitte auf das Bild klicken!)

 

Das Interessante daran ist nun, dass man keine zusätzliche Spezial-Library „Proxi“ von extern aus dem Internet herunterladen und in die bestehende „micro:bit“-Library einbinden muss.

 

Vielmehr muss man einfach nur das „Proxi“- und „micro:bit“-Programm microbit-proxi-roboter-p-02.hex in den über das „Micro USB 2.0“-Kabel angeschlossenen „micro:bit“-Rechner bzw. den Proxi-Roboter überspielen!

 

Wenn wir das gemacht haben, dann gibt es jetzt schon zwei kleine „micro:bit“-Programme, die wir programmiert haben! Und zwar:

 

1.     als Projektdatei „proxi-roboter, p-01
und als kompiliertes, ausführbares Programm „
microbit-proxi-roboter-p-01.hex

2.     als Projektdatei „proxi-roboter, p-02
und als kompiliertes, ausführbares Programm „
microbit-proxi-roboter-p-02.hex

 

Wenn man beide Programme der Reihe nach ausführt und miteinander vergleicht, dann stellt man fest, dass bei beiden nach außen hin nur die Laufschrift „Hallo, mein Name ist Proxi!“ angezeigt wird.

 

Demzufolge könnte man meinen, dass beide Programme 1.) und 2.) hinsichtlich des Programmkodes, auch Quelltext oder engl. „source code“ genannt, identisch sind. Sind sie aber nicht wirklich! So enthält

 

1.     das kompilierte, ausführbare Programm „microbit-proxi-roboter-p-01.hex
nur die
Standardbibliothek des „micro:bit“-Rechners ohne die „Proxi-Roboter“-Befehle

2.     das kompilierte, ausführbare Programm „microbit-proxi-roboter-p-02.hex
die erweiterte
Befehlsbibliothek des „micro:bit“-Rechners mit den „Proxi-Roboter“-Befehlen!

 

Dass sich beide Programme hinsichtlich der Befehlsbibliothek voneinander unterscheiden, lässt sich sogar beweisen! Nämlich in dem man einfach nur die unterschiedlichen Dateigrößen miteinander vergleicht. Demzufolge enthält die größere Datei „microbit-proxi-roboter-p-02.hex eben auch die um die „Proxi-Roboter“-Befehle erweiterte Standardbibliothek des „micro:bit“-Rechners:

 

 

(Zum Vergrößern bitte auf das Bild klicken!)

 

Wenn man den Google Chrome“-Browser startet und den Microsoft „MakeCode“-Editor zwecks Programmieren des „micro:bit“-Rechners aufruft, dann sieht man ganz oben rechts am Ende der Eingabezeile für die Webadresse einen kleinen Monitor mit Download-Pfeil, wo man sich den „MakeCode“-Editor als „Google Chrome“-App(!) auf den Windows-PC herunterladen kann:

 

  

 

(Zum Vergrößern bitte auf das Bild klicken!)

 

Wenn man sich den Microsoft „MakeCode“-Editor herunterlädt und auf dem Windows-PC installiert, dann wird dieser ins Windows-Verzeichnis C:\Program Files\Google\Chrome\Application gespeichert.

 

Achtung:

 

Wegen des Leerzeichens im Verzeichnisnamen Program Files muss später der komplette Verzeichnispfad in Hochkommata gesetzt werden!

 

Dabei trägt der „MakeCode“-Editor den Dateinamen „chrome_proxy.exe“ und lässt sich im sogenannten „Windows Terminal (früher DOS-Box, später Eingabeaufforderung genannt) zusammen mit dem

Parameter --profile-directory="Profile 6" --app-id=mcmafngehdlkdbalhhjdclldacchajan wie folgt am Prompt aufrufen:

 

.\chrome_proxy.exe --profile-directory="Profile 6" --app-id=mcmafngehdlkdbalhhjdclldacchajan

 

 

(Zum Vergrößern bitte auf das Bild klicken!)

 

Der Vorteil der Microsoft „MakeCode“-Editor als „Google Chrome“-App(!) besteht darin, dass wir jetzt auch „Proxi-Roboter“-Programme entwickeln können, ohne dass man dazu über einen Internetzugang haben muss!

 

Selbstverständlich lässt sich der Microsoft „MakeCode“-Editor als „Google Chrome“-App(!) auch vom Windows-Desktop oder über das Startmenü durch Mausklick auf das Icon  aufrufen und starten …

 

 

(Zum Vergrößern bitte auf das Bild klicken!)

 

Wir importieren das „Proxi-Roboter“-Programm „proxi-roboter, p-02“ in den „MakeCode“-Editor.

 

Dabei fällt zum wiederholten Male auf, dass sich das Programm aus den beiden Hauptprogramm-Modulen <beim Start> und <dauerhaft> zusammensetzt:

 

 

(Zum Vergrößern bitte auf das Bild klicken!)

 

Dabei dient der Programm-Block <beim Start> dazu, gleich zu Beginn des Programms, d.h. gleich nach dem Programmstart bestimmte „micro:bit“- oder „Proxi-Roboter“-Befehle erstmalig und einmalig auszuführen.

 

Wenn es darum geht, bestimmte Sensoren, Anzeigen auf dem LED-Display, Programmteile, Funktionen oder Methoden mehrfach wiederholt auszuführen, dann müssen diese im Programm-Block <dauerhaft> platziert werden!

 

Demzufolge handelt es sich bei dem Programm-Block <dauerhaft> um eine permanente Endlosschleife, die so oft wiederholt ausgeführt wird, bis der Strom ausfällt oder das jeweilige Programm beendet wird!

 

Auf diese Weise lassen sich nicht nur statische, sondern auch dynamische, d.h. Ereignis gesteuerte Programme entwickeln. -

 

 

 

[ Proxi-Roboter ] [ Seitenanfang ] [Coding 1 ]