SportIduino - Sistema de marcado electrónico de orientación Arduino



Salir al campo siempre es maravilloso, pero con un mapa en la mano y con un objetivo consciente siempre es más interesante. Hay tipos de actividades al aire libre como orientación, carreras, carreras múltiples, en las que puedes pasar un buen rato. La tarea del orientador es visitar los puntos de control indicados en el mapa en el tiempo mínimo. Para probar el hecho de su visita, se usan como los llamados Sistemas de marcado "tradicionales": lápices de colores, símbolos de código, compostadores, etc., así como sistemas electrónicos. A pesar de la conveniencia de este último, los métodos tradicionales todavía se usan ampliamente en las competiciones de aficionados. Esto se debe al costo del equipo (de 3.500 rublos por marca de estación y de 450 rublos por chip), con la posibilidad de robo de estaciones instaladas en lugares públicos, la necesidad de tomar un depósito para el chip. Por lo tanto, me propuse el objetivo de crear una alternativa más asequible. Su implementación en el entorno Arduino se describe a continuación.

Un sistema de etiquetado electrónico generalmente consta de chips y estaciones RFID, dispositivos especiales para su grabación y lectura. El sistema funciona de la siguiente manera. Al comienzo, el atleta de orientación recibe una ficha, toma una tarjeta y comienza. Corriendo hacia el CP, aplica su chip a la estación de marcado, ella registra la hora actual en el chip y da una señal, después de lo cual el atleta puede continuar. Al final, el atleta pasa el chip al juez, quien lee la información utilizando la estación de acceso y anuncia el resultado al atleta: su tiempo a distancia, el número de CP visitados, el cumplimiento de una dirección determinada. También puede imprimir divisiones: períodos de tiempo dedicados a la ruta entre el PC, lo que le permite al atleta analizar su ruta y compararse con otros en un segmento particular de la distancia.

Para trabajar con chips RFID, hay un módulo RFID-RC522 ampliamente disponible, para el cual hay una excelente biblioteca para arduino, en muchos aspectos este hecho determinó su uso. El módulo funciona a una frecuencia de 13.56 MHz y es compatible con el estándar ISO 14443, funciona con varios chips, la lectura y escritura se produce desde una distancia de varios centímetros, lo cual es muy adecuado para nuestros propósitos.



Papas fritas

Para crear un sistema de marcado, utilicé el chip Mifare Classic 1K (S50) debido a su amplia disponibilidad en varios diseños y bajo costo (11 rublos por chip en forma de llavero). El chip le permite leer y escribir información de manera rápida y confiable. La memoria del chip está estructuralmente dividida en 16 sectores, cada uno de los cuales contiene 4 bloques de 16 bytes. El cuarto bloque de cada sector contiene claves que pueden usarse para escribir / leer bloques en el sector. Además, en el sector cero, el bloque cero contiene el UID e información sobre el fabricante. Por lo tanto, quedan 3 bloques de 16 bytes para escribir en sectores del 1 al 15 y dos bloques en el sector 0. La estructura de grabación se presenta en la tabla a continuación, todos los datos se registran por triplicado para mayor confiabilidad.



Este sistema de grabación le permite grabar 45 marcas en la memoria, incluidos el inicio y el final, para la mayoría de las competiciones esto es suficiente. Pero si optimiza el uso de la memoria y dedica un poco más de tiempo a la marca, la capacidad se puede aumentar significativamente.



Estaciones de Estacion

Esquema e instalación

Los componentes principales de las estaciones de la marca: microcontrolador - Atmega328p-au, módulo RF522, reloj DS3231. Alimentado por 3 baterías AA a través del estabilizador lineal MCP1700T-33.



Instalé los componentes en una placa de circuito impreso, todos los componentes SMD, con la placa RFID hice la conexión soldando a través del conector pin. Los tableros se fabricaron utilizando pistas fotorresistentes de 0,5 mm. Mientras se perfeccionaba el método, me casé mucho, probablemente sea más conveniente hacer archivos gerber y ordenar su producción por separado, ya que no es muy costoso.



Yo uso el asequible g1020BF como el caso. Taladré un agujero en la caja para el LED y corté el exceso de plástico para ingresar al compartimiento de la batería. El orificio para el LED fue tratado con epoxi, luego insertó una placa de circuito soldada. Después de que el epoxi se endureció, inyectó 30 mililitros del compuesto PK-68, que fue suficiente para cubrir el tablero. Inserté baterías en el compartimento de la batería y unté todo con grasa para impermeabilizar. Después de apretar la tapa, la estación está lista para usar.



El costo de los componentes y materiales de la estación para su fabricación es de aproximadamente 500 rublos. Me lleva alrededor de 1,5 horas de tiempo puro hacer y configurar una estación.

Firmware de la estación

Durante el funcionamiento de la estación, son posibles varios tipos de mal funcionamiento, fue necesario implementar el trabajo de watchdog, por lo que debe utilizar un cargador de arranque compatible para que funcione correctamente. Aquí encontrará una buena versión del gestor de arranque para Atmega328p e instrucciones para instalarlo. También debe cambiar la biblioteca de cables estándar a no bloqueante para que la estación continúe funcionando cuando la línea i2c se rompa y no entre en un bucle sin fin. Cargué el cargador de arranque usando otro arduino a través del Arduino como firmware isp, conecté los contactos SPI a través de los pines que conducen al módulo RFID, que corté después de un arranque exitoso. Después de lo cual instalé el firmware principal.

Con el firmware principal, cuando se inserta la bandeja, la estación lee un bloque de información del que aprende los números del último bloque grabado y la estación en la que se produjo la marca. Si el número de estación es diferente, el bloque de información se actualiza y el número de estación y la hora actual se registran en el siguiente bloque libre. La hora y el número de estación se pueden ajustar usando chips especiales y la estación de puerta de enlace.

Nutrición

Una de las cuestiones más importantes que valió la pena resolver fue cómo maximizar la vida útil de las estaciones con un conjunto de baterías. Esto es especialmente crítico para la orientación turística, cuando sucede que las estaciones se instalan mucho antes de la competencia y es necesario que estén garantizadas para funcionar durante más de un mes.

Para reducir el consumo, los modos de suspensión se utilizan para el controlador, así como para el RC522. En modo inactivo, la estación consume solo 0.02 mA versus 20 mA durante la operación. Para utilizar la energía de manera más económica, se han implementado tres modos de funcionamiento de la estación con diferentes intervalos de tiempo de reposo.

Por defecto, la estación comienza en modo de espera. Al mismo tiempo, se busca el chip cada segundo, la capacidad de la batería es suficiente durante 160 días. Cuando el chip se coloca en la bandeja (esto lo hace el juez de producción o el primer atleta que ha corrido hasta la estación), la estación cambia al modo de operación. En modo operativo, se implementa una búsqueda de chips cada 250 ms. Las baterías nuevas duran 45 días de uso continuo. Después de 6 horas de inactividad, la estación vuelve al modo de espera.

Cuando se introduce el chip de reposo maestro (chip de juez especial con configuración de estación), la estación cambia al modo de almacenamiento (busque el chip una vez cada 25 segundos), lo selecciona 3 veces y se reinicia. Las baterías nuevas en este modo durarán 5 años. Cuando se coloca una bandeja en cualquier chip, la estación pasa al modo de espera y se mide la carga restante de la batería. Si el voltaje cae por debajo de 3.1V, lo que indica que queda aproximadamente el 15% de la carga, la estación lo señala.

Interfaz y procesamiento de datos

Se proporciona una estación de interfaz para trabajar con chips y estaciones de marcado. Con la estación de puerta de enlace, puede configurar y ajustar la hora y los números de estación utilizando chips maestros especiales. Además, la estación de puerta de enlace realiza la limpieza previa al lanzamiento y la verificación de chips, los ingresa con información inicial y un número individual. Bueno, por supuesto, lee las fichas y obtiene los resultados.

Al circuito, también agregué un módulo SD para grabar divisiones y un módulo Bluetooth para que la estación se pueda conectar a un teléfono o computadora para recibir o transmitir datos.



Si bien el circuito y el firmware aún no están lo suficientemente optimizados e implementados tan lejos de los módulos, en la rodilla. En el futuro, se planea finalizar para un uso más conveniente.



Por el momento, el procesamiento de datos se lleva a cabo de forma semi-manual clasificando los archivos CSV resultantes. El sistema es muy flexible y se puede configurar fácilmente para cualquier competencia, para implementar el preprocesamiento de datos en la puerta de enlace de manera conveniente en diferentes casos. Para el futuro, hay planes para escribir software para automatizar el procesamiento de datos.

Conclusión

Soy nuevo en la programación y el desarrollo de dispositivos electrónicos y he estado haciendo esto por menos de un año. Por lo tanto, el código y las soluciones de circuitos, muy posiblemente, están lejos de ser óptimas o completamente incorrectas. Estaré encantado de criticar, todo el proyecto está disponible gratuitamente en el github .

También quiero expresar mi gratitud a aquellos que ya han ayudado con consejos e interesados ​​en el desarrollo.

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


All Articles