Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

souris contrôlée par joystick

Composants et fournitures

Arduino UNO
× 1
Joystick à deux axes
× 1

Applications et services en ligne

Arduino IDE
IDLE (Python GUI)

À propos de ce projet

Comme alternative au suivi du curseur de l'ordinateur à l'aide d'une souris ou d'un trackpad, j'ai réalisé cette même application à l'aide d'un joystick. Le joystick peut déplacer le curseur dans n'importe quelle direction (axes x et Y) et exécute également une fonction de clic avec le commutateur du joystick intégré.

Notions de base-

Un joystick se compose simplement de 2 potentiomètres alignés dans les directions x et y. L'arduino lit les valeurs analogiques du joystick dans la plage de 0 à 1023. Ainsi, lorsque le joystick est dans sa position par défaut (centre), la valeur analogique devient également proche de 500 (entre 0 et 1023).

L'esquisse de l'arduino est programmée de telle sorte que lorsque le joystick est éloigné du centre, imprime des valeurs dans la plage de -sensibilité à + valeur de sensibilité (la valeur par défaut est 10) en fonction de la position. Ainsi, lorsque le joystick est déplacé dans une position extrême, l'arduino imprime la valeur 10 et si le joystick est déplacé dans une autre position extrême, alors -10 est imprimé.

Pour imprimer des valeurs séparées pour les directions x et y, nous utiliserons ":" entre les valeurs des directions x et y. Exemple :

L'état du bouton du joystick (SW) est imprimé (1/0) sur le moniteur série après les valeurs x et y.

Pour que l'ordinateur portable reconnaisse les valeurs, nous aurons besoin du module pyautogui de python.

Programmation Python

(édité le 11/12/2020 - a changé la bibliothèque de 'pyautogui' à 'mouse')

L'utilisateur doit avoir python 3 installé sur son ordinateur portable/ordinateur. Il peut être téléchargé ici.

Après l'installation, copiez le chemin de l'emplacement du fichier python.

Les étapes suivantes doivent être effectuées sur l'invite de commande. Ouvrez l'invite de commande et entrez ce qui suit-

1. cd

2. py –m pip install –-upgrade pip

3. py –m pip install mouse

4. py -m pip install pyserial

La souris module est utilisé pour effectuer l'action de la souris et pyserial module est utilisé pour envoyer/recevoir des données de l'arduino. J'avais déjà installé les modules nécessaires, alors j'ai eu ça

Le programme python est fait pour lire les données imprimées par l'Arduino et reconnaître le x et y valeurs de direction ainsi que l'état du commutateur (SW).

Les coordonnées actuelles du curseur sont obtenues à partir de la fonction de souris mouse.get_position() qui fournit les coordonnées X et Y du curseur sous forme de pixels.

Lorsque le joystick est déplacé, les valeurs analogiques fournies par l'arduino sont ajoutées à la position actuelle du curseur pour déplacer le curseur dans la direction souhaitée.

Pour déplacer le curseur dans la direction donnée, la fonction mouse.move(X+x,Y+y) remplit cet objectif.

où X et Y sont la position actuelle du curseur et x et y sont les positions d'incrément/décrément fournies par l'arduino.

exemple :mouse.moveTo(100,150) déplace le curseur à 100 pixels sur l'axe des x et à 150 pixels sur l'axe des y.

Pour effectuer une opération de clic en fonction de l'état du logiciel, mouse.click(button="left") est utilisé.

Exécution finale

Téléchargez le croquis arduino (donné ci-dessous) sur votre arduino UNO et connectez le joystick aux broches arduino comme indiqué dans le schéma.

Après vous être assuré que la souris et le pyserial sont installés sur votre ordinateur/ordinateur portable, procédez comme suit.

1. Copiez l'esquisse python dans un fichier bloc-notes. Spécifiez le bon port COM de l'arduino. Depuis le gestionnaire de périphériques, vous pouvez obtenir le port COM auquel la carte arduino est connectée. Enregistrez le fichier sous ".py" après avoir apporté des modifications.

2. Ouvrez l'IDLE de python (python GUI) et ouvrez le fichier bloc-notes à partir de celui-ci.

3. lancez le module.

Vous serez alors redirigé vers l'écran de la figure 4

Si vous voyez des erreurs, redémarrez l'IDLE et vérifiez si vous avez mentionné le bon port COM de l'arduino.

S'il n'y a pas d'erreurs, déplacez le joystick et vous verrez le mouvement du curseur.

Code

  • Code Arduino
  • Code Python
Code ArduinoArduino
//////////////////////////////// Souris contrôlée par joystick////// par Shubham Santosh/ ///////////////////////////////// void setup() { Serial.begin(9600); pinMode(9,ENTRÉE); // Broche SW digitalWrite(9,HIGH);}int prev_state=0; // état précédent de la boucle switchvoid() { int z=0,xpos=0,ypos=0; int x=analogRead(A0) ; int y=analogRead(A1) ; sensibilité int=10; // vous pouvez ajuster la sensibilité en fonction de votre confort if(x>=550) // une fois déplacé vers le haut xpos=map(x,550,1023,0,sensitivity); if(x<=450) // lors du déplacement vers le bas xpos=map(x,450,0,0,-sensitivity); if(y>=550) // lorsqu'il est déplacé vers la droite ypos=map(y,550,1023,0,sensitivity); if(y<=450) // lorsqu'il est déplacé vers la gauche ypos=map(y,450,0,0,-sensitivity); int curr_state=digitalRead(9) ; if(curr_state==1 &&prev_state==0) // quand SW est pressé z=1; sinon z=0; if(xpos!=0 ou ypos!=0 ou z==1) // n'imprime que lorsque le joystick est déplacé { Serial.print(xpos); // imprime les données et sépare par ":" Serial.print(":"); Serial.print(ypos); Serial.print(":"); Serial.println(z); } prev_state=curr_state; retard(10) ; // pour un fonctionnement normal}
Code PythonPython
# souris contrôlée par joystick# Par Shubham Santosh# dernière modification 12/11/2020import mouse, sysimport time import serialmouse.FAILSAFE=FalseArduinoSerial=serial.Serial('com3',9600) #Spécifiez le bon port COM.sleep(1 ) #delay of 1 secondwhile 1:data=str(ArduinoSerial.readline().decode('ascii')) #read the data (x,y,z)=data.split(":") # assigne à x, y et z (X,Y)=mouse.get_position() #lire la position actuelle du curseur (x,y)=(int(x),int(y)) #convertir en int mouse.move(X+x,Yy ) #déplacer le curseur à la position souhaitée si '1' dans z :# lire l'état de la souris SW.click(button="left") # clics sur le bouton gauche 

Schémas


Processus de fabrication

  1. Souris d'ordinateur
  2. Ventilateur à température contrôlée
  3. Aquaponie contrôlée Raspberry Pi
  4. Bouton AWS IoT à contrôle de mouvement
  5. Robot Raspberry Pi contrôlé par Bluetooth
  6. Robot contrôlé par Wi-Fi utilisant Raspberry Pi
  7. MajorTom :Alexa Voice Controlled ARDrone 2.0
  8. Voiture RC contrôlée par joystick
  9. Alliage 42 Alliage à expansion contrôlée