Grandes problemas de configuración para dispositivos pequeños

Parte 1. Letra


El mundo moderno es inconcebible sin una gran cantidad de asistentes electrónicos y eléctricos. Comenzando desde computadoras y teléfonos inteligentes, terminando con un simple interruptor de luz en la cocina y un interruptor automático de protección de entrada. De una forma u otra, debe interactuar con todos los dispositivos. Con algunos más a menudo, por ejemplo, un teléfono inteligente, que algunas personas no se salen de control en absoluto, con otros con menos frecuencia, el mismo dispositivo automático de protección de entrada para un apartamento, cuya existencia algunos ni siquiera conocen.

En cuanto a los dispositivos de la primera categoría, todo es simple allí. La interfaz, de hecho, es gráfica y está determinada por diseñadores y programadores. Y con los dispositivos del segundo, en términos de interacción, no de importancia, el plan es mucho más complicado. Los damos por sentado, el mismo interruptor de luz, o la madre, cuando hacen su trabajo, como un autómata de entrada que ha trabajado para sobrecargarse.

Para dispositivos muy simples, la interfaz es primitiva. Botón o interruptor de palanca, varios botones para el termostato, por ejemplo. Las características son establecidas por el fabricante y no cambian por el consumidor. Corriente de disparo 10A, 16A, 25A ... Cambio a 6A 230V ... Pero cuando el dispositivo es un poco más complicado, todo se vuelve muy malo.

Un poco distraído, hablaré sobre mi falla solo por la interfaz de hardware. Había una tarea de equilibrio de carga para una casa privada. De hecho, un relé de tiempo programable multicanal. Hice un prototipo literalmente por la noche, se lo entregué al cliente, el cliente, un compañero de casa, estaba satisfecho, decidí intentar establecer una producción a pequeña escala, organizar una pequeña startup electrónica a escala de aldea, ya que el problema de la falta de capacidad de entrada es relevante para el sector privado. Quedaba un problema de diseño: la configuración del dispositivo. En el prototipo, los intervalos simplemente se empaquetan en el Firmware, si se pueden llamar 200 instrucciones de ensamblador. Un par de veces tuve que ajustar la configuración, esto se hizo simplemente ensamblando un nuevo firmware y actualizándolo por medio del programador. Está claro que para un dispositivo en serie, incluso a pequeña escala, este método no es adecuado.

Aquí me encontré con todos los "encantos" de desarrollar una interfaz de usuario de hardware ... Los métodos simples, como escribir 16 opciones para la configuración y configurar el interruptor deslizante, no dieron la flexibilidad requerida, por lo que cualquier interfaz seria para comunicarse con una PC o teléfono inteligente es una complicación injustificada, un aumento en el precio. Además, surge inmediatamente la necesidad de desarrollar una aplicación simple pero multiplataforma (Win / Linux / Android / iOs). Pero esto no es lo principal. De hecho, el usuario configurará el dispositivo una vez durante la instalación e, idealmente, ya no lo recordará.

En contraste con el prototipo, un indicador LED de 4 bits, botones y LED aparecieron en el panel frontal del dispositivo. También se agregó la funcionalidad, características de demoras en el encendido de la carga después de un corte de energía, modos adicionales para el suministro de energía desde una línea de transmisión de energía o un generador de respaldo, manteniendo la temperatura de congelación ...

Y aquí está el diseño en masa de este monstruo de Frankenstein



(Controla los contactores, dentro de los circuitos de conmutación de bobinas de baja corriente)

Mientras la funcionalidad de solo un relé programable estuviera presente, no fue difícil con la configuración; la interfaz de hardware creada valió la pena. Pero en algún momento, las instrucciones de configuración comenzaron a exceder el tamaño del código de firmware. Idea inicial: el usuario escanea el código QR en el panel de instrumentos, va a la página con la instrucción - falló. Queda por hacer un dispositivo muy simple o buscar otro método de comunicación con el dispositivo. Los compradores potenciales (probadores valientes) durante mucho tiempo entendieron la configuración de acuerdo con las instrucciones.

Lo más triste es que tengo prototipos de varios dispositivos que alguna vez se configuraron y viven sus vidas en un panel eléctrico. Configuración: una docena de otros bytes. Queda por encontrar una interfaz adecuada.

¿Qué tenemos hoy? Comparación de los métodos de configuración "clásicos":

  • La elección de configuraciones listas para usar. PROS: Implementa fácilmente tanto software como hardware. Las mejoras de hardware adicionales son mínimas. El usuario no necesita tener un equipo especial, suficientes instrucciones. CONTRAS: No hay flexibilidad, no intuitivamente, se requieren instrucciones.
  • Una secuencia de clics con retroalimentación a través de una pantalla simple (similar a configurar un reloj electrónico normal). PROS: se implementa fácilmente mediante programación, el usuario no necesita tener un equipo especial, suficientes instrucciones. CONTRAS: No de forma intuitiva, es difícil configurar una gran cantidad de parámetros, la incapacidad de clonar la configuración, lo cual es crítico para las empresas de instalación.
  • Configuración mediante una interfaz cableada estándar. PROS: Intuitivamente, si la aplicación está bien escrita, la clonación fácil de la configuración, la implementación relativamente simple, quizás las mejoras de hardware no muy caras, la capacidad de actualizar el firmware. CONTRAS: El usuario debe tener equipo, al menos una computadora o computadora portátil con un puerto USB, un convertidor de interfaz, si su dispositivo proporciona algo diferente a USB o Ethernet. La necesidad de desarrollar una aplicación.
  • WiFi + WEB: disparando desde un cañón a gorriones y terry ardurinshchina. Pero la idea no es mala. PROS: similar a una conexión por cable, no es necesario desarrollar una aplicación multiplataforma al proporcionar la interfaz WEB incorporada del configurador, es suficiente para que el usuario tenga cualquier dispositivo con soporte WiFi y un navegador. Ni siquiera se requiere acceso a la red global. Quizás este diseño sea más barato que los botones / indicadores de hardware, el caso también se simplifica. CONTRAS: Técnicamente, una solución extremadamente fea que transfiere el producto a una clase de dispositivos completamente diferente. La confiabilidad se reduce, tanto debido a la complejidad del firmware, como a una mayor sensibilidad a EMF.

Resumo que una de las soluciones más bellas desde el punto de vista del usuario es la última. Pero también es uno de los más terribles desde el punto de vista de un ingeniero. Casi me detuve, pero ...
Curvatura técnica embrujada. Para escribir algunos bytes en la EEPROM, cercar un jardín con una pila de protocolos tan extensa es irracional. Pero parece que encontré una solución a mi problema, aquí están las características de este método:

Pros:

  • El aumento en el precio del componente de hardware es comparable a la decisión de "elegir entre configuraciones prefabricadas", de 10 a 15 rublos. Y la capacidad de rechazar botones, indicadores, etc. adicionales da, más bien, un precio más barato.
  • La implementación de software no es un problema.
  • No requiere el desarrollo de una aplicación especial. Si lo desea, se puede proporcionar la aplicación.
  • La intuición depende de la calidad del desarrollo del configurador o aplicación WEB.
  • Aislamiento galvánico con el dispositivo.

Contras:

  • Baja tasa de transferencia de datos en comparación con una interfaz cableada o de radio.
  • Se requiere contacto físico con el dispositivo.
  • Necesita al menos un acceso a la red.

Además, este método de transmisión de información es muy común en la naturaleza. Esta es una onda de sonido.

Ahora, tal vez todos tienen teléfonos inteligentes. Sin teléfono inteligente: cualquier dispositivo para reproducir sonido, incluso un reproductor de cassette, es adecuado. Como veo esta interfaz en acción:

  1. El usuario instala el dispositivo de acuerdo con las instrucciones.
  2. Se crea la configuración requerida del dispositivo, se registran los modos y ajustes necesarios.
  3. El usuario pone el dispositivo en modo de configuración, por ejemplo, mediante una secuencia especial de presionar una tecla, el dispositivo muestra un estado preparado, por ejemplo, parpadeando un LED con una frecuencia de 5 Hz.
  4. En el configurador, se hace clic en el ícono de "parámetros de transferencia", después de lo cual la secuencia de sonido codificada comienza a reproducirse (¿y quién los cargó desde casetes en los años 90?).
  5. El usuario espera a que los datos se carguen en el dispositivo (por ejemplo, el LED se ha encendido constantemente) y hace clic en el icono "detener transmisión".

Todo, los nuevos parámetros se transfieren al dispositivo. ¿Crees que este método de configuración será lo suficientemente conveniente?

En lugar de un epílogo

Específicamente no toqué la parte técnica de la implementación. Cada caso puede ser individual, el enfoque es una idea general. Si el artículo despierta interés, publicaré la segunda parte. Práctico. Mientras que el spoiler: la idea fue exitosa, el modelo de la versión "estudiante" PIC16 + de 8 bits del compilador C sin optimización, incluido el manual, el firmware se ajusta silenciosamente tanto en la memoria (aproximadamente 1 KB) como en el rendimiento. La operación matemática más difícil es la adición de sint8_t y sint16_t. Según los cálculos preliminares, el núcleo del configurador de sonido, reescrito en Assembler, cabrá en menos de 512 kiloslov y PIC16F819 debe tener un rendimiento de 2MIPS.

Todo lo mejor
Konstantin.

Source: https://habr.com/ru/post/468951/


All Articles