Ejecutando Python en un contenedor Docker

En muchas ocasiones queremos que nuestras aplicaciones en Python estén dentro de un contenedor Docker para que sea más sencillo su despliegue.

Partamos de la base que tenemos un programa en Python muy sencillo, donde solo tenemos la dependencia de algunos módulos, no tenemos necesidad de utilizar una base de datos y solo requerimos de un archivo jpg (descarguen el archivo en la carpeta del proyecto); el cual utilizaremos como input de nuestro programa.

El programa que utilizaremos de ejemplo sera el siguiente:

Requiere de los modulos de Pillow, termcolor y colorama para trabajar; para poder utilizarlos dentro de Docker, crearemos un archivo llamado requirements.txt en la misma carpeta del programa, con el listado de modulos requeridos.

Luego debemos crear en la misma carpeta un archivo llamado dockerfile:

Una vez que tengamos todo; debemos construir el contenedor, ejecutando desde la terminal:

docker image build --tag testpy .

Esto demora unos instantes, debe descargar la imagen de docker con Python, luego copia los archivos de Python y descarga los módulos indicados en el archivo requierements.txt

Cuando termina, podemos validar que se construyo la imagen, ejecutando en la consola:

docker image ls

Obtendremos una vista como la siguiente:

Por ultimo, ejecutamos nuestro contenedor que tiene nuestro programa en Python, de la siguiente manera:

docker run --rm testpy

Como usar motor Brushless RK2-0275

Hace unos dias recupere de una impresora HP Laserjet 4000, un par de motores RK2-0275-2 y RK2-0272-2, y algunos sensores.

Motor Brushless RK2-0275

Ambos son de 24V, en mi caso los probé primero a 5V para no dañarlos y como no había ninguna reacción por parte del motor, aumente a 12V y entonces comenzaron a girar.

Tienen un controlador incorporado y un sensor que, según leí lo poco que encontré en internet, debería indicar las RPM del motor.

El circuito para conectarlo es sencillo:

Al presionar el boton SW1 conectado a ACC, el motor deberia comenzar a acelerarse, SW2 por el contrario detiene el motor lentamente.

No encontré información detallada sobre lo que realiza FGS, al conectarlo a un osciloscopio tuve lecturas que no ayudaban a determinar su función. Al conectarlo con DEC acelera el motor, y con ACC lo desacelera hasta detenerse (?).

¿Quizás alguien tenga datos sobre esto? Si es así, agradecería que lo comentara.