Août, 2020

Je me fais un clavier gaming pour gaucher

Je suis un peu handicapé. Je suis gaucher et suite à un accident il me manque des doigts à cette main, ce qui n’est pas gênant au quotidien, pour travailler notamment, mais qui peut parfois être compliqué pour jouer. Ma configuration de jeu est la suivante : main gauche sur la souris (et donc je ne peux pas changer cette habitude) et main droite sur le clavier. J’utilise les touches fléchées, le petit pavé au dessus, les touches CTRL et SHIFT droite et parfois le pavé numérique. C’est une certaine gymnastique, parfois fatigante mais je me suis habitué. Et puis, en lurkant sur le net, je suis tombé sur des communautés de gens qui fabriquent leur propre clavier mécanique aux formes diverses ! Parce que je suis un peu comme ça, je viens donc de me lancer dans la création d’un clavier gaming adapté à ma main droite. C’est parti.


Bien qu’il existe de nombreux pavés gaming (gaming pad en anglais), très rares sont ceux adaptés pour la main droite, et lorsque c’est le cas, ils sont souvent plus chers, comme c’est le cas avec cet engin (plus vraiment un clavier à ce niveau là), l’Azeron, qui a l’air d’être absolument génial, mais très cher, 160€ pour la version gaucher.

Tout est imprimé en 3D, et l’ensemble est fait main.

Si d’autres y arrivent, pourquoi pas moi ?

Cet article sera en plusieurs parties, au fur et à mesure de mes avancées. Je ferai probablement un récapitulatif une fois terminé.

1ère étape : L’outillage et l’électronique

Je ne disposais d’absolument aucun équipement ni outil pour l’électronique. Je suis passé par Amazon qui vend tout ce dont j’avais besoin, a un prix raisonnable et livré très rapidement.

  • Un kit de soudure avec fer à souder et soudure, multimètre, pinces, pompe à dessouder (c’est ce qui m’a décidé vu que je vais cannibaliser un vieux clavier), une pince fine, une pince à découper etc. pour 24€.
  • Un Arduino Pro Micro. C’est un tout petit composant permettant, notamment, d’émuler un équipement USB type Souris, Clavier, Joystick et autre. Il est programmable plutôt facilement. Il existe plein de clones et il n’est pas cher, 9€.
  • Une loupe avec des pinces parce que j’y vois rien. Cela s’appelle une troisième main et ça m’a bien servi pour dessouder. 23€. Si vous avez déjà des pinces et bonnes lunettes, c’est inutile.
  • Un kit de débutant en électronique avec plein de composant pour jouer avec. Il y a un breadboard (une carte pour brancher des composer sans souder), des fils de toutes sortes, des diodes, des interrupteurs, bref plein de petits trucs pour démarrer et prototyper. 16€.
  • Des diodes 1N4148 dont je vais reparler plus tard. 7€

Ça fait un total de 79€, juste pour démarrer le prototype. Tout sera évidemment réutilisable pour d’autres projets, mais clairement ce n’est pas pour éviter de payer cher que je fais ça. C’est principalement pour le plaisir d’apprendre et d’avoir un objet spécialement adapté.

Je répète : se construire un clavier personnalisé n’est pas un projet économique !

2ème étape : Prototype

Logiciels

Une fois le matériel reçu, j’ai voulu tester tout ça.

D’abord télécharger l’IDE d’Arduino et l’installer. C’est fondamental.

Ensuite, biiiien lire la page d’info du contrôleur Pro Micro et surtout, installer l’add-on pour l’IDE sinon le programme ne reconnaitra pas la carte (j’ai testé pour vous).

  • Choisir dans Outil, le type de carte “Sparkfun Pro Micro”
  • Choisir le processeur ATMega32U4 (5V, 16 Mhz)

Vérifier que le contrôleur fonctionne

  • Brancher le Pro Micro sur l’ordinateur via un câble USB
  • Lancer le test Blinkie permettant de voir les leds clignoter. Il se trouve sur la page de Sparkfun, juste après l’installation de l’add-on

Si ça clignote c’est que le Pro Micro fonctionne. Il peut arriver d’en recevoir des défectueux, d’où le test.

Premier proto

J’avais déjà dessoudé quelques touches mécaniques d’un vieux clavier qui ne me servait plus. Il est tout à fait possible d’acheter les touches que vous voulez, il y a plein de sites pour ça, mais j’ai fait avec ce que j’avais sous la main.

Après avoir soudé les pattes de l’arduino, je l’ai branché sur le breadboard puis j’ai posé deux interrupteurs. Le GND est commun et branché sur une des pins GND de l’arduino, et les deux autres pins des interrupteurs sont branchés sur deux autres pins du contrôleur.

Lancez l’IDE, puis testez les boutons.

include "Keyboard.h"
int Pin = 5; //Indiquez la broche/pin du bouton à tester

bool STATES;
void setup()
{
Keyboard.begin();
pinMode(Pin, INPUT_PULLUP); 
STATES = digitalRead(Pin);
}
void loop()
{
bool state;
state = digitalRead(Pin);
if (STATES != state) {
if (state == LOW) {
Keyboard.press('a');
} else {
Keyboard.release('a');
}
STATES = state;
}
}

Ce code permet simplement d’imprimer la lettre “a” quand le bouton indiqué est enfoncé. Plus précisément, il enverra un “z” parce que le système est en QWERTY et que je n’ai pas encore trouvé comment changer ça (probablement dans le Keyboard.h).

Second proto

Utiliser une pin par bouton n’est pas très efficace. Du coup, on va utiliser un système de matrice. Mon deuxième proto aura deux lignes de deux boutons. Avec un tel système on utilise uniquement une pin par ligne et une par colonne.

Ici, on a 2×2 donc 4 pins utilisés. Ok, exactement pareil que si on avait branché en direct. Mais au moins, ça me permet de tester le code et de l’étendre par la suite. Si ça marche pour 2×2, ça marchera pour 4×5 par exemple.

On deux boutons Cherry MX et deux interrupteurs tout bête. Les deux Cherry forment une ligne et les deux interrupteurs une autre ligne. Chaque ligne est reliée à une pin de l’arduino avec les diodes.

Je me suis basé sur cet article ainsi que celui-ci pour la construction de la matrice. Les photos m’ont permis d’en comprendre l’organisation.

Pour le code, j’ai piqué celui-ci et l’ai adapté à ma matrice.

include "Keyboard.h"
byte row[] = {18,14};
byte col[] = {6,8};
byte rowSize = sizeof(row);
byte colSize = sizeof(col);
byte keysState[2][2];
char keys[2][2] = {{'f', 'g'},
{'h', 'i'}};

void setup()
{
Serial.begin(9600);
Keyboard.begin();
//resets all pins
for(int i = 0; i < rowSize+1; i++){
pinMode(row[i], INPUT);
}
for(int i = 0; i < colSize; i++){
pinMode(col[i], INPUT_PULLUP);
}
}
void loop()
{
readBoard(); //reads and stores which switches are released and pressed
pressKeys(); //sends keypress to device
}
void readBoard(){
for(int i = 0; i < rowSize; i++){ //iterate over each row
pinMode(row[i], OUTPUT);
digitalWrite(row[i], LOW); //allows current to flow through row
for(int j = 0; j < colSize; j++){ //interate over each switch in the row
pinMode(col[j], INPUT_PULLUP); //open the column pin up for reading
keysState[j][i] = digitalRead(col[j]); //checks the state of the switch in the row
//and stores it in keysState
pinMode(col[j], INPUT);//closes the switch for reading
} //runs until it has checked all switches in the row
//finishes checking the row
pinMode(row[i], INPUT); //stop current from flowing through the row
//move to the next row
}
}
void pressKeys(){
//interate over the keyState array
for(int i = rowSize - 1; i >= 0; i--){
for(int j = colSize - 1; j >= 0; j--){
//switch at current point is pressed
if(keysState[j][i] == 0){
//Serial.print("Pressed: ");
//Serial.println(keys[i][j]);
//sends pressed value based keys array
Keyboard.press(keys[i][j]);
}
else{ //switch at current point is not pressed //Serial.print("Released: "); //Serial.println(keys[i][j]); //sends release value based on keys array Keyboard.release(keys[i][j]); } }
}
Serial.println();
}

Hop, on balance dans l’arduino, puis on appuie sur les touches et ça fait les lettres. On peut appuyer sur plusieurs lettres en même temps, rester appuyé sur une ou plusieurs, bref ça à l’air de marcher. Il faudra que j’essaie en jeu, pour être sûr que tout est bien pris en compte. Quatre boutons, ça permet de se déplacer.

Voilà où j’en suis pour le moment.

Prochaine (grosse) étape, dessiner le clavier, positionner les touches et éventuellement créer un fichier d’impression 3D pour supporter tout ça.

Carte Blanche – L’amour comme maladie

Je note beaucoup de choses, des idées pour toutes mes activités, des bouts de textes orphelins, sans queue ni tête souvent, et parfois, comme ici, je retrouve des textes avortés. Celui-ci a été écrit pour une carte blanche au théâtre, la possibilité de faire ce qu’on veut. Je ne l’ai jamais joué. C’est un premier jet, pas travaillé, que je ne retravaillerai sans doute jamais. Il a donc toute sa place dans ma mémoire secondaire.


Je sais pas ce que j’ai, Je me suis fait mal. Ça me lance dans la poitrine. Un truc con en plus. Je suis tombé sur de l’amour. Oh un petit truc pas grand chose mais ça pique bien. C’est arrivé y’a pas longtemps, j’allais en cours, elle m’a regardé, je savais pas moi, je l’ai regardé aussi. Je sais pas pourquoi j’ai fait ça, ah j’ai fait le con c’est sûr. L’accident bête quoi. On manque de vigilance pendant une seconde et paf ça vous tombe dessus.
Et puis après ça dérive vite. Ça empire je vous dis pas ! Un cinéma, un baiser, ça prend pas longtemps avant qu’on se prenne la main, qu’on se retrouve à poil chez l’un ou chez l’autre à jouer au docteur.

C’est pénible tout de même cette douleur non ? Ça vient d’un coup on sait pas quand ca va partir.
Et puis y’a souvent des effets secondaires !
On parle tout le temps, on rit comme des imbéciles, on se touche beaucoup (brrr), on se fait un monde à nous, rien qu’à nous. Et le pire je crois, c’est qu’on se met à rêver. Ah oui, c’est n’importe quoi ! On rêve ! On n’a plus les pieds sur terre. On pense à l’autre tout le temps ! On fait des projets, on se dit des choses qu’on pense mais on sait même pas si ce sera possible, on fait pas attention, de la témérité.
Ah oui aussi, il y a le manque. C’est terrible le manque. Ça vous fait pas ça à vous ? Moi ça me fait comme des petites aiguilles qu’on me planterait dans le corps, dans le ventre et dans les yeux. Et puis d’un coup, quand on voit son partenaire, c’est comme une bouffée oxygène, comme si on remontait d’un coup des profondeurs glacées, on a plus peur, on a plus mal, on est juste bien.

Ah je sais plus quoi faire.
Vous auriez pas une pommade ? Une pilule magique ? Un truc pour arrêter ça ?
Non bien sûr. Ça n’existe pas. Le laboratoire qui trouverait une pilule contre ça ferait fortune. Mieux que le vaccin contre le cancer.
Il paraît que l’amour déclenche autant d’endorphine et de dopamine (les hormones du plaisir) qu’un shoot d’héroïne. Je vous le dit moi c’est une belle saloperie !
Et qu’est ce que font les pouvoirs publics contre ça ?
Rien ! Ils font rien ! La droite comme la gauche hein, y’en a pas un pour rattraper l’autre de ce point de vue, ils sont contre l’amour. Les salauds. Ils s’en foutent, ils aiment personne. Complètement déconnectés les zozos. Tu m’étonnes que la France va mal.

Opération Statham, phase 3

Cela fait déjà un mois que l’opération a commencé. Quelques résultats sont déjà là. Que ce soit en terme de forme physique, ou d’apparence. Mais rien n’est joué car notre protagoniste entre maintenant dans une phase complexe à gérer, le plateau.


Le plateau c’est le moment où il ne se passe plus rien, plus de changement, pas d’amaigrissement, pas d’amélioration de la forme. Juste rien. Du moins, en apparence.

Pour l’avoir déjà fait lors d’une précédente tentative il y a quelques années, le plateau est difficile pour le moral. On a l’impression que les efforts ne mènent à rien. C’est le moment où, généralement, on arrête et on se remet à bouffer des glaces en pleurnichant sur son canapé.

Pour ma part, le régime ne me demande pas d’effort. Bouffer des légumes frais fait partie de mon régime habituel de végétarien depuis déjà des années. L’alcool ne me manque pas vu que je ne sors quasi plus de chez moi, donc moins d’occasion. J’ai réussi il y a quelques années déjà à me déshabituer du goût sucré, donc ne pas ajouter de sucre dans les yaourt, ne pas manger de dessert trop sucré, ou de bonbons n’est pas vraiment un problème.

Pour le gras, c’est plus compliqué. Je m’autorise un petit lâchage de temps en temps. Le vendeur de Kebab d’à côté me fait des super sandwichs aux œufs. Avec un peu de frites, c’est jour de fête, une fois tous les 10-15 jours disons.

Sinon tomates, poivrons, avocats, carottes, petits poids, concombre, tout ce que je trouve au magasin. Des fois je me prends pas la tête et je mange tel quel, plus souvent je me fais des salades ou je les cuits simplement à l’eau ou à la poêle sans matière grasse.

Aujourd’hui je peux dire que le régime n’est absolument pas un souci.

Par contre, pour le sport c’est plus compliqué. J’en suis à deux semaines sans Ring Fit ou Just Dance et c’est pas bien. Mais j’ai des (fausses) excuses. La chaleur assommantes des derniers jours, le travail au quotidien, les..hem..jeux vidéos..hem *tousse*Netflix*tousse*, bref c’est compliqué. Il faut que je me remotive.

1ère Semaine

Rien de particulier. Tout va bien. Je suis en forme. Je dors peu. Rien d’inhabituel.

2ème Semaine

Lundi, mardi et mercredi : j’ai rehaussé légèrement les calories absorbées. J’ajoute un petit déjeuner avec flocons d’avoine + yaourt 0% ou lait d’amande + miel.

Mercredi j’ai mangé des pâtes le soir. J’ai très fortement réduit les féculents, du coup c’est jour de fête. Cela dit, avec ces modifs, je me suis retrouvé avec un boost d’énergie en soirée qui m’a motivé pour faire du sport.

J’ai relancé le Ring Fit et fait une petite séance de trente minutes à la fraiche vers 23h. Fatigue, sueur, mais j’avais super envie de bouger. Ensuite douche et super dodo. Je vais éviter d’augmenter trop fortement les calories, mais une fois de temps en temps ça fait du bien.

Question physique, je bouge pas trop. Ayant mis un pantalon pour un rendez-vous sur Paris Mardi (ouais j’en suis là…), j’ai constaté que j’avais gagné deux crans de ceinture depuis le début du programme. Ce qui est pour moi, maintenant, un poids et un physique de forme. On peut donc dire que c’est une réussite.

Maintenant il faut aller plus loin et sécher un peu ce ventre mou. Donc on continue tranquillement le régime et on reprend tranquillement aussi le sport.

Critique de Detroit : Become Human

Il y a quelques jours je jouais à la démo de Détroit : Become Human, un jeu vidéo anciennement exclu PS4, passé sur Windows il y a peu. Dans ce jeu de rôle, on y interprète dans un futur proche, le rôle de trois androïdes qui vont s’éveiller à la conscience tout au long de trois histoires distinctes mais qui parfois s’entremêlent pour nous faire vivre un récit global long d’une douzaine d’heure.


Dans cette démo, nous incarnons Connor, un androïde policier, aux capacités d’analyses évidemment surhumaines. Nous arrivons dans un appartement et comprenons rapidement que l’androïde vivant ici normalement en harmonie avec sa famille d’accueil, s’est tout à coup emparé d’une arme, et se trouve actuellement sur le bord du toit, avec une petite fille en otage. De là, notre mission est simple, sauver la gamine.

Avant de confronter l’androïde, il sera important d’explorer l’appartement pour trouver des indices et mieux comprendre ce qu’il s’est passé, et les motivations du criminel.

Toutes les actions menées depuis le moment où Connor rentre dans l’appartement jusqu’au dénouement final sont importantes. Sauver ou pas un poisson tombé de son aquarium, aider un policier blessé, prendre ou pas une arme sur le sol, accuser le criminel ou faire preuve d’empathie, tout est dument noté par le jeu et tout servira par la suite.

A la fin de cette démo, une arborescence est affichée, montrant au joueur les embranchements de l’histoire disponible.

Si cette démo d’une trentaine de minutes m’a mis une petite claque narrative, l’ensemble du jeu est un tsunami auquel je n’étais pas préparé. Quelques jours de réflexions plus tard, j’achetais le jeu, voici ce que j’en ai pensé.

Commençons par la façade. Le jeu est absolument magnifique. Ok, je viens de changer mon matériel informatique, et j’ai poussé tous les taquets à fond, mais quand même. La modélisation des environnements est phénoménale. Chaque scène est un écrin pour le personnage. Les ambiances sont à chaque fois différentes, nuit ou jour, neige ou soleil, intérieur sombre, ou extérieurs néons, à chaque fois qu’un nouveau chapitre commence, c’est une nouvelle claque visuelle.

De plus, tous ces décors montrent un worldbuilding de première classe. C’est bourré de détails. On peut s’arrêter devant chaque affiche, lire chaque article, écouter chaque conversation, tout nous plonge dans une année 2038, plaisantes par ses avancées technologiques et cauchemardesques par ce que cela implique.

Toujours graphiquement, mais cette fois au plus près, les personnages, et les visages, sont d’une finesse que je n’avais jamais vu jusqu’à maintenant. Chaque expression, chaque poil, chaque pore de la peau est représenté pour un réalisme époustouflant. Tous les personnages sont joués par de véritables acteurs et la technologie permettant des les afficher ensuite en jeu nous permet de nous impliquer émotionnellement. Évidemment les androïdes ont bénéficié du même soin, ce qui contribue à flouter les lignes entre ce que nous considérons comme vivant, ou pas.

Une fois ceci posé, passons à l’histoire, ou aux histoires. On suit ces trois androides, chacun à une échelle différente. Markus changera la face du monde. Ses décisions affecteront le destin de milliers de personne, en bien ou en mal. À ses côtés on traversera les affres de la solitude, et nous devrons diriger un mouvement de révolte gigantesque.

Avec Kara, nous aurons affaire à une aventure plus humaine. Son unique but est de sauver une petite fille en traversant le pays en guerre. Les sentiments sont plus proches de nous, plus immédiats. Les obstacles sont plus directs et l’émotion plus vive.

Enfin avec Connor, l’androïde policier chasseur de déviants, c’est une aventure plus personnelle qui s’offre à nous, un questionnement philosophique constant : qu’est-ce qui fait de nous des humains ?

Chacune de ces histoires est découpé en chapitre, de taille variable, jamais trop longs, et ils alternent, nous faisant passer d’un personnage à l’autre, se rencontrant parfois, se confrontant aussi. Il m’est arrivé à deux reprises d’échouer volontairement avec un personnage, pour en aider un autre.

Les arborescences de choix sont gigantesques et de plus en plus grandes au fur et à mesure qu’on avance, ajoutant des branches entières, et même des chapitres à jouer, dépendamment de nos choix précédents. C’est étourdissant et une vraie leçon de narration.

L’histoire que je me suis construite est véritablement la mienne. À aucun moment, je n’ai ressenti que je pouvais faire autrement, que selon ma personnalité, et ma nature, les choix que j’ai fait était ne pouvaient être que ceux-là. Il y a des statistiques en fin de chapitre qui donne le pourcentage de joueur ayant suivi le même chemin que vous. Par exemple, à la fin de l’un des chapitres du début du jeu, j’étais intimement persuadé que le résultat ne pouvait être que celui que j’ai obtenu, et pourtant j’ai vu que seuls 4% des joueurs avaient pris ce chemin !

Un mot aussi sur l’échec.

Il y a une phrase que j’aime beaucoup appliquer en jeu de rôle : « un échec, c’est simplement un autre chemin pour continuer l’histoire. ». Nous avons l’habitude en jeu de rôle, de, globalement, réussir nos actions. Les personnages sont forts, ils dépassent les obstacles et dans la plupart des jeux de rôle, échouer un jet de dés implique qu’il ne se passe rien. Dans YxY et Artefya, je conseille instamment de ne pas faire ça, de créer une histoire autour de cet échec et de rebondir narrativement dessus pour enclencher l’action suivante.

Detroit Become Human fait cela d’une manière parfaitement normale et intégrée. Par exemple, les scènes d’action sont difficiles. Les combats notamment sont rapides, les QTE et ne pardonnent pas et il est tout à fait possible et sans doute probable de rater un combat. Personnellement, j’ai perdu Connor à 5 reprises. Oui, malgré toutes mes précautions, Connor est mort 5 fois. Il revient, différemment lors de l’histoire, mais changé. Deux fois à cause de décisions qui ont débordé de ce que j’avais imaginé, deux fois lors de combat (dont un où j’ai hurlé de rage devant mon écran), et une fois volontairement. Et bien, le jeu le prend en compte et continue l’histoire. Elle se décale simplement. L’échec est valorisé, c’est simplement un autre chemin.

Bon, vous avez compris, je passe rapidement sur le reste, le côté méta, le joueur humain incarnant des androïdes devenant humains (ou pas 😉 ), se faisant poser des questions sur sa propre capacité d’empathie (notamment une scène hallucinante avec Connor qui doit exprimer ou non de l’empathie, et que je ne peux pas spoiler tellement elle est méta à plusieurs niveaux).

Je termine par quelques défauts.

Le premier est que le jeu entier fonctionne par bulle, par chapitre. Ce n’est pas un monde ouvert, et si le nombre de possibilité de choix est énorme, on est pas « libre » pour autant (toujours le côté méta). Les fois où on peut se balader dans la ville, la zone étant limitée à quelques rues, un immonde mur invisible rouge nous renvoie vers la zone « utile » si on cherche à aller trop loin. L’immersion étant plutôt bien gérée, le choc est d’autant plus rude de se rendre compte que nous sommes simplement dans un jeu vidéo. Et ça fait mal.

L’histoire est sacrément bien écrite, de très haut niveau pour moi. C’est pour ça que lorsque quelques clichés bas de gamme ont fait leur apparition, j’ai un peu levé les yeux au ciel. C’est très rare, mais c’est arrivé et idem que les murs invisibles, je me dis que c’est dommage.

Bref, à part ces deux points, j’ai passé quatorze d’heures à vivre une histoire poignante, dans un écrin magnifique et, si vous êtes client du genre, je vous invite vigoureusement à l’essayer.