KTANE Project

Parce que les applications du Raspberry Pi sont illimités...

Modérateur : Francois

Répondre
Oximore
Messages : 5
Enregistré le : sam. 16 avr. 2016 20:26

KTANE Project

Message par Oximore » sam. 16 avr. 2016 21:00

Bonjour à tous,

Je viens ici pour partager le projet que j'ai pour mon Pi.
Mais aussi pour profiter de votre expérience sur le Pi et l'électronique.

1. Background :
Je m'appelle Benjamin et travail dans l'informatique, plus précisément je développe des codes de calculs.
Mon frère m'a offert, un Pi (Pi 2 modèle B) à noël, que j'ai laissé traîner dans les cartons car je ne savais pas quoi en faire. Mais ça y est j'ai eu ma révélation !
Pour information complémentaire, la dernière fois que je me souvient avoir fait de l'électronique c'était souder trois leds entre elles avec une pile (sans résistances bien sur, ça serait trop facile).


2. Présentation du projet :

Je compte transformer mon Pi en bombe ! Non non pas dans le sens figuré en vraie ... fausse bombe. L'idée est d'adapter le jeu Keep Talking And Nobody Explode (KTANE pour les intimes) en version physique.
Si vous ne connaissez pas voici quelques images. L'idée général c'est : un des joueurs est devant un écran (ou derrière un occulus !) et il doit désamorcer une bombe qu'il a devant lui, mais il n'y connaît rien. Le second (ou plusieurs autres) est l'expert en déminage. Il sait comment la désamorcer (grâce à un manuel) mais ne la voie pas. Ils doivent collaborer pour ne pas exploser.
La bombe est constituée de modules (de 1 à 11 plus le compte à rebours) qui doivent être désamorcés indépendamment (mais dans un ordre quelconque) dans le temps imparti (sinon boum quoi).
Je ne peux que vous conseiller ce jeu qui est très fun entre amis.


3. Idée de modules :

Mon idée principale est de connecter différents modules à mon Pi. Chaque module peut être présent ou pas, à un emplacement aléatoire et en un ou plusieurs exemplaires.
Tous les modules doivent donc avoir la même interface physique avec le Pi pour être interchangeables. Mais ils ne comportent pas tous la même chose. Certains aurons des leds et des boutons poussoirs, d'autre juste des switchs etc ... .


4. Le gros challenge : la moelle épinière

Je pense que la plus grosse issue est de savoir comment assembler tout ça plus que l'étape de réalisation. Il faut savoir que je n'y connais pas grand chose en elec et que - de ce que j'ai pu voir - le nombre de composant différents est relativement important !
Les deux idées que j'ai eu pour l'interface standardisée sont l'Usb et des connecteur électronique (c'est le moment où je commence à ne pas être sur des termes que j'emploie)
Usb : un gros switch Usb des familles est relié à mon Pi. Ensuite pour connecter le module je n'ai qu'a le brancher par Usb. Le module commence par un adaptateur Usb to Gpio. Et derrière ça je peux allumer mes led, switch et autres joyeusetés. Après une rapide recherche internet pour adaptateur on tombe sur des trucs comme ça ou bien peut être un Arduino (est ce que ce n'est pas appeler Thor pour planter un simple clou ?).
Gpio : Ici, je pompe ton tuto n°20. Utiliser des shift registeshift registers i/ors I/O dans chaque module. Du coup la connexion physique se fait avec un connecteur sur un certains nombre de branche fixe (j'ai vu qu'il en faut 6 pour les shift register en sortie simple, je ne sais pas le nombre pour ceux en I/O). Et après je multiplie le nombre à l’intérieur d'un module en fonction des demandes.

Un fois le choix fait, le plus gros doit être fait. Il me reste encore à savoir comment différencier chaque module. Ce qui revient à utiliser le moins de gpio possible pour donner un ID (idée bête de compter en binaire = 4 gpio = 16 ids)

Cette partie est mon plus gros problème pour le moment, que me conseillez vous ?


5. Petit challenge : les modules
Après il me reste à savoir comment réaliser chaque module séparément. Mais là c'est plutôt de savoir ce qu'il existe comme type interrupteurs et de matos élec. Sur ce point les gens du FabLab de ma ville seront compétents je pense.


6. Bonus :

a. Je voulais protéger mon Pi. Il y a deux éléments que je redoute un peu (paranoïa : on).
Gpio : Existe il un module à brancher sur mes gpio qui m’empêcherai de cramer mon Pi ?
Alimentation : Connaissez vous des modules capable de protéger le Pi en cas de coupure de courant (safe shutdown) et/ou rajoutant un interrupteur on/off ? Je suis tombé sur ça, mais j 'ai pas assez de recul pour l'évaluer.

b. Dans un premier temps je ne pensais pas faire de domotique. Mais forcément en y réfléchissant on se dit "ça pourrait être cool d'être réveillé par ma web radio" ou bien "faut que mette des leds diffusives qui s'allument quand je me lève la nuit pour pas me faire éblouir la gueule". J'en suis venu à la l'idée que pour des projet de cet ordre je pourrai respecter ma notion de module à d'autre projet. Mais comme on est dans un monde fortement open source, n'existe il pas déjà quelque chose de ressemblant ?


7. Étapes :
Pour le moment on en est au tout début. Je n'ai pas encore l'électronique pour commencer à jouer.
Du coup je me rabat vers le software et j'ai monté un petit serveur web classique.


8. Fin :
Je compte mettre périodiquement ce thread à jour pour pouvoir échanger avec vous et vous montrer le résultat. Si ça vous intéresse bien sur !
Si vous avez des questions, des suggestions ou des remarques n'hésitez pas ! Je suis évidement là pour ça.


** Ce post n'est peut-être pas dans sa version finale. Même si la majorité du sujet est ici, des éléments sont susceptibles d'être rajoutés **

Amicalement,
Benjamin
Modifié en dernier par Oximore le dim. 24 avr. 2016 18:24, modifié 2 fois.

Oximore
Messages : 5
Enregistré le : sam. 16 avr. 2016 20:26

Re: KTANE Project

Message par Oximore » dim. 17 avr. 2016 10:04

Attention cette partie contient des spoilers du jeu !
Si vous compter jouer au jeu et garder toute la surprise passez votre chemin !


Je dois commander quelques composant électroniques pour commencer à jouer avec.
J'en profite pour faire la liste des différents modules.
Ça me servira à m'organiser plus efficacement mais aussi de vous montrer le détail du projet.

Le manuel de l'expert est disponible sur internet.
Il existe différentes version, mais il ne me semble pas que la hardware nécessaire change de l'une à l'autre.
Pour ceux qui ne savent ou n'ont pas envie de lire de l'anglais il existe aussi cette version en français !
(J'ai trouvé cette traduction sur le net, il ne s'agit pas d'une version officielle et je ne garantit pas que le lien reste valide ad vitam eternum)

De manière générale il me faut pour chaque module une led RGB (rouge-vert-bleu) qui me servira à s'avoir l'état de ma bombe.
blanc : module sous tension (déverminage), rouge : module enclenché, vert : module désactivé.
Il me faudra aussi que le Pi dispose d'un moyen d'identifier chaque type de module (un id par exemple)

Tout de suite la liste des modules.

I. Général :
Tout ce qui n'est pas des modules à proprement parler mais qui seront géré de la même façon au niveau matériel.

1. Compte à rebours
Il s'agit du compte à rebours, à 0 boum ! (je ne sais pas encore mais un son sera surement joué)
Image

Matériel : 1 x led rgb, 1 x 4 digit display, 3 x led red, (1 x sound ?)

II. Modules :
Ces modules doivent être désactivés, les uns après les autres.

1. Wires
Il faut couper un des fils, mais lequel ?
Image

Matériel : 1 x led rgb, 6 x neon tube (ou simple fils), 7 x résistances

2. Button
Pousser le bouton ou pas ?
Image

Matériel : 2 x led rgb, 1 x led de couleur, 1 x simple text display, 1x bouton poussoir

3. KeyPad
Symboles !
Image

Matériel : 1 x led rgb, 4 x boutons poussoirs on/off

4. Simon Say
Couleurs ...
Image

Matériel : 1 x led rgb, 4 x boutons poussoir lumineux (avec contrôle de la led)

5. Who's in First
Des mots, pleins de mots ...
Image

Matériel : 1 x led rgb, 5 led r, 1 x lcd display (20x4)

6. Memory
Des chiffre et de la mémoire.
Image

Matériel : 1 x led rgb, 1 x 1 digit display, 1 x 4 digit display, 5 x led r, 4 x bouton poussoir

7. Morse Code
Du code en morse et un variateur de fréquence.
Image

Matériel : 1 x led rgb, 1 x led y (yellow=jaune), 1 x potentiomètre (?), 1 x bouton poussoir

8. Complicated Wires
Des fils, mais pas que.
Image

Matériel : 1 x led rgb, 6 x led y, 6 x led r, 6 x fil

9. Wire Sequence
Des fils, mais encore plus !
Image

Matériel : 1 x led rgb, 9 x fil + résistance

10. Maze
Labyrinthe
Image
Matériel : 1 x led rgb, 1 x matrice de led rgb 6x6, 4 x bouton poussoir

11. Passwords
Mot de passe et combinatoire
Image

Matériel : 1 x led rgb, 1 x 5 letter display, 5 x switch up/down, 1 x bouton poussoir

III. Needy modules
On ne peut pas désactiver ces modules, il faut toujours effectuer une action périodiquement avant la fin d'un compte à rebours.
Ces modules disposent donc d'une led rgb mais aussi d'un compte à rebours.

1. Venting Gas
Ouvrir les vannes ou .. ouvrir les vannes ?
http://www.bombmanual.com/manual/1/html ... ponent.svg

Matériel : 1 x led rgb, 1 x 2 digit dispaly, 1 x 2 lines lcd display, 2 x bouton poussoirs

2. Capacitor
Trop d'énergie !
http://www.bombmanual.com/manual/1/html ... ponent.svg

Matériel : 1 x led rgb, 1 x barre de led, 1 x levier (on/off)

3. Knobs
Beaucoup de led !
http://www.bombmanual.com/manual/1/html ... ponent.svg

Matériel : 1 x led rgb, 1 x 2 digit display, 1 x 12 led r, 1 x 4 position variateur
Modifié en dernier par Oximore le sam. 10 juin 2017 23:49, modifié 2 fois.

Korhm
Raspinaute
Messages : 229
Enregistré le : ven. 19 sept. 2014 08:13
Localisation : Toulouse

Re: KTANE Project

Message par Korhm » lun. 18 avr. 2016 09:09

Bonjour,

je crains de ne pas pouvoir beaucoup t'aider sur ton projet, mais je trouve l'idée super intéressante !! Je suivrais tout ça, et qui sait, j'aurais peut-être des idées pour la mise en oeuvre :)

Oximore
Messages : 5
Enregistré le : sam. 16 avr. 2016 20:26

Re: KTANE Project

Message par Oximore » lun. 18 avr. 2016 23:47

Héhé, merci pour le soutient.

J'ai commandé pour 30€ de fournitures électroniques hier.
En vrac il y a des led rgb, des résistances, des boutons, une board, des câbles, des digits display, des shift register, un lcd 20x4 et un détecteur de mouvement infrarouge.
De quoi commencé à m'amuser, appréhender la bête et faire mes premier prototypes ! J'ai juste oublié les atmega ... que je commande à l'instant (3 pour le moment, +8€).

En attendant mon Pi sert de serveur web (plus pour le délire que pour l'utilité en vrai ...)
Image Image

Oximore
Messages : 5
Enregistré le : sam. 16 avr. 2016 20:26

Il parle ! ... en morse.

Message par Oximore » dim. 24 avr. 2016 13:05

Petite mise à jour.

Même si je n'ai pas beaucoup avancé, on commence les choses sérieuses.

Avec l'aide de l'équipe du MIPS, le FabLab de Pau, j'ai commencé les premières soudures.
Histoire de pouvoir utiliser les GPIO en attendant ma commande, je me suis fait deux simples montages led et résistance.

Vendredi mon Pi c'est ainsi mis à clignoter, garce à la bibliothèque WiringPi, dans un premier temps en C, puis en python grace à un wrapper
Quelques temps après il avait appris ces premiers mots ... en morse. Je vous laisse deviner ses premiers mots.
En général c'est là qu'on différencie ceux qui ont un background informatique des autres. Non ce n'était pas "Papa" mais bien évidement "Hello World".
Enfin plus exactement : "......-...-..--- .-----.-..-..-.." ou encore : "10101010001000101110101000101110101000111011101110000000001011101110001110111011100010111010001011101010001110101000"

Image

Ça c'était pour l’aperçu rapide, mais ça a déjà soulevé plein de questions, qui cherchent toujours des réponses.

Quel langage de programmation choisir ?
Je me laisse le choix entre C et python.
J'avais envie de coder en python, pour apprendre mais aussi parce que je me suis laissé entendre que c'était bien adapté au Pi.
Seulement la première bibliothèque dont j'ai besoin (wiringPi) est native en C. De plus si je choisi de passer par des Atmega je vais devoir coder une partie en C.
Je part quand même sur du Python. Si jamais c'est plus pénible qu'autre chose je reviendrai sur du C où je suis plus à l'aise.


Je préfère coder sur mon pc fixe que sur le pi directement.
Quel moyen choisir pour transférer mes fichiers/programme de mon fixe au Pi ?
Les possibilités :
  • travail en ssh : cela ne marche pas toujours très bien de Windows à Raspian. J'ai quelques touches qui ne marchent pas bien, et je ne peux pas coder avec un IDE graphique.
  • ssh/scp : je déteste ouvrir une console Windows ... sérieux. Autant je suis à l'aise en mode console sous Linux, autant je ne suis pas du tout habitué à celle de Windows.
  • NFS : partage de fichier sur le réseau local ... à la limite mais il faudrait que je cherche comment faire.
  • git : Ça me permet d'avoir le gestionnaire de version, d'être accessible de partout, d'avoir quelque chose que je connais bien.
Comme je voulais qu'au final mon code soit public, et qu'il soit à la disposition de tous, mon choix c'est porté sur Git.
Vous pouvez d'ailleurs accéder au Github du projet.
Cependant pour le moment ce n'est pas très carré. Je compte l'organiser un peu mieux avant d'aller plus loin dans le code.


Une licence ? Quelle licence ?
Si vous avez des conseils sur ce point je suis preneur !
  • MIT : Tout le monde peut faire ce qu'il veux avec le code, mon nom doit juste être mentionné.
  • GPL : Si on diffuse une version de mon code (modifiée ou pas) alors les sources doivent être disponibles et sous GPL
(Dites moi si j'ai mal résumé, mais ce que j'en ai compris.)
Dans l'idée je n'ai pas envie d'imposer de contraintes à un possible utilisateur. C'est pourquoi je me dirige plus vers une licence type MIT.
D'un autre, je ne peux pas inclure de travaux sous GPL si je suis sous MIT.
Par exemple, j'ai cherché un bout de code pour convertir un texte en Morse et je suis tombé sur un module python super propre mais sous GPL.
J'ai donc fait mon propre module qui est vachement moins bien et surement boguer (mais je ne le sais pas encore) !


Quel environnement de programmation (IDE) ?
Hahaha ...
Bon là je ne vais pas faire le listing. Toujours est il que j'ai du prendre un des IDE le moins adapté possible pour le Python à savoir NetBeans (avec quelques plugins).
Je ne regrette pas mon choix mais je pense en changer rapidement ... Si vous avez des idées je suis, là encore, preneur.
Fonctionnalités attendues : Windows, Python, Git.


Voilà, c'est tout pour aujourd'hui

Répondre

Retourner vers « Et tout le reste »