CFW: Brickly (war Blockly)

Community-Firmware (cfw), Selbstbaucontroller (TX-Pi, ftduino, usw.), usw.
Forumsregeln
Bitte beachte die Forumsregeln!
Benutzeravatar
EstherM
Beiträge: 1585
Registriert: 11 Dez 2011, 21:24

Re: CFW: Brickly (war Blockly)

Beitrag von EstherM » 11 Apr 2017, 09:37

So, mit der Anleitung wäre ich jetzt fertig. Alle Abschnitte sind bebildert, und mir sind keine Fehler im Text mehr aufgefallen. Über Korrekturvorschläge würde ich mich sehr freuen. Natürlich werde ich auch Änderungen und Erweiterungen, die sich bei einer neuen Version von Brickly ergeben, gerne einarbeiten (nur bei schlechtem Wetter).
Ich habe noch folgende offenen Punkte gefunden (z.B. aus diesem Thread):
  • Eigene Sounds aufnehmen und abspielen
  • Bilderkennung, Einbindung der Kamera
  • Beenden der App im Browser
  • Motorsteuerung: was ist die Einheit der Entfernung (Umdrehungen, Schritte) ?
  • Hilfe-Funktion: Links zu Anleitung statt zu Wikipedia
  • Welche Joysticks/Gamepads funktionieren? (Wir haben kein derartiges Gerät, ich kann da nichts praktisches zu sagen.)
  • Kontextmenü: "Schreibe u" und es kommt ein Baustein "setze u auf" (s. Beitrag vom 08.03.)
  • Springen zwischen Leveln. Da gab es ja eine Fehlermeldung, die MoG behoben hat. Da der Autor der Anfrage sich nicht mehr gemeldet hat, ist unklar, ob das Problem für ihn gelöst ist.
  • Speichern auf SD-Karte (kam als Anforderung an ROBOPro in einem anderen Thread, wäre aber auch für Brickly super)
  • VNC-Viewer (ich bin dafür)
Danke nochmal für das tolle Programm!
Meiner Meinung nach deckt Brickly alle wesentlichen Anforderungen an eine graphische Programmierumgebung für den TXT ab. Wer komplexere Programme schreiben will, wird auch mit Python zurecht kommen. In dem ft:pedia-Artikel schrieb MoG, dass Brickly auch für Kindergartenkinder geeignet ist. Ich halte das für zu ehrgeizig, Nach meiner Erfahrung kommen Kinder ab der dritten Klasse mit sowas zurecht, dann sind sie alt genug und können sicher lesen, sich im Zahlenraum sicher bewegen und schon gut logisch denken.
Gruß
Esther

Benutzeravatar
MasterOfGizmo
Beiträge: 2727
Registriert: 30 Nov 2014, 07:44

Re: CFW: Brickly (war Blockly)

Beitrag von MasterOfGizmo » 12 Apr 2017, 13:06

Hi Esther,

prima. Zu Deinen Punkten: Die Feature-Wünsche werden sicher alle irgendwann umgesetzt. Ein paar Sachen wie das Sounds-aufnehmen habe ich vor Wochen mal angefangen aber bisher nicht fertig gebaut.

Ich habe in den letzten Tagen Plugin-Support vorbereitet. Davon seht ihr als User bisher nichts, aber im Prinzip kann man jetzt Brickly-Funktionen nachladbar machen. Als erstes werde ich damit wohl den Lego WeDo-Hub oder den BT-Smart-Controller anbinden. Das kann man sich dann in seinem Brickly dazu installieren, wenn man so einen Controller hat. Und wenn man keinen hat lässt man es weg. Dadurch wird Brickly hoffentlich etwas aufgeräumt bleiben.

Die Wikipedia-Links zu ersetzen muss im Blockly passieren. Diesen Teil habe ich bisher nicht verändert, um jederzeit eine aktuellere Version einfach durch Kopieren einbauen zu können. Da muss ich mir mal überlegen, was ich mit Deinen Beschrebungen mache und wie ich sie schlau einbinde.

Und ja, Vorschulkinder können die Texte nicht lesen. Aber unsere Ida hat Spass daran, die Blöcke der ersten Stufe einfach zusammen zu bauen und dann zu sehen, was passiert. Natürlich verfolgt sie da erstmal keinen Plan sondern freut sich einfach, wenn der Roboter auf Ihre Eingaben reagiert. Aber nach einer Weile merkt sie, welcher Block was bewirkt und macht das dann planvoller.
Arduino für fischertechnik: ftDuino http://ftduino.de

Benutzeravatar
MasterOfGizmo
Beiträge: 2727
Registriert: 30 Nov 2014, 07:44

Re: CFW: Brickly (war Blockly)

Beitrag von MasterOfGizmo » 12 Apr 2017, 13:07

Zum Speichern auf SD-Karte: Wäre es im Falle der CFW ggf sinnvoller auf USB-Stick zu speichern? Die SD-Karte enthält ja die Firmware, weshalb man die halt nicht einfach jederzeit entnehmen kann.
Arduino für fischertechnik: ftDuino http://ftduino.de

Benutzeravatar
PHabermehl
Beiträge: 2558
Registriert: 20 Dez 2014, 22:59
Wohnort: Bad Hersfeld

Re: CFW: Brickly (war Blockly)

Beitrag von PHabermehl » 12 Apr 2017, 14:53

MasterOfGizmo hat geschrieben:Zum Speichern auf SD-Karte: Wäre es im Falle der CFW ggf sinnvoller auf USB-Stick zu speichern? Die SD-Karte enthält ja die Firmware, weshalb man die halt nicht einfach jederzeit entnehmen kann.
Hmm, also, speichern auf USB wäre schön, weil man leicht Zugriff auf den Stick hat.
Aber: man hat nicht immer einen USB-Stick angeschlossen, der Port kann belegt sein (Joypad) etc.
Also wäre auch speichern auf der SD -Karte schön.

Vorschlag :
öffne [Dateiname] auf [USB-Stick | SD-Karte ] zum [schreiben |lesen]

Dabei wird dann die Datei im Hauptverzeichnis des USB-Sticks bzw. in einem Unterverzeichnis "userdata" im Brickly-verzeichnis angelegt.
Zur Verwaltung der Daten auf SD-Karte könnte dann ja ein erweitertes webinterface aka. BrickMCP verwendet werden...
Gruß Peter
https://www.MINTronics.de -- der ftDuino & TX-Pi & 3D-Druck Shop!

viele Grüße
Peter

Benutzeravatar
PHabermehl
Beiträge: 2558
Registriert: 20 Dez 2014, 22:59
Wohnort: Bad Hersfeld

Re: CFW: Brickly (war Blockly)

Beitrag von PHabermehl » 12 Apr 2017, 15:35

Oder:
schreibe [ variable] in [Dateiname] auf [SD|usb]

Und

lies [variable] aus [Dateiname ] auf [SD |usb]

Wobei variablenname und Wert in die Datei geschrieben werden. Nicht vorhandene Dateien werden beim schreiben angelegt. Das könnten dann auch xml-dateien sein...
Wenn eine Variable schon in der Datei vorhanden ist, wird der Inhalt überschrieben, wenn nicht, hinzugefügt.
Beim lesen gibt es dementsprechend einen Fehler, wenn die Variable nicht in der Datei existiert.
Oder statt Fehlermeldung
lies [variable] mit Vorgabewert [default value] aus [Dateiname ] auf [SD |usb]
Oder die Variable bekommt den Wert 'invalid', falls es beim Lesen Probleme gab...

Eine Funktion zum abfragen des Vorhandenseins einer Datei wäre dann auch praktisch...
Zuletzt geändert von PHabermehl am 13 Apr 2017, 01:54, insgesamt 1-mal geändert.
https://www.MINTronics.de -- der ftDuino & TX-Pi & 3D-Druck Shop!

viele Grüße
Peter

Benutzeravatar
MasterOfGizmo
Beiträge: 2727
Registriert: 30 Nov 2014, 07:44

Re: CFW: Brickly (war Blockly)

Beitrag von MasterOfGizmo » 12 Apr 2017, 16:27

Ich nehme das mal zum Anlass, ein erstes echtes Plugin draus zu machen. Ist auch ein guter Test, ob die Plugins brauchbar sind.

Eine Datei könnte man einfach als ein Block mit "Links-Verbinder" machen. Das kann man dann z,B einer Variablen zuweisen:

(setze Variable "Datei" auf< <Datei auf "SD-Karte" zum "Lesen"< <"test.csv")

dann kann man z,B. per "schreib block" reinschreiben:

(schreibe in Datei "Datei"< <"Beispielstring")

Aus Datei lesen wäre Analog. Man würde Zeilenweise lesen oder schreiben, wobei Lesen erwas knifflig werden könnte, wenn dabei nicht aus allem ein String werden soll.
Arduino für fischertechnik: ftDuino http://ftduino.de

Benutzeravatar
ski7777
Administrator
Beiträge: 911
Registriert: 22 Feb 2014, 14:18
Wohnort: Saarwellingen

Re: CFW: Brickly (war Blockly)

Beitrag von ski7777 » 12 Apr 2017, 18:37

nq30 hat geschrieben:@MasterOfGizmo
Tipp:

Code: Alles auswählen

eval(file.read())
Off-Topic:

Code: Alles auswählen

eval()
bzw.

Code: Alles auswählen

exec()
sind supergefährlich. Einfaches Beispiel: In der Datei hat sich ein

Code: Alles auswählen

os.system("sudo shutdown")
eingeschlichen. Ein

Code: Alles auswählen

eval('os.system("sudo shutdown")')
führ dann auf der shell

Code: Alles auswählen

sudo shutdown
aus. Was passiert? Der TXT fährt herunter. Den Rest brauche ich hier wohl nicht zu erläutern.

Raphael

Benutzeravatar
MasterOfGizmo
Beiträge: 2727
Registriert: 30 Nov 2014, 07:44

Re: CFW: Brickly (war Blockly)

Beitrag von MasterOfGizmo » 12 Apr 2017, 19:28

Jungs, das ist komplett off-topic. Könnt ihr eure Python-Diskussionen bitte in einem separaren Thread machen?
Arduino für fischertechnik: ftDuino http://ftduino.de

Benutzeravatar
PHabermehl
Beiträge: 2558
Registriert: 20 Dez 2014, 22:59
Wohnort: Bad Hersfeld

Re: CFW: Brickly (war Blockly)

Beitrag von PHabermehl » 12 Apr 2017, 21:16

MasterOfGizmo hat geschrieben:Ich nehme das mal zum Anlass, ein erstes echtes Plugin draus zu machen. Ist auch ein guter Test, ob die Plugins brauchbar sind.

Eine Datei könnte man einfach als ein Block mit "Links-Verbinder" machen. Das kann man dann z,B einer Variablen zuweisen:

(setze Variable "Datei" auf< <Datei auf "SD-Karte" zum "Lesen"< <"test.csv")

dann kann man z,B. per "schreib block" reinschreiben:

(schreibe in Datei "Datei"< <"Beispielstring")

Aus Datei lesen wäre Analog. Man würde Zeilenweise lesen oder schreiben, wobei Lesen erwas knifflig werden könnte, wenn dabei nicht aus allem ein String werden soll.
Klingt insgesamt auch schlüssig. Stringfunktionen zum zerlegen gibt es ja auch schon, und ein StrToVal-Equivalent ist doch auch kein Ding der Unmöglichkeit.

Wie wäre es trotzdem zusätzlich mit
( Sichere Variable "variable" in Datei "datei" auf "SD|Usb")
und
( Lies Variable "variable" aus Datei "datei" auf "SD|Usb")
sowie
(Lösche Datei "datei" auf "SD|USB"),
(Liste Dateien auf "SD|USB" in Liste "Liste"),
(Liste Variablen aus Datei "datei" auf "SD|USB" in Liste "Liste")
und
<Datei "datei" auf "SD|usb" existiert)
mit transparentem xml-unterbau?
Damit könnte man schon mal ganz schnell z.b. einen Zählerstand sichern und wieder laden, ohne sich groß um das Dateihandling kümmern zu müssen...
Zuletzt geändert von PHabermehl am 13 Apr 2017, 01:50, insgesamt 1-mal geändert.
https://www.MINTronics.de -- der ftDuino & TX-Pi & 3D-Druck Shop!

viele Grüße
Peter

Benutzeravatar
MasterOfGizmo
Beiträge: 2727
Registriert: 30 Nov 2014, 07:44

Re: CFW: Brickly (war Blockly)

Beitrag von MasterOfGizmo » 12 Apr 2017, 22:01

Klibnt auch nett. Aber wazu haben wir denn Plugins? Ich mache mal die Simpel-Variante und dann kann ja immernoch ein neues Plugin dein Variablen-in-XML-Datei umsetzen.
Arduino für fischertechnik: ftDuino http://ftduino.de

Benutzeravatar
ThanksForTheFish
Beiträge: 612
Registriert: 03 Nov 2010, 21:00
Wohnort: 30900 Wedemark

Re: CFW: Brickly (war Blockly)

Beitrag von ThanksForTheFish » 13 Apr 2017, 00:24

PHabermehl hat geschrieben:Oder:
schreibe [ variable] in [Dateiname] auf [SD|usb]
lese [variable] aus [Dateiname ] auf [SD |usb]
lese [variable] mit Vorgabewert [default value] aus [Dateiname ] auf [SD |usb]
Um das etwas jüngere Publikum nicht rechtschreibmäßig total zu verwirren, wäre es schön wenn ihr den korrekten Imperativ von "lesen" verwenden könntet.
Dieser heißt nun einmal "lies".

Viele Grüße, euer Ralf
Leider wird es im Jahr 2025 keine Nordconvention in Mellendorf geben!

Benutzeravatar
PHabermehl
Beiträge: 2558
Registriert: 20 Dez 2014, 22:59
Wohnort: Bad Hersfeld

Re: CFW: Brickly (war Blockly)

Beitrag von PHabermehl » 13 Apr 2017, 01:46

:oops: :oops: :oops:
https://www.MINTronics.de -- der ftDuino & TX-Pi & 3D-Druck Shop!

viele Grüße
Peter

Grau
Beiträge: 115
Registriert: 03 Jan 2015, 17:21

Re: CFW: Brickly (war Blockly)

Beitrag von Grau » 16 Apr 2017, 17:09

Hallo MasterOfGizmo,
die Kinder in meiner AG haben folgende Verbesserungswünsche:
1. Zurück (letzte Aktionen rückgängig)
2. Lampe (Wenn eine Lampe an die Motorausgänge angeschlossen wird)
3. Die Menüs sollen offen bleiben
4. Integration vom normale Blockly Funktionen (z.B.: Menü und Figuren auf dem PC die mit dem TXT agieren)
5. Kamera Integration
Danke für die Anwendung! Sie macht den Kinder viel Spaß.
Gruß Grau

Benutzeravatar
MasterOfGizmo
Beiträge: 2727
Registriert: 30 Nov 2014, 07:44

Re: CFW: Brickly (war Blockly)

Beitrag von MasterOfGizmo » 16 Apr 2017, 22:21

Grau hat geschrieben:die Kinder in meiner AG haben folgende Verbesserungswünsche:
1. Zurück (letzte Aktionen rückgängig)
2. Lampe (Wenn eine Lampe an die Motorausgänge angeschlossen wird)
3. Die Menüs sollen offen bleiben
4. Integration vom normale Blockly Funktionen (z.B.: Menü und Figuren auf dem PC die mit dem TXT agieren)
5. Kamera Integration
1. Rechter Mausklick, dann ist der erste Mneüeintrag "Rückgängig"
2. Dafür ist der erste Block unter Ausgänge: (schalte Ausgang OX)
3. Welche Menüs?
4. Was sind denn "normale Blockly Funktionen"? Blockly ist ein reiner Programmeditor. Da gibt es keine weitergehenden Menüs oder Figuren.
5. Irgendwann ...
Arduino für fischertechnik: ftDuino http://ftduino.de

Grau
Beiträge: 115
Registriert: 03 Jan 2015, 17:21

Re: CFW: Brickly (war Blockly)

Beitrag von Grau » 17 Apr 2017, 08:14

Hallo MasterOfGizmo,
Erklärung der Wünsche:
1. Toll, wusste ich nicht.
2. Weiß ich, es ist jedoch am Anfang einfacher, wenn es zusätzlich eine Lampe geben könnte.
3. Mit Menüs meine ich die Auswahl der Befehle. Nachdem ein Befehl eingefügt wurde, schließt sich der Bereich.
Wenn ein zweiter Befehl im gleichen Bereich benutzt werden soll, muss der Bereich wieder geöffnet werden.
4. Ich dachte Blockly sei wie Scratch https://scratch.mit.edu/. Da die Kinder in Scratch gern Geschichten programmieren,
wäre eine Kombination von Figuren und Robotern gut wie bei S4A http://s4a.cat/.
Auch Buttons und Anzeigen am Bildschirm wie bei Robopro wäre eine schöne Ergenzung.
5. Da im Kasten eine Kamera drin ist, werde ich oft gefragt ob wir diese auch mit Brickly verwenden können.

Gruß Grau

Benutzeravatar
MasterOfGizmo
Beiträge: 2727
Registriert: 30 Nov 2014, 07:44

Re: CFW: Brickly (war Blockly)

Beitrag von MasterOfGizmo » 19 Apr 2017, 10:52

Grau hat geschrieben: 1. Toll, wusste ich nicht.
2. Weiß ich, es ist jedoch am Anfang einfacher, wenn es zusätzlich eine Lampe geben könnte.
3. Mit Menüs meine ich die Auswahl der Befehle. Nachdem ein Befehl eingefügt wurde, schließt sich der Bereich.
Wenn ein zweiter Befehl im gleichen Bereich benutzt werden soll, muss der Bereich wieder geöffnet werden.
4. Ich dachte Blockly sei wie Scratch https://scratch.mit.edu/. Da die Kinder in Scratch gern Geschichten programmieren,
wäre eine Kombination von Figuren und Robotern gut wie bei S4A http://s4a.cat/.
Auch Buttons und Anzeigen am Bildschirm wie bei Robopro wäre eine schöne Ergenzung.
5. Da im Kasten eine Kamera drin ist, werde ich oft gefragt ob wir diese auch mit Brickly verwenden können.

Gruß Grau
2. Du meinst einfach das Wort "Ausgang" durch "Lampe" ersetzen? Würde das wirkiich so viel helfen? Das würde halt all diejenigen, die dort was anderes als eine Lampe anschließen wollen aber nur noch mehr verwirren.
3. Das ist Blockly-intern. Da kann man theoretisch was ändern, würde ich aber ungern, weil ich diese Änderungen dann immer weder machen muss, wenn ich eine neue Blockly-Version integriere. Zusätzlich sehe ich das Problem, dass das Menü ja über den Arbeitsbereich klappt. Es muss also weg,wenn man im Arbeitsbereich was machen will. Und dann müsste es irgendwann wieder von alleine aufklappen? Wann denn?
4. Blockly und Scratch haben außer der Optik des eigentlichen Code-Editors nicht viel miteinander zu tun. Siehe meinen Artikel in der letzten ft:pedia. Vor allem läuft das Brickly-Programm auf dem TXT und nicht wie bei Scratch im Browser. Das ist ein großer Vorteil, weil dann alles was auf dem TXT passiert schnell und problemlos ist, Wenn man aber Dinge im Browser passieren lassen will wird's dafür deutlich kniffliger. Das betrifft m.E. auch nur Leute, die S4A oder Scratch generell schon kennen und nun weiterhin erwarten, dass das eigentliche Programm auf dem PC oder Tablet läuft und nicht auf dem eigentlichen Zielgerät. Bei S4A passiert ja auch alles im PC und der Arduino selbst macht fast nichts. Ohne PC kann man das S4A nicht nutzen. Brickly schon.
5. Die hab' ich nicht in den Karton getan ;-) Im Ernst: Ja, verstehe ich, dass Du das gerne hättest.Ist halt Arbeit, die jemand investieren muss. Zum Glück haben wir eine große Community.
Arduino für fischertechnik: ftDuino http://ftduino.de

Benutzeravatar
MasterOfGizmo
Beiträge: 2727
Registriert: 30 Nov 2014, 07:44

Re: CFW: Brickly (war Blockly)

Beitrag von MasterOfGizmo » 25 Apr 2017, 12:05

Ich habe mal ein erstes Test-Plugin veröffentlicht. Das ist alles nocht nicht fertig und eher für Tests und Erfahrungswerte gedacht als für reine Anwender:

https://github.com/harbaum/brickly-plugins
Arduino für fischertechnik: ftDuino http://ftduino.de

Benutzeravatar
PHabermehl
Beiträge: 2558
Registriert: 20 Dez 2014, 22:59
Wohnort: Bad Hersfeld

Re: CFW: Brickly (war Blockly)

Beitrag von PHabermehl » 25 Apr 2017, 12:09

Super, werde ich mir heute abend mal genauer ansehen...

Ein Vorschlag vorab: Es sollte für jedes Plugin auch eine entsprechende Kategorie im Webinterface angezeigt werden, damit man bei mehreren Plugins mit viiiiielen neuen Funktionen nicht die übersicht verliert. Ist das machbar?

Gruß
Peter
https://www.MINTronics.de -- der ftDuino & TX-Pi & 3D-Druck Shop!

viele Grüße
Peter

Benutzeravatar
MasterOfGizmo
Beiträge: 2727
Registriert: 30 Nov 2014, 07:44

Re: CFW: Brickly (war Blockly)

Beitrag von MasterOfGizmo » 25 Apr 2017, 12:13

PHabermehl hat geschrieben: Ein Vorschlag vorab: Es sollte für jedes Plugin auch eine entsprechende Kategorie im Webinterface angezeigt werden, damit man bei mehreren Plugins mit viiiiielen neuen Funktionen nicht die übersicht verliert. Ist das machbar?
Ein Plugin kann auch eine ganze eigene Unterkategorie anlegen.

Ein Plugin kann auch Sachen, die ich bisher in Brickly gar nicht benutzt habe. Z.B. habe ich ein Testplugin, das in der Toolbox einen Button anzeigt und wenn man da drauf klickt holt er sich direkt irgendwas vom TXT und zeigt es an. Damit könnte man z.B. checken, ob am TXT was bestimmtes angeschlossen ist oder wieviel Speicher auf der SD-Karte gerade frei ist oder oder oder ....
Arduino für fischertechnik: ftDuino http://ftduino.de

Benutzeravatar
PHabermehl
Beiträge: 2558
Registriert: 20 Dez 2014, 22:59
Wohnort: Bad Hersfeld

Re: CFW: Brickly (war Blockly)

Beitrag von PHabermehl » 25 Apr 2017, 17:57

Hi Till,
Ok, soweit glaube ich den code zu verstehen und habe auch gesehen, wo die Unterkategorie steckt...

Hast Du den code komplett von Hand erzeugt, oder gibt's da "Hilfsmittel"?

Ich denke mal, es fehlt nicht mehr viel, damit ich ein libroboint-Plugin basteln kann...

Gruß
Peter
https://www.MINTronics.de -- der ftDuino & TX-Pi & 3D-Druck Shop!

viele Grüße
Peter

Antworten