Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Smart Pen:Endgültiges Projekt für ECE5725

Einführung

Heutzutage verlassen sich die Leute oft auf den kapazitiven Touchscreen, den Eingabestift oder andere ähnliche Geräte, um handschriftliche Ergebnisse zu erzielen. Sie sind funktional und präzise, ​​aber nicht immer flexibel. Unser Projekt kombiniert Raspberry Pi mit IMU, um ein Produkt zu bauen, das die Bewegung verfolgen und die Flugbahn sehr schnell generieren kann. Wir haben ein System entwickelt, das keine spezifische Oberfläche oder andere Eingabewerkzeuge zur Unterstützung benötigt und nur auf IMU und deren Sensoren reagiert. Durch die Verbindung von IMU mit Raspberry Pi werden die Sensordaten von IMU an Raspberry Pi übertragen, wenn sich das IMU-Gerät bewegt. Stellen Sie dann mit unserem Programm und Algorithmus die IMU-Bewegung wieder her. Die Bewegung wird aufgezeichnet und im Raspberry Pi gespeichert. Mit PyGame kann die Bewegung auch auf dem TFT-Bildschirm des Raspberry Pi angezeigt werden. Mit einem kleinen und praktischen Knopf lässt sich die Aufnahmefunktion sehr flexibel starten und beenden. Benutzer können unser Gerät auch an anderen Dingen befestigen, um ihre Bewegungen zu verfolgen. Daher bietet unser Gerät eine praktikable Lösung für die Handschriftverfolgung, Bewegungsverfolgung usw.

Ziel

Ziel des Projekts ist es, ein separates Modul zu entwerfen, das auf einen Stift, Roboter oder sogar Menschen gesteckt werden kann, um die Objektbewegung zu verfolgen und aufzuzeichnen. Benutzer können dieses Modul verwenden und mit ihren anderen Geräten verbinden. Wenn das Objekt bewegt wird, kann unser Gerät seine Flugbahn wiederherstellen und verfolgen und die Bewegung in der horizontalen Ebene im Weltrahmen auf dem Bildschirm anzeigen. Eine sehr klassische Anwendung ist, dass Benutzer ihn als Stift verwenden können, sodass ihre Schriften aufgezeichnet und als Bild gespeichert werden. Eine Besonderheit an diesem Projekt ist, dass das Tracking nicht auf einem bestimmten Flugzeug antwortet und auf jedes Flugzeug angewendet werden kann, sogar in der Luft. Auch die Platzierung oder Neigung des Geräts hat keinen Einfluss auf das Endergebnis.

Wir verwenden Raspberry Pi und Inertial Measurement Unit als Hauptkomponenten für unser Projekt. Außerdem wird PyGame verwendet, um die Flugbahn auf dem Raspberry Pi anzuzeigen.

IMU-Kalibrierung

Aufgrund von Fertigungsungenauigkeiten sind die 3 Achsen der Beschleunigungsmesser und die 3 Achsen Gyroskope normalerweise falsch ausgerichtet, was einen Fehler zwischen dem Eulerwinkel von zwei Koordinaten verursacht. Eine Kalibrierung ist erforderlich. Mit der 6-Pos-Kalibrierungstechnik richten wir die 6-Kalibrierungsposition wie folgt ein:

Mit einer selbst erstellten Kalibriertabelle (Abbildung XX) fixieren wir das imu an den 6 Positionen und zeichnen den Messwert auf. Die von diesen sechs Positionen gesammelten Kalibrierdaten sind:

Die Beschleunigungsdaten nach der Kalibrierung sind (Ax, Ay, Az sind Daten nach der Kalibrierung und ax, ay, az sind Rohdaten):

Sensorfusion für Rohdaten

Quaternion-Berechnung:

Quaternion ist eine Darstellung der Orientierung und Drehung des Objekts, und es ist einfacher, die Drehung des Vektors zu berechnen als die Euler-Winkel. Die Transaktion zwischen der Quaternion und dem Eulerwinkel ist unten dargestellt:

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

q=λ+P1i+P2j+P3k

Quaternion-Rotation:

Für einen im Rahmen XYZ koordinierten festen Vektor V könnte er in Quaternion dargestellt werden:

V=0+Vxi+Vyj+Vzk

Wenn sich der Rahmen um q dreht, werden X’Y’Z’, V koordiniert in X’Y’Z’ könnte dargestellt werden als:

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

Dann ist V=q∘V′∘q−1

Die Verwendung der vom Gyroskop erzeugten Rohdaten ist jedoch immer noch nicht ausreichend, da aufgrund der im Kalibrierungsteil erwähnten Fehlausrichtung der vom Beschleunigungsmesser erhaltene Gravitationsvektor berücksichtigt werden muss. Die Funktion „UpdateIMU“ wird verwendet, um den Fehler zwischen dem vom Gyroskop berechneten Gravitationsvektor und dem vom Beschleunigungsmesser gemessenen Gravitationsvektor zu berechnen. Diese Funktion wurde zu Beginn des stationären Stadiums 2000 Mal ohne Bewegungen oder Drehungen und unter Verwendung eines Feedbacks zur Berechnung des Fehlers ausgeführt. Die Funktion ist unten dargestellt:

123456789
 def UpdateIMU(self, Gyr, Acc):if np.linalg.norm(Acc) ==0:warnings.warn("Beschleunigungsmesserbetrag ist null. Algorithm update aborted.") 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]])

Die Variablen „Acc“ und „v“ sind beide normalisierte Gravitationsvektoren, die vom Beschleunigungsmesser und dem Gyroskop berechnet werden, dann könnte die Winkelabweichung (Fehler) zwischen den beiden Vektoren mit ihrem Kreuzprodukt dargestellt werden:

1
Fehler =np.cross(v,np.transpose([Acc]),Achse =0)

Der berechnete Fehler könnte auch integriert werden, um den Gyroskop-Messwert mithilfe der negativen PI-Rückkopplungsschleife zu aktualisieren (deshalb müssen wir diese Funktion 2000 Mal ausführen, damit die PI-Schleife konvergieren kann):

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

Die Quaternion könnte dann aus den korrigierten Gyroskopdaten berechnet werden:

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);

Weiterlesen:Smart Pen:Endgültiges Projekt für ECE5725


Herstellungsprozess

  1. Sensorbasierte Projektideen für Ingenieurstudenten im Abschlussjahr
  2. Top 10 der Smart Manufacturing-Trends für 2021
  3. Intelligente Beleuchtung als Grundlage für eine intelligente Stadt
  4. Ein Projektprotokoll für FirePick Delta, die Open Source MicroFactory
  5. Bauen Sie ein Go Away! Roboter - Einfaches Starter-Projekt für Kinder
  6. Health Band - Ein intelligenter Assistent für ältere Menschen
  7. Smart Home-Upgrades für modernes Wohnen
  8. Finden der Amortisation für intelligente Fertigung
  9. Ultradünner Sensor für intelligente Kontaktlinsen
  10. So wählen Sie ein Projekt für die Automatisierung aus