Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Smart Pen:Proyecto final para ECE5725

Introducción

Hoy en día, para obtener los resultados de la escritura a mano, las personas a menudo confían en la pantalla táctil capacitiva, el lápiz óptico u otros dispositivos similares. Son funcionales y precisos, pero no siempre flexibles. Nuestro proyecto combina Raspberry Pi con IMU para construir un producto que puede seguir el movimiento y generar la trayectoria muy rápidamente. Diseñamos un sistema que no necesita ninguna superficie específica u otras herramientas de entrada para soporte y solo responde en IMU y sus sensores. Al conectar IMU con Raspberry Pi, cuando el dispositivo IMU se mueve, los datos del sensor se transmitirán desde IMU a Raspberry Pi. Luego, usando nuestro programa y algoritmo, restaure el movimiento IMU. El movimiento se registrará y almacenará en Raspberry Pi. Con PyGame, el movimiento también se puede mostrar en la pantalla TFT de Raspberry Pi. Con un botón pequeño y conveniente, la función de grabación puede comenzar y terminar de manera muy flexible. Los usuarios también pueden conectar nuestro dispositivo a otras cosas para rastrear sus movimientos. Por lo tanto, nuestro dispositivo proporciona una solución viable para el seguimiento de escritura a mano, seguimiento de movimiento, etc.

Objetivo

El objetivo del proyecto es diseñar un módulo separado que se pueda colocar en un bolígrafo, robot o incluso personas para rastrear y registrar el movimiento del objeto. Los usuarios pueden usar este módulo y conectarlo con sus otros dispositivos, de modo que cuando el objeto se mueva, nuestro dispositivo puede restaurar y rastrear su trayectoria y mostrar el movimiento en el plano horizontal en el marco del mundo en la pantalla. Una aplicación muy clásica es que los usuarios pueden utilizarla como bolígrafo, por lo que sus escritos se grabarán y guardarán como una imagen. Una característica especial de este proyecto es que el seguimiento no responde en ningún plano específico y se puede aplicar en todos los aviones, incluso en el aire. La colocación o inclinación del dispositivo tampoco afectará el resultado final.

Usamos Raspberry Pi y la Unidad de Medición Inercial como componentes principales de nuestro proyecto. Además, PyGame se usa para mostrar la trayectoria en Raspberry Pi.

Calibración de IMU

Debido a la inexactitud de fabricación, los 3 ejes de los acelerómetros y los giroscopios de 3 ejes suelen estar desalineados, provocando un error entre el ángulo de Euler de dos coordenadas. Se necesita calibración. Usando la técnica de calibración de 6 posiciones, configuramos la posición de calibración 6 de la siguiente manera:

Usando una tabla de calibración de fabricación propia (Figura XX) fijamos el imu en las 6 posiciones y registramos la lectura, los datos de calibración recopilados por estas seis posiciones son:

Los datos de aceleración después de la calibración son (Ax, Ay, Az son datos después de la calibración y ax, ay, az son datos sin procesar):

Fusión de sensores para datos sin procesar

Cálculo de cuaterniones:

El cuaternión es una representación de la orientación y rotación del objeto, y es más fácil calcular la rotación del vector que los ángulos de Euler. La transacción entre el cuaternión y el ángulo de Euler se muestra a continuación:

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

q =λ + P1i + P2j + P3k

Rotación de cuaterniones:

Para un vector fijo V coordinado en el marco XYZ, podría representarse en cuaternión:

V =0 + Vxi + Vyj + Vzk

Si el marco gira para q, se convierta en X'Y'Z ', V coordinado en X'Y'Z' podría representarse como:

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

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

Sin embargo, usar los datos brutos generados por el giroscopio aún no es suficiente, debido a la desalineación mencionada en la parte de calibración, se debe considerar el vector de gravedad obtenido por el acelerómetro. La función "UpdateIMU" se utiliza para calcular el error entre el vector de gravedad calculado por el giroscopio y el vector de gravedad medido por el acelerómetro. Esta función se ejecutó 2000 veces en la etapa estacionaria inicial sin movimientos ni rotaciones, y usando una retroalimentación para calcular el error. La función se muestra a continuación:

 123456789 
 def UpdateIMU (self, Gyr, Acc):if np.linalg.norm (Acc) ==0:warnings.warn ("La magnitud del acelerómetro es cero. Actualización del algoritmo abortada.") 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]]) 

La variable "Acc" y "v" son ambos vectores de gravedad normalizados calculados por el acelerómetro y el giroscopio, luego la desviación angular (error) entre los dos vectores podría representarse usando su producto cruzado:

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

El error calculado también podría integrarse para actualizar la lectura del giroscopio usando el bucle de retroalimentación negativa PI (es por eso que necesitamos ejecutar esta función 2000 veces, para que el bucle PI pueda converger):

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

Luego, el cuaternión podría calcularse mediante los datos corregidos del giroscopio:

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

Leer más:Smart Pen:Proyecto final para ECE5725


Proceso de manufactura

  1. Ideas de proyectos basados ​​en sensores para estudiantes de ingeniería de último año
  2. Las 10 principales tendencias de fabricación inteligente para 2021
  3. La iluminación inteligente como base para una ciudad inteligente
  4. Un registro de proyecto para FirePick Delta, la MicroFactory de código abierto
  5. ¡Construye un Go Away! Robot - Proyecto de inicio fácil para niños
  6. Alexa, enciende ESTA lámpara:Sensor 3D inteligente para Amazon Echo
  7. Health Band:un asistente inteligente para los ancianos
  8. Actualizaciones de hogares inteligentes para la vida moderna
  9. Encontrar el retorno de la inversión para la fabricación inteligente
  10. Sensor ultrafino para lentes de contacto inteligentes
  11. Cómo elegir un proyecto para la automatización