Tabla de funciones
Objeto Clau
Section titled “Objeto Clau”Este es el objeto con el que podemos obtener toda la información del controlador
| función | parámetros | salida | Explicación |
|---|---|---|---|
| __init__() | port="COM3", clk=115200, n_data=10, name="Clau" | Instancia inicializada | Inicializa la comunicación serie con el sensor, variables internas (aceleración, giroscopio y cuaternión) y parámetros de configuración. Lanza excepción si n_data < 10. |
| calibrate() | None | Éxito: {"angle": self.angle_wijk, "status": 200} Error: {"status": 500} | Envía el byte '1' al microcontrolador para resetear la referencia. Espera una respuesta válida del puerto serie. Si la recibe correctamente devuelve estado 200; si falla tras varios intentos devuelve 500. |
| collect_data() | None | dict con datos procesados o None | Lee una línea del puerto serie, valida longitud, convierte a float y actualiza los datos internos. Si MQTT está activo publica los datos. Devuelve None si la línea está incompleta o hay error. |
| init_mqtt() | host, port, topic, client_id, keepalive, username, password | topic final utilizado | Inicializa conexión MQTT con QoS 0. Configura credenciales y genera el tópico final como /topic/name. Activa mqttStatus. |
| disconect_mqtt() | None | True o False | Desconecta el cliente MQTT si está activo y actualiza el estado interno. |
| publish() | data=dict | Resultado de client.publish() | Convierte el diccionario a JSON y lo publica en el tópico configurado con QoS 0. |
| set_name() | name | None | Modifica el nombre del dispositivo (usado en el tópico MQTT). |
| set_clk() | clk | Nuevo clk | Cambia la velocidad de comunicación serie. Reinicia el puerto con la nueva configuración. |
| set_port() | port | Nuevo port | Cambia el puerto serie y reinicia la conexión. |
| set_n_data() | n_data | Nuevo n_data | Cambia el número mínimo de datos esperados por lectura. Lanza excepción si n_data < 10. |
| set_shake_umbral() | umbral | Nuevo umbral | Define el umbral de aceleración para detección de sacudida. |
| get_quaternion() | None | np.array([qx,qy,qz,qw]) | Devuelve el cuaternión actual del sensor. |
| get_data() | None | dict con puerto, clock, aceleración, giroscopio y cuaternión | Devuelve el estado completo actual del objeto. |
| get_shake() | None | {"shakeStatus": True, "shakeMagnitude": val} o {"shakeStatus": False} | Calcula la norma del vector aceleración y la compara con el umbral definido para detectar sacudida. |
| get_virtual_joystick() | max_angle_deg=30 | np.array([x,y]) rango [-1,1] | Convierte el cuaternión a ángulos de Euler (roll y pitch), los normaliza respecto a max_angle_deg y los satura en el rango [-1,1] para simular un joystick virtual 2D. |
Simple Clau GUI
Section titled “Simple Clau GUI”Este método nos permite ver un ejemplo visual muy básico para comprobar el funcionamiento
| función | parámetros | salida | Explicación |
|---|---|---|---|
| cube_view() | port="COM5" logs=False | None | Ejecuta un programa gráfico de un cubo que gira con respecto al cuaternion del controlador. Se puede definir si queremos ver los cuaterniones en la terminal o no con el parámetro logs |