Gamoover

Vous êtes nostalgiques des jeux vidéos de votre enfance ? Vous désirez acquérir, ou construire une borne d'arcade ? Vous trouverez ici les réponses a vos questions et une communauté de joueurs passionnés.

Menu

Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.

Voir les contributions Menu

Messages - Aganyte

#6945
Bordel en cours de tri / Tuto : Carte d'adaptation roue optique
Mercredi 22 Septembre 2010, 14:03:27 PM
Citation de: f4brice le Mercredi 22 Septembre 2010, 14:00:26 PM
Pour le reste, il y a de mauvaises habitudes de programmation, mais chûûûûût...  :D

Pour ma défense je soulignerais le fait que j'ai appris le C tout seul  :-\ , mais je suis toujours prêt à apprendre de bon conseils  ;)
#6946
Bordel en cours de tri / Tuto : Carte d'adaptation roue optique
Mercredi 22 Septembre 2010, 13:48:14 PM
Non, le seul composant optionnel c'est le 4013, le potentiomètre numérique est obligatoire. C'est lui qui va simuler le potentiomètre que l'on aura retiré du pad.
#6947
Bordel en cours de tri / Tuto : Carte d'adaptation roue optique
Mercredi 22 Septembre 2010, 13:32:52 PM
Dans le but de permettre l'utilisation d'une roue optique avec un "hackpad", je vous propose une carte d'interface qui pourra convertir les infos issuent des capteurs optique vers un potentiomètre numérique.

J'espère qu'à terme cette carte facilitera la mise en oeuvre de spinners, volants et autres périphériques qui utilisent cette méthode.

Je suis partit sur un micro-controleur PIC 16F84 et un potentiomètre numérique MCP41010 (soit 10 kohms, il existe aussi le MCP41050 et MCP41100 qui font respectivement 50 Kohms et 100 Kohms)

deux points important à vérifier vis à vis des  MCP41xxx:

-Ils n'acceptent sur leur potentiomètre que des tensions inférieur à 5 volts.
-Ils n'acceptent sur leur potentiomètre qu'un courant maximum de 1 Ma.

Pensez donc à faire les mesures sur le potentiomètre du Pad avant de le retirer définitivement.


La carte pourra donc convenir pour des "hackpads" utilisant soit un potentiomètre de 10,50 ou 100 Kohms. Pour d'autres valeurs, il faudra me contacter.

Par habitude j'utilise un quartz de 12 Mhz (à cette vitesse il semble d'aprés mes simulations sous proteus que mon programme n'a pas besoin d'être ralenti, les tests me permettront de vérifier ce point)

Voici donc le schéma:



et le typon:



le composant 4013 permet de générer deux signaux, l'un image du sens de rotation et l'autre image du nombre de pas parcouru. Ce composant n'est utile que si vous comptez vous brancher directement aprés les photo-diodes (Par exemple Blackmamba n'en n'aura pas besoin)

Voici maintenant le programme en C qui devra être charger dans le PIC

Citation
/* Programme Adaptation Optique vers potars numérique par Aganyte pour la Team GAMOOVER */

/* chargement des adresses et registres du PIC */
#include   <htc.h>

#define VMAX 5000 // nombre d'impulsions maximum (max 65535)
#define N ((VMAX+254)/255) // Rapport de convertion
#define CS RB0 // Chip select sur RA4
#define   SDI RA3   // Serial data in sur RA3
#define   CLK RA2   // Clock sur RA2
#define   Direction RA0   // Info direction sur RA0
#define   Pulse RA1   // Info Pulse sur RA1

/* Fonction envoie SPI vers MCP41XXX */
Send_Spi(unsigned int data)
{
   unsigned char count;
   data = data | 0x1100; // Ajoute la configuration du PN à la donnée (Mode Write et potar 1)
   CS = 0; // Sélection du PN
   for (count=0;count<16;count++)
   {
      if((data & 0x8000) == 0x8000) // Envoie d'un 1 ou 0 en fonction du Msb de "data"
      {SDI=1;}
      else
      {SDI=0;}
      data <<= 1;   // Bit suivant
      CLK = 1;   // Front montant = Envoie de la donnée
      CLK = 0;   // Front descendant
   }
   CS = 1; // désélectionne le PN, ce qui positionne le curseur en fonction de la donnée envoyée
}

/* Programme principale */
main()
{
   unsigned int cursor = (VMAX / 2); // Placer le curseur à 50%
   TRISA = 0x03; // RA0 et RA1 en entrée le reste en sortie
   TRISB = 0x00;
   PORTB = 1; // chip select à 1
   PORTA = 0; // CLK et SDI à zéro
   Send_Spi(cursor / N); // Envoie la valeur sur le PN
   for( ; ; )
   {
      while(Direction==0) // Mode Décomptage
      {
         if(cursor > 0) // décomptage si curseur Supérieur à zéro
         {
            if(Pulse==0)
            {
               while(!Pulse);
               cursor--;
            }
            else
            {
               while(Pulse);
               cursor--;
            }
         }
         Send_Spi(cursor / N); // Envoie la valeur sur le PN
      }
      while(Direction==1) // Mode comptage
      {
         if(cursor < VMAX)  // Comptage si curseur inférieur à la valeur max
         {
            if(Pulse==0)
            {
               while(!Pulse);
               cursor++;
            }
            else
            {
               while(Pulse);
               cursor++;
            }
         }
         Send_Spi(cursor / N); // Envoie la valeur sur le PN
      }
   }
}

Schéma de cablage sur une carte optique déja existante (dans ce cas pas besoin de souder le 4013 sur la carte):



schéma de cablage sur carte optique DIY (il faut juste les photodiodes et des triggers de schmitt)



Une petite vidéo du résultat final :

#6948
Tu va commencer par tester la carte d'amplification seule sans le pcb logitech.

Dans l'ordre :

Alimentation 24v à l'arrêt.
Connecter le moteur happ.
Connecter le "+24v" et le "high power" au "+" de l'alimentation 24v.
"Entrée 1" de la carte au +24v.
"Entrée 2" de la carte à la masse.
"Gnd1" à la masse.
Rien sur "Gnd2".

Enfin allumer l'alimentation 24v, le volant doit partir en buté dans un sens.

Si rien ne bouge, déplacer le potentiomètre pour avoir une réaction (tu pourra au passage régler le potentiomètre pour avoir la puissance que tu préfère)

Ensuite,

Alimentation 24v à l'arrêt.
Connecter le moteur happ.
Connecter le "+24v" et le "high power" au "+" de l'alimentation 24v.
"Entrée 2" de la carte au +24v.
"Entrée 1" de la carte à la masse.
"Gnd1" à la masse.
Rien sur "Gnd2".

remettre l'alim en route.

là le volant doit partir dans l'autre sens.

Si tout ça marche bien, ta carte est OK. Sinon, ben...d'écris moi les symptomes. ;)
#6949
Bornes génériques Japonaises / WIP 100% Superneo29
Mercredi 22 Septembre 2010, 07:03:11 AM
Trés jolie en effet  ^-
#6950
Citation de: Stef Bord le Dimanche 19 Septembre 2010, 17:47:29 PM
M'en vais de ce pas voir le topic de Black Mamba, parce qu'un Driving Force simple en 900° çà pourrait m'interesser... ^-

Permet moi de devancer ta prochaine question  :D (un truc du genre mais "pourquoi tu dit qu'il y a que 256 pas" sur le MCP41010)

Pour faire fonctionner le DFEX comme un DFGT, il va falloir vérifier et modifier certaines choses.

1°) Vérifier dans la datasheet du microcontroleur ST (sur le pcb logitech), le nombre de bits du convertisseur Analogique/numérique

Si il ne fait que 8 bits alors c'est foutu (car 256 pas sur 900° c'est pas assez) si il fait 10 bits (1024 pas) ou plus c'est bon  ^-

2°) Remplacer le MCP41010 par un modèle de 10 bits ou plus, faut voir ou trouver ça

3°) Mettre à jour le programme de ma carte "optique vers numérique"

le programme que j'ai créé pour ma carte tourne sur 16 bits, il suffira donc de changer le rapport de conversion (très facile à faire car il se trouve dans les #define au début de mon programme)

En dehors du premier point, rien de bloquant  :-\
#6951
J'ai bien reçu ta carte  ;)

J'ai fini le schéma et le pcb de la carte qui convertira les signaux de la roue optique vers le potentiomètre numérique.

J'ai utilisé un micro-controleur Pic 16F84A et un potentiomètre numérique 8 bits (256 pas) MCP41010, je suis en attente de ce dernier pour attaquer la phase de test.

L'objectif serait d'obtenir une carte qui soit polyvalente, c'est à dire qui puisse marcher avec un spinner, un volant, ect...

Le pcb que tu m'a envoyer permet de créer 2 signaux, l'un est l'image du sens de rotation (Exemple "1" pour le sens horaire et "0" pour le sens anti-horaire) et l'autre est l'image du nombre d'impulsions à compter.

La carte que j'ai réalisé rempli déjà cette fonction, il y a donc des composants que tu n'aura pas besoin de souder (mais qui pourraient servir à d'autres)

En résumé, c'est un peu compliqué mais un tuto sera disponible pour éclairer toutes les lanternes  ;)
#6952
la carte du logitech ne risque rien, au pire le volant refusera de ce calibrer.

#6953
Une dernière chose. Je suis sur que la détection des butées sur le dfgt et fait par le software (car moins chère à mettre en œuvre)
genre si pas d'implusions sur le capteur optique pendant 50ms alors volant en butée.

Moi à leur place je ferais comme ça.
#6954
J'en pense que tout problème a une solution. Je travaille en ce moment à une carte qui puisse convertir une roue optique en potentiomètre numérique (voir la racecab de black mamba)

Si le dfgt nous casse trop les pieds, mon idée est de le remplacer par un dfex modifié pour marcher en 900 degrés. En utilisant une roue optique à la place du potentiomètre d'origine et avec cette carte ça devrait marcher.

Pour le dfgt je suis sur qu'il y a une solution mais comme je n'ai pas d'exemplaires sous la main...
#6955
Citation de: Sir Kayne le Jeudi 16 Septembre 2010, 12:58:38 PM
Je te conseil de ne pas uniquement vissé ta borne, mais aussi de la collé.

Vis + Colle blanche (à bois) = le top du top  ^-^
#6956
Non car même avec le moteur demonté on sent bien les "crants" en faisant tourner l'arbre à la main.

Dans tout les cas "in game" on ne sent rien du tout.
#6957
2eme Bordel en cours de tri / [WIP] Ma MameCab/360Cab HD
Jeudi 16 Septembre 2010, 07:15:58 AM
Un post qui commence comme j'aime, je suis de près  ^-^ :-)=

Edit: pareil que les autres pour le pins, j'en ai fait les frais sur la table à langer DIY de ma dernière  :D , obligé de tout renforcer par la suite pour empêcher le bois de vriller
#6958
De mon expérience personnel ,je préfère le médium de 19mm
#6959
Cela provient certainement des aimants du moteurs qui sont trop puissant. J'ai essayé deux happs différents, avec des moteurs différents, l'un avait ce problème et l'autre non.

Celui qui ne présentait pas ce défaut avait un peu moins de couple, mais ça reste largement trop  :D
#6960
Merci pour les détails, continue de nous faire suivre ça  ^-^