Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Smart Pen:eindproject voor ECE5725

Inleiding

Tegenwoordig vertrouwen mensen, om de handschriftresultaten te verkrijgen, vaak op het capacitieve touchscreen, de styluspen of andere soortgelijke apparaten. Ze zijn functioneel en nauwkeurig, maar niet altijd flexibel. Ons project combineert Raspberry Pi met IMU om een ​​product te bouwen dat de beweging kan volgen en het traject zeer snel kan genereren. We hebben een systeem ontworpen dat geen specifiek oppervlak of andere invoertools nodig heeft voor ondersteuning en dat alleen reageert op IMU en zijn sensoren. Door IMU met Raspberry Pi te verbinden, worden de sensorgegevens van IMU naar Raspberry Pi verzonden wanneer het IMU-apparaat beweegt. Gebruik vervolgens ons programma en algoritme om de IMU-beweging te herstellen. De beweging wordt opgenomen en opgeslagen in Raspberry Pi. Met PyGame kan de beweging ook worden weergegeven op het TFT-scherm van de Raspberry Pi. Met een kleine en handige knop kan de opnamefunctie zeer flexibel starten en eindigen. Gebruikers kunnen ons apparaat ook op andere dingen bevestigen om hun bewegingen te volgen. Daarom biedt ons apparaat een werkbare oplossing voor het volgen van handschriften, het volgen van bewegingen en dergelijke.

Doelstelling

Het doel van het project is om een ​​aparte module te ontwerpen die op een pen, robot of zelfs mensen kan worden geplaatst om de beweging van het object te volgen en vast te leggen. Gebruikers kunnen deze module gebruiken en aan hun andere apparaten koppelen, dus wanneer het object wordt verplaatst, kan ons apparaat hun traject herstellen en volgen en de beweging in het horizontale vlak in het wereldframe op het scherm weergeven. Een zeer klassieke applicatie is dat gebruikers het als een pen kunnen gebruiken, zodat hun geschriften worden opgenomen en opgeslagen als een afbeelding. Een speciaal kenmerk van dit project is dat de tracking niet op een specifiek vliegtuig reageert en op elk vliegtuig kan worden toegepast, zelfs in de lucht. De plaatsing of kanteling van het apparaat heeft ook geen invloed op het eindresultaat.

We gebruiken Raspberry Pi en Inertial Measurement Unit als de belangrijkste componenten voor ons project. PyGame wordt ook gebruikt om het traject op Raspberry Pi weer te geven.

IMU-kalibratie

Als gevolg van fabricageonnauwkeurigheid zijn de 3 assen van de versnellingsmeters en de 3 assen gyroscopen meestal niet goed uitgelijnd, wat een fout veroorzaakt tussen de Euler-hoek van twee coördinaten. Kalibratie is nodig. Met behulp van de 6-pos kalibratietechniek stellen we de 6-kalibratiepositie als volgt in:

Met behulp van een zelfgemaakte kalibratietabel (Figuur XX) fixeren we de imu op de 6 posities en registreren de meting, de kalibratiegegevens die door deze zes posities worden verzameld zijn:

De versnellingsgegevens na kalibratie zijn (Ax, Ay, Az zijn gegevens na kalibratie en ax, ay, az zijn onbewerkte gegevens):

Sensorfusie voor onbewerkte gegevens

Quaternion-berekening:

Quaternion is een weergave van de oriëntatie en rotatie van het object, en het is gemakkelijker om de rotatie van vector te berekenen dan de Euler-hoeken. De transactie tussen het quaternion en de Euler-hoek wordt hieronder weergegeven:

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

q=λ+P1i+P2j+P3k

Quaternion-rotatie:

Voor een vaste vector V gecoördineerd in frame XYZ, zou het kunnen worden weergegeven in quaternion:

V=0+Vxi+Vyj+Vzk

Als het frame roteert voor q, wordt X'Y'Z', V gecoördineerd in X'Y'Z' kan worden weergegeven als:

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

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

Het gebruik van de onbewerkte gegevens die door de gyroscoop worden gegenereerd, is echter nog steeds niet voldoende, vanwege de verkeerde uitlijning die wordt genoemd in het kalibratiegedeelte, moet rekening worden gehouden met de zwaartekrachtvector die door de versnellingsmeter wordt verkregen. De functie ‘UpdateIMU’ wordt gebruikt om de fout te berekenen tussen de zwaartekrachtvector berekend door de gyroscoop en de zwaartekrachtvector gemeten door de versnellingsmeter. Deze functie werd 2000 keer uitgevoerd in het begin van de stationaire fase zonder bewegingen of rotaties, en met behulp van een feedback om de fout te berekenen. De functie wordt hieronder getoond:

123456789
 def UpdateIMU(self, Gyr, Acc):if np.linalg.norm(Acc) ==0:warnings.warn("Accelerometer magnitude is nul. Algoritme-update afgebroken.") 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*(zelf.q[0]*zelf.q[1] + zelf.q[2]*zelf.q[3])], [zelf.q[0]**2 - zelf.q[1]**2 - zelf.q[2]**2 + zelf.q[3]**2]])

Variabele "Acc" en 'v' zijn beide genormaliseerde zwaartekrachtvectoren berekend door de versnellingsmeter en de gyroscoop, waarna de hoekafwijking (fout) tussen de twee vectoren kan worden weergegeven met behulp van hun kruisproduct:

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

De berekende fout kan ook worden geïntegreerd om de gyroscoopmeting bij te werken met behulp van de negatieve feedbacklus van de PI (daarom moeten we deze functie 2000 keer uitvoeren, zodat de PI-lus kan convergeren):

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

Het quaternion kan dan worden berekend met de gecorrigeerde gyroscoopgegevens:

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

Lees meer:​​Smart Pen:eindproject voor ECE5725


Productieproces

  1. Op sensoren gebaseerde projectideeën voor laatstejaars ingenieursstudenten
  2. Top 10 slimme productietrends voor 2021
  3. Slimme verlichting als basis voor een slimme stad
  4. Een projectlogboek voor FirePick Delta, de Open Source MicroFactory
  5. Bouw een Go Away! Robot - Easy Starter-project voor kinderen
  6. Alexa, zet deze lamp aan:slimme 3D-sensor voor Amazon Echo
  7. Health Band - Een slimme assistent voor ouderen
  8. Smart Home-upgrades voor modern leven
  9. De terugverdientijd vinden voor slimme productie
  10. Ultradunne sensor voor slimme contactlenzen
  11. Een project voor automatisering kiezen