idée : pour me mettre dans le bain de la programmation de MetaFor, réaliser son grand frère : Chocolate Box :
Une page web, en JS et HTML, contenant un tableau (donc en 2 dimensions) où chaque cellule est une fonction.
Chaque cellule peut communiquer avec les autres en se référant aux coordonnées du tableau. Un peu comme un automate cellulaire 2D :-)
Un peu comme une petite ville \o/
Ça voudrait dire que les noms de variables seraient attribués de façon autoritaire et même chose pour les noms des fonctions, mais on pourrait créer des alias :)
Ce serait à la fois rigide et flexible et c'est pédagogique.
Et ce serait fastoche à faire en JS, surtout comparé à MetaFor en fait.
Il faut *juste* créer des blocs de pleins de couleurs différentes
(un peu comme les fenêtres de YGWM) mais plus comme des petits chocolats emballés et en cliquant dessus, ouvrir une fenêtre d'édition pour la fonction.
Pour faire la grille on peut commencer à générer le HTML en JS.
Obstacles à détruire :
1) développer le JS de l'interface
2) créer des fils entre plusieurs points d'accroche en JS
-> Regarder ygwm.html puis ygwm.demo.js.
-> ygwm.html inclut des fichiers .js de ygwm qui n'ont pas besoin d'être modifiés, puisque ce sont des librairies.
3) éditer dynamiquement du VHDL sur un serveur
4) faire tourner GHDL sur un serveur et l'automatiser
__________________________________________
Idée de base : Tout est VHDL
INTERPRETATION ET DESCRIPTION :
A) DESCRIPTION :
Tous les composants utilisés en simulation seront des composants VHDL, c'est à dire des unités réutilisables à l'infini :
- certains seront figés (les plus simples, par exemple les leds, les switchs)
- d'autres seront éditables, par un simple click sur le composant, faisant apparaitre une fenêtre ygwm d'édition (par exemple : puces complexes)
Pour chaque composant a créer, il faudra donc :
- une image,
- une map avec la position des bornes du composants (points d'entrées et de sorties),
- une description en VHDL du composant (unité de conception : entité, architecture)
Il faudra aussi ajouter du code JS pour l'interaction / l'action en fonction de la souris et de la simulation.
La totalité de la simulation sera un fichier VHDL édité dynamiquement au fur et à mesure du placement des composants. Ce fichier sera compilé via ghdl installé sur le serveur et géré de façon automatique. Il pourra être enregistré en local, chargé, rechargé...
Voici une liste des principaux composants :
- alimentation
- LEDS/Afficheurs
- boutons poussoirs/switch
- horloges
- oscilloscope virtuel ? (pouvoir sonder l'état d'un fil serait un plus)
- puces avec un nombre de broches standard (16/64/125/256).
Cette liste est très largement extensible, notamment à tous les composants numériques, c'est à dire au comportement prévisible et descriptible.
B) INTERPRETATION :
La totalité des composants et de la simulation sera donc interprété par JS+CSS+HTML dans un environnement inspiré d'YGWM (une surcouche graphique de qualitay quoi).
Les fils entre les composants seront la seule réelle difficulté à résoudre d'un point de vue JS, mais je sais que c'est faisable car ça as déjà été fait par le passé. Il faudra évidemment qu'ils soient VHDL eux aussi : il s'agira tout bêtement des signaux et variables du code.
Quand on estimera que la simulation est prête à se dérouler, il n'y aura qu'à compiler et exécuter le fichier de simulation global. En fonction des données circulant dans les fils (appuie sur un bouton poussoir), il y aura réaction, ou pas ;) On pourra aussi arrêter la simulation à tout moment.
Un simple bouton play-pause en fait.
L'intérêt numéro 2 (juste après le fait de pouvoir créer facilement des composants) c'est qu'il sera possible d'accéder à la liste des composants et des signaux sans grande difficulté :
il suffira d'apprendre à javascript à décrypter le fichier VHDL de simulation : la liste des signaux est dans l'entité et pour les composants, ce n'est pas beaucoup plus dur, il y a un mot clé.
Il faudra par contre pouvoir créer du VHDL de façon automatisée, mais je ne désespère pas.
Une preview possible (le graphisme va être amélioré /o\) :

Alors voilà le topo : il faut simuler l'intégralité du code VHDL de ma montre (A)
pour pouvoir (B) faire la carte électronique
pour pouvoir (C) l'intégrer dans le bracelet qui sera fini entre temps.
Donc, le travail majeur du moment c'est la simulation, et pour ça, il faut un environnement de simulation qui ne soit pas dépendant de l'OS, ce qui parait à priori impossible.
Mais grâce à l'efficacité et à l'intelligence (je dirai bien le génie, mais il prétend ne pas en être un) de Whygee, ça devient possible, utile et stimulant même pour d'autres projets, et je l'espère bien (c'est mon second objectif) pour tous le monde, vous y compris. Pour tous ceux qui veulent simuler du code VHDL ou simplement simuler de l'électronique sans avoir à faire la chasse au logiciel pro semi payant sous Licence commerciale...
Voici le plan :
1) Utiliser le support de YASEP et de YGWM pour l'interface utilisateur, donc pour enregistrer et utiliser des fichiers externes, créer du code VHDL de simulation de façon automatisée, faire un bel (et simple) environnement de simulation, tout ce qui demande de la flexibilité, YASEP peut le faire :) (et Whygee aussi)
2) Le logiciel doit avoir deux fonctions :
- premièrement il faut pouvoir afficher et exploiter la liste des entrée-sorties du code VHDL
=> faire entrer du code VHDL dans l'environnement
- deuxièmement, il faut pouvoir assembler des éléments de simulation (LEDs, boutons divers, bus de données, horloge, etc) pour produire une interface efficace et pratique à modifier entre le code VHDL et la simulation (en offrant la possibilité d'enregistrer, et donc de réutiliser le code de simulation)
=> faire sortir du code VHDL de l'environnement
3) pour la simulation elle même, elle doit être graphique (sans forcer sur le trait, j'ai pas dis kikoolol) et il faut pouvoir interagir facilement avec les éléments "interactif", ça tombe plutôt bien, non ? Donc pouvoir mettre en "on" ou en "off" les boutons on-off par exemple, régler les boutons de réglage, enfin bref, une VRAI simulation qui va jusqu'au bout de l'idée.
alors voilà...
- le bracelet est presque assemblé, ça ne devrait plus tarder en théorie.
- le code a été totalement écrit, et est prêt pour une ultime simulation.
- la carte électronique n'est pas encore faite, mais je pense que ça va se débloquer prochainement.
Finalement, les problèmes sont simples :
il faut simuler l'intégralité du code (A)
pour pouvoir (B) faire la carte électronique
pour pouvoir (C) l'intégrer dans le bracelet qui sera fini entre temps.
Donc, le travail majeur du moment c'est la simulation, et pour ça, il faut un environnement de simulation qui ne soit pas dépendant de l'OS, ce qui parait à priori impossible.
Mais grâce à l'efficacité et à l'intelligence (je dirai bien le génie, mais il prétend ne pas en être un) de Whygee, ça devient possible, utile et stimulant même pour d'autres projets, et je l'espère bien (c'est mon second objectif) pour tous le monde, vous y compris. Pour tous ceux qui veulent simuler du code VHDL ou simplement simuler de l'électronique sans avoir à faire la chasse au logiciel pro semi payant sous Licence commerciale...
Voici le plan :
1) Utiliser le support de YASEP et de YGWM pour l'interface utilisateur, donc pour enregistrer et utiliser des fichiers externes, créer du code VHDL de simulation de façon automatisée, faire un bel (et simple) environnement de simulation, tout ce qui demande de la flexibilité, YASEP peut le faire :) (et Whygee aussi)
2) Le logiciel doit avec deux fonctions :
- premièrement il faut pouvoir afficher et exploiter la liste des entrée-sorties du code VHDL
=> faire entrer du code VHDL dans l'environnement
- deuxièmement, il faut pouvoir assembler des éléments de simulation (LEDs, boutons divers, bus de données, horloge, etc) pour produire une interface efficace et pratique à modifier entre le code VHDL et la simulation (en offrant la possibilité d'enregistrer, et donc de réutiliser le code de simulation)
=> faire sortir du code VHDL de l'environnement
3) pour la simulation elle même, elle doit être graphique (sans forcer sur le trait, j'ai pas dis kikoolol) et il faut pouvoir interagir facilement avec les éléments "interactif", ça tombe plutôt bien, non ? Donc pouvoir mettre en "in" ou en "off" les boutons in-off par exemple, régler les boutons de réglage, enfin bref, une VRAI simulation qui va jusqu'au bout de l'idée.
J'ai enfin eu une bonne idée : j'ai envoyé un message à l'artisan avec qui je communique depuis plusieurs mois pour le bracelet, et mon message, envoyé 6 fois avec ma première adresse email a reçu une réponse quasi-immédiate via cette seconde adresse email, apparemment beaucoup moins nazie que la première.
Et donc, le devis est fait, et le bracelet sera réalisé dès que j'enverrai le paiement, avec un délai estimé d'un mois, le tout pour beaucoup moins cher qu'anticipé : 65 euros !
Je suis super contente :)
Je vais donc pouvoir partir dans l'étape décisive de réalisation concrète de la montre : autrement dis le tout premier circuit électronique, réalisé à Pantin mi juillet, le cœur léger. :)
Oui, bientôt 4 mois, et toujours aucune nouvelle à donner concernant la montre. J'attends un peu plus désespérément chaque jour des nouvelles de l'artisan à qui j'ai envoyé la façade de la montre (que j'avais pompeusement dénommé boitier), reçue il y a déjà un bon moment d'ailleurs.
J'envoie quand même les photos, attachées à cet article, parce que franchement elle est magnifique cette façade :) une précision, une finesse et une exactitude à me faire baver. Si j'avais encore des doutes, ils sont tombés à plat ventre : je réutiliserai Shapeways pour la conception mécanique de mon ours-agile :)
Sinon, des éléments se précisent tout de même :
- la montre sera en fait en priorité un lecteur de capteurs, et tous les capteurs seront externes à la montre, conçus sur le même modèle (le format d'une mini lampe de poche), et regroupés sous la forme d'un porte clé,
- elle sera alimentée par ces mêmes capteurs, chacun possédant sa propre pile (probablement une pile bouton), par le connecteur que j'emploierai pour tous (mini jack ou mini usb, mon cœur balance encore),
- tout ça va faire gagner beaucoup de place, et de temps, et permettre aussi de décider de l'utilisation de chacun des boutons de la façade (moins de fonctionnalité, moins de polyvalence, plus de certitudes :p). Donc voilà, tout ne va pas si mal, et je garde espoir que ce projet finisse par avancer à nouveau... ça viendra quand ça viendra.
Finalement, avoir amélioré le patron du bracelet (et peut-être trouvé un autre artisan pour le faire) m'a permis de réfléchir à ce que je voulais, et je crois que je vais me rapprocher du modèle original, et donc ne pas inclure de LCD.
Par contre je vais inclure des LEDs, petites mais sobres et discrètes, qui ne remettront pas en cause la forme initiale du boitier, et donc je vais partir du boitier original, recréé ici : http://www.shapeways.com/model/155876/vortex_faceplate_with_round_attach... et créer l'électronique à partir de lui.
Concrètement les LEDs seront intégrées dans le coin en bas à droite du boitier (celui avec un espace vide en forme de quart de cercle). Je garderai tous les boutons à leurs emplacements originels et me creuserai la tête pour implémenter les fonctionnalités qui me tiennent à cœur à partir de ça. Et ça me plait plus comme ça ! :)
Je me suis rendue compte qu'un écran large et précis était inutile à ce que je voulais faire, et qu'en plus j'adore le boitier comme il est à l'origine. Les techniciens de la série duquel il est inspiré sont vraiment des génies :) Je les salue bien bas :)
Maintenant, tout ce qui m'importe c'est de pouvoir connecter divers capteurs externes et donc de disposer d'un connecteur, mais je sais déjà où je vais le caser discrètement : dans le relief en forme de parallélépipède rectangle tronqué (en bas à gauche du boitier). À partir de là je pourrai réaliser des capteurs génériques et ... la suite pour plus tard ;)
Eh oui, j'arrive enfin à utiliser Blender, incroyable, hein ? Et donc j'en profite pour réaliser le boîtier de la montre avec ce logiciel et je ferai très très probablement réaliser le tout par shapeways que je vous recommande, tant ils propose un service prometteur et utile, pour tout les fana de mécanique appliquée. :)
Bon euh, inutile de sauter au plafond toutefois, j'en suis au tout début. Mais malgré tout, j'ai déjà commencé à débroussailler le terrain et j'ai un prototype de fichier. Et maintenant que tout est en place, ça va aller 4 fois plus vite :)
L'objectif est de reproduire l'objet ci-dessus avec quelques modifications :
* pour la version 1 (vs Toshiko) :

* pour la version 2 (vs John):

* pour la version 3 (vs Jack):

Reste à faire :
* quelques articles,
* la simulation sous Linux, EN COURS
* Le bracelet : dessiner le patron et l'envoyer à YG,
* on a déjà :
- la puce, un FPGA d'Actel, l'igloo nano AGLN125, boitier VQ100, vendeur = mouser (http://fr.mouser.com/ProductDetail/Actel/AGLN125V5-ZVQG100/?qs=sGAEpiMZZ...),
- les LEDs "blanc froid", format 0603,
* reste à acheter :
- le quadruple bouton poussoir,
- les 2 boutons poussoirs,
- le boitier,
- les afficheurs :
- version john : 2*1,5 (H*L),
- version jack : 2,5*4 (H*L)
* l'électronique :
a) circuit électronique rigide, simple face,
b) V1 : circuit perso, sans CPU (celui décrit dans la série d'articles sur la montre),
c) V2 : YASEP16, collection de programmes en assembleur YASEP (on va bien s'amuser !),
d) protection extérieure : http://www.shapeways.com/ s'impose je crois, il faut juste réaliser le modèle 3D, mais y a plus dur.
Pour les intimes, voir la page du wiki de YGDES (wiki:montre_llo).
Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer