Curso de Arduino-Modulo 1

February 20, 2017 | Author: Rayane Aparecida Guimaraes | Category: N/A
Share Embed Donate


Short Description

Download Curso de Arduino-Modulo 1...

Description

Arduino – Módulo 1 COORDENADOR: Prof. Carlos Renato Borges dos Santos

Versão 3.0

ETAPAS DO CURSO COMPLETO  Módulo 1 – Programando o Arduino  16 horas

 Módulo 2 – Sistemas de Interface  Mais de 20 horas

2

IFMG-Campus Formiga

26/08/2013

Contatos

[email protected]

[email protected] www.santoscrb.com

3

Arduino – Módulo 1

26/08/2013

Conteúdo programático Módulo 1 – Programando o Arduino

4

IFMG-Campus Formiga

26/08/2013

Ao final do curso, será capaz de:  Desenvolver aplicações básicas com o Arduino e pequenos  

 

  5

acionamentos; Ler sinais de sensores que funcionam entre 0 e 5 V; Gravar dados na memória não-volátil; Desenvolver protocolos de comunicação sem verificações complexas dos dados; Controlar servomotores, motores de passo e motores de corrente contínua (apenas o controle, a parte de potência será ministrada no módulo 2); Entender o processo de interrupções; Conhecer alguns componentes eletrônicos.

IFMG-Campus Formiga

26/08/2013

Conteúdo programático  Aula 1      

O que é Arduino Tipos de Arduino A placa eletrônica Vantagens do Arduino Apresentação do programa Notas:  Avaliação: 40% da nota  Projetos: 60% da nota

 Aula 2  Conceitos de bit, Byte, Word.  Tipos de variáveis do Arduino.  Manipulação de dados de diversos tipos em C

6

IFMG-Campus Formiga

26/08/2013

Conteúdo programático  Aula 3  Revisão sobre programação em C.  Declaração de variáveis e ponteiros  Condicionais:  If  While  For  Do ...While  Switch  Struct  Union

7

IFMG-Campus Formiga

26/08/2013

Conteúdo programático  Aula 4  O IDE do Arduino.  Verificação  Compilação  Pinos de IO  Exemplo Pisca-Pisca  Exemplo push button  Alimentação do Arduino  Cálculo de potência dos dispositivos  Dimensionamento de corrente de LEDs  Princípio de funcionamento de um motor de passo  PROJETO 1 – ACIONAMENTO DE LEDS ATRAVÉS DE PUSH-BUTTONS  PROJETO 2 – CONTROLE DE UM MOTOR DE PASSO EM 2 SENTIDOS 8

IFMG-Campus Formiga

26/08/2013

Conteúdo programático  Aula 5  VERIFICAÇÃO DOS PROJETOS 1 E 2  Apresentação de vídeos e links interessantes

 Aula 6  Conversão Analógico digital  Exercícios

 Aula 7  PWM

 Aula 8  PROJETO 3 – CONTROLE DE VELOCIDADE DE UM MOTOR

CC ATRAVÉS DE UM POTENCIÔMETRO  PROJETO 4 – SEGUIDOR SOLAR 9

IFMG-Campus Formiga

26/08/2013

Conteúdo programático  Aula 9  Comunicação serial

 Aula 10  Desenvolvimento de protocolos de comunicação serial

 Aula 11  PROJETO 5 – CONTROLE DE UM MOTOR DE CC E DE

MOTOR DE PASSO POR MEIO DA SERIAL  Aula 12  PROJETO 6 – ESTAÇÃO DE MEDIÇÃO COM ENVIO DE

DADOS PELA SERIAL 10

IFMG-Campus Formiga

26/08/2013

Conteúdo programático  Aula 13  Memórias  SRAM  FLASH  EEPROM

 Aula 14  Gravando e recuperando dados na EEPROM

 Aula 15  Servomotor  PROJETO 7 – SEGUIDOR SOLAR COM ARMAZENAMENTO E

ENVIO DE DADOS DE POSIÇÃO PELA PORTA SERIAL

 Aula 16  Avaliação do curso e avaliação teórica

11

IFMG-Campus Formiga

26/08/2013

Livros sobre Arduino

12

Arduino – Módulo 1

26/08/2013

Bibliografia  1- Site www.arduino.cc

 2- McRoberts, Michael. Arduino básico. Editora NovaTec.  3- Ronald J. Tocci e Neal S. Widmer. Sistemas Digitais:

  

 

13

Princípios e Aplicações. 4- Banz, Massimo. Primeiros passos com o Arduino. 5- 30 Arduino Projects for the evil genius 6- Arduino CookBook, 2nd edition 7-http://renatoaloi.blogspot.com 8- Fábio Pereira. Microcontroladores PIC Programação em C. Editora Érica.

IFMG-Campus Formiga

26/08/2013

Motivações  http://globotv.globo.com/rede-globo/jornal-



  

14

nacional/v/alunos-do-engenharia-do-rio-vencem-maiorcampeonato-de-robotica-do-mundo/2547531/ http://www.youtube.com/watch?v=UUbdSjEvsdw http://www.youtube.com/watch?v=fvsTzFnfgiI http://www.youtube.com/watch?v=5XDXyJTNFu4 http://www.youtube.com/watch?v=JWqFH0roIUI

Arduino – Módulo 1

26/08/2013

1-Apresentação Módulo 1 – Programando no Arduino

O que é Arduino

16

IFMG-Campus Formiga

26/08/2013

O que é Arduino  É uma plataforma de prototipagem eletrônica de hardware

livre, projetada com um microcontrolador Atmel AVR de placa única, com suporte de entrada/saída embutido, uma linguagem de programação padrão, na qual é essencialmente C/C++.  O projeto iniciou-se na Itália, em 2005, com o intuito de interagir em projetos escolares.

17

IFMG-Campus Formiga

26/08/2013

O que é Arduino

18

IFMG-Campus Formiga

26/08/2013

O que é Arduino  O Arduino IDE é uma aplicação multiplataforma

escrita em Java. Inclui um editor de código, compilador e carrega programas para a placa com um único clique.  Com isso não há a necessidade de editar Makefiles ou rodar programas em ambientes de linha de comando.

19

IFMG-Campus Formiga

26/08/2013

O que é Arduino Linguagem do Arduino  void setup() {  //Comandos de //inicialização }  void loop() {  //Instruções repetidas //infinitamente } 20

Arduino – Módulo 1

Linguagem C  void main()  {  //void setup  while(1) {  //void loop

}

 } 26/08/2013

Tipos de Arduino

21

IFMG-Campus Formiga

26/08/2013

Tipos de Arduino

22

IFMG-Campus Formiga

26/08/2013

Tipos de Arduino

23

IFMG-Campus Formiga

26/08/2013

Tipos de Arduino

24

IFMG-Campus Formiga

26/08/2013

A placa eletrônica

25

IFMG-Campus Formiga

26/08/2013

A placa eletrônica

26

IFMG-Campus Formiga

26/08/2013

A placa eletrônica

27

IFMG-Campus Formiga

26/08/2013

Vantagens do Arduino

28

IFMG-Campus Formiga

26/08/2013

Vantagens do Arduino Vantagens  Alimentação: Pode ser alimentado pela USB  Total compatibilidade entre o IDE e a placa, não sendo necessárias configurações complexas  Não precisa de alimentação externa  Preço, se comparado a um kit com microcontrolador PIC, 8051 ou outro 29

IFMG-Campus Formiga

Desvantagens  Não simula em

computador (ainda não encontrei)  Nem todas as portas possuem um LED integrado à plataforma.  Ao sair do estado de protótipo deve-se fazer adequações 26/08/2013

Kit PIC Kit PIC  Alimentação externa

    30

IFMG-Campus Formiga

(127/220V) Não inclui compilador (MikroC, CCS) Não inclui simulador (Proteus) Utiliza MPLAB Preço: R$ 600,00 26/08/2013

Comparação Arduino

PIC / 8051

 Abrir software Arduino



 Selecionar o Arduino



 Abrir arquivo  Cabo USB  Plugar o Arduino  Compilar



       

31

IFMG-Campus Formiga

Abrir software de edição em C Criar uma pasta e nomear o projeto Configurar fusíveis Abrir biblioteca de exemplos, copiar exemplo Configurar registradores dos periféricos Certificar se é o PIC, ex: 18F4550 Kit + Fonte de alimentação + cabo USB + gravador + cabo RJ Compilar Abrir o MPLAB para gravação Encontrar o arquivo .HEX Clicar em Play

26/08/2013

Apresentação do programa  Notas:  50% - avaliação escrita  50% - projetos

32

IFMG-Campus Formiga

26/08/2013

2-Conceitos básicas Módulo 1 – Programando no Arduino

PARTE 1 – Noções de software  Conceitos de bit, Byte, Word.

 Códigos ASCII, Binário, BCD, Hexadecimal.  Revisão sobre programação em C.  Tipos de variáveis.  O IDE do Arduino.

34

IFMG-Campus Formiga

26/08/2013

Conceitos de bit, Byte e Word

35

IFMG-Campus Formiga

26/08/2013

Conceitos de bit, byte e word  Bit – É um registrador ou variável que armazena o valor 0 ou

1. Uma variável do tipo bit é usada para testes lógicos dos tipos: verdadeiro ou falso.  Byte – É um conjunto de 8 bits. Usado para armazenar valores de 0 a 255 (sem sinal) ou de -128 a +127 (com sinal)  Word – É um conjunto de 16 bits. Armazena valores de 0 a 65535 ou -32768 a 32767

36

IFMG-Campus Formiga

26/08/2013

Sistemas de codificação

37

IFMG-Campus Formiga

26/08/2013

ASCII – 0 a 127

38

IFMG-Campus Formiga

26/08/2013

ASCII – 128 a 255

39

IFMG-Campus Formiga

26/08/2013

Hexadecimal – binário - decimal

40

IFMG-Campus Formiga

26/08/2013

Codificação BCD

RTC DS1307 Usa codificação BCD

41

IFMG-Campus Formiga

26/08/2013

Sistemas de codificação Exercício 1  Represente os valores a seguir em registradores de 8

bits:  A) 20 (decimal) ->  B) 0 (ASCII) ->  C) 45 (hexadecimal) ->

 D) 10110 (binário) ->  E) 7E (hexadecimal) ->  F) 64 (bcd) -> 42

IFMG-Campus Formiga

26/08/2013

Sistemas de codificação Exercício 2  Dados os bits, o que eles representariam se estivessem

em: ASCII, hexadecimal, BCD e decimal: (  A) 10010100 ->  B) 01010101 ->  C) 11110000 ->

 D) 10110111 ->  E) 00111010 ->  F) 1101010110101001 -> 43

IFMG-Campus Formiga

26/08/2013

Sistemas de codificação Exercício 3  O RTC 1307 armazena a seguinte data: 26/12/13. Como serão preenchidos os seguintes registradores: dia, mês, ano?

44

Arduino – Módulo 1

26/08/2013

Tipos de variáveis do Arduino

45

IFMG-Campus Formiga

26/08/2013

Tipos de variáveis do Arduino boolean char (-128 a 127) unsigned char (0 a 255) byte (0 a 255) int (-32.768 a 32.767) unsigned int (0 a 65535) word (0 a 65535) long [32 bits (4 bytes), de 2.147.483.648 a 2.147.483.647]  unsigned long (0 a 4.294.967.295)        

46

IFMG-Campus Formiga

 Float (-3.4028235E+38 a 

  

3.4028235E+38 stored as 32 bits) Double (On the Arduino Due, doubles have 8-byte (64 bit) precision) string - char array string - object array

 http://arduino.cc/en/Refer

ence/HomePage

26/08/2013

Manipulação de dados de diversos tipos em C

47

IFMG-Campus Formiga

26/08/2013

Manipulação de dados de diversos tipos em C Dicas sobre o uso de variáveis  Como o processador é de 8 bits, evite usar variáveis longas,

isso poupará memória e aumentará a velocidade de cálculo.  Prefira usar variáveis inteiras de 8 e 16 bits, evitando variáveis com ponto flutuante.

48

IFMG-Campus Formiga

26/08/2013

Manipulação de dados de diversos tipos em C char Sinal (+) 0 (-) 1

unsigned char

49

IFMG-Campus Formiga

26/08/2013

Manipulação de dados de diversos tipos em C

50

IFMG-Campus Formiga

26/08/2013

Manipulação de dados de diversos tipos em C Registrador A (8 bits)

98 + 78 ----

Carry (operação anterior)

Carry (1 bit)

ULA

Resultado (8 bits)

Registrador B ( 8 bits) 51

IFMG-Campus Formiga

26/08/2013

Manipulação de dados de diversos tipos em C  O que acontece com os valores armazenados

quando:  Bit = byte ......Arduino?  Bit = word ......Arduino?  Byte = bit ......Arduino: recebe 0 ou 1  Byte = word ......Arduino: recebe-se o byte menos significativo  word = bit ...... Arduino: recebe 0 ou 1  word = byte ....... Arduino: recebe o valor

52

IFMG-Campus Formiga

26/08/2013

Valores em decimal, hexa e binário  X = 0x10; // x recebe o valor 10h (16 decimal)

 Y = 10; // y recebe 10 decimal  Z = 0b10; // z recebe 10b (2 decimal)

53

Arduino – Módulo 1

26/08/2013

Operações com variáveis  Calcule o resultado das variáveis após as seguintes

operações:

 unsigned int calc = 2000;

 unsigned char x, y, z;  x = calc; //x=208  y = 400; //y=144  z = x + y; //z = 96  Ver Exemplo1 54

Arduino – Módulo 1

26/08/2013

Ponteiros  unsigned int x[5];

 unsigned int *ponteiro;  for(char i = 0;i2

 Canal:       118

A0 A1 A2 A3 A4 A5

IFMG-Campus Formiga

26/08/2013

Exemplo de leitura AD

119

IFMG-Campus Formiga

26/08/2013

Exemplo: seguidor de linha

120

IFMG-Campus Formiga

26/08/2013

Links interessantes  http://www.sucatapontotec.netai.net/projeto-003-robo-

arduino-seguidor-de-linha/  http://www.pessoal.utfpr.edu.br/msergio/Monog-09-2Seguidor-de-linha.pdf  http://www.tur.eletrica.ufu.br/doc/regulamentoIITUR.pd f

121

Arduino – Módulo 1

26/08/2013

Cuidado!  Nunca ligue diretamente algum dispositivo no canal AD que

tenha alguma possibilidade de atingir valores acima de 5V

122

Arduino – Módulo 1

26/08/2013

7-Hardware interno [2] Módulo 1 – Programando no Arduino

PWM (conversão digital-analógico)

124

IFMG-Campus Formiga

26/08/2013

PWM  Usado para controle de tensão por chaveamento em alta

frequência.  Dentre sua utilização, encontram-se:  Controle de velocidade de motor DC;

 Servomotores;  Controle de iluminação.

125

IFMG-Campus Formiga

26/08/2013

PWM

126

IFMG-Campus Formiga

26/08/2013

PWM  analogWrite(Porta, variável);  Porta: configurada como saída.  Variável: Valor 8 bits sem sinal (0 a 255).

127

IFMG-Campus Formiga

26/08/2013

PWM

128

IFMG-Campus Formiga

26/08/2013

Serial – Parte 1  Comandos básicos:  Void setup()  Serial.begin(9600);  Void loop()  Serial.print(“Texto”);  Serial.print(x);  Serial.println(x);  Serial.write(‘a’);  Serial.write(x);//x tipo char

129

Arduino – Módulo 1

26/08/2013

8-Projetos Módulo 1 – Programando no Arduino

PROJETO 3

131

IFMG-Campus Formiga

26/08/2013

Potenciômetro

132

Arduino – Módulo 1

26/08/2013

CONTROLE DE UM MOTOR CC ATRAVÉS DE UM POTENCIÔMETRO  A) DESCRIÇÃO: Elaborar um algoritmo que leia um canal

AD e envie o sinal lido para o PWM.  B) DESCRIÇÃO: Elaborar um algoritmo que leia um canal AD e varie lentamente o sinal PWM até atingir o valor configurado. Para isso, é necessário comparar o sinal lido no AD com o sinal do PWM.

133

IFMG-Campus Formiga

26/08/2013

PROJETO 4

134

IFMG-Campus Formiga

26/08/2013

LDR

135

Arduino – Módulo 1

26/08/2013

PROJETO DE UM SEGUIDOR SOLAR  Construir um seguidor solar guiado por motor de passo e

LDR.  O circuito deverá “varrer” um raio de 180 graus, armazenar o ângulo de maior intensidade luminosa e, quando terminar, ir em direção ao ponto de maior intensidade.

136

Arduino – Módulo 1

26/08/2013

9-Noções sobre a Serial Módulo 1 – Programando no Arduino

Comunicação serial

138

IFMG-Campus Formiga

26/08/2013

Comunicação serial  O envio de dados

 Taxas de transmissão  Padrão TTL e RS-232  Enviando dados  Recebendo dados  Criando um protocolo de transmissão (byte a byte)

139

IFMG-Campus Formiga

26/08/2013

Comunicação serial

140

IFMG-Campus Formiga

26/08/2013

141

Arduino – Módulo 1

26/08/2013

142

Arduino – Módulo 1

26/08/2013

143

Arduino – Módulo 1

26/08/2013

Comunicação serial

144

IFMG-Campus Formiga

26/08/2013

145

Arduino – Módulo 1

26/08/2013

146

Arduino – Módulo 1

26/08/2013

147

Arduino – Módulo 1

26/08/2013

148

Arduino – Módulo 1

26/08/2013

149

Arduino – Módulo 1

26/08/2013

150

Arduino – Módulo 1

26/08/2013

151

Arduino – Módulo 1

26/08/2013

152

Arduino – Módulo 1

26/08/2013

153

Arduino – Módulo 1

26/08/2013

154

Arduino – Módulo 1

26/08/2013

Padrão TTL  1 – – – – – – ( 5V )

 0 – – – – – – ( 0V )

 A IDE do Arduino cria uma COM virtual a partir de uma

porta USB. 155

Arduino – Módulo 1

26/08/2013

Padrão TTL

156

Arduino – Módulo 1

26/08/2013

RS 232  1 – – – – – – ( -15V )

 0 – – – – – – ( +15V )

 Nunca ligue um microcontrolador ou Arduino diretamente à

porta serial! É preciso um conversor MAX 232 157

IFMG-Campus Formiga

26/08/2013

RS 232

158

Arduino – Módulo 1

26/08/2013

RS 232 RS 232 - RS 232

159

Arduino – Módulo 1

Conversor TTL - RS 232

26/08/2013

Interface serial RS232

160

IFMG-Campus Formiga

26/08/2013

baud rate

161

Arduino – Módulo 1

26/08/2013

Comunicação serial Comandos básicos:  Serial.begin(taxa_de_transimissao);

 Serial.available();

 Serial.read();  Serial.write(byte);

162

IFMG-Campus Formiga

26/08/2013

Comunicação serial

Ver exemplo 6

163

IFMG-Campus Formiga

26/08/2013

10-Protocolos de comunicação Módulo 1 – Programando no Arduino

Desenvolvimento de protocolos de comunicação

165

IFMG-Campus Formiga

26/08/2013

 Ver exemplo 7

166

IFMG-Campus Formiga

26/08/2013

11-Projeto Módulo 1 – Programando no Arduino

PROJETO 4

168

IFMG-Campus Formiga

26/08/2013

CONTROLE DE UM MOTOR DE CC E DE MOTOR DE PASSO POR MEIO DA SERIAL

 DESCRIÇÃO: Desenvolver um algoritmo que receba um

comando que controle a velocidade de um motor de CC e comande também um motor de passo.

169

IFMG-Campus Formiga

26/08/2013

12-Projeto Módulo 1 – Programando no Arduino

PROJETO 4

171

IFMG-Campus Formiga

26/08/2013

13-Hardware interno [3] Módulo 1 – Programando no Arduino

Memórias

173

IFMG-Campus Formiga

26/08/2013

Memórias  O arduino UNO:  SRAM: 2kB  EEPROM: 1 kB  FLASH: 32 kB SRAM

 Mega2560  SRAM: 8kB  EEPROM: 4kB

FLASH

Processador

 FLASH: 256 kB EEPROM

174

IFMG-Campus Formiga

26/08/2013

Memórias  Fazer um algoritmo que grave um vetor de dados de

quantidade indeterminada (algo está sendo lido)

175

IFMG-Campus Formiga

26/08/2013

14-Mais sobre EEPROM Módulo 1 – Programando no Arduino

Gravando e recuperando dados na EEPROM

177

IFMG-Campus Formiga

26/08/2013

Gravando e recuperando dados de 8 e de 16 bits na EEPROM  DESCRIÇÃO: Fazer um algoritmo que grave dados de 8 e de

16 bits na EEPROM.  Ver exemplo 9

178

IFMG-Campus Formiga

26/08/2013

15-Servomotor Módulo 1 – Programando no Arduino

Servomotor

180

IFMG-Campus Formiga

26/08/2013

Servomotor Alimentação: de 4,5 a 6V Comando: #include Servo servo1; // Cria um objeto servo void setup() { servo1.attach(5); // Anexa o servo (físico), no pino 5, ao objeto servo (lógico)  }      

    

void loop() { int angle = analogRead(0); // Lê o valor do potenciômetro angle=map(angle, 0, 1023, 0, 180); // Mapeia os valores de 0 a 180 graus servo1.write(angle); // Escreve o ângulo para o servo delay(15); // Espera de 15ms, para permitir que o servo atinja a posição

 } 181

Arduino – Módulo 1

26/08/2013

 Ver exemplo 10

182

Arduino – Módulo 1

26/08/2013

PROJETO 7 SEGUIDOR SOLAR COM ENVIO DE DADOS DE POSIÇÃO PELA PORTA SERIAL

183

IFMG-Campus Formiga

26/08/2013

16-LCD

184

IFMG-Campus Formiga

26/08/2013

Liquid Crystal Display

185

Arduino – Módulo 1

26/08/2013

Pinos do LCD

186

Arduino – Módulo 1

26/08/2013

Conectando ao Arduino

187

Arduino – Módulo 1

26/08/2013

 Ver exemplo 11

188

Arduino – Módulo 1

26/08/2013

17-Interrupções

189

IFMG-Campus Formiga

26/08/2013

Interrupções

190

IFMG-Campus Formiga

26/08/2013

Interrupção  Usada quando necessita monitorar constantemente eventos

de curta duração  A interrupção tem prioridade na execução do programa principal, parando-o para atender à interrupção  Após a execução da interrupção, retoma-se o programa

191

Arduino – Módulo 1

26/08/2013

Pinos de interrupção

192

IFMG-Campus Formiga

26/08/2013

Esquema da Interrupção Evento externo

loop()

Interrupção

Programa principal

193

Arduino – Módulo 1

26/08/2013

Ligação no Arduino

194

Arduino – Módulo 1

26/08/2013

Comando e parâmetros

195

Arduino – Módulo 1

26/08/2013

Linha de tempo da interrupção

196

Arduino – Módulo 1

26/08/2013

Modos de operação

197

Arduino – Módulo 1

26/08/2013

Exemplo  Ver Exemplo 12

198

Arduino – Módulo 1

26/08/2013

Nota:

199

Arduino – Módulo 1

26/08/2013

PROJETO 8 VERIFICAÇÃO DE NÍVEL DE TENSÃO DA BATERIA COM ENVIO DE DADOS PELA SERIAL

200

IFMG-Campus Formiga

26/08/2013

Projeto 8  100% - 12,72V

 90% - 12,48V  80% 12,42V  70% - 12,30V

 60% - 12,18V  50% - 12,06V  40% - 11,88V

 30% - 11,76V  20% - 11,58V  10% - 11,34V  0% - 10,50V 201

IFMG-Campus Formiga

26/08/2013

17-Avaliação Módulo 1 – Programando no Arduino

AVALIAÇÃO

203

IFMG-Campus Formiga

26/08/2013

Fim do curso – Módulo 1 Coordenador: Carlos Renato Borges dos Santos Voluntário: Silas Martins Sousa

204

IFMG-Campus Formiga

26/08/2013

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF