Roboter programmierbar in Python?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
siggi
User
Beiträge: 79
Registriert: Montag 29. Januar 2007, 14:22

Hallo,

gibt es Roboter in der Art von z.B. LEGO Mindstorms
http://www.conrad.de/ce/de/product/1914 ... 3godxmUAmg
oder
ASURO http://www.conrad.de/ce/de/product/1914 ... 3godxmUAmg
die nicht in "C" sondern in "Python" werden können?

Ich meine auch nicht aufwendiges Gerät, das für Arbeiten im Haus ;-) oder als Spähdrohne :wink: benutzt wird, sondern als Lernspielzeug für Schüler so ab 10 Jahre?

Vergebens habe ich in http://bildungsserver.berlin-brandenbur ... _niko.html nach Niko oder Python-Niko gesucht, der Download für die Gesamtdokumentation funktioniert bei mir nicht.

Edit: Anscheinend handelt es sich bei Niko nur um einen Software- nicht um einen Hardwareroboter: http://kokavecz.kabelinternetdns.de:808 ... spiel.html
Gruss,

siggi
Benutzeravatar
darktrym
User
Beiträge: 784
Registriert: Freitag 24. April 2009, 09:26

Das Teil ist doch via USB fernsteuerbar. Diese Funktionalität bekommst du sicher auch mit Python abgebildet.
„gcc finds bugs in Linux, NetBSD finds bugs in gcc.“[Michael Dexter, Systems 2008]
Bitbucket, Github
BlackJack

@siggi: Python ist für Microcontroller nicht wirklich geeignet, dazu braucht es in der Regel zu viel Speicher. Wenn man also nicht mit Python fernsteuern möchte, müsste man sich nach einem Roboter umschauen der mehr Rechenleistung und Speicher an Bord hat, oder einfach darauf umgerüstet werden kann. Zum Beispiel mit einem Beaglebone Black oder einem Raspberry Pi wo jeweils ein komplettes Linux drauf läuft. Wobei man so etwas vielleicht auch einfach auf einen Fernsteuerbaren draufsetzen kann, so dass die „Fern”steuerung direkt mit dem Roboter durch die Gegend fährt (oder läuft).
siggi
User
Beiträge: 79
Registriert: Montag 29. Januar 2007, 14:22

Sorry, bei Lego hatte ich einen Fehler gemacht, hier ist der richtige Mindstorms Link;
http://search-de.lego.com/?q=mindstorms&cc=DE
z.B. der hier:
http://shop.lego.com/de-DE/LEGO-MINDSTORMS-EV3-31313
Gruss,

siggi
siggi
User
Beiträge: 79
Registriert: Montag 29. Januar 2007, 14:22

@BlackJack: danke, und ich hatte mir schon so was gedacht, da C wesentlich mehr in das Betriebssystem eines PC/Prozessors eindringt als Python. Nachdem ich mir die Bedienungsanleitung von ASURO
http://www.dlr.de/schoollab/Portaldata/ ... oboter.pdf
durchgelesen habe, werde ich wohl oder übel auch C lernen müssen, wenn unser Enkel mal so ein "Spielzeug" bekommen sollte (das man sich selbst zusammenbauen/löten muss/darf; aus handelsüblichen Teilen, finde ich gut).

Was LEGO Mindstorms betrifft, zeigt mir die Anleitung
http://www.lego.com/de-de/mindstorms/do ... -guides/de/
dass da nicht mit C sondern mit GUI-Programmblöcken gearbeitet wird, anscheinend ähnlich wie bei den Programmiersprachen Scratch oder Alice. Also auch nichts für Python mit Umwegen.

Schade :cry:
Gruss,

siggi
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

siggi hat geschrieben:Was LEGO Mindstorms betrifft, zeigt mir die Anleitung
http://www.lego.com/de-de/mindstorms/do ... -guides/de/
dass da nicht mit C sondern mit GUI-Programmblöcken gearbeitet wird, anscheinend ähnlich wie bei den Programmiersprachen Scratch oder Alice. Also auch nichts für Python mit Umwegen.
Mindstorms basiert auf LabView. Das ist wesentlich ausgereifter als Scratch oder Alice. Imo ist das ideal für Schüler, da man bei LabView nicht viel falsch machen kann und Fehler sofort angezeigt werden. Die Fehlermeldungen sind auch meist hilfreich. Python wird ein Krampf sein auch wegen debuggen etc. tut das dir und deinen Schülern bitte nicht an.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Für Mindstorms gibt es doch eine (inoffizielle) Java-Schnittstelle; darüber könnte / sollte es doch möglich sein, mittels Jython zu programmieren.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
BlackJack

@siggi: Auf dem ASURO wird ein Atmel-AVR-Mikroprozessor eingesetzt, die sind so „klein” und „schwach” das dort kaum so etwas wie Abstraktion durch eine Betriebssystemschicht eingesetzt wird, geschweige denn moderne Hochsprachen. Dort läuft *ein* Programm direkt auf dem Prozessor, mit direktem Zugriff auf die Hardware in verhältnismässig wenig RAM und Flash-ROM. Da ist C eine naheliegende Wahl, weil die Sprache standardisiert ist, sehr hardwarenah, gleichzeitig aber recht portabel was die allgemeinen Spracheigenschaften angeht.

Beim ASURO wäre eine „Zusatzgehirn”-Lösung mit einem Embedded-Linux-System die eine serielle Schnittstelle oder USB hat möglich. Von Hardwareseite müsste man das nur auf den Roboter noch drauf setzen und für eine ausreichende Stromversorgung sorgen. Ein einfaches C-Programm in den AVR auf dem Roboter das ein serielles Protokoll anbietet um „remote” die Hardware ansprechen zu können und dann kann man die Steuerprogramme auch in Python schreiben.

Bei LEGO Mindstorms hast Du da nur die offizielle Programmierumgebung angeschaut. Es gibt durchaus Alternativen mit denen man auf der original Firmware programmieren kann, als auch alternative Firmware. Aber auch dort wäre Python höchstens syntaktisch möglich.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Hyperion hat geschrieben:Für Mindstorms gibt es doch eine (inoffizielle) Java-Schnittstelle; darüber könnte / sollte es doch möglich sein, mittels Jython zu programmieren.
Wenn du die Java-VM leJOS meinst, die ist ziemlich unbrauchbar für Jython, das ist sehr minimal damit da Java läuft, aber manchmal wenn man sich wundert warum etwas nicht geht und in den Quellcode guckt dann steht da einfach "TODO".

Aber die Mindstorms, die kann man doch vom PC aus mittels USB/Bluetooth einfach via Python fernsteuern?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
siggi
User
Beiträge: 79
Registriert: Montag 29. Januar 2007, 14:22

BlackJack hat geschrieben:@siggi: ...Da ist C eine naheliegende Wahl, weil die Sprache standardisiert ist, sehr hardwarenah, gleichzeitig aber recht portabel was die allgemeinen Spracheigenschaften angeht..
Ich habe mich jetzt ein bißchen mit C beschäftigt, Konsole und Gui. Python ist ja um Welten einfacher!
Gruss,

siggi
BlackJack

@siggi: Jau, das ist ja auch der Grund warum die Leute moderne Programmiersprachen mögen die sich um Speicherverwaltung selber kümmern, Ausnahmebehandlung kennen, und vernünftige Fehlermeldungen ausspucken statt sang und klanglos mit einer Speicherzugriffsverletzung¹ abstürzen wenn man etwas falsch macht. :-)

Andererseits, wenn man nur ein paar Kilobyte RAM und (Flash-)ROM auf einem Mikroprozessor hat, dann ist C ganz brauchbar und zumindest ein bisschen einfacher als die Dinger direkt in Assembler zu programmieren.

¹ Oder mit einem Guru-Meditation-Error. Ich beschäftige mich gerade ein bisschen mit 'nem Amiga 500. Also ich den früher hatte, habe ich nur damit gespielt.
Antworten