Gamoover

[move]Bienvenue sur Gamoover, portail francophone de l'arcade.

Arduino et contrôles analogiques

Démarré par lipide512, Dimanche 09 Décembre 2012, 18:21:48 PM

lipide512

Bonjour,
Un petit passage par la case présentation est bienvenue, avec en prime un petit topo sur ton projet. Ça peut en éclairer d'autres. ;)

Il s'agit bien de cette carte ?


Si c'est le cas, déjà ton uno semple compatible puisqu'il est basé sur le modèle de base, le mode DFU devrait être accessible. Ce qui est une bonne nouvelle.

Check si parfois ton antivirus ne met pas en quarantaine les fichiers nécessaires. Après windows10 a des comportements assez étranges...
Tu peux tester sur une machine sous xp si tu as un doute. le projet commence à dater. Je pense que c'est jouable sous virtualbox.


jpb63

Merci pour ces infos,

Petite présentation :
Je suis un passionné de vol virtuel depuis plus d'une trentaine d'années (FS et aujourd'hui  XPlane).
Je n'ai pas de grosses compétences en informatique, mais j'aime bien me bricoler des cockpits en 3D et réaliser des commandes réelles. 
Mon projet consisterait  a réaliser 2 postes de pilotages hélicoptère en doubles commandes (pédaliers, cycliques, collectifs et affectations sur les 2 derniers ensembles de boutons de commandes). Donc,  je souhaitai que cette carte « Arduino »  puisse être reconnue comme un joystick dans le panneau de configuration.
--------------------------------------------------
La photo de la carte correspond bien  à la mienne.
Je suis avec Windows 10. Mon antivirus ne semble rien bloquer. 
« Arduino-1.8.8-windows » et  « JRE - Flip Installer - 3.4.7.112 » se sont bien installés.
J'ai un vieux PC avec XP, je vais essayer d'installer le tout dessus pour me confirmer.

Ma photo n'a pas été prise la première fois ...
A+ jpb63

lipide512

Normalement la présentation se poste dans le topic dédié !  ;)
https://www.gamoover.net/Forums/index.php?topic=42.msg651930

Tu as installé JRE flip ?

Ici tu as la version arduino 10.0.3
http://downloads.arduino.cc/arduino-1.0.3-windows.zip


Pour ce genre de projet, je te conseillerai de t'intéresser au megajoy, qui te permet un peu plus d'aisance par la suite en cas d'upgrade.
Disons que si tu veux rajouter des boutons radios ou autres, tu auras plus de possibilités. Techniquement c'est grosso modo la même chose mais ça évite d'avoir à tout redémontrer pour rajouter des câbles en plus.

Perso j'ai bricolé un petit cockpit avec occulus - je ne vole qu'en VFR. :D
Je serai curieux de voir ce que donnent tes bricolages ! ;)

jpb63

Merci Lipide 512, je vais pouvoir avancer mon projet, https://www.gamoover.net/Forums/Smileys/guntar/bienjoue.gif

En définitive « UnoJoyWin » sous windows 10 fonctionne parfaitement chez moi avec les conditions suivantes :

arduino-1.0.3 - windows                            =  246 Mo   dézippé
ou éventuellement :
arduino-1.0.6 - windows                            =  251 Mo   dézippé 

UnoJoyWin-21Feb2013
JRE - Flip Installer - 3.4.7.112

----------------------------------------------------------------------

Donc « UnoJoyWin » ne fonctionne pas pour moi avec :
ARDUINO 1.8.8 - windows                        =   480 Mo  dézippé
arduino-nightly - windows                        =   480 Mo  dézippé

En espérant que ces constatations vous évitent de trop galérer sur le sujet.

lipide512

Ok super ! :)
ça ne m'étonne pas pour la dernière version de arduino, certainement des libs qui ont changé et ne sont plus compatibles avec le script.

Little_Rabbit

Salut,

Petit déterrage de cet excellent tuto de lipide512 8).

Peut-être pourrez-vous m'aider : j'ai pour projet de de mettre dans une de mes bornes Pole Position un PC avec MAME, pour remplacer le PCB d'origine. Je veux le faire de façon à ce que cela soit un "PCB virtuel", c'est à dire je débranche le PCB Pole Position d'origine, je branche une "planche" sur laquelle j'ai mis un PC et les encodeurs nécessaires, et roulez jeunesse :).

Mes besoins : encoder le potard de la pédale d'accélération en tant que joystick analogique, encoder la roue codeuse du volant en tant que souris un axe.

Mes questions :
- j'ai relu le sujet depuis le début, et je pensais initialement partir sur unojoy pour la pédale. Mais dans tes dernières interventions, tu sembles plus conseiller megajoy :). Pour mes besoins ultra-basiques, unojoy pourrait-il encore faire l'affaire ?
- pour la gestion de la roue codeuse du volant, vers quelle solution devrais-je m'orienter selon vous ?
- on trouve à présent des Arduino Nano à 3 francs 6 sous :). J'ai bien noté qu'il fallait la présence des broches pour la programmation du HID, mais Etienne un peu plus haut indique qu'il existerait une alternative avec HoodLoader2 de Nicohood => un avis là dessus ?

Désolé pour toutes ces questions :-\. Je n'ai jamais touché à un Arduino, donc j'essaye d'y voir plus clair ;).

Merci à ceux qui pourront éclairer ma lanterne  ^-.

A+
Recherche bornes dédiées ou PCB originaux: Miss Pacman, Dig Dug, Galaga, Mappy, Asteroids, Battlezone, Missile Command, Tempest, Star Wars, Donkey Kong (+ Jr), Mario Bros, Moon Patrol, Defender, Joust, Frogger, Gyruss, Pooyan, Space Tactics, Zaxxon, etc. Flip : Gottlieb des années 80 (Spirit, Amazon Hunt, ...), Baby Pac Man. Divers :  Ice Cold Beer => Trois fois rien quoi ! :D
Ma séance sur le divan : c'est grave Docteur ? :-\
Ma gaming room, ma storage room

sentinelle

Bonsoir  <:)

alors on est motive  =?=

:-)= :-)= :-)=

<:)

Ps la solu de chelnov + cher + simple  ;D ;D ;D ;D ;D ;D
horizon pas net reste a la buvette
Déjà que j'aime pas les gens alors les bêtes

lipide512

#87
Tu fais bien de poster. Je viens de trouver du nouveau. ;)

Ce tuto, on peut l'oublier, du moins si on a pas de uno r3 à recycler ! :)

Le mega reste cependant intéressant pour les grosses configs nécessitant beaucoup d'input : il procure 2 gamepads type ps3 complets ou 32 entrées distinctes ! :) si on a un mega à recycler - le leo le fait aussi...  :-\

Il existe aujourd'hui des alternatives basées sur du leonardo. En effet celui ci peut se voir affubler d'un hid usb sans omettre son port com dédié : donc pas de manip qui risquent de bricker le uno en écrasant le bootloader...

ça se trouve ici :

https://github.com/MHeironimus/ArduinoJoystickLibrary/tree/version-1.0

^-

pour les leo à vil prix :
https://fr.aliexpress.com/item/Carte-de-d-veloppement-ShengYang-Leonardo-R3-microcontr-leur-Atmega32u4-avec-c-ble-USB-Compatible-pour/32887046460.html?spm=a2g0s.9042311.0.0.40696c37WSc2BD

4.13 €... Merci Ali !   <:)

edit : ça devrait fonctionner avec le arduino micro mais pas le nano. Il faut un ATmega32u4.

Little_Rabbit

Salut,

Merci lipide512 pour ta réponse ultra-rapide et détaillée !  ^-^

Cool, je vais me prendre des Leonardo alors :).

Concernant les roues codeuses, quelle solution as-tu adoptée pour le projet d'Arkanoid dont tu parlais ?

Merci encore !  ^-

A+
Recherche bornes dédiées ou PCB originaux: Miss Pacman, Dig Dug, Galaga, Mappy, Asteroids, Battlezone, Missile Command, Tempest, Star Wars, Donkey Kong (+ Jr), Mario Bros, Moon Patrol, Defender, Joust, Frogger, Gyruss, Pooyan, Space Tactics, Zaxxon, etc. Flip : Gottlieb des années 80 (Spirit, Amazon Hunt, ...), Baby Pac Man. Divers :  Ice Cold Beer => Trois fois rien quoi ! :D
Ma séance sur le divan : c'est grave Docteur ? :-\
Ma gaming room, ma storage room

lipide512

Actuellement mon arkanoid est toujours avec son hardware de souris optique hacké et son pc en 15khz. Tant que ça marche... :-\

Pour rappel de son fonctionnement, j'ai récupéré la carte mère de la souris et j'ai collé sur l'axe du spinner un bout de carton imprimé avec des lignes noires sur fond blanc.
la carte  optique est positionnée de manière à pouvoir lire le carton sans le toucher (1-8mm) . Lorsqu'on tourne le spinner, la carte mère lit le déplacement. Il suffit ensuite de régler le gain dans MAME.

Cerise sur le gâteau, les 3 boutons de la souris peuvent servir pour câbler P1 / P2 et coin.

Au besoin, le passage au Pi sera transparent puisque je n'aurai qu'à rebrancher l'usb de la souris...

Pour une solution basée sur arduino, le système le plus simple parait être un encodeur relié au pi. J'en ai quelques uns pour tester mais c'est pas d'actualité. Je peux t'en filer un si tu veux test. Faut voir comment MAME interprète les impulsions.

HS à propos du Leo et de ses utilisations possibles
En ce moment, je suis sur un projet de la honte : j'ai bêtement  abîmé un atari ST (décollé les pistes du lecteur de D7) et j'ai souhaité refaire vivre sa coque vide. Le leo se charge donc de convertir le signal du clavier ST en clavier HID usb, branché à un pi3 et une petite distri qui va bien ... à moi le falcon, le STF et le STE avec megafile et fullset atari sur une même machine ! ;)

Cette modification a été motivée  car dernièrement j'ai tenté de brancher des Atari sur des écrans CRT fin 90s/2Ks ou LCD et très peu arrivent à accrocher le signal correctement. Là le pi3 sort en HDMI - pas de chichi - ça fonctionne même en vga avec un adaptateur. le son sortira sur RCA à l'arrière.. ou HDMI.

C'est fonctionnel mais encore en wip.

Little_Rabbit

Salut,

Merci pour ces explications complémentaires  ^-.

Alors ta solution ne va pas me convenir directement :), car je ne veux pas toucher à la borne ;). Il faut donc que je m'accommode de la roue codeuse d'origine et de son optocoupleur :).

Je vois 2 solutions :
- la plus simple, je prends une vieille souris à boule, et le câble dessus l'optocoupleur de la borne à la place de l'optocoupleur de la souris. Ça devrait marcher je pense...
- je me penche sur la programmation Leonardo et celle d'une roue codeuse pour faire mon propre "driver" => c'est sûrement faisable, mais vu que je pars du niveau 0 dans ces domaines, ça risque de me prendre un certain temps ! :D

Je partirai sûrement sur le hack de souris à boule :).

Dernier recours, je prends un Opti-Pac de chez Ultimarc, mais c'est un peu trop simple à mon goût ;).

A+
Recherche bornes dédiées ou PCB originaux: Miss Pacman, Dig Dug, Galaga, Mappy, Asteroids, Battlezone, Missile Command, Tempest, Star Wars, Donkey Kong (+ Jr), Mario Bros, Moon Patrol, Defender, Joust, Frogger, Gyruss, Pooyan, Space Tactics, Zaxxon, etc. Flip : Gottlieb des années 80 (Spirit, Amazon Hunt, ...), Baby Pac Man. Divers :  Ice Cold Beer => Trois fois rien quoi ! :D
Ma séance sur le divan : c'est grave Docteur ? :-\
Ma gaming room, ma storage room

Little_Rabbit

Salut,

Je prends enfin le temps de me replonger sur ce projet.

J'ai acheté il y a plusieurs mois déjà les Leonardo : je les ai enfin sortis de leur sachet !... :-\



Je ne connais rien aux Arduino en général, donc je patauge un peu :).

Pour l'instant, voici ce que j'ai fait et compris :
- j'ai téléchargé et installé sous Windows 7 l'IDE Arduino (version 1.8.10)
- j'ai renseigné ma version d'Arduino utilisé : menu déroulant Outils/Type de carte/Leonardo Arduino
- j'ai renseigné le n° de mon port COM : menu déroulant Outils/Port/COM6 (Arduino Leonardo)
- un code source Arduino est un fichier avec l'extension .ino => il se compile et se téléverse depuis l'IDE (menu déroulant Croquis/Téléverser)
=> j'ai testé avec le source Blink, et sa fonctionne :) (j'ai même changé la fréquence de clignotement et fait une pause entre 2 clignotements, c'est dire comment je suis balaise ! :D)
  => mais comme ça je sais que l'environnement de développement est bon
- une Bibilothèque Arduino se présente soit sous forme d'un ZIP, soit un dossier contenant généralement un source .cpp, un include .h, et un dossier d'exemples, avec un ou plusieurs .ino

Et à partir de là, je suis un peu perdu... :-\

Dans le cas qui nous intéresse, l'Arduino Joystick Library de Matthew Heironimus, le ZIP proposé présente 3 variantes de la Bibliothèque. J'ai d'abord essayé de l'installer via le menu Croquis/Inclure une bibliothèque/Ajouter la bibliothèque .ZIP..., mais cela n'a pas fonctionné : j'obtiens le message d'erreur "Le dossier spécifié ne contiens pas de bibliothèque valide" (Hum... qui a fait la traduction ?).

J'en ai conclu que c'était parce que le ZIP contient 3 versions, j'ai donc fait un ZIP avec 1 seule version, la 1ère intitulé "Joystick" :) => cette fois la bibliothèque apparaît bien dans l'IDE.

Pourquoi suis-je perdu alors ? Et bien je ne saisis pas bien qui fait quoi entre la bibliothèque et les exemples .uno. J'imagine que le .uno exploite la bibliothèque en faisant appel à ses fonctions, mais concrètement, quel source .uno dois-je prendre et téléverser dans le Leonardo pour que ma carte se comporte comme un joystick USB ?

Désolé si ces questions sont un peu débiles... je débute dans le domaine !

Merci pour votre aide.

A+
Recherche bornes dédiées ou PCB originaux: Miss Pacman, Dig Dug, Galaga, Mappy, Asteroids, Battlezone, Missile Command, Tempest, Star Wars, Donkey Kong (+ Jr), Mario Bros, Moon Patrol, Defender, Joust, Frogger, Gyruss, Pooyan, Space Tactics, Zaxxon, etc. Flip : Gottlieb des années 80 (Spirit, Amazon Hunt, ...), Baby Pac Man. Divers :  Ice Cold Beer => Trois fois rien quoi ! :D
Ma séance sur le divan : c'est grave Docteur ? :-\
Ma gaming room, ma storage room

lipide512

#92
Le potentiel de ces petites cartes est vraiment fou ! :)

J'ai pas test mais selon ce que je vois, pour faire de ton leo un gamepad
tu vas par exemple chercher l'ino dans ArduinoJoystickLibrary/Joystick/examples/GamepadExample/

Tu as d'autres contrôleurs standards ici :
ArduinoJoystickLibrary/Joystick/examples/



Ya le choix ! :)

Ma méthode pour les librairies c'est :
1 - fermer l'interface Arduino IDE ;
2 - de-zipper le fichier téléchargé et y sélectionner le ou les répertoires que je veux réellement  (Copier).
3 - coller ces répertoires dans le répertoire « $user/ Documents\Arduino\libraries »
4 - redémarrer l'interface Arduino IDE en administrateur , la ou les librairies sont maintenant disponibles.
5 - on peut vérifier sa présence dans l'onglet sketch > Include Library

CitationPlease note: Arduino libraries are managed in three different places: inside the IDE installation folder, inside the core folder and in the libraries folder inside your sketchbook. The way libraries are chosen during compilation is designed to allow the update of libraries present in the distribution. This means that placing a library in the "libraries" folder in your sketchbook overrides the other libraries versions.

Plus d'infos sur :
http://www.arduino.cc/en/Guide/Libraries

++  <:)

Little_Rabbit

Salut lipide,

Merci pour ton retour et tes suggestions !

Alors je ne sais pas pourquoi, mais alors que tout à l'heure j'avais testé le source UsbJoystickTest.ino, qui se compilait, se téléversait, mais me donnait une erreur à l'initialisation des drivers USB, je viens d'essayer à nouveau, sans rien avoir fait au niveau de la bibliothèque, et cette fois cela fonctionne, tant avec UsbJoystickTest.ino que JoystickButton.ino :) !

Au niveau des périphériques, j'ai bien une nouvelle manette :



et ses propriétés présentent plusieurs axes analogiques :



Il ne me reste plus qu'à comprendre comment son attribuées les pins du Leonardo, et à faire un câblage de test !  ^-^

A+
Recherche bornes dédiées ou PCB originaux: Miss Pacman, Dig Dug, Galaga, Mappy, Asteroids, Battlezone, Missile Command, Tempest, Star Wars, Donkey Kong (+ Jr), Mario Bros, Moon Patrol, Defender, Joust, Frogger, Gyruss, Pooyan, Space Tactics, Zaxxon, etc. Flip : Gottlieb des années 80 (Spirit, Amazon Hunt, ...), Baby Pac Man. Divers :  Ice Cold Beer => Trois fois rien quoi ! :D
Ma séance sur le divan : c'est grave Docteur ? :-\
Ma gaming room, ma storage room

lipide512

Dans ce sens là ça va : tant que ça fonctionne sans savoir pourquoi... ;)
J'ai constaté parfois que les drivers hid du leo ne se lançaient pas correctement au démarrage de windows. Ça ne le fait pas avec les UNO sous unojoy avec Flip. Peut être à cause du bootloader qui est reconnu de manière anormale ou qui donne un résultat inattendu.

chiourme

Salut, je vais acquerir 3 racecabs que j'aimerai brancher sur des PCs avec des Arduino Uno.
Y'a t il un moyen de passer en mode DFU avec les nouvelles cartes Arduino ?
Merci.