Tabla de contenido:

Construir Machine Watcher: 9 pasos
Construir Machine Watcher: 9 pasos

Video: Construir Machine Watcher: 9 pasos

Video: Construir Machine Watcher: 9 pasos
Video: How to build HOUSE UNDERGROUND from START to FINISH 15 days in the forest. WOODWORKING 2024, Mes de julio
Anonim
Construir Vigilante de la Máquina
Construir Vigilante de la Máquina
Construir Vigilante de la Máquina
Construir Vigilante de la Máquina

El punto de partida de este proyecto fue trabajar en un proyecto concreto para aprender algunas cosas sobre las placas de microcontroladores.

La idea inicial era crear un objeto físico que pudiera monitorear un Sistema de Integración Continua (VSTS | Azure DevOps) e informar fallas de compilación de software. Debido a preocupaciones de seguridad del departamento de TI, se me ha negado a conectar un dispositivo "no estándar" directamente a la red empresarial.

Terminé con la arquitectura que se muestra en la imagen de arriba. El flujo de trabajo de ejecución se puede resumir como:

Una aplicación de escritorio de Windows analiza (extrae) las definiciones de compilación de VSTS. Analiza los resultados de la compilación y luego envía un comando al dispositivo físico que ejecuta una pequeña secuencia animada antes de mostrar la bandera roja o verde.

Paso 1: piezas necesarias

La siguiente lista resume todos los elementos necesarios:

  • 1 Arduino UNO R3 (https://store.arduino.cc/usa/arduino-uno-rev3).
  • 1 escudo de expansión (https://www.dfrobot.com/wiki/index.php/IO_Expansion_Shield_for_Arduino_V7_SKU:DFR0265).
  • 2 módulos XBee S1 (https://www.adafruit.com/product/128).
  • 1 dongle XBee Explorer (https://www.sparkfun.com/products/11697).
  • 2 servomotores continuos 5VDC con accesorios de fijación (https://www.parallax.com/sites/default/files/downloads/900-00008-Continuous-Rotation-Servo-Documentation-v2.2.pdf).
  • 1 fuente de alimentación de 9VDC.
  • 3 LEDs.
  • 3 resistencias 220 Ohm.
  • manga termo retráctil.
  • 1 pulsador.
  • Resistencia de tracción de 10KΩ para la tracción.
  • Condensador de 100nF.
  • cables electricos.
  • strip-board (para el montaje del botón)
  • Madera de 5 mm (50x50cm).
  • palo de madera sección cuadrada 5x5 mm (1m).
  • cartulina.
  • 10 X tornillo de 2 mm de diámetro.
  • 4 tornillos de 5 mm de diámetro.
  • imán fuerte.
  • módulo de torneado. Reutilicé la parte móvil interna de una luz intermitente. puedes poner lo que quieras. Solo tendrás que cuidar que las 2 partes móviles puedan moverse libremente sin tocarse entre sí.

Paso 2: construcción de la caja

Construyendo la caja
Construyendo la caja

De hecho, puedes tener una caja de la forma que quieras. Lo principal en lo que debe pensar antes de comenzar es dónde estarán las partes móviles y asegurarse de que puedan moverse libremente sin tocarse. Otro punto es ¿dónde vas a poner el dispositivo? Terminé con un imán (fuerte) para pegarlo a cualquier soporte metálico. si desea construir la misma caja, puede seguir las instrucciones en el archivo box_drawings.pdf.

En ese caso solo tienes que cortar todas las diferentes piezas, hacer los agujeros para los servomotores, los leds, el botón y los tornillos y finalmente pegar todas las piezas. Una vez seco, lijar un poco y un poco de color.

Las dos banderas se han realizado con cartulina roja y verde. Para fijar el mástil de bandera en los servomotores, puede utilizar las piezas de montaje que se proporcionan al comprarlos.

Paso 3: Configuración de Arduino

Configuración de Arduino
Configuración de Arduino

Los elementos conectados a la placa de extensión Arduino son:

  • PIN D2: el pulsador.
  • PIN D4: el LED que indica que el sistema está ENCENDIDO.
  • PIN D5: el LED que indica que ejecutamos un ciclo.
  • PIN D6: el LED que indica que el dispositivo ha recibido un mensaje nuevo.
  • PIN D9: la señal de pulso PWM para el servomotor que maneja el giróscopo.
  • PIN D10: la señal de pulso PWM para el servomotor que maneja la bandera.
  • Zócalo XBee: un módulo ZigBee.

El esquema anterior muestra cómo todos los elementos están conectados a la placa.

En el caso de los LED, la resistencia y los cables se sueldan directamente (cuida la polaridad). Luego, todo se empaqueta dentro de una funda termo retráctil.

Para el botón pulsador, todas las partes (botón, resistencia y condensador) se sueldan directamente en una pequeña placa de banda satélite. Luego, la placa de tira se fija directamente con dos tornillos (2 mm)

Los servomotores funcionan con 5V de potencia, por lo que pueden conectarse directamente al Arduino. Si usa unos con voltaje más alto (12V) tendrá que agregar otra capa para la fuente de alimentación.

En el caso de los módulos XBee, una vez que estén configurados para comunicarse entre sí (consulte la siguiente sección), se pueden conectar directamente a los enchufes.

Notas: Los LED y el botón pulsador podrían haberse conectado directamente a los pines de Arduino, ya que puede implementar internamente los valores necesarios. Simplemente lo hice a la antigua ya que este aspecto no estaba muy claro para mí.

Paso 4: Software - XCTU

Software - XCTU
Software - XCTU

Como se mencionó anteriormente, los dos dispositivos XBee deben configurarse para hablar juntos. Para hacerlo, debe utilizar el software X-CTU dedicado de DIGI. Debe realizar este paso de configuración solo una vez. siga el procedimiento descrito en el archivo xbee_configuration.pdf.

Una vez realizada la configuración, puede conectar cada módulo en su zócalo. Uno en el convertidor USB / Serie y otro en la placa de extensión Arduino.

El convertidor USB / serie debería ser reconocido automáticamente por Windows 10. Si no es así, es posible que deba instalar manualmente el controlador.

Nota:

Usar módulos XBee para hacer una comunicación serial básica es un poco exagerado. En el momento en que comencé el proyecto, no logré encontrar dispositivos de comunicación en serie simples que se pudieran usar fácilmente en Windows 10 (problemas con los controladores). También fue una oportunidad para aprender algunas cosas sobre

Paso 5: Software - Arduino Sketch

Software - Arduino Sketch
Software - Arduino Sketch

Para programar el Arduino usamos el IDE accesible desde el sitio web oficial.

La lógica del programa es bastante simple, solo escucha en el puerto serial predeterminado de la placa para letras individuales ("a", "b", …). Si el carácter recibido coincide con un comando conocido, entonces una subfunción reproduce la secuencia correspondiente.

Los 2 comandos útiles principales son la animación de éxito ("a") y la animación de error ("b").

Para poder jugar (o depurar) un poco más con la caja, hay algunos comandos adicionales que se pueden ejecutar. Son:

  • "O": fuerza el LED de ENCENDIDO para que esté ENCENDIDO
  • "P": fuerza el LED de ENCENDIDO a APAGARSE
  • 'Q': fuerza el LED de mensaje nuevo para que esté encendido
  • "R": fuerza el LED de mensaje nuevo para que se apague
  • "S": fuerza el LED de ciclo para que esté encendido
  • 'T': fuerza el LED de ciclo para que se apague
  • 'U': activa el servomotor del giróscopo
  • 'V': activa el servomotor de la bandera.

Además del comando en serie, hay una subrutina (handlePushButton) que se activa cuando se presiona el botón pulsador en el dispositivo. En ese caso, la animación de error o éxito se reproduce automáticamente. Esta característica permite comprobar que el dispositivo físico se ha montado correctamente.

El código del boceto de Arduino está en el archivo bsldevice.ino. Puede cargarlo directamente usando el IDE.

Paso 6: Software - Aplicación de escritorio

Software: aplicación de escritorio
Software: aplicación de escritorio

El propósito de la aplicación de escritorio es monitorear el sitio web de Microsoft Azure DevOps (anteriormente VSTS) y detectar si una definición de compilación es exitosa o errónea. Cada vez que se termina una compilación, la aplicación de escritorio determina el estado de la compilación y envía el comando correspondiente ("a" o "b") al puerto serie (COMx).

Después de iniciar la aplicación, la primera acción es seleccionar el puerto de comunicaciones correcto en el que está conectado el módulo ZigBee. Para determinar el puerto, puede usar el Administrador de dispositivos de Windows (en Puertos (sección COM y LPT)). La conexión a Azure DevOps se realiza automáticamente al inicio con las credenciales del usuario actual. También puede enviar cualquier comando predefinido manualmente utilizando el cuadro combinado de la derecha.

Todas las fuentes se han generado con la edición profesional de Visual Studio 2017. Requiere. NET Framework 4.6.1. Esta versión de Framework es preferible para facilitar la conexión / autenticación al sitio web de VSTS.

usar:

  • descargue el archivo bslwatcher_sources.zip.
  • Extraerlo en tu disco.
  • Lea el archivo how_to_build.txt para obtener detalles sobre la compilación.

Paso 7: primer inicio

Hay dos cosas principales a tener en cuenta al iniciar el cuadro:

1- No hay forma de que el sistema sepa por sí mismo dónde están las banderas. El sistema asume que al inicio la bandera verde está encendida.

2- Al encender la placa Arduino, nada debe moverse. Como usamos servos continuos, la posición cero se establece en 90 por defecto en el archivo de boceto. Si un servomotor comienza a girar o hace ruido. puede que tenga que volver a definir su posición cero. Para ello basta con sintonizar el potenciómetro dentro del pequeño orificio del lateral del servomotor.

www.arduino.cc/en/Reference/ServoWrite

cmra.rec.ri.cmu.edu/content/electronics/boe…

Paso 8: Conclusión

Este pequeño dispositivo informará físicamente el estado de su Sistema de Integración Continua.

Como la "inteligencia" está en la aplicación de escritorio, puede usar la caja para monitorear cualquier otro software o proceso (correo, un sensor de temperatura…). Solo necesita tener acceso a otra API y decidir qué es "bueno" o qué es "malo". Si no utiliza los colores de convención rojo y verde, incluso puede cambiar el significado del "mensaje".

También se podrían incorporar mejoras a la propia caja:

  • Utilice una batería.
  • Utilice otro protocolo de comunicación.
  • Agregue sensores para saber qué bandera está en la parte superior.

Espero que hayas encontrado interesante este proyecto.

Gracias por leer hasta aquí.

Paso 9: Anexo

Algunos de los enlaces utilizados para crear este proyecto:

Sitio web de Arduino:

Sitio web de DIGI:

Software XCTU:

Alguna información utilizada de otros:

arduino.stackexchange.com/questions/1321/se…

stackoverflow.com/questions/10399400/best-w…

www.mon-club-elec.fr/pmwiki_reference_ardui… (en francés)

jeromeabel.net/

Sitio web de MSDN en general:

docs.microsoft.com/en-us/dotnet/framework/…

Recomendado: