• Welcome to Forum des utilisateurs de Blockly(s). Please login or sign up.
 

Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.

Messages - philippej

1
Il y a deux sujets dans cette discussion mais pas grave, je continue ici. Donc est-ce que ça peut aider que je continue de bosser sur l'outil de compilation et d'upload basé sur arduino-cli? Je peux repasser à python afin d'être plus cohérents avec le reste. Est-ce que ça va te servir pour le all in one ?
2
Alors voilà le résultat des efforts des derniers jours :
https://github.com/philippejadin/blockly-arduino


Je suis parti du code de J-P Fontaine afin d'expérimenter un maximum ce qu'il y a moyen de faire avec electron et arduino-cli. Et ça fonctionne depuis quelques minutes! (en tout cas sur linux avec une arduino uno).


Voici quelques points importants pour le développement electron avec quelques liens pour expliciter :


* il faut un fichier package.json dans la racine du projet. Celui-ci est correct par exemple : https://github.com/philippejadin/blockly-arduino/blob/master/package.json

* le but de ce fichier est qu'un nouveau développeur qui débarque sur le projet puisse faire simplement "npm install" et que tout les modules JS soient installés proprement. Ensuite juste faire "npm start" pour lancer l'application

* le fichier index.html fonctionne aussi bien en standalone (dans n'importe quel navigateur) qu'en electron. Il y a quelques éléments "conditionnels" qui le permettent:

* chargement correct des javascripts ici https://github.com/philippejadin/blockly-arduino/blob/master/index.html#L9

* inclusion du script spécifique à electron ici : https://github.com/philippejadin/blockly-arduino/blob/master/index.html#L218

* le projet utilise le wrapper arduino-cli : https://www.npmjs.com/package/arduino-cli

* c'est ici que ça se passe : https://github.com/philippejadin/blockly-arduino/blob/master/renderer.js

* un fichier .gitignore permet de ne pas "pourrir" le git avec des fichiers dont on a pas besoin. La règle c'est de ne mettre aucun fichier généré automatiquement / ou téléchargé / ou des binaries dans le git. Cela exlut par exemple le dossier node_modules qui doit être téléchargé par chaque développeur avec npm. Le gitignore est ici : https://github.com/philippejadin/blockly-arduino/blob/master/.gitignore [/li][/list]





Enfin pour tester tout cela, le readme explique comment l'installer : https://github.com/philippejadin/blockly-arduino#development


C'est plus ou moins la procédure standard pour n'importe quelle application electron. J'ai ajouté un peu de doc afin de ne pas perdre du temps avec des mauvaises versions d'outils par exemple. Je n'ai testé presque que sous linux pour info.


Par la suite, on pourra fournir des exécutables installables pour chaque plateforme, générés automatiquement, et proposés en téléchargement dans les release de git (PAS dans le repository git donc :-)).

Les impatients qui voudraient tester peuvent déjà tenter un petit :
npm run-script build
qui créera un dossier dist contenant l'exécutable prêt à être distribué (quasiment :-) )


Retours bienvenus :-)
3
Blablabla / Re : Blockly@rduino Electrified
janvier 02, 2019, 04:36:38 pm
En fait dans l'idéal, il y aurait un outil pour faire sa toolbar avec les blocs que l'on veut, choisis depuis une sorte de bilbiothèque (qui comprendrait les blocs déjà installés + une biblio en ligne, rêvons un peu), et cet outil génèrerait la bonne liste de JS à importer.

Mais il y a une règle d'or en développement : premature  optimization is the root of all evil (voir ici : http://wiki.c2.com/?PrematureOptimization )

Donc on s'occupe de cela après que tout fonctionne et entre temps on profite des automatismes possibles  :-)
4
Blablabla / Re : Blockly@rduino Electrified
décembre 30, 2018, 07:58:20 pm
Je vais essayer de synthétiser tout cela et de faire une proposition qui permettrait de travailler sur plusieurs fronts. Un peu de git, de scripting et de réorganisation devrait permettre cela :-)

Petit exemple pour charger tous les js depuis une application nodejs/electron : https://github.com/electron/electron-api-demos/blob/master/main.js#L87
Celui-ci charge tous les fichiers js de cette application exemple. Avec ç aon charge tous les js de tous les blocs d'un coup!
5
Entretemps j'ai un peu creusé et nodejs, electron etc c'est vraiment une bel écosystème. Surtout avec le package arduino-cli du projet xod.io qui permet de "facilement" appeler arduino-cli depuis une application javascript.

Du coup pour tout faire converger, il devrait être possible de faire un petit client léger en nodejs qui peut aussi être "compilé" en exe mais sans electron et donc pas lourd. Enfin c'est juste une idée, je suis en train de me former à tout ce bazard et c'est pas évident car ça va **très** vite...
6
Je suis en train de travailler sur un "proof of concept" en python ici : https://github.com/philippejadin/arduino-cli-agent

Pour l'instant on a un petit start.exe de 4 mb (qui contient tout ce qu'il faut y compris python) + l'exe arduino-cli

Quand on lance start.exe, il crée un petit serveur local qui (bientôt) va appeller arduino cli pour faire tout le boulot. Du coup ça marche autant depuis un site statique en local que depuis une version hébergée n'importe où.

Il n'y a rien à installer (c'est portable) et super léger.

Quand cela fonctionnera, je referai un message ici.
7
Concernant l'organisation des blocs, j'ai l'impression que c'est impossible de faire quelque chose qui convient à tout le monde. Du coup je proposerais une toolbox de base qui contient les mêmes éléemnts que blockly + les entrées sorties courantes arduino. Peut être se baser sur le starter kit arduino comme référence pour cette toolbox. C'est à peu près ce que jp-fontaine a fait dans sa version.

Ensuite pour les niveaux, je ne vois pas l'intérêt de changer de niveau en cours de sessions autrement qu'en changeant de toolbar. Dit autrement, les boutons 1,2,3,4 (et surtout le bouton "tout") peuvent sauter pour moi. Et être remplacés par des toolbar spécifiques.

Par exemple, nous allons de notre côté développer un atelier aquaponie et un autre poulallier intelligent, ou encore station météo. Pour chaque projet on va faire une toolbox spécifique en fonction du niveau des enfants.

Donc garder le côté facile pour le prof de créer ses toolbar et en avoir une série. J'enlèverais même les cases à cocher de configuration et remplacerait le tout par un outil qui génère les toolbar facilement à partir d'une liste complète des blocs disponibles.

C'est juste mon avis :-)

8
Blablabla / Re : BlocklyDuino reboot
décembre 19, 2018, 01:07:29 pm
Bonjour,

Ce projet est-il toujours d'actualité? Peut être que contribuer à ce niveau là serait le plus efficace?

Ce qui serait vraiment super pour éviter de perdre du travail, ce serait de définir une manière de créer des blocs avec tout le contenu dans un dossier pour chaque bloc. En regardant le code on y est presque, il y a encore la couleur et le générateur qui est dans un dossier séparé.

Si on pouvait avoir une structure du genre :

/monbloc/generator.js
/monbloc/definition.js
/monbloc/typing.js
/monbloc/image.png

on pourrait facilement s'échanger des blocs entre différents outils

Possible ou rêve? :-)
9
Blablabla / Re : Re : Blockly@rduino Electrified
décembre 19, 2018, 12:19:27 pm
Je comprends c'est hyper énergivore les projets de ce type, j'en sais quelque chose avec ceci : https://agorakit.org :-)

On va voir alors comment avancer, peut être que partir du code de jp fontaine est plus simple pour notre usage. Je vais me renseigner sur electron mais a priori il y a moyen de faire ça proprement. Tu (on peut se tutoyer ?) es sur windows ou linux?

Pour arduino-cli, un chouette projet est ici : https://github.com/xodio/xod/tree/master/packages/arduino-cli
C'est un wrapper js du cli arduino...

Xod en général est extrêment intéressant, à tester absolument (cfr. xod.io)
Et leur chaine de compilation et de packaging de l'application pourrait être réutilisée.

Voili voilà. J'ai pris contact avec JP Fontaine afin de retravailler son code, ensuite on verra si/comment merger le tout.
10
Blablabla / Re : Blockly@rduino Electrified
décembre 18, 2018, 03:59:22 pm
Bonjour,

Voilà j'ai donc fait mon petit travail de découverte du projet, ai envoyé l'un ou l'autre mail et voici où j'en suis :

- nous aimerions mon collègue et moi utiliser blockly@arduino pour notre projet de fablab à destination des enfants et ados ( https://fablabke.castii.be/ )
- je dois dire que la version de jp-fontaine ici : http://lesormeaux.net/blockly-arduino/start.html nous tente bien par sa simplicité, par contre elle n'est pas encore sur github et nous aimerions travailler tous sur la même codebase pour ne pas dupliquer les efforts et ne pas devoir systématiquement merger des améliorations d'un projet vers l'autre.

Alors, comment procéder?
Proposition :

- nettoyer à fond le github blockly@rduino pour ne garder que la partie html/js/css / créer une branche master stable et une branche dev pour tout le travail dev
- voir comment le build peut être fait que ce soit avec electron ou autre pour ceux qui veulent cette fonctionnalité là. Le contenu d'un build electron ne doit pas se retrouver sur git, il doit à mon avis généré dans un dossier "build" qui n'est pas envoyé sur git (grâce à .gitignore) et qui est régénéré chaque fois que l'on fait une release (un zip complet prêt à l'usage disponible sur git). Si vous voulez je me renseigne sur comment faire ça proprement
- différentes versions du fichier index.html dont celle simplifiée de jp-fontaine comme ça tout le monde est content
- éventuellement un fichier de config simple à modifier pour pouvoir déployer comme on veut blockly@rduino

Nous on est chauds pour travailler là dessus, on a vraiment besoin d'un outil comme cela et vous êtes les plus dynamiques (et en plus francophones :-))

Voilà, merci pour le boulot et à merci pour vos retours
11
News / Re : Sauvegarde des paramètres
décembre 17, 2018, 12:10:25 pm
Bonjour,

Comment tester cette fonctionalité? J'ai cloné le repository https://github.com/technologiescollege/Blockly-at-rduino et ouvert le fichier index dans firefox mais cette option n'apparait pas.

Merci d'avance, je vais essayer de ne pas poser 1.000 questions pendant a période de découverte du code :-)
12
Je me répond à moi même car entretemps j'ai vu une série d'outils qui font plus ou moins ce que je propose.

- https://github.com/nbremond77/rDuino-Compiler-Uploader-Server
- https://github.com/BlocklyDuino/BlocklyDuino/blob/gh-pages/arduino_web_server.py
- https://github.com/technologiescollege/Blockly-rduino-communication

Mais donc la spécificité de ma propositon c'est d'utiliser le fraichement sorti arduino-cli qui est plus léger à télécharger, installe-détecte les cartes, installe les libraries et garde le tout à jour. Et syncho avec l'ide arduino éventuellement installée aussi.

Je pense que le projet blockly@arduino gagnerait à rester modulaire avec un petit agent à installer, et un générateur de code purement en js/html statique que l'on peut héberger n'importe ou (y compris sur les pc des enfants). Pas un gros package electron long à mettre à jour en gros :-/

Voilà l'état de mes réflexions.
13
Bonjour,

Tout d'abord bravo pour les outils blockly que vous développez. Je me demandais si vou seriez intéressés de réfléchir à un outil commun utilisé par les différents générateurs de code arduino qui s'occuperait côté utilisateur  de la compilation et de l'upload du code?

J'ai fait une proposition ici : http://forum.arduino.cc/index.php?topic=585497.0

Et mon idée est de contacter les différents projets que cela pourrait intéresser de mutualiser les énergies, dont le vôtre :-)

Qu'en pensez-vous ?