Table des matières:

Souris AIR 3D - Arduino + Traitement : 5 étapes
Souris AIR 3D - Arduino + Traitement : 5 étapes

Vidéo: Souris AIR 3D - Arduino + Traitement : 5 étapes

Vidéo: Souris AIR 3D - Arduino + Traitement : 5 étapes
Vidéo: doubling the drop every time the PC survives #shorts 2024, Novembre
Anonim
Souris AIR 3D | Arduino + Traitement
Souris AIR 3D | Arduino + Traitement

souris 3D AIR | Arduino + ProcessingJe suis un étudiant en design industriel, et l'année dernière dans le cadre d'un cours intitulé "Technologie en tant que matériel RAW" j'ai construit ce projet comme mon travail final. Je travaille la plupart du temps avec SolidWorks, un logiciel de CAO pour la conception et l'ingénierie. La rotation d'un corps solide sur l'écran se fait à l'aide du bouton central de la souris. Je cherchais quelque chose de plus intuitif. C'est ainsi que j'ai fini par faire la souris aérienne 3D, où la rotation réelle d'un objet se fait en déplaçant la souris dans les airs sur les 3 axes - de la même manière que vous feriez pivoter l'objet si vous le teniez dans votre main. J'ai utilisé l'Arduino, quelques capteurs et un croquis de traitement. REMARQUES: - Pour l'instant, ce n'est qu'une démonstration du concept, car il n'y a pas de plug-in réel pour travailler avec SolidWork (mais bien sûr, n'hésitez pas à écrivez-en un si vous savez comment:)- Puisque tout le matériel n'était pas à moi, la souris 3D réelle a disparu depuis longtemps, et j'utilise quelques photos et une vidéo pour essayer de donner un sens à tout cela, et pour vous donner une idée si vous voulez essayer d'en construire un vous-même… Profitez-en… (C'est mon premier Instructable) Voici la démo vidéo du projet fini

Étape 1: Matériel et matériel

Matériel et trucs
Matériel et trucs
Matériel et trucs
Matériel et trucs
Matériel et trucs
Matériel et trucs
Matériel et trucs
Matériel et trucs

Ce n'est pas l'Instructable le moins cher car il est basé sur un accéléromètre à 3 axes + un capteur de boussole. Des trucs dont vous aurez besoin: * Une souris - une souris d'occasion est meilleure (seulement parce qu'elle est utilisée et moins chère), n'importe quelle souris devrait faire. Vous avez besoin d'avoir un peu d'espace pour loger les capteurs et quelques fils supplémentaires, alors n'optez pas pour des souris extra fines / extra minuscules.* Module boussole avec compensation d'inclinaison - HMC634 - Il s'agit du capteur 3 axes, acheté chez SpurkFun pour ~ 149 $* Convertisseur de niveau logique - UN MUST ! Étant donné que l'Arduino est de 5V et que le capteur 3 axes est de 3,3V, vous en avez besoin pour convertir le 5V en 3,3V. Il a un grand nom, mais ne coûte que 1,95 $ chez SpurkFun.* Grand détecteur optique / phototransistor - Il s'agit d'un simple capteur optique, utilisé dans ce projet pour détecter quand la souris est soulevée de la surface de travail. Acheté chez SpurkFun pour 2,25 $ Si vous n'avez pas assez d'espace pour loger celle-ci dans la souris de votre choix, vous pouvez utiliser celle-ci, plus petite et moins chère. * Une (1) LED - peu importe la couleur, ultra brillante fonctionnera mieux.* 2 résistances - une (1) x 100Ω et une (1) x 100KΩ (pour le capteur optique)* Carte Arduino - DA ! J'ai utilisé le modèle Diecimila. Un Duemilanove plus récent est disponible chez SpurkFun pour environ 29,95 $ (devrait fonctionner aussi) + logiciel Arduino installé. * Logiciel de traitement installé. * Le code source du projet (ne vous inquiétez pas, vous pourrez le télécharger en une seconde.) Plus: certains colle chaude (pour fixer les choses en place)Quelques petites vis. Environ 10cm d'une ancre en bois de 6mm (Dia.). Quelques fils supplémentaires. Fer à souder. Quelque chose pour couper le plastique avec, j'ai utilisé un couteau et une lime (POUR le façonnage). ("D'accord, ne me déteste pas pour cette étape, l'anglais est ma deuxième langue, si je me suis trompé, je suis désolé, je suis sûr que vous comprendrez de quoi je parle dans une seconde. quand vous le verrez en images")

Étape 2: Électronique

Électronique
Électronique
Électronique
Électronique

Tout doit être soudé ensemble… D'une certaine manière… REMARQUE: Le capteur 3 axes est une petite chose coûteuse, vérifiez le câblage avant de mettre le tout sous tension… Voir les schémas ci-joints pour tout le câblage utilisé dans ce projet. Le code source joint ne peut fonctionner que si vous utilisez les mêmes numéros de broche que moi, mais n'hésitez pas à les modifier lors de la connexion tant que vous modifiez les numéros appropriés dans le code. Connexion du capteur 3 axes au convertisseur de niveau logique: Capteur VCC -> Arduino 3V3Sensor GND -> Arduino GndSensor SDA -> Converter TXI (Chan1)Converter TXO (Chan1) -> Arduino ANALOG IN 4Sensor SCL -> Converter TXI (Chan2)Converter TXO (Chan2) -> Arduino ANALOG IN 5Converter GND (au moins l'un d'entre eux) -> Arduino GndConverter HV -> Arduino 5VConverter LV -> Arduino 3V3Capteur optique vers Arduino: voir l'image ci-jointeDigital in = Pin 11 sur l'ArduinoLED: GND à certains GND (j'ai utilisé l'un des capteurs optiques) + à Arduino PIN 13 (Ceci a été fait car cette broche a déjà une résistance intégrée, si vous en utilisez une autre, assurez-vous d'utiliser une résistance pour ne pas brûler la LED)

Étape 3: Préparation de la souris

Préparation de la souris
Préparation de la souris
Préparation de la souris
Préparation de la souris
Préparation de la souris
Préparation de la souris

C'est là que les capteurs trouvent leur place à l'intérieur du boîtier de la souris. Trouvez le meilleur endroit pour fixer le capteur 3 axes. Assurez-vous qu'il est à niveau et faites attention à l'orientation (vous saurez quand vous aurez le capteur en main) Vous pouvez le fixer comme vous le souhaitez, j'ai utilisé 2 petits morceaux d'ancrage en bois, percés pour accepter les 2 petites vis, et collé à chaud sur la carte principale de la souris. Pour le capteur optique, formez un trou rectangulaire au bas de la souris, l'idée est que le capteur "voit" la table tout le temps. Lorsque la souris est soulevée et que l'état du capteur est "ouvert" (pas de tableau à voir), la souris passe en mode 3D (exécute le croquis de traitement)Formez un autre trou pour acheminer les fils supplémentaires (des capteurs à l'Arduino) hors du boîtier en plastique. Le mien était situé sur le côté droit de la souris. Fixez la LED là où elle s'affichera. Dans ce projet, la LED est l'indicateur de mode 3D. Je place le mien à côté de la molette de la souris en silicone. Lorsque la souris est levée, la roue a une belle lueur bleue.

Étape 4: Le code source

Le code de l'Arduino a été écrit par Shachar Geiger, mon professeur, et a été modifié par moi pour ce projet. Le code du cube 3D est le code de base trouvé sur le site Web de Processing. Je l'ai un peu modifié. Dans le code, ce morceau convertit les informations brutes provenant du capteur (généralement -180 à 180 x 10) en 0-255 getHeading();Serial.write ('x');x = (x +1800) / 14;Serial.write(x);Serial.write('y');y = (y+1800) / 14;Serial.write(y);Serial.write('z');z= (z+1800) / 14;Serial.write(z); Les informations du capteur et de l'Arduino vont à l'esquisse de traitement pour chaque axe séparé, mais avec une lettre d'axe précédente (pour exp. X12 Y200 Z130), le code suivant supprime la lettre et ne laisse que les valeurs à envoyer au COM port while(port.available() == 0){}char reading = 0;while (reading != 'x') {while(port.available() == 0){}reading = (char)port.read ();}X = port.read();while (reading != 'y') {while(port.available() == 0){}reading = (char)port.read();}Y = port.read();while (reading != 'z') {while(port.available() == 0){}reading = (char)port.read();}Z = port.read(); Ce morceau de code supprime toutes les valeurs négatives… if ((X != -1) && (Y != -1) && (Z != -1)){rotateZ(-(float)Y/25.0);rotateX((float)X/25.0);rotationY((float)Z/25.0);pX = X;pY = Y;pZ = Z;} else {rotateZ(-(float)pY/25.0);rotateX((float)pX /25.0);rotateY((float)pZ/25.0);} Le fichier ZIP joint contenait à la fois Arduino et le code de traitement

Étape 5: Vidéo

C'est tout… C'est le projet terminé dans une vidéo. Il y a un petit problème (Vous pouvez voir que le cube "saute" parfois dans la vidéo), C'est à cause de l'axe Z, cela pourrait ne pas vous arriver…

Conseillé: