Sportiduino. Système de repérage électronique pour la course d'orientation. 2e partie

Partie 1

5 mois se sont écoulés depuis la rédaction du dernier article, depuis lors, le firmware a été finalisé, et maintenant les stations fonctionnent de manière encore plus fiable, et les puces bon marché détiennent 92 marques, ce qui est suffisant pour satisfaire presque tous les fantasmes des réalisateurs. Également testé avec succès le système en compétition.

Lorsque j'ai écrit la dernière fois, seulement 15 stations ont été assemblées, le système a été testé uniquement dans le labyrinthe sportif local, et la prochaine tâche de tester lors de compétitions plus massives et autonomes, qui était la «2e lumière de Moscou» , était en avance. Il s'agit de compétitions d'orientation touristique de deux jours avec nuitée obligatoire et pleine autonomie des participants. Seulement 41 points de contrôle, un grand nombre d'options de circulation, la distance totale était de 55 kilomètres en ligne droite. Environ 150 participants ont participé. Tout cela a posé un sérieux défi au système de marquage.

Tout d'abord, il a fallu souder 25 autres stations. Je ne voulais pas fouiller avec du butin et de la résine photosensible à une telle échelle, alors j'ai commandé la fabrication sur le côté, en Chine. Cela s'est avéré très peu coûteux et très pratique. Il est devenu beaucoup plus agréable de souder avec des planches prêtes à l'emploi, et il y avait moins de mariage pour sortir, les mouchoirs sont devenus verts et assez soignés. Certes, je devais encore bricoler et passer plusieurs jours de congé. Maintenant, je pense à plus d'automatisation, en utilisant du pochoir et de la pâte à souder.



Je n'ai pas changé les étapes ultérieures de l'assemblage, j'ai également collé les planches au boîtier à travers la LED et l'ai rempli d'un composé. Il était sec lors des compétitions elles-mêmes, donc je n'ai pas pu tester la survie des stations sous la pluie, mais les tests préliminaires de plusieurs stations dans la nature dans des conditions météorologiques différentes n'ont pas encore révélé d'instabilité de l'eau. Je colle également des bandes réfléchissantes sur le boîtier et je les attache avec un câble en acier avec des clips.



Le firmware a subi plusieurs modifications. Implémentation de la possibilité d'enregistrer le nombre de stations marquées de puces grâce à la mémoire EEPROM interne du microcontrôleur. Si vous attribuez une adresse à chaque bit, il y en a assez pour 6000 numéros de puce. Cela est nécessaire en cas de résolution de tout cas de force majeure, par exemple, la recherche d'un participant perdu, ainsi, et pour résoudre les cas litigieux. Jusqu'à présent, il n'y a que suffisamment de mémoire pour enregistrer le fait de la marque, l'heure de la marque n'est pas enregistrée. À l'avenir, avec le développement du système, je pense à ajouter une puce de mémoire EEPROM distincte à cet effet.

Étant donné que le système est ouvert et que toutes les spécifications sont accessibles à tous, quelqu'un peut enregistrer n'importe quelle puce principale à l'aide d'un appareil NFC. Il y a possibilité de vandalisme - reprogrammation des stations installées. Et ici, contrairement à une station simplement cassée, une erreur peut se glisser dans les résultats, ce qui est difficile à remarquer. Pour se protéger contre ce phénomène, un système de mot de passe a été introduit. Ajout également de la possibilité de configurer la station, l'utilisation de stations de départ et d'arrivée. Dans ce mode, la station de départ n'acceptera que les puces nettoyées, les autres stations ne répondront à la puce qu'avec une marque sur la station de départ et après la fin, la puce ne sera plus marquée sur les autres stations avant le nettoyage. Cela évitera des erreurs et des accidents gênants.

Lors des compétitions elles-mêmes, une ancienne version éprouvée du firmware a été utilisée avec la possibilité d'enregistrer en puces jusqu'à 46 marques, ce qui était tout à fait satisfaisant pour la compétition. Mais depuis lors, la possibilité d'augmenter la densité d'enregistrement a déjà été testée. La principale préoccupation était la nécessité d'écraser les données de la marque précédente lors de l'enregistrement de marques paires, car l'écriture sur la puce se fait par blocs de 16 octets. Mais, les tests ont montré la fiabilité de l'enregistrement, je ne pouvais toujours pas attraper l'erreur, quelle que soit la façon dont j'ai appliqué la puce. De plus, les données enregistrées sont cryptées avec un code de Hamming en deux blocs de 4 octets, ce qui augmente également la fiabilité du système.



Depuis, la passerelle a considérablement changé. Il a été décidé d'aller dans le sens de la simplification, maintenant la station se compose d'un Arduino Nano, d'un module RFID, d'une LED, d'un tweeter et d'une paire de résistances. J'ai également commandé un foulard en provenance de Chine, mais je n'ai pas calculé un peu la taille, alors je suis entré dans l'affaire avec difficulté.



L'option s'est avérée assez pratique. La station est connectée à l'ordinateur via USB. Le transfert de données s'effectue via le port COM. Pour l'utiliser, vous devez mettre la puce sur la station et envoyer une commande en fonction de l'objectif - lire la puce, effacer la puce, mettre à jour l'heure à la station, etc.

Pour automatiser le processus de travail avec le système, un programme a été écrit dans l'environnement de programmation Processing. Il se trouve que l'environnement s'est avéré très facile à apprendre et à utiliser après Arduino, apparemment en raison de leur affinité. Certes, le programme a été écrit très malpropre, les béquilles sont partout et le code est si tordu que je comprends à peine moi-même maintenant ce qui se passe où. Mais ça marche, l'interface est assez simple:



Le programme vous permet de configurer les stations, d'enregistrer, de lire les résultats, de traiter les différents types de compétitions séparément pour les groupes et les distances. La définition, la saisie des protocoles et les distances sont effectuées manuellement dans des fichiers csv séparés. Les résultats calculés sont également exportés sous forme de tableau csv. Oui, à cet égard, tout est encore primitif, mais le programme fait face à la tâche principale. Lors des compétitions passées, le programme nous a permis de calculer en temps réel les résultats que nous diffusons sur un moniteur externe pour la commodité des participants.



Les tests du système, ainsi que les compétitions elles-mêmes, ont réussi. Les 40 stations ont fonctionné correctement pendant deux jours, les résultats ont été obtenus immédiatement à l'arrivée des participants. Le logiciel est probablement actuellement le système le plus étroit. Maintenant, je suis occupé avec un autre projet, mais je pense qu'après la nouvelle année, je vais traiter ce problème, je veux apprendre Qt comme première approximation et y faire un programme plus pratique. Mais si quelqu'un souhaite créer un logiciel ou un support sportiduino dans celui existant, je serai heureux de coopérer.

Il existe également une autre possibilité de travailler avec le système via le téléphone sous Android fonctionnant avec NFC. Vous pouvez lire et écrire des puces, des stations de programme sans utiliser d'ordinateur, ce qui peut être particulièrement pratique sur le terrain.

Le projet repose sur les principes d'Open Sourse. Tous les schémas de firmware sont disponibles sur Github . Là, dans le wiki, des instructions détaillées sur l'assemblage et les principes du périphérique système sont collectées, il y a un manuel général au format pdf à la racine du référentiel. Ceux qui le souhaitent peuvent créer leur propre copie du système et apporter des modifications à la conception et au logiciel. Je serai heureux de vos commentaires.

J'ai l'intention de développer davantage le projet dans cette veine. Tout d'abord, vous devez créer un logiciel normal. En ce qui concerne les circuits, il existe également des plans de développement, je veux faire un appareil plus compact, souder tout le circuit sur une seule carte, ajouter de la mémoire supplémentaire et alimenter tout à partir de CR123.

J'exprime ma gratitude à Sergey Titov, Ilya Arkhipovsky et Dmitry Fedotov pour un certain nombre d'idées et de commentaires précieux. Je remercie également la communauté des geektimes et toutes les personnes intéressées. Vos commentaires, vos idées et votre soutien ont beaucoup joué dans le développement du projet.

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


All Articles