Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

UPS compatible con HID con Arduino

Componentes y suministros

Arduino Pro Micro
× 1
Breadboard (genérico)
× 1
Cables de puente (genéricos)
× 1

Acerca de este proyecto

He estado jugando con Arduino recientemente para ver qué puede hacer por mí. Tengo un SAI antiguo "ficticio", que no puede informar de su estado a la computadora host porque no tiene un puerto USB. Uno de los proyectos que tenía en mente es crear "cerebros" para el UPS ficticio con la ayuda de la placa Arduino. El propósito de tales cerebros UPS sería leer el estado interno del UPS midiendo la capacidad restante de la batería, el estado de carga / descarga, la corriente de la batería, el voltaje, etc.Todas estas lecturas deben pasar a través de la interfaz USB y ser interpretadas por el sistema operativo host de la computadora de la misma manera que se hace con los SAI inteligentes comerciales (por ejemplo, de APC).

No quería meterme en el desarrollo de controladores de hardware para mi UPS personalizado y quería que fuera "plug-and-play", así que decidí, después de investigar un poco, implementar una interfaz compatible con HID de acuerdo con esta especificación. HID significa "Dispositivo de interfaz humana" y fue diseñado originalmente para teclados, ratones, joysticks y dispositivos similares para entrada humana, sin embargo, se ha extendido recientemente para admitir dispositivos de energía como UPS, baterías y cargadores, que pueden beneficiarse del uso de HID estándares para la comunicación inteligente con la computadora host. Mi siguiente paso fue aprender que algunos Arduinos como Leonardo, Pro Micro y sus clones pueden presentarse al host como un teclado HID o un mouse. Después de un análisis de la biblioteca HID de Arduino, la biblioteca de teclado y muchas búsquedas en Google :) escribí mi propia biblioteca HIDPowerDevice. Encontrará algunos detalles sobre cómo configurarlo y usarlo en el archivo Léame de GitHub.

Mi laboratorio de pruebas es muy simple y se compone de mi computadora portátil, Arduino Pro Micro conectado a la computadora portátil (Macbook en mi caso, pero también funcionará en Windows 10 y Ubuntu) a través de USB, una placa de pruebas y un interruptor (de hecho, usé un puente en su lugar). También agregué un par de LED para diagnóstico y un potenciómetro para simular el nivel de carga. El esquema está a continuación:

El S1 conecta el pin 4 del Arduino Pro Micro al suelo simulando así que el UPS funciona con batería. Cuando S1 ESTÁ APAGADO, Arduino informa a la PC que se está "cargando".

Dado que mi "UPS" es compatible con HID, Windows 10 también reconoce el Arduino como una batería HID y el porcentaje de capacidad restante se muestra correctamente:

Hay una limitación importante que mencionar:Windows 10 permite varias baterías en el sistema y todas se pueden mostrar en la bandeja. Sin embargo, las baterías deben informar su estado en el mismo modo (la especificación HID admite maH, mwH y porcentaje), pero la mayoría de los UPS solo informan el porcentaje de carga. Si ya tiene una batería ACPI en su sistema (digamos que está probando en una computadora portátil), es posible que el porcentaje no se refleje correctamente.

De manera similar, el UPS también funciona en Linux, aunque puede ser necesaria alguna configuración adicional, consulte el archivo README.

ACTUALIZACIÓN 12-jun-2021 Después de recibir varias consultas sobre el soporte de Synology (Synology no reconoció las placas Arduino como dispositivos UPS compatibles con HID), decidí investigar un poco sobre esto. El problema está en las herramientas de UPS de red (NUT) utilizadas por la distribución de Synology:asume la interfaz USB 0 de forma predeterminada para todos los modelos de UPS compatibles con HID, pero Arudino Leonardo / Pro Mini se anuncia a sí mismo en el puerto USB como un dispositivo compuesto con UPS accesible en la Interfaz 2. Existe un problema similar con los puntos finales de interrupción. Puede encontrar más detalles técnicos sobre este problema aquí.

La biblioteca NUT modificada con soporte para Arduino está aquí. Puede compilarlo desde la fuente e instalarlo en su plataforma de destino (Synology o cualquier otra distribución de Linux compatible). Tenga en cuenta que esto aún es experimental, por lo que se recomienda encarecidamente crear una copia de seguridad de sus archivos NUT actuales.

¡Disfrutar! :)

Código

Código fuente de HIDPowerDevice
https://github.com/abratchik/HIDPowerDevice

Esquemas

arduino_ups_mlvhJQLrSZ.fzz

Proceso de manufactura

  1. Control de un efecto con sensores reales
  2. Monitoreo de CO2 con sensor K30
  3. Comunicación para personas sordociegas con 1Sheeld / Arduino
  4. Controlar el aceptador de monedas con Arduino
  5. ¡Arduino con Bluetooth para controlar un LED!
  6. Sensor capacitivo de huellas dactilares con Arduino o ESP8266
  7. Jugando con Nextion Display
  8. Brazo robótico controlado por Nunchuk (con Arduino)
  9. Medición de la radiación solar con Arduino
  10. Mini radar con Arduino
  11. Cómo hacer música con un Arduino