Maqueen Plus V3 x UNIHIKER K10 Liçao 4: Robô Inteligente de Monitoramento Ambiental
Você já imaginou como seria se o carro robótico UNIHIKER K10 se tornasse um robô inteligente de monitoramento ambiental? Ele poderia não apenas exibir dados ambientais em tempo real, como temperatura, umidade e níveis de luminosidade, mas também plotar esses dados em gráficos de linha para nos ajudar a observar visualmente as tendências das mudanças ambientais. Agora, vamos começar do zero e explorar passo a passo como transformar essa ideia prática e divertida em realidade!

Objetivo da Tarefa
Exibir dados de umidade em tempo real na tela do UNIHIKER K10, armazenar os dados coletados e plotar um gráfico de linhas para visualizar a tendência de variação dos dados. Utilizar a funcionalidade de interação por voz para consultar os valores máximo e mínimo de umidade registrados.

Pontos de Conhecimento
1. Aprender a coletar e armazenar dados ambientais
2. Dominar a criação de gráficos e representação visual de dados
3. Compreender o reconhecimento de voz e a lógica de interação com dados
4. Explorar tendências em monitoramento ambiental inteligente
Lista de Materiais

Software Utilizado
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
Este projeto tem como objetivo coletar dados de umidade detectados pelo sensor de umidade e plotá-los em um gráfico de linhas. Por meio da comparação dos dados, será possível identificar os valores máximo e mínimo de umidade. Por fim, comandos de voz serão utilizados para recuperar esses valores extremos, exibindo os dados correspondentes na tela após o reconhecimento bem-sucedido do comando vocal.
Para alcançar esse objetivo, o projeto está dividido nas duas tarefas a seguir.
Tarefa 1: Plotar gráfico de linhas com dados de umidade
Armazenar os dados de umidade monitorados em tempo real e representá-los graficamente em formato de linhas, permitindo a visualização clara da tendência de variação dos valores.
Tarefa 2: Obter dados de umidade por comando vocal
Implementar funcionalidade de reconhecimento de voz para responder a consultas sobre os dados de umidade. Utilizar comandos vocais para recuperar os valores máximo e mínimo de umidade, exibindo na tela os valores extremos atuais após o reconhecimento bem-sucedido das solicitações por voz.
Tarefa 1: Plotar um gráfico de linhas com dados de umidade
1. Conexão de Hardware
Utilize um cabo de dados USB 3.0 para Type-C para conectar o carro robótico montado ao computador.
Observação: A extremidade Type-C deve ser conectada ao UNIHIKER K10.

2. Preparação do Software
Abra o Mind+ e realize os procedimentos de configuração conforme ilustrado abaixo.

3. Programação
Plotagem de gráfico de linhas, utilizando dados de umidade como exemplo.
(1) Construção do sistema de coordenadas cartesianas
Para plotar um gráfico de linhas na tela do UNIHIKER K10, é necessário primeiro construir um sistema de coordenadas cartesianas. A primeira etapa consiste em utilizar o comando "Definir largura da linha/borda como" para configurar a espessura das linhas do sistema de coordenadas como 1. Naturalmente, caso considere as linhas muito finas, é possível ajustar este valor para 3, 4, e assim por diante.

Para desenhar o eixo vertical (Y), utilize o comando "cache desenhe uma linha de X1 Y1 até X2 Y2 cor" para criar um eixo vertical na tela, onde as coordenadas iniciais do eixo Y são (10, 80) e as finais são (10, 280), definindo a cor da linha como preta para garantir sua perfeita visualização na tela.

Utilize o mesmo método para desenhar o eixo horizontal (X), definindo o ponto inicial em (10, 280) e o ponto final em (230, 280). Em seguida, execute o comando "mostrar conteúdo em cache" para atualizar e visualizar simultaneamente os eixos X e Y na tela do UNIHIKER K10.

(2) Plotagem de Pontos
Após a construção do sistema de coordenadas cartesianas, podemos iniciar a plotagem dos pontos. Antes de plotar, certifique-se de determinar as coordenadas X e Y de cada ponto. Primeiramente, crie uma nova variável denominada "Umidade_x1" para armazenar a coordenada X do ponto, e inicialize o valor de "Umidade_x1" como 10.

A coordenada Y do ponto representa os dados de umidade, porém o valor da umidade não pode ser utilizado diretamente como coordenada Y. Isso ocorre porque a faixa de valores de umidade ultrapassa em muito a faixa de coordenadas da tela, e a escala de valores é oposta à direção do eixo Y da tela. Para resolver esses problemas, utilize o operador "mapear" para mapear o valor de umidade para uma coordenada Y correspondente na tela do UNIHIKER K10.

Crie uma nova variável denominada "Umidade_y1" para armazenar os dados de umidade mapeados. Inicialize o valor de "Umidade_y1" com o valor de umidade mapeado.

Em seguida, utilize o comando "ponto de desenho do cache em X Y cor" para plotar o ponto, onde a coordenada X corresponde à variável "Umidade_x1" e a coordenada Y à variável "Umidade_y1". Por fim, execute o comando "mostrar conteúdo em cache" para atualizar e exibir o ponto plotado na tela do UNIHIKER K10.

Após a plotagem do primeiro ponto, é necessário deslocar a coordenada X correspondente em 10 unidades para a direita. Utilize o comando "Adicione a umidade_x1" para incrementar o valor de hum_x1 em 10 unidades.

(3) Traçado de Linhas
Após plotar com sucesso os pontos de dados, a próxima etapa consiste em utilizar esses pontos para desenhar um gráfico de linhas. Utilize o comando "cache desenhe uma linha de X1 Y1 até X2 Y2 cor" para conectar os pontos sequencialmente, formando uma polilinha.
Para determinar as coordenadas de início e fim da linha, crie duas novas variáveis "Umidade_x2" e "Umidade_y2". As coordenadas de início da linha (X1, Y1) correspondem às coordenadas do primeiro ponto de dados, ou seja, (Umidade_x1, Umidade_y1). As coordenadas de término da linha (X2, Y2) correspondem às coordenadas do próximo ponto de dados, ou seja, (Umidade_x2, Umidade_y2).
No início do programa, em "UNIHIKER K10 na partida", inicialize o valor de "Umidade_x2" com o valor de "Umidade_x1", e "Umidade_y2" com o valor de "Umidade_y1".

Após confirmar tanto o ponto inicial quanto o final da linha, utilize o comando "cache desenhe uma linha de X1 Y1 até X2 Y2 cor" para traçar a linha. Em seguida, execute o comando "mostrar conteúdo em cache" para visualizar a linha na tela do UNIHIKER K10.

Quando o próximo ponto é atualizado, as coordenadas finais da linha também devem ser atualizadas. Para isso, atualize os valores de "Umidade_x2" e "Umidade_y2" da seguinte forma:
Atribua o valor de "Umidade_x1" a "Umidade_x2", fazendo com que "Umidade_x2" armazene a coordenada X do ponto anterior.
Atribua o valor de "Umidade_y1" a "Umidade_y2", fazendo com que "Umidade_y2" armazene a coordenada Y do ponto anterior.
O objetivo desta etapa é definir o ponto de partida para a nova linha, garantindo sua conexão contínua com o ponto anterior.

4. Execução do Programa
Antes de executar o programa, certifique-se de que o UNIHIKER K10 esteja devidamente conectado ao computador via cabo USB. Uma vez confirmada a conexão, clique no botão "Executar" no software. Após a execução bem-sucedida do programa, um sistema de coordenadas cartesianas será desenhado na tela do UNIHIKER K10, e os dados de umidade monitorados em tempo real serão plotados e exibidos como um gráfico de linhas.

5. Teste Prático
Durante o processo de criação do gráfico de linhas, você pode encontrar dois problemas comuns:
1. Os pontos de dados são atualizados rapidamente demais, fazendo com que o gráfico de linhas mude bruscamente e dificultando a observação.
2. Quando os pontos de dados ultrapassam o limite do eixo X da tela, o gráfico continua sendo desenhado, o que pode resultar em uma visualização desorganizada. Para resolver esses problemas, você pode adotar as seguintes medidas:
Reduza a velocidade de atualização dos dados: Adicione um intervalo adequado entre as aquisições de dados para reduzir a velocidade de geração de novos pontos. Como exemplo, pode-se inserir um breve tempo de espera após a leitura do valor de umidade e a plotagem de um novo ponto.
Limitar a área de plotagem: Para assegurar que o gráfico de linhas seja desenhado exclusivamente dentro do sistema de coordenadas estabelecido, é necessário implementar uma das seguintes medidas: limitar a quantidade de pontos de dados armazenados ou restringir o valor máximo permitido para a coordenada X.
Tarefa 2: Obter dados de umidade por comando de voz
1. Programação
Esta tarefa amplia o programa "Teste Prático" da Tarefa Um, adicionando funcionalidades de ativação por voz, reconhecimento de comandos vocais e capacidade de reconhecer e relatar dados de umidade através de interação por voz.
(1) Inicializar a Função de Reconhecimento de Voz
No bloco "UNIHIKER K10 na partida", use o comando "Configurar reconhecimento de fala tempo de ativação língua" para inicializar o modo de reconhecimento de voz como contínuo, definir o tempo de ativação para 6 segundos e selecionar Inglês como idioma. Esta etapa garante que o módulo de reconhecimento de voz possa iniciar corretamente e entrar no modo de escuta após ser acionado pelo usuário.
Observação: Atualmente, o reconhecimento de voz suporta apenas Chinês e Inglês.

(2) Adicionar Palavras-chave de Comando de Voz
Utilize a instrução "Adicionar comando de fala ID comando" para atribuir um número de ID único a cada comando de voz para posterior reconhecimento e processamento. Por exemplo:
O comando "umidade máxima" recebe o ID 0.
O comando "umidade mínima" recebe o ID 1.

(3) Obter os Valores Máximo e Mínimo de Umidade
No início do programa, crie duas variáveis, "Umidade_mínima" e "Umidade_máxima", para armazenar os valores mínimo e máximo de umidade. Utilize o comando "ler umidade" para obter o valor inicial de umidade e atribua-o tanto a "Umidade_mínima" quanto a "Umidade_máxima".

Crie uma variável chamada "Umidade" para adquirir continuamente dados de umidade em tempo real dentro do loop.

Utilize o comando "se...então...senão" para comparar os valores de "Umidade" e "Umidade_máxima". Se "Umidade" for maior que "Umidade_máxima", atualize "Umidade_máxima" com o valor de "Umidade".

Caso contrário, quando a condição for falsa, os dados de umidade máxima permanecem inalterados. Utilize a instrução "mude Umidade_máxima para" para atribuir o valor da variável "Umidade_máxima" à variável "Umidade_máxima".

O método de comparação do valor mínimo de umidade é idêntico ao utilizado para comparação do valor máximo de umidade.

(4) Obtenção dos Valores Máximo e Mínimo de Umidade por Comandos de Voz
Para obter os valores máximo e mínimo de umidade através de comandos de voz, esta operação deve ser realizada após a completa renderização dos gráficos de linhas. Utilize a instrução "se...então" para verificar a condição "O estado atual do reconhecimento de fala está em modo de despertar?". Quando o usuário pronunciar a frase de ativação pré-definida "Hi, Telly", a função de reconhecimento de voz entrará no estado de escuta, pronta para receber os comandos vocais do usuário.

Se o ID da palavra de comando for detectado como 0 (ou seja, quando o usuário diz "umidade máxima"), então utilize a instrução "mostrar conteúdo em cache" para exibir o valor mais alto como "Max humidity:" na tela.

Se o ID da palavra de comando for detectado como 1 (isto é, quando o usuário diz "umidade mínima"), então utilize a instrução "mostrar conteúdo em cache" para exibir a umidade mínima como "Min humidity:" na tela.

O programa completo é o seguinte:

2. Execução do Programa
Antes de executar o programa, certifique-se de que o UNIHIKER K10 esteja corretamente conectado ao computador via cabo USB. Após confirmar que tudo está correto, clique no botão "Executar" no software. Quando a Execução do Programa for bem-sucedida, o UNIHIKER K10 desenhará um gráfico de linhas de umidade em sua tela. Após o gráfico de linhas ser completamente desenhado, você pode ativar o reconhecimento de voz dizendo "Hi, Telly" e então pronunciar a palavra de comando "Max humidity", e a tela exibirá "Min humidity" Observação: Existem duas frases de ativação por voz, que são "Hi, Telly" e "Hi, Jarvis".

Base de Conhecimento
1. Contexto e Importância do Monitoramento Ambiental Inteligente
(1) A Gravidade dos Problemas Ambientais
Com o rápido desenvolvimento da industrialização e urbanização, os problemas ambientais tornaram-se cada vez mais proeminentes. Fenômenos como poluição do ar, deterioração da qualidade da água e contaminação do solo ocorrem frequentemente, representando sérias ameaças à saúde e qualidade de vida das pessoas. Por exemplo, tempo nublado e poluído tem levado ao aumento no número de pacientes com doenças respiratórias, e o descarte de águas residuais industriais causou danos severos aos ecossistemas fluviais. Neste contexto, surgiu a tecnologia de monitoramento ambiental inteligente, que é capaz de obter dados ambientais em tempo real e com precisão, fornecendo uma base científica para a governança e proteção ambiental.

(2) Limitações do Monitoramento Ambiental Tradicional
O monitoramento ambiental tradicional depende principalmente de amostragem manual e análise laboratorial, o que apresenta diversas limitações. Primeiramente, a frequência de amostragem é baixa, impossibilitando a reflexão oportuna das mudanças dinâmicas na qualidade ambiental. Em segundo lugar, a distribuição dos pontos de amostragem é limitada, dificultando a cobertura abrangente de toda a área monitorada. Além disso, a análise laboratorial demanda tempo considerável, não atendendo às necessidades de tomada rápida de decisões. A tecnologia de monitoramento ambiental inteligente supera as deficiências do monitoramento tradicional mediante a utilização de redes de sensores, Internet das Coisas (IoT) e análise de big data, alcançando automação, inteligência e monitoramento em tempo real do ambiente.
2. Tendências de Desenvolvimento do Monitoramento Ambiental Inteligente
(1) Miniaturização e Integração
Com o avanço da microeletrônica e nanotecnologia, os sensores de monitoramento ambiental estão evoluindo para miniaturização e integração. Sensores miniaturizados oferecem vantagens como tamanho reduzido, baixo consumo energético e custo reduzido, facilitando sua instalação em diversos locais e permitindo a criação de redes de monitoramento de alta densidade e ampla cobertura. Módulos de sensores integrados podem medir múltiplos parâmetros ambientais simultaneamente, aumentando a eficiência de monitoramento e a completude dos dados. Por exemplo, a integração de sensores de gás, temperatura e umidade em um único chip possibilita o monitoramento abrangente da qualidade do ar.

(2) Inteligência e Adaptabilidade
Os futuros sistemas inteligentes de monitoramento ambiental possuirão um nível mais elevado de inteligência, sendo capazes de reconhecer automaticamente padrões de mudanças ambientais e realizar monitoramento adaptativo. Por meio de algoritmos de aprendizado de máquina e inteligência artificial, o sistema de monitoramento pode ajustar automaticamente a frequência e os parâmetros de monitoramento com base nas variações dos dados ambientais. Por exemplo, pode aumentar a frequência de monitoramento em áreas com baixa qualidade do ar e reduzi-la quando as condições ambientais estiverem estáveis, economizando energia e melhorando a eficiência do monitoramento. Simultaneamente, os sistemas inteligentes também podem diagnosticar automaticamente falhas nos sensores e realizar autorreparos, aumentando a confiabilidade e estabilidade do sistema.
(3) Integração Interdisciplinar
O desenvolvimento da tecnologia de monitoramento ambiental inteligente envolverá a integração cruzada de múltiplas disciplinas, como ciência ambiental, física, química, biologia, ciência da informação e ciência da computação. Através da colaboração interdisciplinar, poderão ser desenvolvidas tecnologias e equipamentos de monitoramento ambiental mais avançados e eficientes. Por exemplo, a combinação da tecnologia de biossensores com a tecnologia de visão computacional pode permitir o monitoramento em tempo real de poluentes dentro de organismos vivos; já a utilização dos avanços da ciência ambiental e da ciência da informação pode contribuir para a criação de modelos de previsão da qualidade ambiental mais precisos e sistemas de apoio à decisão.

Desafie-se
Agora que já dominamos a técnica de plotar gráficos lineares com dados de umidade, vamos nos desafiar a plotar simultaneamente gráficos de dados de luminosidade e temperatura. Isso tornará o sistema de monitoramento ambiental mais abrangente e funcional. Imagine como seria interessante observar de forma intuitiva, numa mesma tela, as variações desses três parâmetros ambientais críticos - temperatura, umidade e luminosidade!

Quer explorar mais?
Lição 2: Pet Digital Personalizado
Lição 3: Definir o Modo de Interação com Pets
💬 Já criamos uma comunidade WhatsApp exclusiva para usuários de língua portuguesa do Brasil! Entre para o grupo e receba as informações mais atualizadas, novidades incríveis de projetos, descontos e muitas outras surpresas!
Whatsapp comunidade: https://chat.whatsapp.com/KTCdPBQDDWTGHlS5LoO8HC
