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 smartphone

Composants et fournitures

Arduino UNO
× 1
Module Bluetooth HC-05
× 1
Câbles de raccordement (générique)
× 1

Applications et services en ligne

Arduino IDE
IDLE (Python GUI)
Commande de souris Bluetooth MIT App Inventor

À propos de ce projet

Ce projet est similaire à mon travail précédent où j'ai utilisé un joystick pour contrôler un curseur de PC. La principale différence est que j'ai créé une application pour smartphone qui contient 2 joysticks virtuels pour déplacer le curseur ainsi que faire défiler l'écran et fait également un clic gauche et droit comme un trackpad ordinaire.

Travailler

Le projet implique une application pour smartphone qui envoie les données des axes x et y du joystick, l'état du défilement, l'état des clics gauche et droit via Bluetooth à l'Arduino Uno connecté au module Bluetooth HC-05. Ces données à la réception de l'Arduino sont manipulées pour apporter des modifications à la position actuelle du curseur afin d'obtenir une nouvelle position. Les données résultantes ainsi que l'état du défilement et du bouton sont ensuite imprimées en tant que sortie reconnue pour être lue par l'esquisse Python. L'esquisse Python est conçue pour exécuter des actions de souris à l'aide du module de souris.

À propos de l'application

L'application pour smartphone est créée à l'aide du MIT-App Inventor. La création de l'application est simple car il vous suffit d'ajouter les blocs souhaités pour créer l'application requise. J'ai fait référence au didacticiel de robotique sur table pour les créer. L'écran principal de l'application est le suivant-

Avant d'envoyer les informations principales au module HC-05, l'application envoie d'abord un numéro à un octet (255) pour indiquer le début des informations. La séquence de transfert de données est la suivante-

1. Envoyez « 255 » pour indiquer le début

2. Envoyer la valeur de l'axe des x du joystick sur 1 octet

3. Envoyer la valeur de l'axe des y du joystick sur 1 octet

4. Envoyer l'état du clic gauche, du bouton droit et de l'état du défilement (1 octet).

Les données de l'application sont envoyées toutes les 20 millisecondes à l'Arduino UNO.

Côté Arduino

Les octets de données de l'application sont reçus par l'Arduino à l'aide du module Bluetooth HC-05. L'Arduino contient les coordonnées actuelles du curseur où les coordonnées x vont de 0 à 1279 et les coordonnées y vont de 0 à 799. J'ai obtenu ces coordonnées extrêmes de la fonction python mouse.get_position() qui renvoie les coordonnées lorsque le curseur est déplacé (non utilisé dans l'esquisse principale).

Sur la base des données reçues lors du déplacement du joystick, la position actuelle du curseur (coordonnées x et y) est ensuite ajoutée/soustraite avec les données reçues par l'application pour déplacer le curseur vers la nouvelle coordonnée souhaitée. Les données finales sont ensuite imprimées sur le moniteur série dans l'ordre indiqué ci-dessous.

La séquence de données suivante est finalement lue par le programme python pour l'exécuter. Pour cela, nous devrons télécharger des modules supplémentaires à savoir mouse et pyserial dans les étapes indiquées ci-dessous.

Programmation Python

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

(Pour Windows)

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 des actions de 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

Exécution

Installez l'application Bluetooth Mouse Control sur votre smartphone.

Téléchargez le croquis Arduino sur votre Arduino UNO et suivez le circuit comme indiqué dans le schéma.

Côté Python -

1. Copiez-collez le code python dans un fichier bloc-notes. Remplacez le port COM par le port COM de votre Arduino UNO et enregistrez-le sous le nom '.py'.

2. Ouvrez le python IDLE et ouvrez le fichier du bloc-notes.

3. Exécutez l'esquisse.

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

Ouvrez l'application smartphone et connectez-vous au module Bluetooth et vous remarquerez le mouvement du curseur lors du changement de direction du joystick.

Code

  • Code Arduino
  • Code Python
Code ArduinoArduino
int datareceived[5] {0,0,0,0} ; // Pour stocker l'octet de phoneint in_byte =0;int array_index =0;int l_prev=0,r_prev=0; // état précédent du clic gauche et droit de la souris void setup() {Serial.begin (9600); // démarre le moniteur série} int height=0,width=0;void loop() { int clicks=0; sensibilité int=20; // vous pouvez ajuster la sensibilité int xpos=0,ypos=0;if (Serial.available()> 0) { //recevoir l'octet du téléphone in_byte=Serial.read(); //stocker en octet dans une variable if (in_byte ==(255)) { // si la variable est 0, mettez le tableau inxé à 0. array_index =0; } datareceived[tableau_index] =in_byte; //stocker le numéro dans le tableau array_index =array_index +1; if(données reçues[1]>=110)xpos=map(données reçues[1],110,172,0,sensibilité); // Lorsqu'il est déplacé à droiteif(datareceived[1]<=70)xpos=map(datareceived[1],60,1,0,-sensitivity); // Lorsqu'il est déplacé à gaucheif(datareceived[2]>=110)ypos=map(datareceived[2],110,255,0,sensitivity); // Une fois déplacé vers le basif(datareceived[2]<=60)ypos=map(datareceived[2],70,1,0,-sensitivity); // Une fois déplacé vers le hautif(datareceived[3]==1 &&l_prev==0) // Pour reconnaître un seul bouton, appuyez sur clicks=1;else if(datareceived[3]==2 &&r_prev==0)clicks=2;else if(datareceived[3]==3 || datareceived[3]==4)clicks=datareceived[3] ; // scrolll_prev=datareceived[3];r_prev=datareceived[3];if(xpos!=0 ou ypos!=0 or clicks!=0) // lorsque l'un des joysticks est déplacé ou que le bouton est enfoncé ou fait défiler{ hauteur=hauteur+ypos;largeur=largeur+xpos;if(hauteur>=799)hauteur=799;if(hauteur<=0)hauteur=0;if(largeur>=1279)largeur=1279;if(largeur<=0)width=0;Serial.print(width);Serial.print(":");Serial.print(height);Serial.print(":");Serial.println(clicks);clicks=0;} }}
Code PythonPython
import mouse, sysimport time import serialmouse.FAILSAFE=FalseArduinoSerial=serial.Serial('com3',9600) #Spécifiez le bon COM porttime.sleep(1) #delay of 1 secondwhile 1:data=str(ArduinoSerial.readline ().decode('ascii')) (x,y,z)=data.split(":") # lit les données des axes x et y (x,y)=(int(x),int(y) ) # convertir en int mouse.move(x,y) # déplacer le curseur aux coordonnées souhaitées si '1' dans z :mouse.click(button="left") #clic sur le bouton de la souris elif '2' dans z:mouse. click(button="right") elif '3' dans z:mouse.wheel(delta=-1) # Faites défiler elif '4' dans z:mouse.wheel(delta=1) # Faites défiler vers le haut 

Schémas


Processus de fabrication

  1. Robot Raspberry Pi contrôlé par Bluetooth
  2. Lumière de table interactive à commande gestuelle
  3. Voltmètre DIY utilisant Arduino et Smartphone
  4. LED contrôlées par Alexa via Raspberry Pi
  5. Voiture RC contrôlée par joystick
  6. Arduino avec Bluetooth pour contrôler une LED !
  7. Bras robotique contrôlé par Nunchuk (avec Arduino)
  8. Robot à commande vocale
  9. MobBob :Robot Arduino DIY contrôlé par smartphone Android