Offene Robotikplattform

Hallo Allerseits!

Ich hätte da eine Studentin welche eine offene Robotikplattform als Abschlussarbeit entwickeln soll.

Meine ersten Ideen Dazu sehen ungefähr so aus:

Aufgabenstellung:

Konstruieren sie mindestens eine Robotikplattform für den Einsatz in Schulen.
Diese sollte möglichst günstig herzustellen sein. Vorläufiges Ziel <15€, inklusive µC.
Zielsoftwareplattform ist Arduino. ggf. Erstellen vereinfachender Bibliotheken.

Grundfunktionen:
Bewegung in X und Y.
Möglichkeit des Batteriebetriebs >2 Stunden.
Einfache Erweiterbarkeit durch andere.(zusätzliche Aktoren, Sensoren,…)
Beispielimplementierung Ultraschallentfernungsmessung.

Unterrichtsmaterialien:
Erstellen sie erste Unterrichtsmaterialen und „Experimentiervorschläge“.

Optional:
Steuerung über Funk (z.B. Würth BLE ↔ seriell)

Ziel ist daraus ein OpenHardwareprojekt zu machen. Als solches sollen alle Unterlagen zur eignen Herstellung kostenlos zur Verfügung gestellt werden, Schaltpläne, Platinendesigns(mit Link zum Nachfertigen), Bauteilisten, 3d-Druck-Dateien… Natürlich ist auch vorgesehen entsprechende Teilezusammenstellungen in unterschiedlichen Aufbaustadien zu vertreiben, irgendwie muss ich das ja meinem Chef schmackhaft machen. :wink:

Es würde mich freuen wenn ihr eure Ideen dazu beitragen könntet.

Gruß Enrico

1 „Gefällt mir“

Hi Enrico,

das klingt spannend. Kennst du dich mit den bestehenden Plattformen aus?

  • openroberta
  • BOB3
  • snap! / scratch4arduino / ftduino + plugins
  • irgendwas mit LEGO
  • ESP-programmierung
  • Raspberry & co.
  • u.v.m.
    was ich meine ist: es gibt so viel auf dem Markt, man kann so viel machen, man muss sich manchmal finanziell entscheiden für/wider hardware plattformen.

Ich sag mal so: Ich habe mich dieses Jahr für klassische Arduinos entschieden, weil
a.) bei uns eine Fortbildung so gelandet ist, dass sofort das (erste) Unterrichtsmaterial vorhanden ist b.) ich hoffe, dass die Arduinos noch ne Weil e auf dem Markt sind und eine Plattform darstellen, zumindest haben sie sich gehalten für ne ganze Weile, c.) sie noch günstiger sind als raspberry oder noch anderes. d.) sie flexibler einsetzbar wären als z.B. BOB
(Man kann aber auch ganz anders argumentieren.)

Neben obigen Argumenten zählt für mich noch:

  • Das Unterrichtsmaterial muss OER sein, damit man es auf lokale Eigenheiten anpassen kann, verändern kann, etc.
  • Die Bauteile sollten alle Standard sein, dass man sie leicht beschaffen kann
  • Der Hit wäre, wenn es schon in der Basics-Variante Einsatzszenarien gäbe, die auf momentane Bildungspläne passen könnten, bzw. sehr leicht zu realisieren wären, z.b. „Getriebe“ im NWT BP 2016 Baden-Württemberg Gymnasien. Oder Programmierprojekt das zu IMP Profil BW Gymnasium passt usw. Ich kenne mich nicht für andere Schulen aus, was die so „brauchen“.
  • Wie wird gesteuert, d.h. programmiert? Ist das für die Plattform relevant? Ein Scratch-Modul wäre zur Zeit „en vogue“ und evtl. gar nicht schwer aufzusetzen auf bestehende Implementationen.
  • Life-Cycle-optimiert: wieviel Müll entsteht pro Schüler bei einzelnen Projekten. Ist alles recyclebar innerhalb der Schule? Projekte, die standard-Bauteile verwenden, die als Elektroschrott sowieso an Schulen anfallen: alte Mäuse, Tastaturen, Kabel

Klingt nach stream-of-conciousness ideen (2. Tag Elternabend-Marathon), hoffe du kannst damit was anfangen.

VG, Tobias

Hallo Enrico,

viele der von Dir genannten Punkte (z.B. OpenSource-Ansatz) finden sich auch in dem Projekt letsgoING:
https://letsgoing.org/#projekt

Unsere Schule kooperiert im Rahmen des NwT-Unterrichts mit letsgoING. Wir werden gut unterstützt vom letsgoING-Entwicklungszentrum und die Umsetzbarkeit im NwT-Unterricht ist prima.
Hardware-Basis ist Arduino und das Programmieren geschieht grafisch über das Plugin ArduBlock in der ArduinoIDE.

Über eine Kontaktaufnahme würden sich die Leute vom letsgoING-Entwicklungszentrum bestimmt freuen, denn ich habe gehört, dass sie an Kooperationen interessiert sind.

letsgoING wurde auch hier im Forum schon angesprochen.

Gruß
Stefan

Nach meiner Erfahrung ist grafische Blöcke schieben ungeeignet um Problemlösungsdenken zu vermitteln. Also würde ich auf alle Fälle geschriebenes Arduino-C/C++ umsetzen lassen wollen. Wer es trotzdem nicht lassen kann kann z.B. scratch4arduino nutzen. Ansonsten denke ich eher an eine Bibliothek die C in deutsch macht so für die niedrigen Klassen oder auch nicht weil English gibt es in BRB ab der ersten Klasse. Arduino entwickelt sich gerade zum neuen Industriestandard, ist zumindest mein Gefühl. :wink:

Man darf einen Einplatinencomputer(Raspi), welcher ein kompletter Computer ist, nicht mit einem Mikrocontroller verwechseln! Das führt dann auch zu entsprechenden Preisunterschieden.

Was mich bei bisherigen Schulrobotern immer schockiert ist der Preis und die Philosophie. Bei OpenRoberta z.B. finde ich auf die Schnelle keinen Shop oder eigene Hardware. Bei letsgoING auch nicht. Oder es gibt Projekte aber nichts zu kaufen oder zu bauen. Nervt halt. Also Hauptziel Alles für Alle frei zugänglich…und ja Hardware bekommen wir auch nicht umsonst, also muss da was zurückfließen, aber wir brauchen keine 1000% Marge. Zudem sollen Doku, Schnittstellen, usw. erreichbar sein, also sollte es z.B. nur geringer Aufwand sein Sensoren oder ähnliches in China zu bestellen und vorhandene Arduinobibliotheken zu verwenden.

Was ich festgestellt habe, Programmieren begeistert dann wenn sich etwas in der richtigen Welt tut und es nicht nur auf dem Bildschirm erscheint. :wink:

Gruß Enrico

Hallo Enrico,

Vieles, was wir von letsgoING zur Verfügung gestellt bekommen haben, ist nicht auf deren Webseite zu finden: Platinen für mehrere Module, 3D-Druck-Dateien für ein Rovergestell, Einkaufliste von Bauteilen, Unterrichtshefte, Online-Lernplattform mit Schüler- und Lehrerzugängen, Löt- und Aufbauanleitungen, Didaktisches Konzept, …
Ein WLAN-Modul ist wohl angedacht, um sich auch in Richtung „Internet of Things“ weiter zu entwickeln. Das Projekt ist wohl gerade in einer Phase der Erweiterung.

Beides, grafisch oder textbasiert, hat sicherlich seine Vor- und Nachteile und daher hat jedes davon ein Einsatzszenario, für das es besser geeignet ist.

Was mich an ArduBlock angesprochen hat, ist, dass ArduBlock-Programme vor dem Ausführen in ArduinoIDE-Code übersetzt werden, man das auch sieht und ggfs. auch mit dem ArduinoIDE-Code weiter programmieren könnte, wenn man textbasiert programmieren möchte.
Das grafische Programmieren ermöglicht den Lernenden einen Einstieg ohne große Syntax-Hürde und eröffnet ein Weiterarbeiten mit Text-Syntax, wenn man dahin vordringen möchte. Bei beiden Programmierarten ist die Vermittlung von Problemlösungen mittels Algorithmen (z.B. über Flussdiagramme) wichtig und möglich.

Aber das ist ja nur eine von vielen Möglichkeiten den Arduino-Mikrocontroller mit Software „zu füttern“. Wenn man eine andere wählt, so kann man die ganzen Hardware-Module ja trotzdem verwenden.

Die Personen hinter dem Projekt können Dir da bestimmt mehr dazu sagen als ich, ein interessierter und mittlerweile ein wenig eingearbeiteter Arduino-Laie, Ich kann Dir nur sagen, dass wir viel mehr von den Personen von letsgoING bekommen haben, als die Webseite zeigt. Und das, was wir gerade am umsetzen sind, passt für uns sehr gut.

Gruß
Stefan

Man muss halt unterscheiden ob man „Programmieren“ vermitteln will oder allgemeingültiges Problemlösungsdenken anhand von Programmierung.

Und meine persönliche ist, dass IuT (Internet of unpatchable Things) eine Totgeburt ist. Solche Geräte stellen in der Praxis die Basis für Botnetze. Da die Hersteller zwar komplette Rechner in z.B. IP-Kameras einbauen, aber dann den Softwaresupport einstellen und die Geräte trotzdem softwareseitig vernagelt lassen. Es wäre ja schon doof wenn der Kunde selbst patchen könnte. Aber das ist eine andere Diskussion.

Gruß Enrico

Hi Enrico,

deine Erfahrung (Masterthesis) hättest du ruhig an den Anfang stellen können, hätte ich mir 90% meines Beitrages gespart :slight_smile: Ich hab auch drin geschmöckert…

Ich stimme dir hier nicht ganz zu:

ins Problemlösungsdenken (mit Hilfe eines Werkzeugs wie Computer) muss man erst reinkommen. Da hilft es, wenn man sich nicht mit Syntaxfehler rumschlagen muss. Mir reicht das auch ein Jahr scratch, danach sollen die SuS anders zum Ziel kommen.

Bei allem anderen stimme ich dir zu, v.a.

Warum dann nicht ArduBlock? Es ist grafisch und textbasiert, da kann man grafisch anfangen und textbasiert weitermachen, wie Stefan es schreibt.

Die Frage ist ja, was du der Studentin „aufgibst“, was dabei herauskommen soll, z.B. eine Arduino-Bibliothek, die in die Arduino-Welt aufgenommen werden kann und dazu die Ardublocks, dass man grafisch anfangen kann.

Der transparenzhalber:

deine Firma würde also Hardware vertreiben, Sets oder Einzelteile etc. ? Prima Idee.

Vor allem, wenn Unterrichtsmaterialien in creative commons herauskämen (die auch gerne jemand vertreiben kann, Schulen kaufen gerne ein statt auszudrucken…) wäre das super.

VG, Tobias

Nach meiner Meinung ist das mit der Syntax gar kein sooooo großes Problem…man muss halt klein anfangen, siehe Thesis. Beim Blöcke schieben vermauscheln sich die schön getrennten Schritte der Problemlösungstrategie zu sehr, zumindest nach Meinung. Ein Programmablaufplan(PAP) mit eigenen Worten und Stift und Papier hilft da besser um dann im nächsten Schritt den richtigen Befehl zu suchen. Aber ich stelle halt das Programmieren nicht in den Vordergrund, sondern wirklich das Problemelösen. So bekommen die SuS ein Schema an die Hand mit dem man auch Fragen wie „Was mache ich nach der Schule?“ beantworten kann.

Ardublock kannte ich noch nicht, sieht im Video aber nicht uninteressant aus. Aber letzte Version von 2013???..edit: hab gerade ardublock2 auf github gefunden(GitHub - letsgoING/ArduBlock2: Aktuelle ArduBlock Version 2 für das [letsgoING-Projekt](http://letsgoing.org).)

deine Firma würde also Hardware vertreiben, Sets oder Einzelteile etc. ? Prima Idee.

Genau so, Einzelteile, Teilesets und fertige Aufbauten…Aber auch Links zum Bestellen, z.B. www.dirtypcbs.com , da würden wir dann bei jeder Bestellung immernoch 1$ oder sowas abbekommen…

Also du meinst wenn die SuS am Rechner arbeiten reichen keine PDFs?

Gruß Enrico

Mal noch eine Frage. Was wäre denn der Maximalbetrag den ihr für kleine Roboter ausgeben würdet?

Hallo!

Das kommt darauf an, was er alles kann, wie er erweiterbar oder reparierbar etc. ist. Wenn es ein dauerhafteres Ding ist (also z.B. kein Arduino als Basis, wo doch immer wieder Pins drin stecken bleiben etc) wären schon 100 Euro denkbar.
LG
Max

…Pins drin stecken bleiben…

Wie bekommt man sowas hin?

Gruß Enrico

Kabel in spitzem Winkel abziehen? Schüler können in der Hinsicht deutlich mehr als Lehrer… Jedenfalls haben wir schon ein paar „blockierte“ Pins…

Wenn du eine Zange nimmst und das Plastik abziehst, bekommst du die Pins wieder frei

ich lese gerade den ganzen thread und sehe, dass es immer wieder auch um die Nachteile der blockorientierten Programmierung geht. Da empfehle ich mal eine Session mit Jens Mönig, dem Entwickler von Scratch und Snap bei OpenSAP kann man sogar einen MOOC mit ihm machen. Der hat auf Twitter mit einem Uni-Prof für Informatik diskutiert. Screenshot anbei:

Zur Roboterfrage: momentan experimentiere ich sehr viel mit Arduinos, die mit OpenRoberta programmiert werden - das geht gut und ein fertiges fahrendes Auto liegt bei sehr günsitigem einkauf knapp über 10€ - das Tolle ist, dass man das Ganze extrem erweitern kann, von Sensoren über weitere Aktoren - eben die ganze Arduino Bandbreite.
https://kreidezeit.kiwi/?page_id=1586

Hallo zusammen,

Nur ein Gedanke:

wir haben letztes Jahr mit Scratch4Arduino gearbeitet - mein Gefühl war, dass man bei etwas exotischeren Bauteilen (Ultraschall-Abstandssensoren) schnell an Grenzen stößt, bei denen man zusätzliche Bibliotheken einbinden muss, etc.

Wir probieren daher dieses Jahr die Arduino-Programmierung in Python, da das eh unsere Oberstufen-Programmiersprache ist. Dafür benötigt man dei Firmata-Firmware. Ich finde es bisher ziemlich genial, performant und wir schlagen mehrere Fliegen mit einer Klappe. Aber wirklich klüger bin ich erst am Ende des Schuljahres.

Wer Blöcke mag, kennt ja vielleicht Blockly - das ist für ein Projekt vielleicht interessant.
Wir benutzen zur Einführung für die, die von Scratch kommen, diese Seite gerne mal: https://blockly-demo.appspot.com/static/demos/code/index.html

Viele Grüße,
Thomas

was ich an firmata schwierig finde ist, dass der arduino nicht wirklich geflasht wird. das programm bleibt auf dem rechner, sonst natürlich top. Oberstufe ist sowieso von textuellen Sprachen geprägt, aber in der sek1 sehe ich eigentlich keinen grund, obwohl das in 9 gefordert wird.
vor kurzem war ein promovierter techniker bei uns zu besuch, der auf micro:bit als system für die sek1/sek2 schwört, da kann man hinten raus mit python, javascript o.ä. viel machen http://www.ph-gmuend.de/einrichtungen/lehrende/r/ruch-armin seine Bücher gibt er bestimmt gerne weiter, da er sie als cc lizenziert hat

bei openroberta finde ich toll, dass die sensoren, die eingebunden sind wirklich gut funktionieren, also der ultraschall sensor hat bisher super mitgemacht, allerdings sehe ich bei den ausgabegeräten wie einem I2C Display Schwächen, da man nicht alles konfigurieren kann, was man müsste, aber so wird es wohl immer sein, die Bauteile sind einfach zu verschieden

Liebe Grüße,

alex

Vielleicht sollte ich nochmal mein Problem mit Blockprogrammierung erläutern. Ich persönlich bin der Meinung Programmierung zum Selbstzweck ist vertane Zeit. Also sollte man sich überlegen was möchte man wirklich Vermitteln.
Bei Allen hier sollte mittlerweile Soetwas wie ein „Kompetenzrahmenlehrplan“ angekommen sein. Aber was bedeutet „Kompetenz“. Wikipedia sagt dazu:" Der Begriff der Kompetenz in der Pädagogik geht u. a. zurück auf Wolfgang Klafkis Kompetenzmodell der kritisch-konstruktiven Didaktik. Gemeint ist die Fähigkeit und Fertigkeit, in den genannten Gebieten Probleme zu lösen…". Super Also vermitteln wir Problemlösungsdenken. Aber wie löst man eigentlich Probleme? Zum Glück ist das sehr gut untersucht, hierzu wieder was aus Wikipedia. Also geht grob gesagt darum die 5 Phasen des Problemlösens anzuwenden.
Phase 1 ist also erstmal das Erkennen , dass es ein Problem gibt und das definieren wie es nach dem Lösen des Problems sein soll.
In Phase 2 steht vor allem das Informieren, „Wie kann das Problem gelöst werdfen“, respektive für Programmierung „Welche Funktionen stehen " mir zur Verfügung und wie verwende ich diese“.
In Phase 3 erstelle ich mir aus den gewonnen Informationen einen Plan. Fürs Programmieren wäre das also einen PAP(Programmablaufplan) zu erstellen.
Phase 4 ist dann das Umsetzen, Also das Schreiben des Codes.
Und Phase 5 dann Ausprobieren.

Verwende man nun Blockprogrammierung, wo alles fertig dasteht, fällt die Phase 2 komplett weg und Phase 3 und 4 verschmelzen zu einem undurchsichtigen Klumpen und damit kann man Problemlösen nicht vermitteln. Aber wenn das Thema „sich Informieren“ rausfällt betrifft auch andere Bereiche wie z.B. „wie erkenne ich Fakenews?“. Natürlich kann man jetzt argumentieren und sagen, dass ist aber viel einfacher und Verschreiber und vergessene Semikolons können nicht passsieren. Im Deutschdiktat müssen die SuS aber auch ohne Blöcke auskommen. Und vergessene Semikolons und Klammern sind eher der Standart beim Programmieren. Wenn man nun als Ingenieur etwas PRogrammiert reicht meistens eine Sprache nicht. Also ist eh Blödsinn sich da auf eine Sprache und Umgebung zu fixieren. in aller Regel schlägt sogar einfache Sachen wie „if“ nach weil man die 5 Sprachen die man bis jetzt benutzt hat im Kopf nicht mehr auseinander halten kann. Wichtig and er Stelle ist eher, dass man weiß das es in jeder Sprache sowas wie if, while, for, Datentypen, arrays, …(Thema Turing-Vollständigkeit) gibt und für was man diese benutzen kann. Um aber wirklich effektiv zu sein muss ich halt wissen wie ich mich zügig informieren kann und das kann man nicht mit Blockprogrammierung vermitteln.