No futuro dos transportes inteligentes e da logística automatizada, a tecnologia de condução autônoma está transformando gradualmente nossas vidas. Desde carros autônomos até robôs de armazém inteligentes, um dos elementos centrais dessas tecnologias é a navegação por seguimento de linhas. Neste projeto, exploraremos duas abordagens diferentes para fazer seu carrinho UNIHIKER K10 seguir automaticamente uma linha preta. Mais do que um desafio de programação interessante, esta atividade serve como ponto de partida para explorar tecnologias de transporte inteligente. Ao concluí-la, você dominará princípios fundamentais sobre como robôs percebem o ambiente e tomam decisões, estabelecendo bases sólidas para futuras inovações tecnológicas.

Objetivo da Tarefa
Implementar dois métodos distintos de seguimento de linha para que o carrinho navegue pelas linhas pretas em um mapa colorido. O primeiro método utiliza valores digitais obtidos dos sensores de linha instalados na base. O segundo método emprega o algoritmo de seguimento de linha integrado no UNIHIKER K10.

Conhecimentos Fundamentais
1. Compreender o princípio de funcionamento e método de detecção dos sensores de seguimento de linha
2. Dominar os métodos de leitura de dados dos sensores de seguimento de linha
3. Aprender a invocar o algoritmo embutido de seguimento de linha do Maqueen Plus V3
4. Comparar as vantagens e desvantagens entre o seguimento de linha personalizado e o algoritmo embutido
Lista de Materiais
Hardware necessário:

Software necessário:
Software de programação Mind+ (versão V1.8.1 RC3.0 ou superior)
Disponível para download em: https://mindplus.cc/download-en.html

Exercício Prático
Neste projeto, exploraremos a funcionalidade de seguimento de linha através de três tarefas progressivas. Primeiro, aprenderemos a obter valores digitais dos sensores de linha. Em seguida, implementaremos dois métodos distintos: seguimento personalizado e uso de algoritmo embutido, para controlar o movimento do carrinho.
Tarefa 1: Obter valores digitais dos sensores de linha
Ler valores digitais dos 5 sensores de linha e exibi-los em tempo real no visor do K10.
Tarefa 2: Seguimento básico de linha
Desenvolver um programa de controle baseado nos sinais digitais dos sensores para implementar a funcionalidade básica de seguimento.
Tarefa 3: Seguimento com algoritmo embutido
Utilizar o algoritmo de seguimento de linha integrado no UNIHIKER K10 para navegação autônoma, simplificando o processo de desenvolvimento.
Tarefa 1: Obtenção de Valores Digitais dos Sensores de Linha
1. Conexão de Hardware
Conecte o carrinho montado ao computador utilizando um cabo USB 3.0 para Type-C. Observação: A extremidade Type-C deve ser conectada ao UNIHIKER K10.

2. Preparação do Software
Abra o Mind+ e complete a configuração do software conforme ilustrado abaixo.

3. Programação
(1) Obtenção dos valores dos sensores de linha
Utilize o comando "Ler estado do sensor de linha L1" para obter o sinal digital atual do sensor (0 ou 1).

Utilize o comando "Cache exibir texto" para mostrar os valores dos sensores de linha no visor do UNIHIKER K10. Defina a opção "Limpeza automática" como "Sim" para garantir que apenas os conteúdos mais recentes sejam exibidos.

Utilize o comando "Combinar com" para integrar os valores de cada sensor em texto formatado, conforme exemplo: L1: Ler estado do sensor de linha L1

Por fim, utilize o comando "Mostrar conteúdo em cache" para atualizar o texto na tela e aplicar as alterações. O programa completo segue abaixo:

4. Execução do Programa
Antes de executar o programa, verifique novamente se o UNIHIKER K10 está corretamente conectado ao computador via cabo USB. Após confirmar a conexão, clique no botão "Executar" no software. Quando o sensor de linha detectar a faixa preta, o LED de indicação acenderá (valor digital = 1); quando não detectar a linha preta, o LED permanecerá apagado (valor digital = 0).

Tarefa 2: Seguimento de Linha Personalizado
1. Programação
Esta tarefa consiste em expandir o programa da Tarefa 1. Para implementar a funcionalidade básica de seguimento de linha, utilizaremos apenas os três sensores frontais: L1, M e R1. Esses sensores determinarão a posição relativa do carrinho em relação à linha preta, permitindo os ajustes necessários.
Observação: Embora os três sensores possam gerar sete combinações distintas, esta análise focará em três casos principais. As demais situações podem ser exploradas posteriormente.

Movimento reto: Quando o sensor M detectar a linha preta (valor = 1), isso indica que o veículo está alinhado com a linha. Utilize o comando "Configurar tudo motor direção para frente velocidade 100" para controlar ambos os motores avançando simultaneamente.

Curva à direita: Quando o sensor R1 detecta a linha preta (valor 1) enquanto o M detecta branco (valor 0), isso indica que o veículo está deslocado para a esquerda e deve virar à direita, o que pode ser realizado através dos comandos "Configurar Esquerda motor direção para frente velocidade 100" e "Configurar Direita motor direção para frente trás 50" para executar a curva à direita.

Curva à esquerda: Quando o sensor L1 detecta a linha preta (valor 1) enquanto o M detecta branco (valor 0), isso indica que o veículo está deslocado para a direita e deve virar à esquerda, o que pode ser realizado através dos comandos "Configurar Esquerda motor direção para frente velocidade 50" e "Configurar Direita motor direção para frente velocidade 100" para executar a curva à esquerda, com o programa completo conforme segue:

2. Execução do programa
Antes de executar o programa, é necessário confirmar que o UNIHIKER K10 está corretamente conectado ao computador via cabo USB, e após verificar a conexão, clique no botão "Executar" no software; após a conclusão da execução do programa, posicione o carrinho no ponto inicial do mapa e ele seguirá automaticamente a linha preta do mapa.

Tarefa 3: Navegação por Algoritmo Embarcado de Seguimento de Linha
1. Programação
Nesta tarefa, utilizaremos a funcionalidade de seguimento de linha embarcada no UNIHIKER K10 (baseado no DFRobot Maqueen Plus V2) para implementar navegação autônoma. Este processo é simplificado pois a maior parte da lógica de seguimento já está integrada no hardware e firmware, exigindo apenas a chamada dos comandos apropriados.
No início do programa, utilize o comando "Inicialização do Sistema" para configurar os parâmetros básicos e assegurar o funcionamento correto de todos os módulos.

Durante o seguimento de linha, utilize o comando "Configuração Velocidade para seguir linha" para definir a velocidade de deslocamento, que influenciará diretamente a movimentação do veículo.
Observação: a velocidade aceita valores de 1 a 5, ajustáveis conforme necessidade, sendo que valores maiores resultam em maior velocidade e valores menores em movimentação mais lenta.

Por fim, execute o comando "Seguir linha Ativar" para ativar a funcionalidade embutida de seguimento. O programa completo segue abaixo:

2. Execução do Programa
Antes de executar o programa, verifique novamente se o UNIHIKER K10 está corretamente conectado ao computador via cabo USB. Confirmada a conexão, clique no botão "Executar" no software. Após a conclusão da execução, posicione o veículo no ponto inicial do mapa para que ele siga automaticamente a linha preta.
Base de Conhecimento
1. Princípio de Funcionamento dos Sensores de Seguimento de Linha
Cada sensor de seguimento de linha possui dois componentes infravermelhos: um emissor e um receptor de sinais infravermelhos.

O funcionamento dos sensores de seguimento de linha baseia-se nas propriedades de reflexão da luz. Em um fundo branco, as marcas pretas da linha refletem mais luz, enquanto o fundo branco reflete menos luz. Portanto, quando o sensor detecta uma linha preta no solo, ele emite um sinal de saída com valor 1. Por outro lado, quando o sensor detecta o fundo branco no solo, ele emite um sinal de saída com valor 0.

2. Método de Calibração dos Sensores de Seguimento de Linha
Os sensores do carrinho Maqueen Plus V3 são pré-calibrados na fábrica e geralmente funcionam imediatamente. Caso ocorram anomalias (como saída 1 em áreas brancas com LED aceso), recalibre usando o botão onboard.
Procedimento:
Preparação: Posicione todos os sensores frontais sobre superfície preta, cobrindo-os completamente.
Calibração: Pressione prolongadamente o botão até que os LEDs azuis pisquem três vezes, indicando conclusão.

Teste de calibração:
Posicione o sensor sobre a área preta - o LED indicador correspondente deve acender.
Posicione o sensor sobre a área branca - o LED indicador correspondente deve apagar.

Este procedimento corrige eficientemente desvios de detecção causados por variações de iluminação ambiental ou desgaste do componente, garantindo precisão e estabilidade na funcionalidade de seguimento de linha do veículo.
3. Cenários de Aplicação de Sensores de Seguimento de Linha
Os sensores de seguimento de linha são componentes inteligentes capazes de identificar diferenças na cor da superfície ou na intensidade de reflexão, comumente utilizados para permitir que robôs "reconheçam rotas e sigam trajetos definidos". Esses sensores não apenas constituem elementos essenciais para a navegação autônoma de veículos inteligentes, mas também possuem ampla aplicação em diversos cenários do mundo real.
Na prática, os sensores de seguimento de linha possuem aplicações extremamente amplas. Por exemplo, em armazéns logísticos, robôs de transporte automatizado (AGVs) utilizam esses sensores para movimentar e armazenar mercadorias com eficiência ao longo de trilhas pretas pré-definidas, aumentando significativamente a produtividade logística. No campo dos transportes inteligentes, veículos autônomos empregam sensores de seguimento para detectar marcações nas bordas das vias, garantindo que permaneçam dentro da faixa de rodagem de forma segura, tornando os sistemas de assistência ao condutor mais confiáveis. Robôs de serviço, como os de limpeza e entrega de medicamentos em hospitais, também dependem desses sensores para navegação autônoma em ambientes internos, proporcionando serviços altamente eficientes.

Além disso, no campo educacional e de pesquisa, os sensores de seguimento de linha são ferramentas essenciais para experimentos didáticos e competições de robótica, auxiliando estudantes e pesquisadores no aprendizado de princípios de sensoriamento e algoritmos de controle. Em sistemas de monitoramento de segurança, esses sensores podem detectar os limites de áreas específicas, prevenindo a intrusão de pessoas ou objetos e garantindo a segurança. Na agricultura inteligente, os sensores de seguimento de linha permitem que robôs agrícolas realizem operações de irrigação, fertilização e colheita seguindo trajetos pré-definidos, aumentando significativamente a eficiência produtiva agrícola.

Através dessas aplicações, os sensores de seguimento de linha não apenas aumentam a eficiência operacional, mas também melhoram significativamente a confiabilidade e segurança dos sistemas, fornecendo suporte fundamental para o desenvolvimento futuro de tecnologias inteligentes.
Desafie-se
Neste projeto, já dominamos a funcionalidade básica de seguimento de linha do veículo. Porém, em cenários reais, as rotas raramente são estáticas. Imagine: o veículo pode encontrar cruzamentos, junções em T, ou até mesmo trechos complexos com múltiplas convergências de trajetos.
Surge então o desafio: como o veículo deve determinar a direção correta ao chegar nessas intersecções? E como programá-lo para tomar a decisão adequada?
Exercite seu raciocínio e projete um método para capacitar seu veículo inteligente a "tomar decisões" autônomas diante dessas "bifurcações"!
