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

Pavé tactile Walabot

Pavé tactile Walabot Une solution discrète qui peut transformer n'importe quelle surface en pavé tactile pour votre ordinateur portable. Imaginez utiliser un livre, une table ou un mur comme pavé tactile. Combiné à la technologie de projection, vous pouvez reproduire des écrans tactiles sur n'importe quelle surface.

Ce projet vise à apporter cet utilitaire et cette facilité d'utilisation via des protocoles de socket simples et Walabot, un appareil d'imagerie 3D grand public.

Comme je voulais que cette solution soit à la fois pratique au quotidien et accessible à tous, j'ai donc opté pour la configuration la moins gourmande en matériel. Pour équilibrer la facilité de configuration avec la précision de l'imagerie, j'ai mis en place une boucle de configuration de base qui s'exécute à chaque démarrage du Walabot.

Ce tutoriel couvre la procédure de configuration du Raspberry Pi et le contrôle du curseur sur un ordinateur hôte.

Comment ça marche ?

Le projet repose sur un client Raspberry Pi 3 qui prend les lectures d'un capteur Walabot Creator (merci Walabot !), et une machine hôte qui dans ce cas est mon ordinateur portable.

Le flux utilisateur général est le suivant :

Démonstration

Dans Progrès

Configuration du Pi

Tout d'abord, nous devons configurer le pi pour qu'il soit utilisable et qu'il dispose de toutes les bibliothèques nécessaires.

sudo apt-get update
Téléchargements cd
sudo dpkg –i walabot_maker_1.0.34_raspberry_arm32.deb

En résumé, les commandes mettent à jour les listes de packages du système et installe le WalabotSDK

sudo apt-get dist-upgrade
sudo reboot

Cela met à jour les packages installés et redémarre le RPi.

Pour une plus grande vitesse, je vous recommande de désactiver l'interface graphique du bureau comme indiqué ici.

Interfaçage Walabot

Maintenant, c'est là qu'intervient le Walabot. C'est un capteur d'imagerie micro-ondes 3D qui peut faire un tas de choses, de la détection de la respiration, de la vision à travers les murs et de la détection de plusieurs cibles. Vous pouvez les découvrir sur leur chaîne YouTube !

La fonctionnalité vraiment utile pour ce projet est la détection tridimensionnelle RF, qui peut détecter les coordonnées x, y et x d'une cible. De plus, sa capacité de filtrage dynamique qui supprime les signaux statiques peut être combinée avec son filtrage des réflecteurs fixes, vous permettant de suivre un objet avec précision même à travers d'autres matériaux.

Cependant, l'un des inconvénients de l'utilisation d'un appareil aussi puissant est sa consommation d'énergie élevée. Le Walabot utilise 400-900 mA, ce qui est trop élevé pour la sortie USB par défaut de la framboise. Cela peut être résolu en accédant à /boot/config.txt et en ajoutant cette ligne :max_usb_current=1. Cela augmentera le courant maximum à 1200 mA.

Détection de cible

S'assurer que le Walabot ne détecte que mon doigt lorsque je le souhaite est la clé, sinon mon ordinateur peut déplacer le curseur de manière aléatoire, peut-être même hors des limites. Pour mon projet, je me suis interfacé avec l'API Walabot à l'aide de la fonction GetSensorTargets() et j'ai désactivé le mode MTI (Moving Target Identification) pour empêcher le filtrage du signal du doigt sur de plus longues périodes. J'ai réglé le rayon de détection (r) dans mon projet à un maximum de 10 cm pour régler l'arène à la zone immédiatement au-dessus du Walabot. Cela change en fonction de l'épaisseur du matériau.

J'ai essayé de définir les dimensions de l'arène en valeurs x, y et z, mais cela ne fonctionnait mieux que sur le profil à courte portée qui n'était disponible que sur l'édition développeur de Walabot. Lorsque j'ai essayé cela sur le mode scanner par défaut, j'ai obtenu une détection de cible presque nulle, probablement parce que le mode scanner lit radialement au lieu de passer par les coordonnées cartésiennes. J'ai donc défini un profil de scanner standard, défini l'arène radialement et converti les dimensions radiales en coordonnées cartésiennes.

Les objets cibles ont des paramètres x, y, z et amplitude, dont je n'ai utilisé que les valeurs x et y. Comme l'axe y est sur la longueur du Walabot, j'ai traduit cela en axe x sur l'écran lorsque le Walabot est placé horizontalement comme un pavé tactile. Lorsque je compare les coordonnées aux limites de l'arène, je peux trouver l'emplacement relatif de la cible par rapport à l'arène et le traduire en l'emplacement relatif du curseur sur l'écran hôte.

Cependant, comme mon arène a été initialisée en fonction des valeurs r, thêta et phi, j'ai dû trouver manuellement les limites d'arène utilisables en mesurant les valeurs les plus basses et les plus élevées des coordonnées x et y. J'ai ensuite automatisé cela lors de la configuration afin que le programme puisse trouver les limites lorsque l'utilisateur fait glisser son doigt le long des axes x et y. Même s'il existe des formules pour convertir les coordonnées polaires en cartésiennes, les limites définies différaient de l'arène mesurable réelle car elles ne peuvent pas prendre en compte l'interférence d'une autre surface sur la zone enregistrée.

Pour déterminer si un utilisateur souhaite déplacer le curseur, clic droit ou clic gauche, j'ai utilisé les fonctionnalités de détection de cibles multiples du Walabot. Le mouvement serait 1 point de contact, un clic droit serait 2 points de contact et un clic gauche en serait 3. Cela semble solide, il est temps de le tester.

Argh ! Cela s'est avéré beaucoup plus difficile à mettre en place. J'avais initialement prévu que le code clique sur les boutons respectifs de la souris lorsque le Walabot détecte deux cibles ou plus, mais au moment même où les doigts entrent dans le champ de vision, le Walabot détecte une cible, déplaçant ainsi la souris avant de cliquer .

Le difficile équilibre de maximiser la zone de l'arène sans augmenter la plage z au centre La solution évidente consiste à diminuer la plage de l'arène elle-même, ce qui diminue naturellement la plage z. Cela a pour effet secondaire de produire un pavé tactile trop petit pour être utilisé. L'autre voie que j'ai empruntée consistait à filtrer manuellement les cibles avec un attribut z trop élevé, mais cela ne fonctionne pas car une cible le long de l'axe z est toujours enregistrée plus haut au bord qu'au centre. L'amplitude ne fonctionne pas aussi bien, car elle est centrée sur la partie la plus sensible du module. J'ai envisagé de modifier manuellement la valeur du paramètre z pour toutes les cibles en ajoutant abs (angle phi - 90 degrés) * multiplicateur à toutes les cibles, mais malheureusement, le paramètre d'angle phi n'est pas un paramètre de cible de capteur accessible. À la fin, je n'ai pu résoudre ce problème qu'en utilisant un pavé tactile incurvé pour correspondre à la courbure de la plage de détection, ou en obtenant une édition Walabot Developer.

Lire plus de détails :Walabot Touchpad


Processus de fabrication

  1. Qu'est-ce que l'usinage VMC ?
  2. Considérations pour l'usinage suisse à haute production
  3. Guide du prototypage CNC
  4. Comprendre le processus de fabrication d'arbres
  5. Qu'est-ce que la passivation de l'acier inoxydable ?
  6. Posture Pal avec Walabot
  7. Pavé tactile Walabot
  8. Toilet Tracker (Powered by Walabot)
  9. Walabasquiat :Une installation artistique générative interactive !