
Sair para o campo é sempre maravilhoso, mas com um mapa na mão e com um objetivo consciente é sempre mais interessante. Existem tipos de atividades ao ar livre como orientação, rogains, multi-raças, participando das quais você pode se divertir. A tarefa do orientador é visitar os pontos de verificação indicados no mapa no menor tempo possível. Para provar o fato de sua visita, eles são usados como os chamados Sistemas de marcação “tradicionais”: lápis de cor, símbolos de código, compositores, etc., bem como sistemas eletrônicos. Apesar da conveniência deste último, os métodos tradicionais ainda são amplamente utilizados em competições amadoras. Isso se deve ao custo do equipamento (de 3.500 rublos por marca de estação e de 450 rublos por chip), com a possibilidade de roubo de estações instaladas em locais públicos, a necessidade de fazer um depósito para o chip. Portanto, estabeleci o objetivo de criar uma alternativa mais acessível. Sua implementação no ambiente do Arduino é descrita abaixo.
Um sistema de identificação eletrônica geralmente consiste em chips e estações de RFID - dispositivos especiais para gravação e leitura. O sistema funciona da seguinte maneira. No início, o atleta de orientação recebe uma ficha, pega uma carta e começa. Correndo até o PC, ele aplica seu chip na estação de marcação, ela registra a hora atual no chip e emite um sinal, após o qual o atleta pode continuar. No final, o atleta passa o chip para o juiz, que lê as informações usando a estação de gateway e anuncia o resultado ao atleta - seu tempo à distância, o número de CPs visitados, conformidade com uma determinada direção. Ele também pode imprimir divisões - períodos gastos no caminho entre o PC, o que permite ao atleta analisar seu caminho e comparar-se com os outros em um segmento específico da distância.
Para trabalhar com chips RFID, existe um módulo RFID-RC522 amplamente disponível, para o qual existe uma excelente biblioteca para o arduino, em muitos aspectos esse fato determinou seu uso. O módulo opera com uma frequência de 13,56 MHz e suporta o padrão ISO 14443, trabalha com vários chips, a leitura e a gravação ocorrem a uma distância de vários centímetros, o que é adequado para nossos propósitos.
ChipsPara criar um sistema de marcação, usei o chip Mifare Classic 1K (S50) devido à sua ampla disponibilidade em vários designs e baixo custo (11 rublos por chip na forma de um chaveiro). O chip permite que você leia e grave informações de maneira rápida e confiável. A memória do chip é estruturalmente dividida em 16 setores, cada um dos quais contém 4 blocos de 16 bytes. O quarto bloco de cada setor contém chaves que podem ser usadas para escrever / ler blocos no setor. Além disso, no setor zero, o bloco zero contém o UID e informações sobre o fabricante. Assim, restam 3 blocos de 16 bytes para escrever nos setores do 1º ao 15º e dois blocos no 0º setor. A estrutura de gravação é apresentada na tabela abaixo, todos os dados são registrados em triplicado para garantir a confiabilidade.

Este sistema de gravação permite gravar 45 marcas na memória, incluindo início e término, para a maioria das competições isso é suficiente. Mas se você otimizar o uso da memória e dedicar um pouco mais de tempo, a capacidade poderá ser significativamente aumentada.
Estações da estaçãoEsquema e instalaçãoOs principais componentes das estações da marca: microcontrolador - Atmega328p-au, módulo RF522, relógio DS3231. Alimentado por 3 pilhas AA através do estabilizador linear MCP1700T-33.

Eu instalei os componentes em uma placa de circuito impresso, todos os componentes SMD, com a placa RFID que fiz a conexão soldando através do conector do pino. As placas foram fabricadas com fotorresistente, faixas de 0,5 mm. Enquanto o método estava sendo aperfeiçoado, fiz muitos casamentos, provavelmente é mais conveniente criar arquivos gerber e ordenar sua produção de lado, já que não é muito caro.

Eu uso o g1020BF acessível como o caso. Fiz um furo na caixa para o LED e cortei o excesso de plástico para entrar no compartimento da bateria. O orifício para o LED foi tratado com epóxi e, em seguida, inseriu uma placa de circuito soldada. Depois que o epóxi endureceu, ele injetou 30 mililitros do composto PK-68, o que era suficiente para cobrir o painel. Coloquei as pilhas no compartimento e sujei tudo com graxa para impermeabilização. Depois de apertar a tampa, a estação está pronta para uso.

O custo dos componentes e materiais da estação para sua fabricação é de cerca de 500 rublos. Demoro cerca de 1,5 horas de tempo puro para criar e configurar uma estação.
Firmware da estaçãoDurante a operação da estação, vários tipos de mau funcionamento são possíveis; foi necessário implementar o trabalho de watchdog; portanto, você precisa usar um Bootloader compatível para que funcione corretamente. Uma boa versão do gerenciador de inicialização do Atmega328p e as instruções para instalá-lo estão
aqui . Você também deve alterar a biblioteca de cabos padrão para sem bloqueio, para que a estação continue a funcionar quando a linha i2c for interrompida e não entre em um loop sem fim. Carreguei o carregador de inicialização usando outro arduino por meio do firmware do Arduino como isp, conectei os contatos SPI através dos pinos que levam ao módulo RFID, que interrompi após uma inicialização bem-sucedida. Após o qual eu instalei o firmware principal.
Com o firmware principal, quando a bandeja é inserida, a estação lê um bloco de informações a partir do qual aprende os números do último bloco gravado e a estação em que a marca ocorreu. Se o número da estação for diferente, o bloco de informações é atualizado e o número da estação e a hora atual são gravados no próximo bloco livre. A hora e o número da estação podem ser ajustados usando chips especiais e a estação de gateway.
NutriçãoUma das questões mais importantes que valeu a pena resolver foi como maximizar a vida útil das estações a partir de um conjunto de baterias. Isso é especialmente crítico para a orientação turística, quando as estações são instaladas muito antes da competição e é necessário garantir que funcionem por mais de um mês.
Para reduzir o consumo, os modos de suspensão são usados para o controlador e também para o RC522. No modo de suspensão, a estação consome apenas 0,02 mA versus 20 mA durante a operação. Para usar a energia de maneira mais econômica, foram implementados três modos de operação da estação com diferentes intervalos de tempo de suspensão.
Por padrão, a estação inicia no modo de espera. Ao mesmo tempo, o chip é pesquisado a cada segundo, a capacidade da bateria é suficiente para 160 dias. Quando o chip é colocado na bandeja (isso é feito pelo juiz de produção ou pelo primeiro atleta que correu para a estação), a estação muda para o modo operacional. No modo operacional, uma pesquisa de chip é implementada a cada 250 ms. As pilhas novas duram 45 dias em uso contínuo. Após 6 horas de inatividade, a estação retorna ao modo de espera.
Quando o chip de suspensão principal (chip de árbitro especial com as configurações da estação) é trazido, a estação muda para o modo de armazenamento (procure o chip uma vez a cada 25 segundos), escolhe 3 vezes e reinicia. As pilhas novas neste modo duram 5 anos. Quando uma bandeja é colocada em qualquer chip, a estação entra no modo de espera e a carga restante da bateria é medida. Se a tensão cair abaixo de 3.1V, o que indica que cerca de 15% da carga permanece, a estação sinaliza isso.
Interface e processamento de dadosUma estação de interface é fornecida para trabalhar com chips e estações de marcação. Usando a estação gateway, você pode definir e ajustar os números de hora e estação usando chips mestre especiais. Além disso, a estação de gateway realiza a limpeza e a verificação pré-lançamento dos chips, inserindo-os com informações iniciais e um número individual. Bem, é claro, ele lê as fichas e obtém os resultados.
Também adicionei ao circuito um módulo SD para gravar splits e um módulo Bluetooth para que a estação possa ser conectada a um telefone ou computador para receber ou transmitir dados.

Enquanto o circuito e o firmware ainda não estão otimizados o suficiente e implementados tão longe dos módulos, no joelho. No futuro, está planejado finalizar para uso mais conveniente.

No momento, o processamento de dados é realizado de maneira semi-manual, classificando os arquivos CSV resultantes. O sistema é muito flexível e pode ser facilmente configurado para qualquer competição, para implementar o pré-processamento de dados no gateway de maneira conveniente em diferentes casos. Para o futuro, há planos de escrever software para automatizar o processamento de dados.
ConclusãoEu sou novo em programação e desenvolvimento de dispositivos eletrônicos e faço isso há menos de um ano. Portanto, as soluções de código e circuito, possivelmente, estão longe de serem ótimas ou completamente incorretas. Ficarei muito feliz em criticar, todo o projeto está disponível gratuitamente
no github .
Também quero expressar gratidão àqueles que já ajudaram com dicas e se interessaram pelo desenvolvimento.