zum-pot-destacada

pot-zum-1
En esta entrada vamos a aprender a enlazar el mundo físico con el virtual.  Controlaremos la rotación de un toro en Freecad usando un potenciómetro conectado a la placa bq zum. Es un ejemplo muy sencillo pero muy potente, que nos abre las puertas a hacer cosas como crear nuestros propios joysticks para mover los diseños,  programar los robots virtuales mediante el posicionamiento de robots reales (programación gestual), hacer que nuestras piezas cambien de color con la luz… ¡El límite es la imaginación!

El esquema de funcionamiento es el siguiente. En la placa zum se ejecuta un firmware que lee el valor del potenciómetro y lo envía al PC a través del puerto serie. En el PC se ejecuta un script en python desde Freecad, que a través de la biblioteca pyserial lee las muestras. Estos valores se interpretan, se convierten a ángulos y se usan para rotar el toro.

Firmware en la placa ZUM

En la placa zum conectamos un potenciómetro en la entrada analógica A0 y subimos el siguiente código (Está en el fichero pot-server.zip):

Este programa configura el puerto serie a la velocidad de 19200 y se queda esperando a recibir caracteres.  En cuanto llega uno (da igual cuál sea), se lee la entrada analógica donde está conectado el potenciómetro y se envía su valor de vuelta. De esta forma es el PC el que controla el flujo de la lectura del potenciómetro.

zum-pot-1

Comunicaciones serie: Python-serial

Es necesario instalar la biblioteca de python pyserial. Esto depende del Sistema operativo que tengamos instalado en nuestro ordenador. En el caso detener Ubuntu/Linux basta con ejecutar esta línea:

Para máquinas Windows bajar el instalador desde este enlace. Para el resto de sistemas operativos seguid estas instrucciones

Freecad

Abrimos freecad. Nos vamos a la opción preferencias / General. En la pestaña Ventana de salida (Output window) marcamos las dos opciones inferiores: “Redirigir la salida de Python interna…”  (Redirect internal Python output…). De esta manera podremos ver los mensajes en la ventana de informes cuando ejecutemos el script.

zum-pot-2

Activamos la vista de informes en la opción Ver / Vistas / Vista de informe (View / Views / Report view). Abrimos el script torus-pot.py  (Opción del menú Archivo / Abrir):

zum-pot-3

En la linea 30, donde pone SERIAL_NAME debemos escribir el nombre del puerto serie donde tenemos conectada la zum. Para el caso de linux es el /dev/ttyUSB0.

Por último ejecutamos el script, pinchando en el icono triangular verde superior (o dándole a Cntrl-F6). Se nos abrirá una ventana nueva con un toro y al cabo de 2 segundos se establecerá la conexión con la zum. Al mover el potenciómetro el toro rotará. IMPORTANTE: Cuando el potenciómetro está en su tope máximo anti-horario (0 voltios) el programa terminará y aparecerá en la vista de informe el mensaje: FINISHED!.

zum-pot-4

 

Siente el poder de controlar objetos virtuales…