Buscar

Apostila - Curso de robótica

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Prefácio
Essa apostila tem como objetivo explicar de forma mais detalhada tudo o que foi tratado no curso de robótica na faculdade IASP Hortolândia, de modo que os alunos não se preocupem em fazer anotações durante o decorrer do curso.
O que é Arduino?
Arduino é uma plataforma de eletrônica open-source com o objetivo de tornar a eletrônica um pouco mais simples e acessível. Esta ferramenta nos permite receber dados, como por exemplo de um teclado, sensor ou um botão e transformar isso em um comando de saída, ligando um motor, uma lâmpada, publicar algo online ou até mesmo ligar um eletrodoméstico. Basicamente a criatividade é o seu limite. O que você precisa fazer é enviar instruções para o microcontrolador do arduino através de um cabo USB e utilizando a linguagem de programação própria do dispositivo. 
O seu principal uso é para a rápida prototipagem de ideias. Com essa placa, não é necessário fazer um novo circuito para cada projeto que se queira fazer, pois ele engloba praticamente todas as necessidades que eventualmente podem surgir. Além do mais, diversos shields são criados para complementar as funções da plataforma para conseguirmos criar projetos ainda mais complexos envolvendo internet, GPS, controles, etc. 
Existem alguns tipos diferentes de hardware de arduino. No curso utilizaremos o arduino UNO que é uma placa que cabe na palma da mão. Esse mini computador possui microprocessador, memória RAM, memória flash (para guardar o software), temporizadores, contadores, etc. Abaixo estão fotos de alguns dos modelos que temos acesso atualmente.
 Arduino mega
Arduino UNO
 Arduino nano
História do arduino
O arduino surgiu na Itália no Interaction Design Institute Ivrea (IDII) na Ivrea, Itália, com o objetivo de facilitar a vida de designers e produtores de vídeo, fazendo com que fosse mais fácil trabalhar com eletrônica e integrar o mundo real com o mundo da mídia. O projeto tomou proporções grandes, e como tinha um custo acessível para estudantes, a plataforma começou a ser usada para outros fins como robótica, automação, prototipagem de projetos, entre outros.
Nesse link você poderá encontrar uma história mais detalhada do surgimento do Arduino, contada pelo próprio criador, além de encontrar fotos dos primeiros protótipos e também como e quando isso se tornou um negócio: https://arduinohistory.github.io/.
Hardware do arduino UNO
O Arduino possui entrada USB para sua comunicação com o computador e como fonte de energia. Possui também entrada de fonte 5V-12V, portas digitais, portas analógicas e um LED conectado a porta digital 13 que geralmente é utilizado para testes. O microcontrolador do Arduino é o Atmega 328.
LED conectado a porta 13
Microcontrolador Atmega 328
Instalação do software
Para a instalação do arduino, você precisará de:
- Arduino.
- Computador com acesso à internet.
- Cabo USB compatível com o modelo de arduino escolhido.
Acesse o site do Arduino no site: https://www.arduino.cc/en/Main/Software. Nesta página está disponibilizado a última versão do ARDUINO IDE. Existem opções para os sistemas operacionais Windowns, Mac e Linux.
Escolha o seu sistema operacional
Click em um dos links de acordo com o sistema operacional do seu computador e a partir desse momento a instalação do programa é bem intuitiva. Escolha o diretório e crie um atalho na área de trabalho ou onde julgar mais adequado.
Conecte o cabo USB no Arduino até o computator que o sistema operacional fará a instalação do driver. Isso levará pouco tempo. Pronto! O seu Arduino está pronto para ser programado. 
Portas digitais e portas analógicas
Portas digitais
Sinais digitais basicamente impulsos finitos que são recebidos ou enviados para acender uma lâmpada, um LED ou um eletrodoméstico por exemplo. A combinação de vários pulsos representados por 1 – Ligado ou HIGH e 0 – Desligado ou LOW pode formar estruturas mais complexas como palavras, vídeos, etc. Utilizamos sinais digitais todas as vezes que ligamos e desligamos uma lâmpada. Veja o exemplo a seguir:
No arduino as tensões utilizadas para os sinais de ligado e desligado são: HIGH – 5V e LOW – 0V.
As portas do Arduino que têm essas características são as portas de número 0 a 13 e estão destacadas na imagem abaixo. Não é recomendado, apesar de possível, utilizar as portas 0 (Rx) e 1(Tx), exceto quando um sensor ou módulo necessitar dessas portas para seu funcionamento. Elas estão diretamente ligadas ao sistema de comunicação do Arduino, e quando usadas podem conflitar com o upload do software. Incluse, quando estiver usando essas portas e precisar fazer o upload de um programa e esse programa não estiver carregando, tire os fios das portas Rx e Tx, faça o upload e depois coloque os fios novamente.
Portas digitais de 0 a 13.
Sinais analógicos agem de forma diferente, em vez de impulsos finitos, são recebidos dados que variam no conjunto dos números reais, dentro de um certo intervalo. Ou seja, os dados podem ter quaisquer valores dentro dos limites definidos. Podemos utilizá-los para envio de áudios, um sinal que varia suavemente entre dois extremos. Veja o exemplo a seguir:
No Arduino as portas analógicas são nomeadas de A0 a A5, como destacado na figura abaixo. Essas portas apesar de receberem sinal analógico, também podem ser programadas para receber sinais digitais. Geralmente a usamos dessa forma quando precisamos de mais saídas ou entradas digitais e todas já foram utilizadas.
Portas analógicas
Variáveis do tipo INT no Arduino é muito fácil de ser declarada. Coloque “int”, nome da variável, sinal de =, e o valor dessa variável. Fazemos isso antes do void setup(). Lembrando que Variáveis INT suportam apenas números inteiros, ou seja, ... , -3, -2, -1, 0, 1, 2, 3, ....
Veja o exemplo a seguir:Nesse caso atribuímos a variável int o valor 13 e colocamos o nome de “portaled” pois iremos usar essa variável para ligar um LED na porta 13 do arduino.
Faz uma porta ter um sinal com valores HIGH ou LOW.
Sintaxe - digitalWrite(porta, valor);
delay – É contado em milisegundos, portanto 1000 significa esperar por 1 segundo até a próxima linha ser executada.
pinMode() – Configura a porta especificada para se comportar como saída ou entrada de dados, sendo que INPUT é entrada e OUTPUT saída. Sintaxe – pinMode(porta, comportamento);
Pronto! O seu primeiro programa em ardino já foi feito. Nesse programa o LED ligado a porta 13 deve piscar em intervalos de 1 segundo. 
Agora vamos fazer o circuito, para que a conversa entre o software e hardware seja efetiva.
Resistores
O resistor basicamente é um conversor de energia elétrica em energia térmica. Esse componente dificulta a passagem de corrente elétrica e consequentemente ocasiona queda de potencial elétrico nos terminais do resistor. E o que isso significa? Veja a imagem abaixo para ficar mais claro o que é o resistor, representado pela personagem OHM do cartoon.
Existe uma lei muito importante, descoberta por Georg Ohm, que utilizaremos no nosso curso. Essa lei relaciona a tensão, corrente elétrica e resistência elétrica da seguinte fórmula:
I : Corrente em Amperes.
V : Tensão em Volts.
R : Resistência em Ohms.
Utilizaremos essa fórmula para o cálculo do resistor que utilizaremos no nosso circuito.
O LED é basicamente um diodo que emite luz. Ele possui pólo negativo e positivo, que são identificadas por lado chanfrado, “parte maior dentro do LED” ou “perninha maior” como negativo e lado arredondado. “parte menor dentro do LED” ou “perninha menor” como positivo. 
A representação do LED em um diagrama é por um triângulo deitado como na imagem abaixo. Sendo a base do triangulo o pólo positivo e o vértice com a linha o pólo negativo.
Para fazer nosso circuito, primeiramente precisamos saber o LED que utilizaremos, pois cada LED possui seu valor de tensão para funcionar com brilho máximo. 
Como visto na tabela, cada cor tem um diferente valor de tensão. Nota-se que o Arduino tem tensão de saída em seus terminais com o valor de 5V, o que traza necessidade de colocarmos resistores no nosso circuito para que a tensão sobre ele seja diminuída.
Vejamos o exemplo a seguir:
Suponhamos que estamos utilizando o LED branco que tem tensão máxima de 3V e corrente de 20 mA. Nosso objetivo é transformar a tensão de saída do arduino de 5V, para uma tensão de saída de 3V no máximo. Seguindo a lei de Ohm temos:
Como já foi dito, o resistor é um limitador da passagem de cargas elétricas, assim fazemos o cálculo como se no resistor R a tensão diminuísse para o valor que queremos, 2,2V.
O cálculo fica da seguinte maneira:
Assim teremos que ter um resistor de 100 Ω para que a tensão no LED fique igual a 3V. Em alguns casos necessitaremos de resistores que não são valores comerciais. Quando isso ocorre temos duas opções: Colocar um resistor maior do que 100 Ω, fazendo com o que o LED brilhe menos, ou fazer uma associação de resistores.
Vamos para um segundo exemplo em que precisaremos fazer uma associação de resistores. Utilizaremos o LED verde que precisa de no máximo 2,5V.
O resistor de 125 Ω não está entre os valores comerciais, como podemos ver na tabela abaixo. Por isso precisamos chegar a 125 Ω com resistores que temos a disposição. Vamos fazer o exercício com os de 100 Ω , utilizando a associação de resistores. Para resistores em série é necessário apenas somar os valores de resistência. Segue um exemplo:
A resistência total ou equivalente nesse circuito é a soma das resistências, portanto:
Assim o circuito equivalente seria:
Para o cálculo de resistores em paralelo, como no circuito esquematizado abaixo, utilizamos os procedimentos seguintes:
Supondo que os resistores são de 100 Ω, teremos:
Para um caso em que todos os resistores são iguais, podemos facilitar as contas fazendo da seguinte forma:
Sendo R1 = R2 = R3 = ... = Rn = R , então .
Fazendo o mesmo cálculo anterior, ficaria:
Agora podemos constinuar nosso exercício. O desafio é conseguir um resistor de 125 Ω a partir de resistores de 100 Ω. Para isso, colocaremos no circuito 4 resistores de 100 Ω em paralelo para conseguirmos 25 Ω. E esses 25 Ω equivalentes em série com 100 Ω, resultando uma resistência equivalente total de 125 Ω. O circuito ficará da seguinte maneira:
Temos nosso código e circuito prontos. Agora precisamos selecionar a porta com correta, compilar o programa e carregá-lo para o Arduino. Para isso apenas siga os passos a seguir:
 Passo 1: Selecione o tipo de arduino que está utilizando. No caso selecionei a opção Arduino UNO/ Genuino UNO.
 Passo 2: Selecione a porta COM em que o arduino se encontra.
Passo 3: Verificar se o programa está correto, ou apenas clicar no botão de upload que isso será feito automaticamente e após isso o programa será carregado para o Arduino.
Fazer o upload do programa para o arduino. Quando clicamos nesse ícone, o programa é compilado e logo após carregado no microcontrolador.
Verificar se o programa tem erros e se poderá ser carregado no Arduino sem problemas.
Muito bem, você acabou de fazer seu primeiro programa com arduino.
Leitura de sinais digitais: Inserindo botão no circuito.
Agora vamos fazer um pequeno projeto com o objetivo de entender a diretiva #define, input, if e else no Arduino. Nesse circuito o LED acenderá quando apertarmos o botão e desligará quando desligarmos o botão.
O circuito e o programa ficam da seguinte maneira:
A diretiva #define no começo do programa define uma constante que não poderá ser mais mudada no decorrer do programa. Quando declaramos o pino digital botão(2) como INPUT, ele receberá valores 1 ou 0 (HIGH ou LOW). No nosso caso quando apertamos o botão, o pino 2 recebe o sinal HIGH, já quando o soltamos é recebido o sinal LOW.
Podemos ver que são utilizados 2 resistores, um para o LED e outro para o botão. A função do resistor no LED nós já aprendemos, agora aprenderemos a função do resistor no botão.
O resitor junto com o botão está fazendo a função de PULL DOWN. Para entendermos melhor veja o diagrama a seguir.
Essa é a representação do botão em um diagrama. O resistor conectado ao GND faz com que o Arduino receba sinal digital 0. Ou seja, o GND ou terra é o que define o sinal 0 e quando o botão não está acionado o valor que chega ao arduino é 0, e quando está acionado recebe o valor de 5V. Porém se tirarmos o resistor ligado ao terra, o Arduino receberá nada, nem 0 nem 1 e estará sujeito a receber qualquer valor como um ruído do ambiente, podendo até danificar o pino do microcontrolador.
Podemos fazer o contrário e isso se chama PULL UP. Nesse caso quando o botão não está acionado o pino do arduino recebe sinal 1 ou HIGH, porém quando é acionado recebe sinal 0 ou LOW.
Hora de praticar – Desafio 1
Faça um semáforo utilizando 3 LEDs de cores diferentes. Você precisa calcular seus respectivos resitores e fazer com que o intervalo de tempo entre a troca de cores seja de 10 segundos. Após isso adicione um botão sinalizador de emergência, quando ele é acionado todos os LEDs começam a piscar em uma frequencia de 1 Hz (1 vez por segundo) e quando é solto o semáforo volta a funcionar normalmente.
Portas analógicas
As portas analógicas do Arduino são de entrada de sinais que variam no intervalo de 0V a 5V. Para entendermos melhor esse conceito, faremos um circuito em que o potenciômetro controla a frequência em que os LEDs piscam.
 
Nesse exemplo aprenderemos a ler um sinal analógico, definir limites para esses dados e usar esses resultados para controlar o brilho de um LED através do pino PWM, além de mostrar todos os valores na tela do computador. O circuito que utilizaremos é praticamente o mesmo do anterior, apenas mudaremos o LED do pino 13 para o pino 9, pois este é PWM. O programa ficará da seguinte forma:Nesse programa declaramos as variaveis constantes pinoAnalogicoentrada para leitura dos sinais vindos do potenciômetro e o pinoAnalogicosaida para ligar nosso LED. As variaveis Valorpot recebe os valores vindos do potenciometro e Valorsaida envia os valores para o pino PWM 9 que controlará o brilho do LED. Como analogWrite recebe valores apenas entre 0 e 255, e os valores recebidos pelo A0 são de 0 a 1023, utilizamos a função map para ajustar proporcionalmente os valores recebidos, para o intervalo [0,255]. No void setup() apenas é defina a comunicação serial para que seja possível mostrar na tela os valores do potenciômetro.
 
PWM (Pulse width modulation)
PWM é uma técnica para controle do valor de saída da tensão de uma porta digital. Com ela podemos controlar o brilho de um LED ou até mesmo controlar a velocidade de um motor por exemplo. Para entende melhor como ela funciona, veja o diagrama a seguir:
Em vermelho está o intervalo de tempo de 100%.
Em verde o tempo que o sinal fica em 5V. Esse tempo é 25% do tempo total.
 
Quando conseguimos controlar o intervalo de tempo que o sinal digital fica ligado em 5V, conseguimos controlar também a tensão de saída. Nesse exemplo, como o tempo que o sinal fica em 5V é de 25%, o valor da tensão final também será 25% de 5V, ou seja:
 Tensão final = 5.0,25 = 1,25V.
O que está em verde no desenho esquemático, nós chamamos de Duty Cycle e o que está em vermelho nós chamamos de Período.
Como vimos no nosso exemplo anterior, o analogWrite do Arduino suporta valores entre 0 e 255, logo proporcionalmente 0 é equivalente a 0V e 255 a 5V. Por isso na imagem acima vemos que analogWrite equivale a 64. Fazendo as contas, o valor fica:
analogWrite = 255.0,25 = 63,75.
Abaixo temos uma tabela com outros exemplos:
Comunicação Serial
A comunicação serial do arduino é o que permite a “conversa” entre o arduino e o computador ou outros dispositivos como um módulo GPS, por exemplo. É através da comunicação serial que é feito o upload do programa na placa do arduino.
A IDE do arduino também tráz um terminalSerial em que podemos visualizar os dados recebidos e enviados com muita facilidade, basta clicar no ícone lupa no canto superior direito da IDE. 
Vamos entender alguns comandos que utilizam essa comunicação e que colocamos no nosso programa.
Serial.begin: Esta função configura a taxa de comunicação em bits por segundo.
Sentaxe: Serial.begin(velocidade).
Serial.print: Disponibiliza valores desejados para o termianl Serial. Para visualizar o que foi colocado apenas clique na lupa, como indicado acima.
Bibliotecas no arduino – O que são?
São formas de aumentar as possiblidades do arduino. Com as bibliotecas a utlização de um novo sensor fica bem mais simples, pois todas as configurações necessárias já estão predefinidas. Você pode baixar inúmeras bibliotecas já prontas pela internet mas também pode fazer a sua própria biblioteca. A seguir utilizaremos o Sensor de temperatura e umidade que necessita de uma biblioteca, para instala-la basta seguir os passos a seguir:
1 - Baixe a biblioteca no link: https://github.com/adafruit/DHT-sensor-library
2 - Vá no diretório em que seu arduino foi instalado:
 
3 - Clique em libraries
4 – Copie e cole a pasta da biblioteca que baixou para a pasta libraries.
Sensor de temperatura e umidade
Faremos um pequeno projeto para medição de temperatura e umidade do ambiente. Abaixo segue imagem do circuito que utilizaremos.
 
O programa ficará da seguinte maneira:
Continuação do código
Desafio 2: Faça um circuito em que a saída PWM ligada a um LED seja sensível a temperatura.
Receber dados do teclado
Agora faremos um projeto em que receberemos dados do teclado, utilizando-os como comandos diferentes. Nesse primeiro caso acenderemos um LED apertando determinadas teclas do nosso teclado. Como você já sabe como fazer o circuito para esse exemplo, colocarei apenas o programa que utilizaremos.
Continuação do código
Desafio 3: Faça um projeto em que você escrevendo “Umidade” o Serial terminal mostrará a umidade do local e ligará o LED verde. Escrevendo “Temperatura” o Serial terminal mostrará a temperatura do local e ligará o LED vermelho.

Outros materiais