A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

CURSO DE ARDUINO AUTOMAÇÃO & ROBÓTICA. CARACTERÍSTICAS E SIMPLICIDADE Utiliza microcontrolador AtMEGA 8,168, 328,1280, 2560. RISC - Reduced Instruction.

Apresentações semelhantes


Apresentação em tema: "CURSO DE ARDUINO AUTOMAÇÃO & ROBÓTICA. CARACTERÍSTICAS E SIMPLICIDADE Utiliza microcontrolador AtMEGA 8,168, 328,1280, 2560. RISC - Reduced Instruction."— Transcrição da apresentação:

1 CURSO DE ARDUINO AUTOMAÇÃO & ROBÓTICA

2 CARACTERÍSTICAS E SIMPLICIDADE Utiliza microcontrolador AtMEGA 8,168, 328,1280, RISC - Reduced Instruction Set Computer ou Computador com um Conjunto Reduzido de Instruções. 20 MIPS (milhões de instruções por segundo). Memória flash: 8kb,16kb, 32kb, 128kb, 256kb. 14 portas digitais 6 portas analógicas Oferece um IDE e bibliotecas de alto nível Hardware e Software Open-Source Programado em C/C++ Transferência de firmware via USB

3 TIPOS DE ARDUINO Arduino 2009 Arduino Mega Arduino UNO Arduino ADK (Google ADK - Android) Arduino BT Arduino Nano LilyPad

4 TIPOS DE ARDUINO

5 CARACTERÍSTICAS DO ARDUINO UNO MicrocontroladorAtmega 328 Voltagem Operacional5V Voltagem de entrada (recomendada)7-12V Voltagem de entrada (limites)6-20V Pinos E/S digitais14 (dos quais 6 podem ser saídas PWM) Pinos de entrada analógica6 Corrente CC por pino E/S40 mA Corrente CC para o pino 3,3V50 mA Flash Memory 32 KB (ATmega328) dos quais 0,5KB são utilizados pelo bootloader SRAM2 KB (ATmega328) EEPROM1 KB (ATmega328) Velocidade de Clock16 MHz

6 ARDUINO UNO

7 RODANDO O PROGRAMA BLINK INSTALANDO O ARDUINO E O SKETCH CONFIGURANDO O MODELO DO ARDUINO ESCOLHENDO A PORTA SERIAL

8 INTERFACE DA IDE

9 PROTOBOARD

10 Esquema

11 PORTAS DIGITAIS Trabalha com 0 e 1 na lógica binária - De 0 à 0,8 volts = 0 – De 2 à 5 volts = 1

12 PORTAS ANALÓGICAS Valor lido é análogo à tensão 0 volts = 0 2,5 volts = volts = 1023 Conversor A/D de 10 bits: 0 à 1023

13 Porta PWM

14 Na prática Ligamos componentes em portas digitais comuns, pwm ou analógica. Fazemos leitura e escrita nestas portas a fim de obter um dado ou um determinado comportamento. Processamos os dados no microcontrolador.

15 Alguns exemplos de componentes

16 PROGRAMAÇÃO Dois métodos são obrigatórios: void setup(){ } void loop(){ } setup() : será executado uma única vez ao ligar a placa loop() : será executado infinitamente

17 PROGRAMAÇÃO Comando pinMode() Comando digitalWrite() Comando digitalRead() Comando analogRead() Comando analogWrite()

18 LED O diodo emissor de luz conhecido pela sigla LED (Light Emitting Diode). Sua funcionalidade básica é a emissão de luz

19

20 RESISTOR Função: limitar a quantidade de corrente elétrica. Resistência elétrica é a oposição à passagem de uma corrente elétrica, medida em ohms. O valor da resistência de um resistor pode ser identificado de acordo com as cores apresentadas em sua cápsula.

21 RESISTOR

22

23 EXPERIÊNCIA 1 PISCA LED Que resistor devemos utilizar? Arduino – saída: 5 volts Led vermelho: 1,6 volts Corrente do Led: aprox. 20 mA Aplicando a lei de Ohm: R – é a resistência elétrica medida em ohm ( Ω ) U – é a tensão medida em volt (V) i – é a corrente elétrica medida em ampère (A) U = R. i R = U / i R = (5,0 – 1,6) / 0,020 R = 3,4 / 0,020 R = 170 omhs Utilizar resistor 170 omhs

24 Materiais necessários: Arduino Protoboard Fios de conexão LED Resistor de 220 ohms

25 Esquema

26 Exercícios Altere o programa anterior para 3 LEDs piscarem sequencialmente.

27 CLASSE SERIAL Permite a comunicação do Arduino com o computador através da porta serial (via USB). Instruções: Serial.begin(9600); // inicia a comunicação do Arduino com o computador utilizando a velocidade 9600 bits por segundo Serial.println(x); //--- envia o valor de x como decimal para o computador

28 LDR (Light Dependent Resistor) Um LDR é um transdutor de entrada (sensor) que converte a luz em valores de resistência É feito de sulfeto de cádmio (CdS) ou seleneto de cádmio (CdSe). Sua resistência diminui quando a luz é muito alta, e quando a luz é baixa, a resistência no LDR aumenta.

29 EXPERIÊNCIA 2 – LUZ AMBIENTE Materiais necessários: Arduino Protoboard Fios de conexão LDR Resistor de 10k

30 Esquema

31 Exercícios Acender o LED quando o ambiente estiver escuro e apagar o LED quando o ambiente estiver claro.

32 CHAVE TÁCTIL Também conhecida como Push Button ou Chave de Toque, fecha contato quando pressionada

33 EXPERIÊNCIA 3 ACENDER LED COM CHAVE TÁCTIL Materiais necessários: Arduino Protoboard Fios de conexão Botão táctil Resistor de 10k LED Resistor de 220 ohm

34

35 Exercícios O LED devera ficar apagado quando clicar na chave táctil ele se acende após clicar novamente ele se apaga.

36

37 Os Símbolos usados na construção de funções são os seguintes: { } Dentro das chaves vão os procedimentos (statements) que a função deve executar; ; - O ponto-e-vírgula é usado para marcar o final de um Procedimento; // - comentário de uma linha: qualquer caracter depois das duas barras é ignorado pelo programa; /*...*/ - comentário em várias linhas: qualquer texto colocado entre esses símbolos também é ignorado pelo programa

38 Exemplo: /* Nesse código a função setup( ) ativa a porta serial em 9600 bits/s e a função loop( ) fica transmitindo a frase Hello World! pela porta serial a cada 2 segundos. */ void setup( ){ Serial.begin(9600); // inicializa a porta serial } void loop( ){ Serial.println( Hello World! ); // transmite frase delay(2000); }

39 CONSTANTES São valores predefinidos que nunca podem ser alterados. Na linguagem C do Arduino são 3 os grupos de constantes; os dois componentes de cada grupo sempre podem ser representados pelos números binários 1 e 0. TRUE/FALSE são constantes booleanas que definem estados lógicos. Verdadeiro é qualquer valor que não seja zero. Falso é sempre o valor zero. HIGH/LOW essas constantes definem as tensões nos pinos digitais do Arduino. Alto é uma tensão de 5 volts; baixo o terra (ou 0 volt). INPUT/OUPUT são constantes programadas pela função pinMode( ) para os pinos do Arduino; eles podem ser entradas (de sensores) ou podem ser saídas (de controle)

40 VARIÁVEIS São posições na memória de programa do Arduino marcadas com um nome e o tipo de informação que irão guardar. Essas posições podem estar vazias ou podem receber um valor inicial. Os valores das variáveis podem ser alterados pelo programa. Escopo da Variável Uma variável pode ser declarada em qualquer parte do programa. Se for declarada logo no início, antes da função setup( ), ela tem o escopo de Variável Global, e por isso ela pode ser usada por qualquer função no programa. Se declarada dentro de uma função ela tem o escopo de Variável Local, e só pode ser usada pela própria função Declaração da Variável como as funções, toda variável deve ser declarada antes de ser chamada. Essa declaração consiste em atribuir previamente um tipo e um nome à variável. Tipos de variáveis: byte - esse tipo armazena 8 bits (0-255); int - armazena números inteiros de até 16 bits; long - armazena números inteiros de até 32 bits; float - variáveis deste tipo podem armazenar números fracionários de até 32 bits

41 Exemplo: /* Esse programa escrito em C do Arduino aumenta e diminui gradativamente o brilho de um LED conectado no pino PWM 10 do Arduino. */ int i=0; // declaração da variável global inteira i iniciada com 0 void ledOn( ); // declaração da função criada ledOn do tipo void void setup( ) { pinMode(10,OUTPUT); // aqui 2 parâmetros são passados à função pinMode( ) } void loop( ){ for (i=0; i <= 255; i++) ledOn( ); // aumenta o brilho do led for (i=255; i >= 0; i--) ledOn( ); // diminui o brilho do led } void ledOn( ){ // função que acende o led analogWrite (10, i); // o nº do pino e o valor de i são passados à função analogWrite( ) delay (10); }

42 MATRIZES são coleções de variáveis do mesmo tipo, portanto são posições na memória de programa, com endereços que podem ser acessados por meio de um identificador, chamado de índice. A primeira posição de uma matriz é sempre a de índice 0. Declaração de uma Matriz 1 As matrizes, como as variáveis e as funções, devem ser declaradas com um tipo e um nome seguido de colchetes; e podem também ser inicializadas com os valores entre as chaves. Exemplo: int nomeMatriz [ ] = { 16,32,64,128,... }; Declaração de uma Matriz 2 Pode-se também declarar somente o tipo, o nome e o tamanho da matriz, deixando para o programa o armazenamento de variáveis nas posições, ou índices, da matriz. int nomeMatriz [ 10 ] ; //nomeMatriz com dez 10 //posições para variáveis inteiras Escrever/Ler uma Matriz Para guardar o inteiro 16 na 4ª posição da matriz nomeMatriz, usa-se: nomeMatriz [3] = 16; Para atribuir o valor armazenado na 5ª posição de nomeMatriz à variável x: int x = nomeMatriz[4];

43 Operações Aritméticas e lógicas as 4 operações aritméticas, divisão, multiplicação, adição e subtração, são representadas pelos símbolos: /, *, + e -. E são 3 os operadores lógicos na linguagem do Arduino que são usados para comparar duas expressões e retornar a constante TRUE/FALSE. Símbolos compostos são aqueles que combinam os símbolos aritméticos entre si e com o sinal de atribuição: x ++ // x=x+1 x -- // x=x-1 x += y // x=x+y x -= y // x=x-y x *= y // x=x*y x /= y // x=x/y Operadores de comparação comparam uma variável com uma constante, ou variáveis entre si. São usados para testar se uma condição é verdadeira. x == y // x é igual a y x != y // x não é igual a y x < y // x é menor que y x > y // x é maior que y x <= y // x é menor ou igual a y x >= y // x é maior ou igual a y Operadores lógicos são usados para comparar duas expressões, retornam 1 ou 0 (verdadeiro/falso). && AND porta lógica E || OR porta lógica OU ! NOT porta lógica NÃO

44 FunçãoExemploNotas delay(ms) Essa função pausa o programa por um período em milissegundos indicado pelo parâmetro entre parênteses. delay(1000); Com esse parâmetro o programa vai pausar durante 1 segundo (1000 ms). Durante o período em que essa função está ativa qualquer outra função no programa é suspensa. Somente as interrupções de hardware podem parar essa função. delayMicroseconds(us) Essa função pausa o programa por um período em microssegundos indicado pelo parâmetro entre parênteses. delayMicroseconds(1000); Com esse parâmetro o programa vai pausar durante 1 ms (1000 us). As mesmas observações acima para a função delay(ms) são válidas aqui. millis( ) Retorna o número de milissegundos desde que o Arduino começou a executar o programa corrente. long total = millis( ); Aqui a variável inteira longa (de 32 bits) total vai guardar o tempo em ms desde que o Arduino foi inicializado. Essa variável vai ser resetada depois de aproximadamente 9 horas.

45 random(min,max) Gera números pseudoaleatórios entre os limites min e max especificados como parâmetros. int valor = random(100,400); À variável valor vai ser atribuido um número inteiro qualquer entre 100 e 400. O parâmetro min é opcional e se excluído o limite mínimo é 0. No exemplo variável valor poderá ser qualquer número inteiro entre 0 e 400. abs(x) Retorna o módulo ou valor absoluto do número real passado como parâmetro. float valor = abs(-3.14); À variável valor vai ser atribuído o número em ponto flutuante (e sem sinal) map(valor,min1,max1,min2,max 2) A função map( ) converte uma faixa de valores para outra faixa. O primeiro parâmetro valor é a variável que será convertida; o segundo e o terceiro parâmetros são os valores mínimo e máximo dessa variável; o quarto e o quinto são os novos valores mínimo e máximo da variável valor. int valor = map(analog Read(A0),0,1023,0,255)); A variável valor vai guardar a leitura do nível analógico no pino A0 convertida da faixa de para a faixa Com essa função é possível reverter uma faixa de valores, exemplo: int valor = map(x,1,100,100,1);

46 if...else Ao se acrescentar mais um bloco de instruções no loop do comando if pode-se criar o comando i f...else, para fazer um teste novo quando o resultado da expressão for falsa. if (expressão) { bloco de instruções1; // se expressão for verdadeira, bloco de instruções1 é executado } else { bloco de instruções2; // se expressão for falsa, bloco de instruções2 é executado }

47 if (expressão1) { bloco de comandos1; } else if (expressão2) { bloco de instruções2; } else { bloco de comandos3; }

48 switch (expressão) { case 1: bloco de instruções1; break; case 2: bloco de instruções2; break; case 3: bloco de instruções3; break; default: bloco de instruções4; }

49 while Uma das operações mais frequentes que os programas executam é repetir um grupo de instruções até que uma condição inicialmente verdadeira se torne falsa. É para isso que serve o comando while. A sua sintaxe é a seguinte: while (expressão) { bloco de instruções; } do...while Para que o bloco de instruções seja executado ao menos uma vez, ele é deslocado para a entrada da caixa de decisões, antes do teste de validade: do { bloco de instruções; }while (expressão)

50 for Inserindo-se no loop do comando while um contador que registre cada execução do bloco de instruções cria-se o comando for. Esse contador deve ter uma variável de controle que deve ser previamente inicializada com um tipo e um valor. A sua sintaxe é a seguinte: for (variável; expressão;incremento) { bloco de instruções; }

51 O operador ternário ? É possível simplificar códigos com comandos if...else em C/ C++ com o operador condicional ?, também chamado de operador ternário. Esse operador avalia uma expressão e se esta for verdadeira uma instrução é executada, se a expressão for falsa uma outra expressão é executada. A sua sintaxe é a seguinte: (expressão) ? instrução1 : instrução2; Note o uso e a posição entre as duas instruções de dois pontos na sintaxe desse operador. Exemplo: int x = 8; y = (x > 10) ? 15 : 20;

52

53 BUZZER É composta de 2 camadas de metal e uma camada interna de cristal piezoelétrico (como um sanduíche). Ao ser alimentado com uma fonte de sinal, vibra da mesma frequência recebida, funcionando como uma sirene ou alto-falante.

54 EXPERIÊNCIA 4 BUZINA Materiais necessários: Arduino Protoboard Fios de conexão Botão táctil Resistor de 10k Buzzer

55 Esquema

56 Exercícios Monte um circuito com 1 LDR e 1 Buzzer, quando estiver escuro, tocar o Buzzer.

57 Tabela de Tons

58 Melodia com Buzzer NOTE_C4 262 NOTE_G3 196 NOTE_A3 220 NOTE_G NOTE_B3 247 NOTE_C4 262

59 LM35 – SENSOR DE TEMPERATURA O LM35 é um sensor de temperatura linear, trabalha com temperaturas entre -55ºC e 150ºC

60 EXPERIÊNCIA 5 TERMÔMETRO Materiais necessários: Arduino Protoboard Fios de conexão LM35 Formula (5 * temperatura * / 1024)

61 Esquema

62 Exercícios Monte um circuito com sensor de temperatura e um buzzer, quando a temperatura ultrapassar os 22 graus celsius apitar um alarme.

63 ENVIANDO DADOS DO COMPUTADOR PARA O ARDUINO Em alguns exercícios anteriores, utilizamos a classe Serial para enviar dados do Arduino para o computador através da porta serial. A classe Serial também pode ser utilizada para receber dados enviados pelo computador ao Arduino, para isso, utilizaremos duas instruções: Serial.available() e Serial.read() Serial.available() - indica a quantidade de dados disponíveis para leitura Serial.read() - lê o próximo valor do buffer enviado pela serial, se retornar -1 não possui nenhum valor para ser lido no buffer.

64 EXPERIÊNCIA 6 CONTROLANDO LEDS PELO COMPUTADOR Materiais necessários: Arduino Protoboard Fios de conexão 3 LEDs Resistor de 220 ohms

65 Esquena

66 Comunicação serial por fio entre 2 Arduino Dois Arduinos, interconectados pelos pinos 0 e 1, respectivamente rx [pino de reçepção] e tx [pino de transmissão]. O pino TX de um deve estar ligado ao pino RX do outro - formando um X. Aplicação: No caso um arduino envia um byte; o outro arduino recebe este byte e testa; se for 1 liga o led do pino 13 se for 0 desliga. Nenhum protocolo foi especificado.

67

68 LED RGB LED RGB pode emitir 3 cores: vermelho, verde e azul (RGB), as cores podem ser emitidas isoladamente ou em conjunto. Utilizando a porta PWM, podemos controlar a intensidade de cada cor, as cores podem ser combinadas. O LED RGB possui 3 terminais:

69 EXPERIÊNCIA 7 LED RGB Materiais necessários: – Arduino – Protoboard – Fios de conexão – LED RGB – Resistor de 220 ohms

70 Esquena

71 Exercícios Altere o programa anterior para gerar outras cores RGB: – Amarelo: Vermelho + Verde – Magenta: Vermelho + Azul – Ciano: Verde + Azul

72 POTENCIÔMETRO É um dispositivo eletromecânico que possui um resistor de valor fixo sobre o qual se move um contato deslizante, fazendo a resistência variar. Normalmente possui 3 terminais: Vcc, Gnd e sinal (analógico).

73 Função MAP A função map do Arduino converte uma faixa de valores de entrada em uma faixa de valores de saída. Por exemplo: o potenciômetro gera valores de entrada entre 0 e 1023 (10bits) e desejamos converter em uma saída analógica entre 0 e 255 (8 bits). Sintaxe: map(entrada, in_min, in_max, out_min, out_max) Exemplo: int val = map(x, 0, 1023, 0, 255);

74 EXPERIÊNCIA 8 LENDO POTENCIÔMETRO Materiais necessários: - Arduino - Protoboard - Fios de conexão - Potenciômetro 10k

75 Esquena

76 Exercícios Monte um circuito para regular a intensidade do Led com o potenciômetro Obs: Utilize uma porta PWM como entrada do Led Utilize a função map para converter os valores de entrada do potenciômetro nos valores de saída para o Led

77 DISPLAY DE 7 SEGMENTOS Um display de sete segmentos é composto de oito LEDs (Diodos emissores de luz), sete para formar o número que deverá ser apresentado e um para gerar o ponto decimal. Sua classificação pode ser ANODE (+) ou CATHODE (-). Os Displays LED de 7 segmentos podem ser utilizados para inúmeras tarefas em automação.

78

79

80 EXPERIÊNCIA 9 DISPLAY DE 7 SEGMENTOS Materiais necessários: Arduino Protoboard Fios de conexão Display de 7 Segmentos Resistor 220 ohms

81 Conexões: Pino 13 – Led A Pino 12 – Led B Pino 11 – Led C Pino 10 – Led D Pino 9 – Led E Pino 8 – Led F Pino 7 – Led G Pino 6 – Led do Ponto Decimal

82

83 EXPERIÊNCIA 10 CONTAR DE 0 À 9 Número 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ponto, erro:

84 Relação Led – número (de 0 à 9 – E=Erro). Led A – 0 – 3 –4 – – 7 - E Led B – 0 – 1 – 2 – 3 – 4 – 7 – 8 – 9 Led C – 0 – 1 – 3 – 4 – 5 – 6 – 7 – 8- 9 Led D - 0 – 2 – 3 – 5 – 6 – 8 – 9 - E Led E – 0 – 2 – 6 – 8 - E Led F – 0 – 4 – 5 – 6 – 8 – 9 - E Led G – 2 – 3 – 4 – 5 – 6 – 8 – 9 - E Led do Ponto Decimal

85 CONTROLE DE LÂMPADAS E TOMADAS Não é possível ligar um fio 110 volts no Arduino. O Arduino trabalha com 5 volts – corrente contínua. A energia elétrica das residências (tomadas e lâmpadas) trabalham com 127 ou 220 volts – corrente alternada. A transmissão de corrente contínua para longas distâncias é inviável. Como fazer o Arduino controlar tomadas e lâmpadas.

86 USANDO UM RELÉ Um relé é um interruptor eletromagnético que quando conduzimos corrente o interruptor fecha um determinado contato. Esses contatos podem estar normalmente abertos (desconectados) ou normalmente fechados (conectados) Siglas NO e NC em inglês ou NA e NF em português.

87 RELÉ COM ARDUINO

88 Como ligar um Relé no Arduino?? O Arduino fornece no máximo 40mA em suas portas Para acionar o Relé, é preciso aproximadamente 70mA Por isso, devemos ligar um transistor entre o Arduino e o Relé

89 Tensão reversa É um fenômeno físico que acontece em todo mecanismo eletromagnético quando é desenergizado. Assim que tiramos a energia de um dispositivo eletromagnético recebemos de volta um choque, isso poderia queimar o transistor ou o Arduino. Para evitar esse fenômeno, usamos um diodo, que só permite a corrente passar em um único sentido. O diodo pode ser ligado em paralelo com o mecanismo.

90

91 EXPERIÊNCIA 11 CONTROLANDO LÂMPADA Materiais necessários: Arduino Protoboard Fios de conexão Módulo Relé Lâmpada de 127 volts Tomada de 127 volts

92

93 Exercícios: Sensor de luminosidade - Monte um circuito para controlar a lâmpada quando escuro a lâmpada se acende e quando claro a lâmpada se apaga.

94 CONTROLANDO ARDUINO COM PHP EXPERIÊNCIA 12 Materiais necessários: Arduino Protoboard Fios de conexão 6 Leds Resistor 220r

95

96

97 INTERRUPTOR MAGNÉTICO Ler um Interruptor Magnético utilizando o Arduino, e acionar um dispositivo a partir da leitura do interruptor magnético. São usados para acionar, magneticamente, dispositivos eletro-eletrônicos como alarmes, trancas elétricas, portas, circuitos eletrônicos de partida, etc.

98 EXPERIÊNCIA 13 ALARME DE PORTAS E JANELAS Materiais necessários: Arduino Protoboard Fios de conexão 1 Interruptor magnético Resistor 1K

99

100 Exercícios: Sensor de Janela e Portas - Monte um circuito para verificar se o sensor está aberto ou fechado. Se circuito estiver aberto o buzzer deverá tocar.

101 MOTORES COM ARDUINO Funções: Movimentar peças (braços, superfícies, etc) Locomover (rodas, esteiras, pernas, etc) Características: Velocidade de rotação / rpm Força Precisão Redutor – transforma rotação em força Motor DC/CC (velocidade) Servo motor (precisão e/ou força) Motor de passo (precisão e/ou força)

102 MOTOR DC Motor simples pode ter alta velocidade. Não tem precisão angular. Podemos controlar a potência com PWM Assim como relé precisamos ligar em um transistor com diodo de proteção, para inverter a direção da rotação temos que inverter a polaridade.

103 SERVO MOTOR Motor com precisão angular, fácil comando. Por padrão virar apenas de 0 a 180 graus. Servos fullrotation giram em 360 graus. Conexão super simples: GND, 5v e Sinal Digital

104 MOTORES DE PASSOS São dispositivos mecânicos eletro-magnético que podem ser controlados digitalmente através de um hardware específico ou através de softwares. Motores de passos são encontrados em aparelhos onde a precisão é um fator muito importante. São usados em larga escala em impressoras, plotters, scanners, drivers de disquetes, discos rígidos e muitos outros aparelhos.

105 TRANSISTOR O transistor funciona como um controlador de fluxo de corrente, é como uma torneira, possui 3 terminais chamados de base, emissor e coletor. A base tem a função da manopla da torneira ou seja, controlar o fluxo de corrente que irá fluir entre o coletor e o emissor (o que entra na torneira pela caixa d´água e o que sai na boca da torneira).

106 Analogia com uma torneira

107 EXPERIÊNCIA 16 CONTROLANDO UM MOTOR DC Materiais necessários: Arduino Protoboard Fios de conexão Transistor Tip 122 (Pode ser TIP 120) NPN. Diodo IN4007 (Ou IN4004). Motor DC Resistor 1K

108

109 Exercícios: Controlando um Motor DC com Potenciômetro Arduino Protoboard Fios de conexão Potenciômetro 10k Transistor Tip 122 (Pode ser TIP 120) NPN. Diodo IN4007 (Ou IN4004). Motor DC Resistor 1K

110

111 CLASSE SERVO MOTOR Utilizada para controlar Servos Motores. Presente na biblioteca: Servo.h Métodos: Servo.attach(porta) – conecta servo à uma porta digital Servo.write(val) – define ângulo do braço do servo (0 – 180º) Servo.detach() – desconecta servo de uma porta digital

112 EXPERIÊNCIA 17 SERVO MOTOR COM PONTECIÔMETRO Materiais necessários: Arduino Protoboard Fios de conexão Potenciômetro 10k Servo motor

113

114 PONTE H EXPERIÊNCIA 18 MOTOR DC DUPLO SENTIDO Materiais necessários: Arduino Uno Ci L293B (podem procurar similares L293 D) Protoboard Motor DC Fios de conexão

115

116

117 Exercícios: Controlar dois motores DC pelo PHP - Monte um circuito para controlar 2 motores DC para frente e para traz. Monte também um pagina php para controlar os motores DC, como na imagem abaixo.

118 MOTOR DE PASSO Um motor de passo é um tipo especial de motor que pode se mover em uma série de passo discretos. Eles são uma boa escolha para projetos que requerem movimento controlado e preciso. Projetos típicos incluem impressoras 3D, sistemas de posicionamento de telescópios e controle numérico computadorizado (CNC) de tornos e máquinas.

119 EXPERIÊNCIA 19 CONTROLANDO MOTOR DE PASSO Materiais necessários: Arduino Uno Ci L293B (podem procurar similares L293 D) Protoboard Motor de Passo Fios de conexão Bateria de 6 ou 9 V

120

121 #include const int numeroDeVoltas = 60; Stepper configurar(numeroDeVoltas, 8,9,10,11); void setup() { configurar.setSpeed(60); Serial.begin(9600); } void loop() { Serial.println("Sentido Horario"); configurar.step(60); delay(500); }

122 SENSOR DE MOVIMENTO PIR Como funciona? Detecta infravermelho emitido por objetos e pessoas Todas as pessoas e objetos emitem energia em forma de infravermelho PIR Sensor significa Sensor Infravermelho Passivo, pois sensor não emite campo de detecção, apenas faz a leitura dos campos emitidos pelos objetos/pessoas Cada detecção gera um pulso positivo no Pino OUT Características Filtro especial chamado lente Fresnel, que foca os sinais infravermelhos no objeto Detecta movimentos a uma distância de 6 metros Saída de bit simples Alimentação de 3,3V até 5V

123 EXPERIÊNCIA 14 SENSOR DE MOVIMENTO Materiais necessários: Arduino Protoboard Fios de conexão 1 sensor de Movimento PIR

124

125 RECEPTOR INFRAVERMELHO O TSOP382 é um receptor miniaturizado para sistemas de controle remoto por infravermelhos. Um diodo PIN e um pré amplificador são montados sobre um conector e o encapsulamento de epoxy funciona como um filtro de IR. O sinal de saída demodulado pode ser diretamente decodificado por um microprocessador. O TSOP382 é compatível com todos os formatos de dados do controles remostos mais comuns.

126 EXPERIÊNCIA 15 RECEPTOR INFRAVERMELHO Arduino Protoboard Fios de conexão 1 Receptor infra-vermelho

127

128 #include int recep = 2; IRrecv irrecv(recep); decode_results resultado; void setup(){ Serial.begin(9600); irrecv.enableIRIn(); } void loop(){ if(irrecv.decode(&resultado)){ Serial.println(resultado.value,HEX); irrecv.resume(); }

129 SENSOR DE DISTÂNCIA Sensor Ultrasônico HC-SR04 Emite um sinal ultrasônico para detectar obstáculos Faixa de medição: 2 cms à 4 mts Possui um emissor e um receptor ultrasônico Possui 4 conexões: 5V Supply (VCC) Tigger Pulse Input (Trig) Echo Pulse Output (Echo) 0V Ground (GND)

130 CLASSE ULTRASONIC Classe utilizada com o Sensor Ultrasônico padrão SR04 Método construtor: Ultrasonic(trigger_pin, echo_pin) Sistemas de medição: CM – medição em centímetros INC – medição em polegadas Método para efetuar a medição: Ultrasonic.Ranging(sist_med)

131 EXPERIÊNCIA 21 DETECTANDO OBSTÁCULO Materiais necessários: Arduino Protoboard Fios de conexão Sensor HC-SR-04 Buzzer

132

133 #include Ultrasonic ultrasonic(8,9); void setup(){ Serial.begin(9600); pinMode(13,OUTPUT); } void loop(){ int distancia = ultrasonic.Ranging(CM); Serial.println(distancia); delay(200); }

134 Acelerômetro

135

136 const int groundpin = 18; const int powerpin = 19; const int xpin = A3; const int ypin = A2; const int zpin = A1; void setup(){ Serial.begin(9600); pinMode(groundpin, OUTPUT); pinMode(powerpin, OUTPUT); digitalWrite(groundpin, LOW); digitalWrite(powerpin, HIGH); } void loop(){ Serial.print(analogRead(xpin)); Serial.print("\t"); Serial.print(analogRead(ypin)); Serial.print("\t"); Serial.print(analogRead(zpin)); Serial.println(); delay(500); }

137 Módulo de Reconhecimento de Voz

138 Características: – Se comunica através da porta serial (configurações e reconhecimento) – Pode ser utilizado para controlar Leds, Lâmpadas, Robos, etc – Armazena até 15 instruções de voz – divididas em 3 grupos de 5 instruções – Independente do locutor, mas precisa de um bom microfone – Voltagem: de 4.5 à 5.5 volts – Corrente: menos que 40 mA – Interface: Serial 5v TTL lever UART interface – Entrada para microfone de 3,5mm + pino

139 Módulo de Reconhecimento de Voz Adaptador USB / TTL Deve ser utilizado para acoplar o Módulo de Rec. De Voz ao computador

140 Módulo de Reconhecimento de Voz

141 Configurações e Gravação das Instruções de Voz Efetuar o download do driver do Adaptador USB/TTL Descompactar e Instalar – sem conectar o Adaptador ao computador Após a instalação, conectar a placa ao computador Verificar se a placa foi detectada

142 Configurações e Gravação das Instruções de Voz

143 O AccessPort é um software de comunicação com a porta serial Poderia ser utilizado outro software Não é necessário a instalação Para executar, execute o arquivo: AccessPort.exe

144 Configurações e Gravação das Instruções de Voz

145 Configurações: – Clique no botão Configuration – Configurações: Port: COM3 (verificar sua porta) Baud rate: 9600 Parity bit:None Data bit: 8 Stop bit: 1 Buffer size: 8192 Send display: Hex Format Receive display: Char Format

146 Comandos do módulo de rec. De voz:

147

148 Para iniciar a gravação das instruções do grupo 1: – AA 11 Para iniciar a gravação das instruções do grupo 2: – AA 12 E assim por diante

149 Comandos do módulo de rec. De voz: Conecte o Adaptador USB/TTL com o Módulo de Reconhecimento de Voz Conecte o Adaptador ao computador

150 Comandos do módulo de rec. De voz: É obrigatório a gravação de 5 instruções dentro de um grupo Não é necessário gravar instruções em todos os grupos Vamos gravar: Instrução 1: LIGA Instrução 2: DESLIGA Instrução 3: MAIS Instrução 4: MENOS Instrução 5: FIM

151 Comandos do módulo de rec. De voz: Para testar o reconhecimento das instruções do Grupo 1: – AA 21 Do grupo 2, 3, 4: – AA 22, AA 23, AA 24 Ao reconhecer as instruções do Grupo 1 retorna: Result: 11 Result: 12 Result: 13 Result: 14 Result: 15 Do Grupo 2: 21, 22, 23, 24, 25

152 Controlando o Arduino por comandos de voz

153 Programação – Comunicação pela porta Serial – É sugerido que as mensagens fiquem no modo reduzido (AA 37) – Para retornar ao modo normal (mensagens de texto), utilizar a instrução AA 36 – Quando a Instrução 1 do Grupo 1 é reconhecida – o valor 11 é recebido pela porta Serial – Instrução 2 do Grupo 1 – é recebido 12 – Instrução 3 do Grupo 1 – é recebido 13 – Instrução 4 do Grupo 1 – é recebido 14 – Instrução 5 do Grupo 1 – é recebido 15 – Do Grupo 2 – 21, 22, 23, 24, 25 – Do Grupo 3 – 31, 32, 33, 34, 35

154 Controlando o Arduino por comandos de voz Programação – Para carregar instruções do Grupo 1: AA 21 – Para carregar instruções do Grupo 2: AA 22 – Para carregar instruções do Grupo 3: AA 23 – Para enviar instruções para o módulo usar: Serial.write – envia dados no formato binário/hexa – Exemplo – carregando instruções do Grupo 1 Serial.write(0xAA); Serial.write(0x21);

155 Controlando o Arduino por comandos de voz int funcao = 0; int tempo = 1000; void setup(){ pinMode(13,OUTPUT); Serial.begin(9600); delay(2000); Serial.write(0xAA); Serial.write(0x37); delay(2000); Serial.write(0xAA); Serial.write(0x21); delay(2000); }

156 Controlando o Arduino por comandos de voz void loop(){ if(Serial.available()){ char c = Serial.read(); if(c == 0x11){ funcao = 1; } if(c == 0x12){ funcao = 0; } if(c == 0x13){ funcao = 2; tempo = tempo - 100; if(tempo <= 0){ tempo = 10; }

157 Controlando o Arduino por comandos de voz if(c == 0x14){ funcao = 2; tempo = tempo + 100; } if(funcao == 1){ digitalWrite(13,HIGH); } if(funcao == 0){ digitalWrite(13,LOW); } if(funcao == 2){ digitalWrite(13,HIGH); delay(tempo); digitalWrite(13,LOW); delay(tempo); }


Carregar ppt "CURSO DE ARDUINO AUTOMAÇÃO & ROBÓTICA. CARACTERÍSTICAS E SIMPLICIDADE Utiliza microcontrolador AtMEGA 8,168, 328,1280, 2560. RISC - Reduced Instruction."

Apresentações semelhantes


Anúncios Google