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

Stylo intelligent :projet final pour ECE5725

Présentation

De nos jours, pour obtenir des résultats d'écriture manuscrite, les gens s'appuient souvent sur l'écran tactile capacitif, le stylet ou d'autres appareils similaires. Ils sont fonctionnels et précis, mais pas toujours flexibles. Notre projet combine Raspberry Pi avec IMU pour créer un produit capable de suivre le mouvement et de générer la trajectoire très rapidement. Nous avons conçu un système qui n'a besoin d'aucune surface spécifique ou d'autres outils de saisie pour le support et qui ne répond que sur IMU et ses capteurs. En connectant IMU avec Raspberry Pi, lorsque l'appareil IMU se déplace, les données du capteur seront transmises d'IMU à Raspberry Pi. Ensuite, à l'aide de notre programme et de notre algorithme, restaurez le mouvement de l'IMU. Le mouvement sera enregistré et stocké dans Raspberry Pi. Avec PyGame, le mouvement peut également être affiché sur l'écran TFT du Raspberry Pi. Avec un petit bouton pratique, la fonction d'enregistrement peut démarrer et terminer de manière très flexible. Les utilisateurs peuvent également attacher notre appareil à d'autres éléments pour suivre leurs mouvements. Par conséquent, notre appareil fournit une solution pratique pour le suivi de l'écriture manuscrite, le suivi des mouvements, etc.

Objectif

L'objectif du projet est de concevoir un module séparé qui peut être placé sur un stylo, un robot ou même des personnes pour suivre et enregistrer le mouvement de l'objet. Les utilisateurs peuvent utiliser ce module et l'attacher à leurs autres appareils. Ainsi, lorsque l'objet est déplacé, notre appareil peut restaurer et suivre sa trajectoire et afficher le mouvement dans le plan horizontal dans le cadre du monde à l'écran. Une application très classique est que les utilisateurs peuvent l'utiliser comme un stylo, ainsi leurs écrits seront enregistrés et sauvegardés sous forme d'image. Une particularité de ce projet est que le suivi ne répond à aucun avion spécifique et qu'il peut être appliqué sur tous les avions, même dans les airs. Le placement ou l'inclinaison de l'appareil n'affectera pas non plus le résultat final.

Nous utilisons Raspberry Pi et l'unité de mesure inertielle pour être les principaux composants de notre projet. Aussi, PyGame est utilisé pour afficher la trajectoire sur Raspberry Pi.

Étalonnage de l'IMU

En raison d'une imprécision de fabrication, les 3 axes des accéléromètres et les gyroscopes à 3 axes sont généralement mal alignés, provoquant une erreur entre l'angle d'Euler de deux coordonnées. Un étalonnage est nécessaire. En utilisant la technique d'étalonnage à 6 positions, nous configurons la position d'étalonnage à 6 comme suit :

À l'aide d'une table d'étalonnage fabriquée par nos soins (Figure XX), nous fixons l'imu aux 6 positions et enregistrons la lecture, les données d'étalonnage recueillies par ces six positions sont :

Les données d'accélération après étalonnage sont (Ax, Ay, Az sont des données après étalonnage et ax, ay, az sont des données brutes) :

Fusion de capteurs pour les données brutes

Calcul du quaternion :

Le quaternion est une représentation de l'orientation et de la rotation de l'objet, et il est plus facile de calculer la rotation du vecteur que les angles d'Euler. La transaction entre le quaternion et l'angle d'Euler est illustrée ci-dessous :

q=cosθ2+sinθ2cosα⋅i+sinθ2cosβ2⋅j+sinθ2cosγ⋅k

q=λ+P1i+P2j+P3k

Rotation des quaternions :

Pour un vecteur fixe V coordonné dans le repère XYZ, il pourrait être représenté en quaternion :

V=0+Vxi+Vyj+Vzk

Si le cadre tourne pour q, devient X'Y'Z', V coordonné en X'Y'Z' pourrait être représenté par :

V′=0+V′xi′+V′yj′+V′zk′

Alors, V=q∘V′∘q−1

Cependant, l'utilisation des données brutes générées par le gyroscope n'est toujours pas suffisante, en raison du désalignement mentionné dans la partie calibration, le vecteur de gravité obtenu par l'accéléromètre doit être pris en compte. La fonction 'UpdateIMU' est utilisée pour calculer l'erreur entre le vecteur de gravité calculé par le gyroscope et le vecteur de gravité mesuré par l'accéléromètre. Cette fonction a été exécutée 2000 fois au début de la phase stationnaire sans mouvements ni rotations, et en utilisant un retour pour calculer l'erreur. La fonction est illustrée ci-dessous :

123456789
 def UpdateIMU(self, Gyr, Acc) :if np.linalg.norm(Acc) ==0 :warnings.warn("L'amplitude de l'accéléromètre est nulle. Mise à jour de l'algorithme abandonnée.") return else :Acc =np.array(Acc / np.linalg.norm(Acc)) v =np.array([[2*(self.q[1]*self.q[3] - self.q[0]*self.q [2])], [2*(self.q[0]*self.q[1] + self.q[2]*self.q[3])], [self.q[0]**2 - self.q[1]**2 - self.q[2]**2 + self.q[3]**2]])

Les variables « Acc » et « v » sont toutes deux des vecteurs de gravité normalisés calculés par l'accéléromètre et le gyroscope, puis l'écart angulaire (erreur) entre les deux vecteurs peut être représenté à l'aide de leur produit croisé :

1
error =np.cross(v,np.transpose([Acc]),axis =0)

L'erreur calculée pourrait également être intégrée pour mettre à jour la lecture du gyroscope à l'aide de la boucle de rétroaction négative PI (c'est pourquoi nous devons exécuter cette fonction 2000 fois, afin que la boucle PI puisse converger) :

12
self.IntError =self.IntError + errorRef =Gyr - np.transpose(self.Kp*error+self.Ki*self.IntError)

Le quaternion pourrait alors être calculé par les données corrigées du gyroscope :

1234
pDot =np.multiply(0.5 , self.quaternProd_single(self.q, [0, Ref[0,0], Ref[0,1], Ref[0,2]]))self. q =self.q + pDot * self.SamplePeriod; self.q =self.q / np.linalg.norm(self.q); self.Quaternion =self.quaternConj(self.q);

Lire la suite : Stylo intelligent :projet final pour ECE5725


Processus de fabrication

  1. Idées de projets basés sur des capteurs pour les étudiants en dernière année d'ingénierie
  2. Les 10 principales tendances de la fabrication intelligente pour 2021
  3. L'éclairage intelligent comme fondement d'une ville intelligente
  4. Un journal de projet pour FirePick Delta, la MicroFactory Open Source
  5. Bande de santé - Un assistant intelligent pour les personnes âgées
  6. Mises à niveau de la maison intelligente pour la vie moderne
  7. Trouver la rentabilité de la fabrication intelligente
  8. Capteur ultra fin pour lentilles de contact intelligentes
  9. Comment choisir un projet pour l'automatisation