Test des potentiomètres du kit

Bonjour à tous,

Bon Steph à monté ses potentiomètres et en a discuté sur Discord alors je fais un petit post ici pour ma version des potentiomètres.

Il va vous falloir 8 petites vis avec écrous, 2 plus grosse, les 2 potentiomètres, le backpack bien sûr et 6 fils femelle / mâle.

D’abord, on prend la première plaque en bois et on y glisse le premier potentiomètre et on le fixe avec les 4 petites vis et écrous

On peut alors mettre de l’autre côté les 3 câbles femelle mâle du premier potentiomètre. notez bien quelle couleur est sur GND, celle sur VCC et celle qui est reliée à SIG (La valeur du potentiomètre)

Puis on fait pareil pour le 2ème potentiomètre

Après, on tourne à fond à gauche les potentiomètre, on ajoute la 2ème plaque de bois et on place les 2 boutons en alignant bien les traits sur la position qui correspondra au 0

Vous pouvez ensuite choisir de fixer les potentiomètres en haut ou en bas du backpack. Moi j’ai choisit en bas pour mon test mais je vous conseille en haut entre autre pour que le bouton du potentiomètre de gauche ne gène pas l’insertion du câble USB mais dans tous les cas, c’est un choix et il suffit de retirer le bouton pour pouvoir faire la programmation des boutons. Si vous fixez en bas, la valeur montra quand vous tournerez le bouton dans le sens des aiguilles d’une montre alors que ce sera dans l’autre sens si vous le fixez en haut.


Et voilà, plus qu’à faire un programme pour tester tout ça.

//
// Demonstration programm for the potentiometers 
//
// available in accessory kit: 
// https://shop.gamebuino.com/fr/accessories/73-gamebuino-accessories-pack.html
//
// Creation date: 05/2021

#include <Gamebuino-Meta.h>

// Initialize value of the used anological enters
#define Pot_1 A2
#define Pot_2 A1

 // Initialize Pot1 and Pot2 variables to keep values of the potentiometers
int Pot1;
int Pot2; 

// Initialize program and META
void setup(){
  gb.begin();
}

void loop() {
  while (!gb.update());
  gb.display.clear();
  // Read value of the potentiometer
  Pot1 = analogRead(Pot_1); 
  Pot2 = analogRead(Pot_2); 
  gb.display.printf(" Pot1 = %d\n Pot2 = %d", Pot1, Pot2);
}

Normalement vous devriez afficher des valeurs allant d’environ 5 au minimum à 1023 environ pour la valeur maximum pour une rotation de 3/4 du cercle.

Moi pour la position 0 mon potentiomètre est en 0 et pour 1023, le potentiomètre est à gauche.

1 Like

Effectivement, j’ai envoyé mon setup hier soir sur Discord :slightly_smiling_face:

@Jicehel je me permets de compléter tes photos par les miennes.

J’ai choisi un montage légèrement différent pour ne pas avoir de câbles qui débordent sur la face avant. Tout est caché et les câbles repassent directement à l’arrière par les encoches d’insertion des potentiomètres.

Il faut insérer les câbles par dessous, en faisant passer les fiches noires en plastique au travers des encoches pour les faire ressortir par le haut.

Pour pouvoir enchasser les fiches des câbles sur les 3 broches de chaque potentiomètre, vous devrez légèrement relever les broches avec une pince pour les incliner suffisamment afin qu’elles soit libérées et ne soient pas gênées par la présence des câbles :

Les câbles ressortent ainsi par l’arrière et peuvent ensuite être insérés directement sur les bornes du Backpack :

Le brochage est simple :

Potar META
VCC 3V3
GND GND
SIG A1 | A2

La broche de lecture du signal SIG doit être raccordée à l’une des entrées analogiques du Backpack pour pouvoir être traitée par le convertisseur analogique numérique (ADC) de la META.

Vous pouvez par exemple raccorder le 1er potentiomètre à la borne A1 et le second à la borne A2.

Et voilà le travail… y’a pas un fil qui dépasse :slightly_smiling_face: :

Si, comme @Jicehel et moi vous positionnez les potentiomètres sous la console, vous serez gênés pour insérer le câble USB. Par contre, vous pouvez enlever le capuchon du potentiomètre de gauche pour que le câble puisse être inséré plus facilement. Mais bon… c’est moins esthétique… et vous serez toujours gênés par le câble USB pour faire pivoter l’arbre du potentiomètre.

Y’a clairement un petit défaut de conception sur cette plaque. Il faudrait inverser l’orientation des broches des potentiomètres pour pouvoir les rapprocher vers le centre et dégager l’accès au connecteur USB. Et peut -être aussi faciliter l’insertion des câbles afin que tout puisse passer vers l’arrière, sans déborder sur la face avant…

1 Like

Bonne idée, on va étudier ça.
Merci pour ces très belles photos.

Merci Steph pour la correction de la formule pour l’angle.
Je mets ci-dessous un petit programme qui dessine le potentiomètre et affiche sa valeur
(Attention, c’est prévu pour mon installation, c’est à dire avec les potentiomètres fixés en bas)

//
// Demonstration programm for the potentiometers 
//
// available in accessory kit: 
// https://shop.gamebuino.com/fr/accessories/73-gamebuino-accessories-pack.html
//
// Creation date: 05/2021

#include <Gamebuino-Meta.h>

// Initialize value of the used anological enters
#define Pot_1 A2
#define Pot_2 A1
#define pot_size 30
#define s_line 5

 // Initialize Pot1 and Pot2 variables to keep values of the potentiometers
int Pot1;
int Pot2; 


void draw_pot(int x, int y, int size_p, int value) {
  int p1;
  int p2;
  int r1;
  double d_angle;
  r1 = size_p / 2;
  d_angle = (value * 2 * PI / 1360) - 1.57;
  gb.display.setColor(BLUE);
  gb.display.drawCircle(x, y, r1);
  gb.display.setColor(RED);
  gb.display.fillCircle(x + cos(d_angle) * r1, y + sin(d_angle) * r1, 3);
}

// Initialize program and META
void setup(){
  gb.begin();
}

void loop() {
  while (!gb.update());
  gb.display.clear();
  // Read value of the potentiometer
  Pot1 = analogRead(Pot_1); 
  Pot2 = analogRead(Pot_2); 
  draw_pot(5 + 0.5 * pot_size, 20 + 0.5 * pot_size, pot_size, Pot1);
  draw_pot(10 + 1.5 * pot_size, 20 + 0.5 * pot_size, pot_size, Pot2);
  gb.display.setColor(WHITE);
  gb.display.setCursorY(10);
  gb.display.setCursorX(18);
  gb.display.printf("%d", Pot1);
  gb.display.setCursorX(53);
  gb.display.printf("%d", Pot2);
}
1 Like

N’hésitez pas à utiliser le mini-code que j’ai publié sur le forum pour tester vos potards ^^. Je suis en train d’écrire le tuto pour utiliser les deux en même temps avec la petite interface graphique. Il faut juste ajouter la lib math.h pour utiliser pi sinon c’est une galère sans fin.
Avec JMP on s’est justement fait la réflexion qu’il faudrait peut-être revoir légèrement la découpe de la pièce bois pour faciliter le passage des fils. Pour ce qui est du passage du cable USB je vous avouerai que j’ai toujours fait mes tests de code en loose sans fixer les potentiomètres au backpack, du coup c’est vraisemblablement ma faute si l’on n’a pas vu ce soucis avant.

En tout cas merci beaucoup de vos retours et illustrations, ça fait toujours autant plaisir de voir des gens s’amuser et bricoler avec la console.

PS : le mini code est en ligne, avec une super belle interface, sisi je vous assure.

La lib <math.h> est incorporée par défaut avec le framework Arduino.

Et la macro PI est définie dans wiring_constants.h :

#define PI 3.1415926535897932384626433832795

Je suis sous macOS et, dans mon cas, ce fichier d’en-tête est localisé ici :

~/Library/Arduino15/packages/gamebuino/hardware/samd/1.2.2/cores/arduino

Mais vous saurez probablement retrouver celui qui correspond à votre environnement :slightly_smiling_face:

Bref, PI et les fonctions trigo peuvent être utilisées sans avoir besoin d’expliciter l’inclusion de fichiers supplémentaires…

Jetez un oeil dans la doc de référence :wink:

2 Likes

Aaaaah, c’est cool ça. Faut dire aussi que j’ai trouvé les formules de calcul sur le net mais sans que ça soit du Arduino.