Programmierumgebung für Kinder
Forumsregeln
Bitte beachte die Forumsregeln!
Bitte beachte die Forumsregeln!
Programmierumgebung für Kinder
Hallo,
nachdem mein Sohn inzwischen begeistert mit Brickly programmiert und erste Schritte mit Python macht, möchte ich hier nach dem idealen Setup zwischen Rechner (in diesem Fall Windows 10, könnte aber auch Linux, etc sein), TXT mit CFW und Python fragen. Bisher verpacken wir es in ein ZIP File als App und laden die Programme dann hoch. Auf Dauer ist das aber nicht zielführend. Im Forum habe ich die Möglichkeit über sftp Dateien auf den TXT zu übertragen gelesen. Hierbei sehe ich aber das Problem, dass ich die Programme nicht über das Display starten kann. Hat hierzu schon jemand eine bessere Idee/Umsetzung? Über FTP oder SFTP werden .py Dateien in ein Zielverzeichnis kopiert, gelöscht, etc... . Über eine App kann man diese dann auswählen und starten.
Ziel ist eine "Minientwicklungsumgebung" für Schulkinder. Eigentlich würde mir etwas wie beim Projekt http://www.tigerjython4kids.ch vorschweben. Kennt das vielleicht jemand? Leider wird bei diesem Projekt nur der Lego EV3 und ein Raspberry Roboter unterstützt. Wäre natürlich toll, wenn man hier auch noch den TXT aufnehmen könnte.
Viele Grüße
Heiko
nachdem mein Sohn inzwischen begeistert mit Brickly programmiert und erste Schritte mit Python macht, möchte ich hier nach dem idealen Setup zwischen Rechner (in diesem Fall Windows 10, könnte aber auch Linux, etc sein), TXT mit CFW und Python fragen. Bisher verpacken wir es in ein ZIP File als App und laden die Programme dann hoch. Auf Dauer ist das aber nicht zielführend. Im Forum habe ich die Möglichkeit über sftp Dateien auf den TXT zu übertragen gelesen. Hierbei sehe ich aber das Problem, dass ich die Programme nicht über das Display starten kann. Hat hierzu schon jemand eine bessere Idee/Umsetzung? Über FTP oder SFTP werden .py Dateien in ein Zielverzeichnis kopiert, gelöscht, etc... . Über eine App kann man diese dann auswählen und starten.
Ziel ist eine "Minientwicklungsumgebung" für Schulkinder. Eigentlich würde mir etwas wie beim Projekt http://www.tigerjython4kids.ch vorschweben. Kennt das vielleicht jemand? Leider wird bei diesem Projekt nur der Lego EV3 und ein Raspberry Roboter unterstützt. Wäre natürlich toll, wenn man hier auch noch den TXT aufnehmen könnte.
Viele Grüße
Heiko
-
- Administrator
- Beiträge: 583
- Registriert: 26 Dez 2015, 23:49
- Wohnort: Rhein-Main-Gebiet
Re: Programmierumgebung für Kinder
Hallo Heiko,
Und SCP/SFTP lässt sich ja auch ganz gut in die normale Dateiverwaltung integrieren (zumindest unter Linux, ich glaube aber unter Windows hab ich auch schon mal was enstprechendes gesehen) - damit unterscheidet sich dann "Speichern auf dem TXT" nicht mehr wirklich von "Speichern auf einem USB-Stick" oder ähnlichem.
Damit ein Programm im "Launcher" (d.h. auf dem Display) auftaucht und gestartet werden kann, muss es lediglich als "TXT-App" organisiert sein, d.h. die folgenden Bedingungen erfüllen:
Die einzige Schwierigkeit hierbei ist Debugging: Normalerweise sieht man die Ausgaben (und - hier wichtiger - die Fehlermeldungen) von so einer TXT-App nicht. Man kann zwar Logging für Apps einschalten (mit "echo "logging-start" | nc -c localhost 9000" auf dem TXT, die Ausgaben landen dann in der Datei /tmp/app.log), aber das ist denke ich nicht wirklich anfängertauglich.
Für die Entwicklung ist es daher eventuell besser, die Programme zunächst auf dem PC (am besten gleich in der IDE, wo man dann üblicherweise auch einen richtigen Debugger zur Verfügung hat) laufen zu lassen und sie erst dann auf den TXT zu übertragen wenn sie halbwegs laufen. Das geht sogar für viele Programme, die die Ein- und Ausgänge des TXT verwenden: Man muss dazu dann nur die originale Fischertechnik-Oberfläche laufen lassen (d.h. in der Community-Firmware die "FT-GUI"-App starten), dann kann ftrobopy (das ist die Bibliothek, die die IO-Ansteuerung macht) vom PC aus den TXT "fernsteuern". Dafür brauchst man dann natürlich die passenden Python-Bibliotheken auch auf dem PC (im Wesentlichen PyQt4 und TouchStyle.py für die GUI, sowie ftrobopy für die IO-Ansteuerung). Was damit leider nicht funktioniert ist die Kamera - die wird im "Online-Mode" (d.h. mit dem Python-Programm auf dem PC und Verbindung zum TXT über die Original-Fischertechnik-Software) anders angesteuert als im "Offline-Mode" (d.h. das Python-Programm läuft direkt auf dem TXT).
Liebe Grüße,
Richard
Das dürfte aktuell denke ich die beste Möglichkeit sein. Vor allem, wenn man für den Benutzer auf dem TXT ein Passwort setzt und für den SSH-Zugriff passende Schlüssel erzeugt und installiert (das geht wie sonst auch bei SSH üblich, d.h. der private Schlüssel landet in .ssh/id_irgendwas, und der zugehörige öffentliche Schlüssel kommt auf dem TXT nach /home/ftc/.ssh/authorized_keys). Damit kann man dann auch per SSH auf den TXT zugreifen ohne jedesmal auf dem Touchscreen die Sicherheitsabfrage bestätigen zu müssen.heikoh hat geschrieben: Im Forum habe ich die Möglichkeit über sftp Dateien auf den TXT zu übertragen gelesen.
Und SCP/SFTP lässt sich ja auch ganz gut in die normale Dateiverwaltung integrieren (zumindest unter Linux, ich glaube aber unter Windows hab ich auch schon mal was enstprechendes gesehen) - damit unterscheidet sich dann "Speichern auf dem TXT" nicht mehr wirklich von "Speichern auf einem USB-Stick" oder ähnlichem.
Doch, das geht - das hat mit der Art der Übertragung nichts zu tun.heikoh hat geschrieben: Hierbei sehe ich aber das Problem, dass ich die Programme nicht über das Display starten kann.
Damit ein Programm im "Launcher" (d.h. auf dem Display) auftaucht und gestartet werden kann, muss es lediglich als "TXT-App" organisiert sein, d.h. die folgenden Bedingungen erfüllen:
- Der Programmcode muss in einem Verzeichnis unter /home/ftc/apps liegen. Dabei nicht davon abhalten lassen dass die Namen der Unterverzeichnisse da normalerweise irgendeine lange, kryptische Zahlenkombinaton sind - die legt die "Store"-App beim Nachinstallieren von Apps so an damit es keine Namenskollisionen gibt, aber das ist kein Zwang. Man darf den Verzeichnissen gerne auch sprechende Namen geben.
- In diesem Verzeichnis muss es eine Datei "manifest" geben, die wie hier beschrieben aufgebaut ist und wo eingetragen wird, wie das Programm heißt das gestartet werden soll (das muss dann übrigens auch nicht unbedingt ein Python-Script sein).
Die einzige Schwierigkeit hierbei ist Debugging: Normalerweise sieht man die Ausgaben (und - hier wichtiger - die Fehlermeldungen) von so einer TXT-App nicht. Man kann zwar Logging für Apps einschalten (mit "echo "logging-start" | nc -c localhost 9000" auf dem TXT, die Ausgaben landen dann in der Datei /tmp/app.log), aber das ist denke ich nicht wirklich anfängertauglich.
Für die Entwicklung ist es daher eventuell besser, die Programme zunächst auf dem PC (am besten gleich in der IDE, wo man dann üblicherweise auch einen richtigen Debugger zur Verfügung hat) laufen zu lassen und sie erst dann auf den TXT zu übertragen wenn sie halbwegs laufen. Das geht sogar für viele Programme, die die Ein- und Ausgänge des TXT verwenden: Man muss dazu dann nur die originale Fischertechnik-Oberfläche laufen lassen (d.h. in der Community-Firmware die "FT-GUI"-App starten), dann kann ftrobopy (das ist die Bibliothek, die die IO-Ansteuerung macht) vom PC aus den TXT "fernsteuern". Dafür brauchst man dann natürlich die passenden Python-Bibliotheken auch auf dem PC (im Wesentlichen PyQt4 und TouchStyle.py für die GUI, sowie ftrobopy für die IO-Ansteuerung). Was damit leider nicht funktioniert ist die Kamera - die wird im "Online-Mode" (d.h. mit dem Python-Programm auf dem PC und Verbindung zum TXT über die Original-Fischertechnik-Software) anders angesteuert als im "Offline-Mode" (d.h. das Python-Programm läuft direkt auf dem TXT).
Ich kannte das nicht, aber auf den ersten Blick sieht das so aus als sollte das durchaus machbar sein. Eventuell bringt es ja was, mal bei den Autoren anzufragen ob die daran Interesse hätten?heikoh hat geschrieben: Ziel ist eine "Minientwicklungsumgebung" für Schulkinder. Eigentlich würde mir etwas wie beim Projekt http://www.tigerjython4kids.ch vorschweben. Kennt das vielleicht jemand? Leider wird bei diesem Projekt nur der Lego EV3 und ein Raspberry Roboter unterstützt. Wäre natürlich toll, wenn man hier auch noch den TXT aufnehmen könnte.
Liebe Grüße,
Richard
Re: Programmierumgebung für Kinder
Hallo!
Auch wenn ich bisher nichts mit der Community Firmware gemacht habe hätte ich eine Idee:
Warum muss das denn per ftp, sftp gemacht werden?
Der TXT hat doch eine IP und ist im Netzwerk.
Könnte man nicht einfach den TXT im Explorer als Netzlaufwerk einbinden?
Dann könnte man ohne jegliche Software Daten austauschen.
Gruß
Sven
Auch wenn ich bisher nichts mit der Community Firmware gemacht habe hätte ich eine Idee:
Warum muss das denn per ftp, sftp gemacht werden?
Der TXT hat doch eine IP und ist im Netzwerk.
Könnte man nicht einfach den TXT im Explorer als Netzlaufwerk einbinden?
Dann könnte man ohne jegliche Software Daten austauschen.
Gruß
Sven
Dieses Posting gibt ganz allein meine persönliche Meinung wieder!
-
- Administrator
- Beiträge: 583
- Registriert: 26 Dez 2015, 23:49
- Wohnort: Rhein-Main-Gebiet
Re: Programmierumgebung für Kinder
Hallo Sven,
Wenn man das vom Benutzer ein- und ausschaltbar macht wäre das aber durchaus eine Idee.
Liebe Grüße,
Richard
Muss es nicht, das ist nur am einfachsten (weil alles dazu nötige auf dem TXT schon da ist und läuft).sven hat geschrieben: Warum muss das denn per ftp, sftp gemacht werden?
Prinzipiell geht das. Dazu muss man aber auf dem TXT nochmal zusätzliche Software laufen lassen (in dem Fall "Samba", das die Serverseite von Windows-Netzfreigaben für Linux implementiert) und das braucht halt auch Resourcen (vor allem Arbeitsspeicher), die man auf dem TXT besser verwenden kann (um z.B. Modelle zu steuern).sven hat geschrieben: Der TXT hat doch eine IP und ist im Netzwerk.
Könnte man nicht einfach den TXT im Explorer als Netzlaufwerk einbinden?
Wenn man das vom Benutzer ein- und ausschaltbar macht wäre das aber durchaus eine Idee.
Auf meinem Linux-Rechner brauch ich dafür auch so keine zusätzliche Software - da ist der TXT (mit SFTP) schon "einfach in den Explorer eingebunden"...sven hat geschrieben: Dann könnte man ohne jegliche Software Daten austauschen.
Liebe Grüße,
Richard
- MasterOfGizmo
- Beiträge: 2722
- Registriert: 30 Nov 2014, 07:44
Re: Programmierumgebung für Kinder
Es gibt eine anfängerfreundliche Variante: Man öffnet die Seite "http://meintxt/applog.py". Das klappt allerdings nicht so zuverlässig und man muss ggf. ein oder zweimal Reload drücken, bis der Browser zufrieden ist und man die "logging started"-Meldung sieht. Sobald das der Fall ist kann man auf dem TXT einfch APPs starten und sieht deren Ausgaben dann im Browser auftauchen.richard.kunze hat geschrieben: Die einzige Schwierigkeit hierbei ist Debugging: Normalerweise sieht man die Ausgaben (und - hier wichtiger - die Fehlermeldungen) von so einer TXT-App nicht. Man kann zwar Logging für Apps einschalten (mit "echo "logging-start" | nc -c localhost 9000" auf dem TXT, die Ausgaben landen dann in der Datei /tmp/app.log), aber das ist denke ich nicht wirklich anfängertauglich.
Das ist genau der Code, den ich rauswerfen wollte, weil ihn eh keiner verwendet Alternative wäre das mal zu reparieren.
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32
- PHabermehl
- Beiträge: 2439
- Registriert: 20 Dez 2014, 22:59
- Wohnort: Bad Hersfeld
Re: Programmierumgebung für Kinder
Ich habe da ein webinterface im Hinterkopf, dass die Daten zwischen PC und TXT überträgt. Außerdem könnte das webinterface das debug-logging transparent integrieren... Das wäre doch schon eine halbe IDE...
Gruß Peter
Gruß Peter
- MasterOfGizmo
- Beiträge: 2722
- Registriert: 30 Nov 2014, 07:44
Re: Programmierumgebung für Kinder
Wenn ich Langeweile hätte, dann würde ich Brickly nehmen, dort die linke "Blockly"-Hälfte entfernen und stattdessen CodeMirror da reinbauen (http://codemirror.net/).
Dann würde man seinen Python-Code halt nicht aus Klötzen zusammen klicken, sondern im Code-Editor direkt schreiben. Ohne PC-Zwang direkt auf dem TXT per Handy oder was auch immer ...
Dann würde man seinen Python-Code halt nicht aus Klötzen zusammen klicken, sondern im Code-Editor direkt schreiben. Ohne PC-Zwang direkt auf dem TXT per Handy oder was auch immer ...
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32
-
- Administrator
- Beiträge: 583
- Registriert: 26 Dez 2015, 23:49
- Wohnort: Rhein-Main-Gebiet
Re: Programmierumgebung für Kinder
Dann kannst Du eigentlich auch gleich Nägel mit Köpfen machen und die komplette Debugger-Schnittstelle von Python da drüberschleifen.PHabermehl hat geschrieben:Ich habe da ein webinterface im Hinterkopf, dass die Daten zwischen PC und TXT überträgt. Außerdem könnte das webinterface das debug-logging transparent integrieren... Das wäre doch schon eine halbe IDE...
Gruß Peter
Und wenn Du dann noch einen browserbasierten Editor da mit reinbaust (z.B. https://ace.c9.io/), etwas Datei- und Projektverwaltung drumrumstrickst, und dem ganzen noch eine "Brickly"-artigen, blockbasierten Sprache (für die Anfänger) sowie Unterstützung für Rust und C (für die Experten) mitgibst, dann hast Du das was ich eigentlich schon immer auf dem TXT haben wollte
Und ja, wenn niemand mir da zuvorkommt dann baue ich das irgendwann auch selber - aber nicht bevor die Basis untendrunter hinreichend fertig und stabil ist.
-
- Administrator
- Beiträge: 583
- Registriert: 26 Dez 2015, 23:49
- Wohnort: Rhein-Main-Gebiet
Re: Programmierumgebung für Kinder
Kann man mit dem aktuellen Stand im GIT im Prinzip schon jetzt: Auf dem TXT einloggen, "PYTHONPATH=/opt/ftc jupyter notebook --no-browser --ip $die_ip_des_txt" starten, und dann per Browser auf http://ip-des-txt:8888 gehen. Ist halt ein Jupyter-Notebook, d.h. eher was für die Leute aus der Akademiker-Ecke.MasterOfGizmo hat geschrieben:Dann würde man seinen Python-Code halt nicht aus Klötzen zusammen klicken, sondern im Code-Editor direkt schreiben. Ohne PC-Zwang direkt auf dem TXT per Handy oder was auch immer ...
Und das Ganze frisst fett (meiner Meinung nach zu fett) Resourcen - deshalb werde ich das auch nicht per Default aktivieren (und eventuell auch wieder rauswerfen).
- PHabermehl
- Beiträge: 2439
- Registriert: 20 Dez 2014, 22:59
- Wohnort: Bad Hersfeld
Re: Programmierumgebung für Kinder
Yepp, wenn ich's gewusst hätte... Ab heute haste mindestens einen User, und lass das mal bütteschön 'drin...MasterOfGizmo hat geschrieben:Es gibt eine anfängerfreundliche Variante: Man öffnet die Seite "http://meintxt/applog.py". Das klappt allerdings nicht so zuverlässig und man muss ggf. ein oder zweimal Reload drücken, bis der Browser zufrieden ist und man die "logging started"-Meldung sieht. Sobald das der Fall ist kann man auf dem TXT einfch APPs starten und sieht deren Ausgaben dann im Browser auftauchen.
Das ist genau der Code, den ich rauswerfen wollte, weil ihn eh keiner verwendet Alternative wäre das mal zu reparieren.
Gruß Peter