- Prerrequisitos:
- Instalación de VPython en su computadora:
- Programando VPython:
- Preparando su Arduino:
- Trabajando:
En nuestro tutorial anterior, aprendimos cómo instalar Python en nuestra máquina con Windows y cómo conectar Arduino con Python usando un simple proyecto de control de LED. Si es nuevo, le recomiendo encarecidamente que vuelva al tutorial anterior, ya que este tutorial es una continuación del mismo.
Es posible que ya haya comenzado a preguntarse por qué necesitaríamos Python con Arduino si todo lo que podría hacer es simplemente comunicarse a través del puerto serie. Pero, Python es una plataforma de desarrollo muy sólida en la que se pueden integrar muchas aplicaciones interesantes en las que se pueden integrar el aprendizaje automático, la visión por computadora y mucho más. En este tutorial aprenderemos cómo podemos crear una pequeña interfaz gráfica usando Python. Para hacer esto, necesitaremos un módulo llamado Vpython. El siguiente tutorial es aplicable solo para usuarios de Windows, ya que para usuarios de Mac o Linux, el procedimiento es diferente.
Al final de este tutorial, aprenderemos cómo podemos crear una GUI simple usando Python. Realizaremos una pequeña animación que responde al valor del sensor ultrasónico que se adjunta al Arduino. Esta aplicación rastrea el objeto usando un sensor ultrasónico y lo muestra en forma gráfica en la computadora usando VPython. A medida que movemos el objeto, el sensor ultrasónico detecta la distancia y envía esta información al programa Python usando Arduino y también moverá el objeto en la computadora. Suena interesante, ¿verdad? Así que comencemos…
Prerrequisitos:
- Arduino (cualquier versión)
- Sensor ultrasónico HC-SR04
- Conexión de cables
- Computadora con Python
- Conocimiento del tutorial anterior
Instalación de VPython en su computadora:
En nuestro tutorial anterior ya hemos aprendido cómo instalar Python en su máquina y cómo movernos y crear un programa simple con Arduino. Ahora hemos instalado Visual Python (VPython) además de esto para que podamos crear gráficos geniales usando Python para Arduino. Para los sencillos pasos a continuación para comenzar con VPython
Paso 1. Asegúrese de que Python ya esté instalado según las pautas del tutorial anterior.
Paso 2. Haga clic en VPython para descargar el archivo exe para Visual Python. No opte por instalar una versión de 64 bits incluso si su máquina funciona con 64 bits. Simplemente siga el enlace proporcionado.
Paso 3. Inicie el archivo exe y siga la configuración. No cambie la ruta de directorio predeterminada y asegúrese de haber seleccionado "instalación completa".
Paso 4. Una vez instalada, debería encontrar una nueva aplicación llamada "VIDLE (VPython)" en su escritorio o panel de aplicaciones como se muestra a continuación.
Paso 5. Inicie la aplicación y debería obtener una ventana como se muestra a continuación.
Paso 6. Esta es la ventana donde escribiremos el programa para VPython. Pero, por ahora, verifiquemos si Vpython está funcionando abriendo un programa de ejemplo. Para hacer esto, seleccione Archivo-> Abrir-> Rebotar
Paso 7. Debería abrir un programa de ejemplo. Intente iniciar el programa usando Ejecutar -> Ejecutar módulo . Si todo funciona como se esperaba, debería aparecer la siguiente pantalla.
Debería ver la ventana Shell (izquierda) con dos >>> que indican una compilación exitosa y la ventana real (frontal) que muestra una pelota rebotando.
Paso 8. También puede probar otros programas de ejemplo para descubrir el poder de VPython, por ejemplo, el programa de ejemplo llamado “motor eléctrico” le sorprenderá con la siguiente pantalla.
Paso 9. Esto significa que su VPython está listo para usarse y puede pasar al tema " Programando su Vpython ".
Paso 10. De lo contrario, si usted es como uno de los muchos que obtienen un "error numeroso" , no pierda la esperanza, ya que resolveremos ese problema en los pasos siguientes
Paso 11. Abra Mi computadora -> Unidad C -> Python 27 -> Scripts -> local.bat . Esto lanzará un símbolo del sistema como se muestra a continuación
Paso 12. Ahora escriba "pip install --upgrade numpy" y presione enter. La nueva versión de Numpy debería instalarse en su máquina. Es posible que tenga que esperar un tiempo si su conexión a Internet es lenta.
Paso 13. Una vez hecho esto, puede volver al paso número 4 y probar un programa de ejemplo y debería poder hacerlo funcionar.
Programando VPython:
A continuación, comenzamos a programar en nuestra ventana VPython. En este programa crearemos dos objetos rectangulares en 3D, uno se colocará en el centro de la pantalla con referencia al sensor ultrasónico estacionario y el otro estará en una ubicación dinámica en función de la distancia entre el sensor de EE. UU. Y el objeto (papel).
El código completo de Python se puede encontrar al final de esta página. Más abajo, he explicado este código de Python dividiéndolos en pequeños archivos basura significativos.
La primera línea sería importar la Biblioteca visual para que podamos crear objetos 3D. La siguiente línea hace lo mismo.
de importación visual *
Debería estar familiarizado con las siguientes cuatro líneas, ya que las hemos usado en nuestro tutorial anterior. Se utilizan para importar la biblioteca serial y de tiempo y también establecer una conexión serial con Arduino en COM18 con 9600 como velocidad en baudios
import serial #Serial importado para comunicación serial tiempo de importación #Requiere usar funciones de retardo ArduinoSerial = serial.Serial ('com18', 9600) #Crear un objeto de puerto serial llamado arduinoSerialData time.sleep (2) #esperar 2 segundos para la comunicación establecerse
Ahora es el momento de crear objetos. He creado dos rectángulos 3d llamados obj y wall. El walll es una pared estacionaria en el color cian colocado en el centro de la pantalla y el obj es el objeto móvil en el color blanco. También coloqué un texto "sensor de EE. UU." Cerca del objeto de la pared.
obj = caja (pos = (- 5,0,0), tamaño = (0.1,4,4), color = color.white) wallL = caja (pos = (- 1,0,0), tamaño = (0.2, 12,12), color = color.cyan) texto (texto = 'sensor de EE. UU.', Eje = (0,1,0), pos = (- 2, -6,0), profundidad = -0,3, color = color cian)
Estoy seguro de que las tres líneas anteriores habrían aparecido en griego y latín para la mayoría de los lectores por primera vez, pero con el tiempo usted podrá entenderlo. Todo lo que se menciona entre corchetes son coordenadas (x, y, z). Y estas coordenadas son muy similares a las que encontramos en nuestra clase de geometría de la escuela secundaria como se muestra a continuación.
Ahora, los gráficos y el puerto serie están listos, todo lo que tenemos que hacer es leer los datos y colocar el "obj" (rectángulo blanco) en un lugar de acuerdo con los datos que vienen del Arduino. Esto se puede hacer mediante las siguientes líneas, donde obj.pos.x controla la posición de la coordenada X del objeto (rectángulo blanco).
t = int (ArduinoSerial.readline ()) # leer los datos seriales e imprimirlos como línea t = t * 0.05 obj.pos.x = t
Preparando su Arduino:
El script Python está listo para escuchar los valores del puerto COM y animar los gráficos en consecuencia, pero nuestro Arduino aún no está listo. Primero tenemos que conectar el sensor ultrasónico al Arduino de acuerdo con el siguiente diagrama de circuito. Si eres completamente nuevo en el sensor de EE. UU. Y Arduino, entonces debes recurrir al tutorial de medición de distancia basada en sensores ultrasónicos y Arduino.
Luego cargue el programa Arduino que se encuentra al final de esta página. El programa se explica por sí mismo utilizando líneas de comentarios. Sabemos que el sensor ultrasónico funciona calculando el tiempo que tarda el pulso en golpear un objeto y regresar. Este valor se calcula utilizando la función PulseIn en Arduino. Posteriormente, el tiempo tomado se convierte en distancia usando la línea de abajo.
dist = (tiempo tomado / 2) / 2.91;
Aquí la distancia se calcula en milímetros (mm).
Trabajando:
El funcionamiento del proyecto es sencillo. Inicie el programa Python y coloque un objeto antes del sensor de EE. UU. Como se muestra a continuación:
Ahora inicie el programa Python y debería poder notar que el rectángulo blanco se mueve junto con su papel, la distancia entre su papel y el sensor también se mostrará en la ventana del shell como se muestra en la imagen de abajo.
Así es como podemos rastrear el movimiento de un objeto usando un sensor ultrasónico y Python con Arduino.
Espero que haya entendido el proyecto y haya disfrutado construyendo uno. Este es solo un paso sutil hacia Python, pero puedes construir cosas mucho más creativas usando esto. Si tiene alguna idea de qué construir con esto, publíquelos en la sección de comentarios y use los foros para obtener ayuda técnica. Nos vemos con otro interesante proyecto de Python.