Difference between revisions of "Projets:Perso:2011:InterfaceJeu"

From Electrolab
Jump to: navigation, search
(TODO 1 : prototype 0)
(Etat d'avancement: actualisation des réalisations récentes + objectifs à court/moyen terme)
Line 95: Line 95:
  
 
=Etat d'avancement=
 
=Etat d'avancement=
* aout 2011: acceptation présentation OWF ; préparation v0.2 pour cette occasion
+
* fin 2011: "fin" du projet/atteinte d'un certain niveau de maturité permettant de passer à autre chose/refaire un point sur les objectifs&attendus.
 +
* mois à suivre: (OBJECTIFS)
 +
- mettre en place workshop d'application à l'Electrolab
 +
- développement des fiches d'activité/de support
 +
- développement du jeu d'origine (faisant appel à plus d'éléments que le bras & etch a sketch)
 +
* 1re quinzaine septembre: (OBJECTIFS)
 +
- finaliser les docs de présentation/support pour l'owf: photos, dossier de présentation
 +
- clean-up du code arduino/java + publication pour la version etch a sketch
 +
- fabrication du premier proto pour etch a sketch (à terme, plusieurs exemplaires, pour diffusion de beta lors de/suite à l'owf)
 +
- derniers cadrages pour rework v1=>v2 (ou simplement v1.2) du bras robotique. En particulier, interfacage squeakbot, pour présenter une alternative et montrer la généricité du concept fuku
 +
* fin aout 2011:
 +
- soucis pratique avec la machine de découpe laser: fabrication v0.2 en découpe laser en suspens jusqu'à nouvel ordre
 +
- prototypage d'un spin-off 'etch a sketch': Proof of Concept java/arduino opérationnelle (publication du code à venir, après clean up)
 +
- négociations pour la v2 du spin-off 'bras robotique' faite pour planète science. WE de travail pour passer de v1 (présentée à la Japan Expo) en v2 présentable à l'OWF planifié pour le Groweek (week end de travaux du secteur robotique de planète sciences, ouvert à tous), les 17/18 septembre
 +
* début aout 2011: acceptation présentation OWF ; préparation v0.2 pour cette occasion
 
* juillet 2011: "livraison" de la v0.1 à un utilisateur pour beta testing ; prise de rendez-vous pour l'OWF fin septembre 2011
 
* juillet 2011: "livraison" de la v0.1 à un utilisateur pour beta testing ; prise de rendez-vous pour l'OWF fin septembre 2011
 
* juin 2011: réalisation d'un fork pour l'animation bras robotique de planète science ; réalisation d'une interface en acrylique
 
* juin 2011: réalisation d'un fork pour l'animation bras robotique de planète science ; réalisation d'une interface en acrylique

Revision as of 14:26, 2 September 2011

Interface de jeu
Auteur Clément
Date de proposition 25/03/2011
Tags du projet PPC
Lieu d'utilisation final Anywhere
Utilisateur final Youngsters
Type de projet

Projet personnel de Clément

Projet Interface de jeu

Ayant bien aimé un petit jeu con, je me suis dit que ce serait nettement mieux avec une interface hw adaptée
De là découle l'idée suivante: faire une interface hw à base d'arduino, pour:
- que ce soit facilement reproductible, pas trop cher, ...
- encourager des nouveaux venus à l'électronique à prendre en main cette plateforme
- faire en sorte que ces utilisateurs puissent par la suite aborder d'autres projets



Introduction

Donne un appercu des tenants et aboutissants du projet.

Objectifs

Rendre fun un plus ou moins serious game grace à une interface hw, servant de prétexte à:

  • une introduction à l'électronique (par le biais d'arduino, de l'interface hw)
  • un support plus ou moins pédagogique sur certains systèmes & mécanismes d'interface (selon le game design)
  • Une initiation amusante à un procédé physique / chimique relativement complexe et pouvant être abordé simplement par le jeu
  • Eventuellement, servir de support pour des activités pédagogiques/tactical programming (cf JLM stuff)

Principes

  • Un jeu simple tourne sur un ordinateur personnel ; jeu réalisé... grace à un framework type FANG ? En langage XXX/YYY/ZZZ ?
  • La majeure partie des fonctionnalités du jeu sont pilotées par une interface hw basée sur une Arduino, avec des capteurs/indicateurs divers et variés.
  • Le lien entre le hw et le soft est effectué via l'interface série émulée de l'Arduino
  • Moteur de jeu type variables d'état + lois d'évolution, eg simulateur. Certaines de ces variables sont commandables (grace à l'interface), d'autres sont visualisées sur des indicateurs hw
  • Eventuellement, en complément des actionneurs qui constituent l'interface hw, l'écran de l'ordinateur peut être utilisé pour afficher une vue plus complexe du process et/ou des animations amusantes pour renforcer l'aspect ludique du jeu.
  • L'ensemble hw+sw est pensé pour servir de prétexte à s'approprier les différents éléments technologiques mis en oeuvre:
    • principes électroniques, grâce à l'arduino
    • principes logiciels, grâce à... JLM/FANG ?

Fonctionnalités

Partie software

La plate forme software de base doit permettre de simplement lire / écrire sur les différents éléments de l'interface hardware. Tout comme l'on ferait avec un joystick, le logiciel prend en entrée des valeurs en pourcentage (éventuellement codées sur un octet pour simplifier). Pour les mêmes raisons et pour simplifier le développement d'autes interfaces / logiciels, il génère également en sortie des valeurs simples à convertir. Cette fois encore, l'utilisation d'un pourcentage semble être une bonne idée.

Partie Hardware

Les éléments hard montés sur la carte 'version de base' sont choisis pour fournir un support à une initiation à l'électronique. Il semble intéressant de pouvoir gérer des galvas, interrupteurs, potentiomètres, leds et servos de modélisme. Par ailleurs, une charge quelconque nécessitant un petit transistor NPN ferait un bon support pédagogique ; une ampoule basse tension (type vélo) semble toute indiquée.


La conversion entre les différentes tensions mesurées sur les potentiomètres de l'interface est réalisée par l'Arduino de manière à fournir une couche d'abstraction simple du matériel. Le firmware de l'Arduino doit donc se charger de la partie calibration de l'interface.

Pour maximiser les différentes possibilités software/hardware, le firmware de l'arduino doit être en mesure de reconfigurer à chaud les différentes I/O disponibles sur la carte en fonction des besoins de la simulation et de l'interface.

Ressources


Réalisation

Rassemble un ensemble de ressources décrivant les étapes du projet, et aidant à organiser le travail en cours

Questions ouvertes/problèmes

quid de la partie soft sur PC?

  • Clément: moi je vote pour:
    • faire une API propre, bien documentée, pour les couches basses/abstractant le hw, ceci dans un ou plusieurs langages
      • permet de se concentrer sur notre "coeur d'activité"
      • permet d'etre quick win
      • permet d'impliquer d'autres gens avec expertise complémentaire
    • faire un démonstrateur minimaliste infame coté PC 'couche haute'
    • se rapprocher de JLM/FANG (voir avec mon frère)

quid de l'aspect DIY&récup vs facilité de faire un kit

  • Clément: je vote pour
    • faire un peu tout à moyen terme
    • mais à court terme se concentrer sur la version as cheap and easy as possible, cad une sorte de starter kit arduino + nécessaire pour construire une interface avec

quid des fonctionnalités précises (eg capteurs, actionneurs) présents sur l'interface

  • Clément: je vote pour:
    • dans la 1re version, essayer le plus possible d'en avoir pour le moins cher possible, et le moins compliqué: as cheap and easy as possible, toujours
    • réfléchir malgré tout aux notions électroniques possible d'inculquer par ces biais, et vérifier de la faisabilité du jeu prévu avec ce qu'on installera

quid des acteurs impliqués (ou devant l'être) dans le projet

  • Clément: je vote pour:
    • Crafty fait du soft coté PC
    • Yannick fait de l'appro de matos, du proto
    • Clément fait du coté arduino & doc pédagogique + coordination projet


Macro planning

  • Réaliser un premier prototype hw courant avril pour pouvoir valider certains concepts et travailler sur le logiciel par la suite
  • Ebaucher le logiciel courant mai, pour distribution à des testeurs + développeurs complémentaires ; prévoir d'autres interfaces hw pour qu'ils fassent des essais. Faire des démos pour peaufiner le concept
  • Tenter de créer une dynamique autour de ce projet au delà du lab, pour inciter d'autres acteurs à s'approprier l'ensemble

Etat d'avancement

  • fin 2011: "fin" du projet/atteinte d'un certain niveau de maturité permettant de passer à autre chose/refaire un point sur les objectifs&attendus.
  • mois à suivre: (OBJECTIFS)

- mettre en place workshop d'application à l'Electrolab - développement des fiches d'activité/de support - développement du jeu d'origine (faisant appel à plus d'éléments que le bras & etch a sketch)

  • 1re quinzaine septembre: (OBJECTIFS)

- finaliser les docs de présentation/support pour l'owf: photos, dossier de présentation - clean-up du code arduino/java + publication pour la version etch a sketch - fabrication du premier proto pour etch a sketch (à terme, plusieurs exemplaires, pour diffusion de beta lors de/suite à l'owf) - derniers cadrages pour rework v1=>v2 (ou simplement v1.2) du bras robotique. En particulier, interfacage squeakbot, pour présenter une alternative et montrer la généricité du concept fuku

  • fin aout 2011:

- soucis pratique avec la machine de découpe laser: fabrication v0.2 en découpe laser en suspens jusqu'à nouvel ordre - prototypage d'un spin-off 'etch a sketch': Proof of Concept java/arduino opérationnelle (publication du code à venir, après clean up) - négociations pour la v2 du spin-off 'bras robotique' faite pour planète science. WE de travail pour passer de v1 (présentée à la Japan Expo) en v2 présentable à l'OWF planifié pour le Groweek (week end de travaux du secteur robotique de planète sciences, ouvert à tous), les 17/18 septembre

  • début aout 2011: acceptation présentation OWF ; préparation v0.2 pour cette occasion
  • juillet 2011: "livraison" de la v0.1 à un utilisateur pour beta testing ; prise de rendez-vous pour l'OWF fin septembre 2011
  • juin 2011: réalisation d'un fork pour l'animation bras robotique de planète science ; réalisation d'une interface en acrylique
  • 010 mai 2011: cablage du proto 0.1 & test rapide soft
  • 05 mai 2011: session travail sur proto 0: découpe du mdf
  • 03 mai 2011: commande de potards (http://fr.mouser.com/ProductDetail/BI-Technologies/P160KN-0QD15B10K/?qs=sGAEpiMZZMtxdMMi52izyq2vfP2RDTRmHzs3%252bIJ%252bhKI%3d
  • courant avril 2011: achat de panneau plastique, prototypage soft (cf )projet Open Shima
  • 07 avril 2011: soirée proto version 0
  • 31 mars 2011: soirée b(ière)rainstorming sur le projet
  • Mars 2011: début du projet

Prochaines actions/en cours

TODO 0 : brainstorming

  • La première application, c'est naturellement celle qui s'inspire du PJC initial. Mais c'est un peu limité, et il doit être possible de trouver d'autres "thèmes" (brainstorm!)
    • sous marin
    • usine retraitement des eaux usées
    • éolienne
    • barrage hydroélectrique
    • pisciculture
    • lockpicking
    • centrale production bio-carburant
    • Usine de production de parfum (colonne de vapocraquage )
    • Machines outil (genre gras 5 axes, etc...)
    • Un pinball (pas très serious game, mais un bon pjc DIY en perspective !)
  • At random, quelques design goals, feature requests, ...
    • que ce soit hautement hackable, pensé non pas comme un jouet mais comme un moyen fun d'introduction à la bidouille, notamment chez les jeunes
    • que ce soit même une incitation par tous les moyens à se faire bidouiller


=> On va découper les choses de la manière suivante:

  • on fait un proto simple (cf proto 0) puis un autre un peu plus évolué (cf proto 1)
  • on fait le minimum de code pour que ca tourne, puis on diffuse déjà ca aux personnes intéressées pour contribuer du code, du matériau pédagogique complémentaire/associé.

Ensuite, ben on avise selon les retours :)

TODO 1 : prototype 0.1

Le but du prototype 0.1 est de fournir une base correcte pour développer un peu de soft et valider le concept. On va donc monter les éléments "en direct", cad avec le minimum de matos & d'électronique: pas de multiplexage, et dans la mesure du possible, des éléments les plus simples possible, bien que variés. Juste pour montrer ce qu'on peut brancher simplement sur une Arduino.


Il doit etre simple à:

  • comprendre
    • => pas de multiplexage des leds par exemple
  • fabriquer
    • => plexi plié/percé pour faire un pupitre, sur lequel est fixée l'arduino, les potards & différents switchs, leds, témoins (galva), ...
  • reproduire
    • => pas d'éléments de récup, juste des choses communes/courantes.


Type d'éléments montés/liste de course:

  • 4 potards (10k, linéaire, 17mm à montage sur panneau ; ref mouser: 858-P170N-QC12BR10K )
  • 3 leds (n'importe lesquelles, 3mm/5mm <20mA)
  • 4 galvanometre/indicateur (TODO: choisir, cf ressources) + élec de pilotage. => en fait, NON
  • 4 on/off switches/momentary (TODO: choisir, cf ressources)
  • 1 servomoteur (juste le connecteur)
  • 1 ampoule basse tension (type vélo ; juste les culots) + NPN + transistor
  • filasse pour relier à l'arduino (Fil, pin, gaine thermo) => sous forme de fil monobrin qui rentre bien dans les supports ; 3 couleurs min (idéalement, plein...)
  • barette sécable 1xPLEIN adaptée à l'arduino
  • support pour l'arduino (hex stand)

Penser également aux à coté (guide de montage/starting ; packaging ; outils nécessaire)

Ports arduino typique:

  • D0, D1: réservés port série
  • D2: (interrupt) => switch (x1)
  • D3, D5, D6, D9, D10, D11: (pwm) servo x1, ampoule1 x1, galva x4
  • D7, D8, D12: switch (x3)
  • D13: (led) led
  • A0, A1, A2, A3: Potards (x4)
  • A4, A5: led (x2)

Livrables:

  • tuto de réalisation
  • liste de course
  • doc néophyte sur le fonctionnement de chaque élément
  • code source exemple prise en main de chaque élément coté arduino
  • code source pour intégration au projet OpenShima coté arduino


Ressources:

  • NPN:
    • BC817 package pas cool (?), 0.5A
    • BC337 package cool, 0.8A
  • push:
    • mouser 104-0012-EVX

=> regarder également eBay/brocantes radio pour des lots à pas cher

TODOs:

  • yannick: contact pour négo appro galva => en fait, non: plutot des servos
  • clément:
    • doc néophyte
    • liste course
    • proto 0.x
    • code
    • check vincent pour contact découpe laser ; voir yannick pour format de fichier pour passage CNC
  • bussiere: cleaner son code & page wiki

Remarques:

  • faire un pdf imprimable pour faire sa propre face avant, voire tout reproduire
  • faire des faces avant interchangeables
  • les galvas, en fait ca sert à rien, il faut mettre des microservos en rab à la place => revoir liste des éléments

Commentaires:

  • Ce proto a été donné pour beta test ; il est utilisé en standalone (donc pas tout à fait comme prévu initialement), et a cette occasion on peut se rendre compte du coté limité des interactions possibles avec la plateforme. On constate aussi la difficulté/l'importance d'avoir un gamedesign pertinent (sinon, c'est assez chiant à jouer, et donc l'effet "plop" reste limité)


TODO 2 : prototype 0.2

Objectifs: L'objectif du prototype 0.2 est de tirer les enseignements de la version précédente pour réaliser un modèle permettant une diffusion plus large. Il est prévu de présenter cette version lors de l'OWF en septembre 2011, et de le confronter à des utilisateurs finaux.

Features: Améliorations par rapport à la précédente version:

  • réalisation physique plus propre (découpe laser & plexi)
  • meilleur choix des éléments électroniques montés (exit galva, welcome servos) & learning curve documentée

Description Realisation/TODO:

  • objectifs/description sous forme de doc à peu près présentable
  • documentation (au moins ébauche de) à peu près utilisable
  • plans dxf des pièces à découper
  • choix d'une application funky, réalisation soft correspondant
  • quelques exemplaires en kit en plus de l'exemplaire de démonstration, pour diffusion & beta testing out in ze ouaillde.

Résultats

Permet de capitaliser sur le travail effectué: l'utiliser, le reproduire, l'améliorer, ...

Schéma structurel

TBC

Budget

TBC

Contacts, fournisseurs

TBC

Prototype 1

TBC