Torne os fundamentos da robótica compreensíveis e sustentáveis!
O Kit Base fischertechnik Robotics TXT 4.0 é o começo perfeito para programar como os profissionais! Além da câmera com processamento de imagem, o conjunto de construção abrangente contém um sensor ultrassônico, dois motores com encoder, um sensor de pista, um fototransistor, assim como dois botões e dois LEDs. Os modelos podem ser programados e controlados usando o software de programação gráfica ROBO Pro Coding e o controlador ROBOTICS TXT 4.0. Iniciantes podem usar programas de exemplo prontos, enquanto usuários avançados e profissionais podem começar diretamente em um ambiente de programação Blockly ou em Python. Inclui 12 modelos empolgantes, que vão desde semáforos para pedestres até uma barreira, um leitor de código de barras e robôs móveis com motores com encoder, câmera, sensores de pista e distância. Além de informações introdutórias e básicas, o material didático abrangente inclui 20 experimentos com soluções para os 12 modelos.

Os computadores são indispensáveis em nosso mundo moderno. Eles nos cercam não apenas na forma de PCs, laptops ou tablets: os carregamos como smartphones no bolso, estão em nossos carros, em máquinas de lavar louça e roupa, no controle de aquecimento, em bicicletas elétricas e em máquinas de café.
A cada ano, eles se tornam mais potentes e, ao mesmo tempo, cada vez menores e mais compactos. Com isso, seus campos de aplicação também aumentam, pois agora podem ser adaptados para cada uso específico e integrados como "sistemas embarcados" (embedded systems). Eles capturam e "medem" seu ambiente com sensores e controlam motores, LEDs ou outros atuadores. Por meio de técnicas modernas de comunicação sem fio, como WLAN ou Bluetooth, podem ser interconectados e trocar dados entre si ou com uma central de controle.
Mas como funcionam esses sistemas embarcados e seu respectivo "coração", o microprocessador? O que é um microcontrolador e como ele captura e avalia dados de sensores? Como controlar sistemas móveis, por exemplo, robôs ou veículos? Como os sistemas podem se comunicar e trocar dados entre si?
Nesta unidade de aprendizado, o foco está na compreensão dos microcontroladores e seu uso. São explicados os fundamentos centrais e aprofundados em sua aplicação prática nos exercícios (tarefas). São apresentados diversos importantes campos de aplicação dos microcontroladores: medição, comunicação, codificação e criptografia, controle e regulação, robótica e direção autônoma.
Definição
Um microcontrolador é um sistema de controle composto por um microprocessador e várias entradas e saídas. Nas entradas são conectados sensores ou memórias, nas saídas atuadores como motores, LEDs ou displays. Microcontroladores possuem uma memória volátil (RAM), que é apagada ao desligar, e geralmente também um EEPROM, onde programas e dados podem ser armazenados permanentemente. Diferentemente de laptops e PCs, não possuem teclado como dispositivo de entrada nem tela como dispositivo de saída; estes devem ser controlados separadamente.
Representantes conhecidos e difundidos desses microcontroladores são, por exemplo, o Arduino, o BBC micro:bit, o Calliope Mini e o TXT Controller da fischertechnik.
O coração do microcontrolador é um microprocessador. Considerado isoladamente, um microprocessador é um circuito integrado (IC) que carrega comandos e dados de uma memória temporária – chamada Random Access Memory (RAM) – para os registradores do IC, processa-os em uma unidade de cálculo e armazena o resultado novamente na RAM. Um microprocessador é essencialmente composto por transistores – "interruptores" eletrônicos que conhecem exatamente dois estados: "ligado" e "desligado". Com esses transistores, podem ser construídos circuitos lógicos como conexões "E", "OU" e "NÃO". Os resultados são armazenados em um "flip-flop", um interruptor estável de troca (mais detalhes na caixa educacional "Electronics").
Um cristal de quartzo fornece o ritmo para o microprocessador, ou seja, a velocidade com que o microprocessador executa os comandos e os passos internos de cálculo. Os comandos são indicados em um código de máquina (que varia conforme o tipo de microprocessador) e consistem em um comando (por exemplo, "somar dois valores") e, dependendo do comando, vários parâmetros (por exemplo, os dois valores a serem somados ou os registradores onde os valores estão armazenados).
O desempenho do microprocessador é determinado pela velocidade do clock, pela largura de dados em bits (que indica o tamanho dos endereços e valores que os comandos do microprocessador podem processar em um passo) e pelo próprio código de máquina: quanto mais complexos os comandos que o IC pode executar, geralmente mais rápida é a processamento de dados. Para acelerar o acesso à RAM, muitos microprocessadores hoje contêm uma memória cache própria, onde armazenam temporariamente comandos e dados durante o processamento.
Os microprocessadores usados hoje em laptops e PCs podem processar dados de 64 bits (valores, endereços de RAM), contêm vários bilhões de transistores e operam com vários GHz (bilhões de ciclos por segundo). Eles podem dividir o trabalho ("multi-core") e possuem memórias cache de muitos megabytes. Em microcontroladores, geralmente são usados microprocessadores com largura de palavra de 32 bits e frequência de clock abaixo de 1 GHz – o que é mais do que suficiente para as tarefas de um microcontrolador.
Histórico
Desde a antiguidade, as pessoas experimentam com autômatos – construções que, movidas por ar ou força da água, realizam trabalhos de forma autônoma, executam sequências de movimentos predefinidas sob comando ou até produzem música. No século XV d.C., Leonardo da Vinci (1452-1519) construiu inúmeras máquinas que impressionavam o povo e a nobreza em teatros e cortes principescas. Wolfgang von Kempelen (1734-1804) construiu em 1791 um aparelho funcional de síntese de voz. O primeiro "autômato programável" é considerado o controle por cartões perfurados para teares mecânicos, desenvolvido em 1805 por Joseph-Marie Jacquard (1752–1834).
O avanço para o desenvolvimento de controles flexíveis só foi possível com o desenvolvimento do computador. Com a invenção do circuito integrado (IC) em 1958/1959 por Jack Kilby (1923-2005) e Robert Noyce (1927-1990) e o desenvolvimento do microprocessador em 1971, inventado e patenteado por engenheiros da empresa Texas Instruments, tornaram-se possíveis controles muito flexíveis, leves, rápidos e sem desgaste, mas sobretudo programáveis. O primeiro microprocessador, o TMS1000, continha 8.000 transistores. Desde então, o número de transistores em um microprocessador dobra aproximadamente a cada 18 meses. Esse desenvolvimento é conhecido como "Lei de Moore", segundo Gordon Moore (*1929), que em 1965 deduziu essa relação a partir da evolução dos ICs nos anos anteriores. Os microprocessadores atuais consistem em vários bilhões de transistores – e são quase do mesmo tamanho que o TMS1000.
Como é programado um microcontrolador?
A programação do microcontrolador geralmente não é feita diretamente no microcontrolador, mas em um ambiente especial de programação ou desenvolvimento (integrated development environment, IDE) em um PC, laptop, tablet ou até mesmo um smartphone. Os programas criados são então transferidos para a memória do microcontrolador por meio de uma interface de comunicação, por exemplo, USB, WLAN ou Bluetooth, e executados lá.
É exatamente assim que o TXT 4.0 é programado: os programas são desenvolvidos no ROBO Pro Coding em um PC, laptop ou tablet na linguagem de programação Blockly ou Python e depois transferidos para o TXT 4.0, onde são executados.
O que é um "autômato finito"?
Um "autômato finito" é um sistema cujo comportamento pode ser descrito como um conjunto finito de estados. A transição de um estado para outro é desencadeada por condições (como eventos, por exemplo, mudanças nos valores de sensores), seguidas por uma ação. Por isso, autômatos finitos também são chamados de "máquinas de estado" e são descritos por diagramas de transição de estado.
Autômatos finitos desempenham um papel importante na descrição de microcontroladores: quase todo sistema embarcado (como um controle de elevador ou um robô) pode ser entendido como um sistema com um número finito de estados. A representação por meio de diagramas de transição de estado geralmente facilita muito a compreensão do sistema e torna a programação (especialmente sem erros) mais fácil. Pois, em cada estado, apenas os eventos que levam a uma mudança de estado precisam ser considerados, como, por exemplo, a solicitação de um sinal "verde" em um semáforo de pedestres sob demanda (veja o exemplo na figura).

O que são dados analógicos e digitais?
Microcontroladores só podem processar estados "ligado" e "desligado", ou seja, valores binários que podem assumir dois estados diferentes. A avaliação de sensores que também conhecem apenas dois estados, como botões, contato reed (interruptor magnético) ou fototransistor, é portanto muito simples, e o estado do sensor pode ser armazenado como um dado digital em um bit.
Mas na realidade, é claro que não existem apenas estados binários. Por exemplo, brilho, temperatura ou distâncias podem assumir muitos valores diferentes. Esses dados analógicos também podem ser medidos com sensores, como um fotoresistor, um termistor (resistor sensível ao calor) ou um sensor de distância por ultrassom. Para que nosso microcontrolador possa processar esses valores analógicos, ele precisa convertê-los em números, ou seja, em dados digitais. Esses são valores mais complexos do que os binários fornecidos pelos sensores digitais: com base nos estados binários, o microprocessador pode representar todos os valores numéricos usando o sistema binário (e, por meio de uma codificação adequada, também outros caracteres, como letras, mas isso fica para depois).
A conversão do valor analógico do sensor em um número (ou seja, um dado digital mais complexo) é realizada em um microcontrolador por um conversor analógico-digital (A/D): o valor do sensor aplicado, geralmente uma resistência elétrica ou uma tensão, é eletronicamente "amostrado". Se a resistência ou a tensão for alta, o conversor A/D fornece um valor numérico alto; se o valor analógico aplicado for baixo, o valor numérico fornecido ao microcontrolador é pequeno. A precisão com que o valor analógico na entrada pode ser determinado depende da resolução do conversor A/D. Esta é geralmente indicada pelo comprimento em bits do valor resultante.
As oito entradas do controlador TXT 4.0 podem ser usadas tanto como entradas digitais (binárias) quanto analógicas. Os conversores A/D nas entradas amostram valores analógicos, como por exemplo a resistência elétrica do resistor sensível ao calor, que varia dependendo da temperatura, com uma precisão de 12 bits, convertendo a resistência em um número entre 0 e 4096. Por meio de diferentes tensões de referência, no TXT 4.0 podem ser determinados com bastante precisão não apenas resistências na faixa de medição de 5 kOhm, mas também valores de resistência significativamente maiores.
O que é concorrência?
Concorrência refere-se à capacidade de um sistema de executar vários processos simultaneamente (ou "paralelamente"). A concorrência é implementada (tecnicamente) ou pela distribuição dos processos em vários microprocessadores ("Multi-Core"), ou pelo microprocessador que, por meio de multitarefa, executa os processos alternadamente em etapas, criando a impressão de uma verdadeira paralelidade.
Processos concorrentes são especialmente adequados para a programação de fluxos ou eventos independentes entre si, principalmente quando um ou mais processos ocorrem de forma dependente do tempo em um ritmo fixo (como, por exemplo, uma luz piscante). Para coordenar (sincronizar) processos concorrentes, utiliza-se "Semáforos": geralmente variáveis acessíveis a ambos os processos, cujo valor permite que os processos comuniquem seu status entre si ou aguardem uns pelos outros.
Como determinar a temperatura com um termistor?
Um termistor (também chamado de termistor NTC ou resistor NTC) é um resistor cujo valor de resistência varia dependendo da temperatura. Termistores possuem um coeficiente de temperatura negativo (NTC), ou seja, com o aumento da temperatura, o valor da resistência diminui. O gráfico a seguir mostra a curva característica de resistência do termistor fischertechnik.
O termistor fischertechnik tem um valor de resistência de 1,5 kOhm a 25°C. Como pode ser visto no gráfico, a curva característica do termistor não é linear. Mas é possível aproximar o valor da temperatura com razoável precisão por meio de uma curva linear. Para isso, é necessário determinar um segundo valor de medição e calcular a equação da função linear a partir dele.
O termistor fischertechnik tem um valor de resistência de 1,5 kOhm a 25°C. Como pode ser visto no gráfico, a curva característica do termistor não é linear. Mas é possível aproximar o valor da temperatura com razoável precisão por meio de uma curva linear. Para isso, é necessário determinar um segundo valor de medição e calcular a equação da função linear a partir dele.
Para um cálculo mais preciso do valor da temperatura T (em Kelvin) a partir do valor da resistência R de um resistor NTC, geralmente é usada a seguinte equação de Steinhart-Hart:
1/T=a+b(lnR)+c(lnR)³
A temperatura em °C é obtida a partir de T subtraindo-se 273,15.
Com dois valores de medição adicionais (além do valor de resistência de 1,5 kOhm a 25°C), podemos montar um sistema de equações com as três incógnitas a, b e c. Esse sistema de equações não precisa ser resolvido por nós mesmos: no site da Stanford Research Systems há uma "Calculadora de Termistor" que calcula para nós, a partir dos três valores de medição, os parâmetros desejados da equação de Steinhart-Hart.
Como funciona o sensor ultrassônico?
A medição de distância é realizada pela emissão de vários sinais de 40 kHz com duração de 200 µs (no espectro inaudível para humanos) e pela medição do tempo até o recebimento dos seus ecos, ou seja, as ondas sonoras refletidas por um objeto. A partir do tempo de percurso dos sinais de eco, a distância pode ser calculada pela velocidade do som da seguinte forma. Para a velocidade do som (no ar) vale:
c = (331,5+0,6∙t/°C) m/s
À temperatura ambiente (t=20°C), c é aproximadamente 343,5 m/s ou 0,03435 cm/µs. Para obter a distância em cm a partir do tempo de sinal (em µs), deve-se primeiro dividir por dois e depois multiplicar por 0,03435 – ou dividir diretamente por 58,224. Esse cálculo é realizado por um CI no sensor ultrassônico, que fornece a distância em cm; a influência da temperatura na medição também é automaticamente compensada pelo sensor.
O alcance do sensor ultrassônico é de cerca de 4 m. À temperatura ambiente, leva 400 ∙ 58,224 = 23,3 ms para o eco do sinal de disparo retornar de um objeto a 4 m de distância. Se nenhum eco atingir o sensor nesse tempo, ele retorna o valor “0” (nenhum objeto no alcance). O atraso causado pelo tempo de percurso do sinal deve ser considerado no controle de um sistema móvel (como um veículo).
As ondas sonoras se propagam em forma circular, por isso o sensor possui certa dispersão. Assim, ele detecta não apenas obstáculos diretamente à sua frente, mas também objetos posicionados lateralmente (veja a ilustração).
Por fim, deve-se observar que os ecos só alcançam o sensor se as ondas sonoras atingirem o objeto em um ângulo não muito agudo. Isso pode ser facilmente verificado experimentalmente.

O que é um código?
Um código é – de forma geral – um acordo sobre a representação única de certas informações. Códigos são necessários para a transmissão, mas também para a exibição de informações. A cada símbolo de um código é atribuída uma determinada significação. Códigos que encontramos diariamente são, por exemplo, os dígitos (arábicos) para a representação de números ou a linguagem escrita para a representação de palavras e frases. Outros códigos são as notas nas pautas musicais para a representação da altura e duração dos sons ou os símbolos em diagramas elétricos para a representação de componentes eletrônicos. Sempre que as pessoas desejam documentar ou trocar informações entre si, elas precisam de um código que tanto o remetente quanto o destinatário conheçam.
Os códigos não desempenham um papel importante apenas entre pessoas: os computadores também não conseguem trocar informações sem códigos, nem com pessoas nem entre si. Os códigos usados ou compreendidos pelos computadores precisam ser especialmente claros e inequívocos para evitar mal-entendidos. Por isso, muitos códigos são projetados para que erros, por exemplo, causados por interferências na transmissão, possam ser detectados. Existem até códigos que detectam erros e podem corrigir certos erros.
Como os computadores se comunicam?
Se você deseja "comunicar" usando microcontroladores, primeiro é necessário converter as informações (mensagens) em dados que o microcontrolador deve transmitir. A mensagem pode ser praticamente qualquer coisa: um texto, uma imagem, música, fala. Para a transmissão, essas informações precisam ser codificadas. Para isso, o emissor e o receptor devem concordar com uma codificação que ambos conheçam – na prática, padrões técnicos garantem isso.
O fluxo de dados resultante da codificação pode então ser transmitido por meio de sons (ondas sonoras), sinais visíveis, correntes elétricas em um cabo, impulsos de luz em uma conexão de fibra óptica ou como uma onda eletromagnética "pelo ar". Os sinais de bandeira em um aeroporto, sinais de sirene ou um alarme de incêndio, e-mails, chats, chamadas telefônicas, videoconferências, navegação por smartphone – tudo isso são exemplos de comunicação de informações representadas em uma codificação acordada.
Como funcionam os códigos de barras?
Um código de barras é um "código de barras" ou código de barras, que consiste em barras verticais pretas e brancas de diferentes larguras. Os códigos de barras são códigos unidimensionais, pois a informação está contida apenas na largura das barras (por exemplo, barra estreita = "0", barra larga = "1"). A cor das barras (preto/branco) serve apenas para distingui-las. Os códigos de barras são "códigos ópticos", ou seja, podem ser lidos por um sensor que pode distinguir "claro" e "escuro" ou por uma câmera com avaliação de imagem. Os códigos de barras são usados principalmente para identificar objetos; por exemplo, podem ser encontrados em livros e revistas (ISBN/ISSN), em etiquetas de mercadorias ou adesivos para correspondência de pacotes. Existem muitos tipos diferentes de códigos de barras, que diferem em sua densidade de informação e nos dígitos de verificação usados. Os códigos de barras têm a vantagem de serem muito robustos e fáceis de ler; além disso, os dispositivos de leitura são muito baratos.
Um código de barras típico é o Code 39. Ele foi desenvolvido em 1973 pela empresa Intermec e desde então foi estabelecido em especificações ou normas por várias organizações de padronização (incluindo ANSI e ISO), entre elas a ISO/IEC 16388. Um caractere Code 39 consiste em nove barras – cinco pretas e quatro brancas (os espaços entre elas) – em duas larguras diferentes. Uma barra larga representa um "1" e uma barra estreita representa um "0"; portanto, um caractere Code 39 corresponde a um número binário de nove dígitos.
Antes e depois de cada caractere há um espaço branco (estreito) para que os caracteres possam ser distinguidos. Os códigos de barras Code 39 têm sempre a mesma largura, pois o número de barras largas por caractere é fixado exatamente em três: duas pretas e uma branca. Um caractere Code 39 consiste sempre em seis barras estreitas e três largas, ou seis "0"s e três "1"s. O padrão Code 39 define um total de 44 caracteres: as 26 letras do alfabeto, os dez dígitos de "0" a "9" e os oito caracteres especiais "*"(caractere de início/fim), espaço, "-", "+", ".", "/", "%", e "$".
Uma evolução dos códigos de barras são os códigos QR, que consistem em pontos em uma área quadrada. Eles são códigos bidimensionais e requerem uma câmera para leitura e decodificação.

O que é o Código Morse?
Um dos primeiros códigos "técnicos" que tornaram os sinais legíveis por máquinas foi o Código Morse, desenvolvido em 1838 por Alfred Vail (1807-1859), um colaborador de Samuel Morse (1791-1872), e padronizado pela primeira vez em 1865. O Código Morse representa números e letras do alfabeto como sequências diferentes de sinais curtos ("Dit") e longos ("Dah"). Portanto, ele pode ser usado não apenas para telegrafia elétrica, mas também para outros sinais como sinais de luz, sons ou traços de dois comprimentos diferentes, sendo assim totalmente independente da tecnologia de transmissão.
A codificação das letras do alfabeto é mostrada na seguinte árvore de código. Um "E" é codificado com um "Dit", um "A" com um "Dit" seguido de um "Dah" e um "N" com um "Dah" seguido de um "Dit". Os sinais do código têm, portanto, comprimentos diferentes.
Isso confere ao Código Morse outra propriedade muito valiosa: ele é muito eficiente, pois usa sequências curtas para letras usadas com frequência e sequências mais longas para letras raras, compensando assim parcialmente a redundância das línguas naturais.
O comprimento de um "Dah" corresponde ao comprimento de três "Dit". Entre dois símbolos, é enviada uma pausa de um comprimento de "Dit", entre duas letras de uma palavra uma pausa de três comprimentos de "Dit", e entre duas palavras uma pausa de sete comprimentos de "Dit". A velocidade de transmissão é determinada pelo comprimento de um "Dit".

Como funciona o código de cores RGB?
O código RGB é uma codificação de três bytes das proporções das cores R (vermelho), G (verde) e B (azul, cada uma de 0 a 255) em um tom de cor. A partir de um valor RGB, o tom (Hue) pode ser determinado da seguinte forma:
Como resultado, obtém-se o ângulo em que essa cor está localizada no círculo cromático (veja a ilustração).

O que é redundância?
Na teoria da informação, redundância refere-se a dados que podem ser omitidos sem perda de informação. Um código é redundante quando utiliza mais bits do que o mínimo necessário para representar os diferentes caracteres. Se todos os caracteres do código tiverem o mesmo comprimento, o número de bits adicionais, que na verdade não são necessários para a representação da informação, indica a redundância do código. Por exemplo, se quisermos codificar um simples sinal 1/0, precisamos necessariamente de apenas um bit. No entanto, se codificarmos o sinal com os dígitos "1" e "0" (como caracteres ASCII), nosso código precisará de oito bits. Portanto, a codificação tem uma redundância de sete (bits):
Redundância = log₂ (Número de códigos possíveis / Número de caracteres a codificar)
No nosso exemplo, a redundância é log₂ (2⁸/2) = log₂ (2⁷) = 7.
Como funciona a criptografia?
A criptografia de dados (também chamada de cifragem) serve para manter o conteúdo de uma mensagem secreto entre o remetente e o destinatário, impedindo efetivamente a leitura não autorizada. Para isso, são usados métodos de criptografia que "modificam" a mensagem de uma forma acordada entre remetente e destinatário. Normalmente, não se mantém o método de criptografia em segredo, mas apenas uma chave conhecida apenas pelo remetente e pelo destinatário (princípio de Kerckhoffs). Geralmente, os caracteres da mensagem são substituídos por outros (substituição) ou trocados entre si (permutação).
Antigamente, eram usados principalmente cifrões de substituição simples. Um dos métodos mais conhecidos é a chamada "Cifra de César". Nesse método, as letras da mensagem são "deslocadas" no alfabeto por um número fixo de posições (a chave). Por exemplo, com a chave "3", um "A" se torna um "D", um "B" se torna um "E" e assim por diante, até que um "Z" se torne um "C". A decodificação pelo destinatário ocorre exatamente ao contrário.
Uma cifra de César é fácil de quebrar, pois a distribuição de frequência das letras de uma língua natural não é alterada pela criptografia: em um texto longo, a letra mais frequente é de longe o "E". Se você conhece a letra mais frequente no texto criptografado, sabe quantas posições o alfabeto foi "deslocado" para decifrar o texto interceptado.
Além disso, existem apenas 25 possibilidades diferentes para deslocar as letras no alfabeto: esse é um número muito pequeno de chaves possíveis. Portanto, pode-se tentar todas as deslocações até que um texto coerente seja obtido na decodificação.
Muito mais difícil de quebrar é a criptografia publicada por Blaise de Vigenère (1523-1596) em 1586, na qual os caracteres da mensagem não são todos deslocados pelo mesmo número de posições no alfabeto, mas segundo um esquema predefinido. Por exemplo, a chave "1 5 12 4 8 7 11" significa que o primeiro caractere da mensagem é deslocado uma posição, o segundo cinco, o terceiro doze, e assim por diante, até o sétimo ser deslocado onze posições no alfabeto. O oitavo caractere é deslocado novamente uma posição, o nono cinco, etc. O método de criptografia de Vigenère foi considerado inquebrável por quase trezentos anos.
Frequentemente, a chave não é representada por uma sequência de números, mas pelos correspondentes caracteres do alfabeto – no exemplo acima, "AELDHGK". Isso torna a substituição dos caracteres (por meio de uma "adição" das posições no alfabeto) muito mais fácil de programar.
O que é um controlador?
Diferentemente de um controle por microcontrolador, onde um atuador é ajustado para um valor pré-definido (por exemplo, um LED para um nível de brilho ou um motor encoder para uma posição específica), um controlador garante automaticamente que uma variável alvo seja mantida mesmo diante de perturbações (por exemplo, um seguidor de faixa que continua seguindo a faixa mesmo em uma curva).
Para isso, o controlador necessita de um mecanismo de "feedback" que o informe quando houver desvios da variável de referência definida. Esquematicamente, um controlador pode ser representado conforme a figura a seguir:
Quando há um desvio da variável controlada em relação à variável de referência (o valor desejado), o controlador corrige ajustando uma variável de controle para reduzir esse desvio. Por exemplo, para manter constante o número de rotações de um eixo acionado por motor por unidade de tempo, mesmo sob carga variável, é necessário medir as rotações e, em caso de desvios, aumentar ou diminuir a tensão do motor.
Na regulação, existem diferentes formas de como o desvio influencia a alteração da variável de controle: no controlador proporcional (também chamado de controlador P), a correção ocorre proporcionalmente à magnitude do desvio. Se o controlador oscilar, ou seja, se uma ação retardada da regulação fizer com que a correção dure tempo demais, pode-se amortecer a regulação com um termo diferencial adicional (também chamado de termo D), que considera a taxa de variação do desvio. Assim, em caso de uma perturbação súbita e forte, a regulação é reforçada, e em caso de rápida diminuição do desvio, a regulação é suavizada.
Um controlador integrador (controlador I ou termo I) também considera a duração do desvio, incorporando a soma dos desvios medidos na correção, acelerando assim a aproximação ao valor desejado.
Na construção de um controlador adequado, o maior desafio é determinar os fatores pelos quais os valores que entram na regulação (desvio, variação do desvio, soma dos desvios) devem ser multiplicados para alcançar o efeito de controle desejado. Isso geralmente é feito experimentalmente e de forma mais rápida. Normalmente, começa-se determinando o fator para o termo P, escolhendo-o de modo que o controlador não oscile (ou seja, que o sobrepasso diminua). Em seguida, adiciona-se o fator para o termo D, iniciando com um valor muito pequeno que é aumentado lentamente até que a estabilização na variável de referência ocorra rapidamente.
No termo I, deve-se observar que os valores dos desvios não sejam somados indefinidamente (por exemplo, considerando apenas um número limitado de desvios anteriores ou reduzindo o valor da soma antes de adicionar o próximo desvio, por exemplo, dividindo por um valor constante), pois caso contrário o termo I rapidamente domina as componentes P e I.
Um controlador com termos P, D e I é também chamado de controlador PID.

Baixe o aplicativo ROBO Pro Coding
Antes de começar, você precisa baixar o aplicativo ROBO Pro Coding. Basta selecionar o sistema operacional apropriado e clicar no link:
Baixe o Controle por Voz
Diga ao robô para onde ir! Basta baixar nosso aplicativo de Controle por Voz e dar comandos individuais ao robô:






