Introdução Básica do Básico de
Arduino
Apresentação
 Edgley Xavier
 Qualificação em Tecnologia Digital, UFG 2010
 Técnico Voluntário EESVB
 Técnico em Hardware, Suporte Linux Educacional
 Estudante de Engenharia Civil - UnP
 Contato:
 Edgley.Xavier@Hotmail.com
2
3
Pré-requisitos
conhecimentos básicos de programação
Conteúdo
 Conceito Básico O Que é Arduino
 hardware
 software
 A programação do Arduino
 Conhecendo cada parte do Arduino
 Motores Eletrônica
 Sensores Eletrônica
 Resistores eletrônica
 protoboard
4
O que é Arduino ?
 O Arduino é uma placa que permite a automação de
projetos eletrônicos e robóticos por profissionais é
amadores, é uma plataforma de prototipagem eletrônica
de hardware livre (plataforma open-source) é um
hardware como também o software.
O que é hardware ?
 Hardware é a parte física de um computador, é
formado pelos componentes eletrônicos, como por
exemplo, circuitos de fios e luz, placas, utensílios,
correntes, e qualquer outro material em estado físico,
que seja necessário para fazer com o que
computador funcione.
O que é software ?
 Software é uma sequência de instruções escritas para
serem interpretadas por um computador com o objetivo
de executar tarefas específicas. Também pode ser
definido como os programas que comandam o
funcionamento de um computador.
 Ou seja o Software são jogos, programas ou aplicativos
12
13
área de código
área de status
compilar
(verif. programa)
parar execução
novo
abrir
salvar
enviar programa
para placa
exibir serial
A programação do Arduino
 É baseado na linguagem C original, a que usaremos terá algumas diferenças,
por exemplo, aqui ao invés de uma função principal - int main() - teremos no
mínimo dois ambientes, que basicamente terão a seguinte forma:
 void setup ( ) {
void setup() é usada para fazer a configuração. Como dizer se um pino
será entrada ou saída e configurar a taxa da comunicação serial. Essa
função é executada uma vez no início do programa.
 }
 void loop () {
void loop() é usada para escrever a rotina a ser executada pelo
microcontrolador.
 }
Este e o esqueleto básico de um programa,
porem como em C/C++ podemos incluir
bibliotecas adicionais, declarar variáveis
globais, escrever outras funções fora das
citadas acima, entre outras funcionalidades.
Perguntas17
Conhecendo cada parte do
Arduino
Arduino UNO – hardware19
Arduino – hardware (UNO ou STAR )
1 – Conexão USB
2 – Alimentação
3 – Chip de comunicação com o
computador
4 – Cristal de 16MHz
5 – Conexões digitais
6 – Led – Está ligado ao pino 13,
7 – Leds TX/RX –
8 – Este é o microcontrolador ATMEGA328 –
9 – Barra de energia –
10 – Pinos (TX/RX) para comunicação serial
com dispositivos externos
11 – Led de indicação de ligado
12 – Botão de RESET –
13 – Entradas analógicas
20
21
Conexão USB
1 – Conexão USB – Utilizada para a comunicação
com o computador
1
22
Alimentação
2 – Alimentação – Ligue aqui o plug para alimentar
o Arduino quando não estiver no computador
2
23
Chip de Comunicação
3 – Chip de comunicação com o computador – Este chip que faz
a comunicação entre o computador e o Arduino
3
24
Cristal de 16MHz
4 – Cristal de 16MHz – É este componente que faz a
frequência do microcontrolador funcionar
4
Conexões Digitais
 5 – Conexões digitais – Funcionam tanto como entrada quanto como
saída de dados. As que possuem um “~” na frente, são saídas PWM
5
Led
 6 – Led – Está ligado ao pino 13, serve para fazer pequenos testes sem
precisar ligar mais nada no Arduino
6
Leds Tx/RX
 7 – Leds TX/RX – Indicam que o Arduino está se comunicando com o
computador
7
Microcontrolador
 8 – Este é o microcontrolador ATMEGA328 – O cérebro do nosso Arduino
8
Barra de Engergia
 9 – Barra de energia – Fornece uma fonte de energia para alimentar
pequenos dispositivos externos (ou outros circuitos – “Shields”)
9
Pinos (TX/RX)
 10 – Pinos (TX/RX) para comunicação serial com dispositivos externos
10
Led de Indicação
 11 – Led de indicação de ligado – Indica quando o Arduino está ligado
à uma fonte de energia
11
RESET
 12 – Botão de RESET – Reinicia o Arduino, começando sua programação
desde o início
12
Entradas Analógicas
 13 – Entradas analógicas – Entradas que podemos ligar potenciômetros
ou outros componentes analógicos
13
Perguntas34
Outras Partes do Conjunto
Arduino (Eletrônica )
eletrônica – Uma placa de ensaio ou
matriz de contato conhecida inglês por
protoboard
Funcionamento da placa
36
• Protoboard
eletrônica – protoboard37
• jumpers
Perguntas38
antes disso
mais um pouco
de eletrônica...
39
Eletrônica – Resistores40
oferecem resistência à passagem da corrente elétrica
transformam energia elétrica em energia térmica
[pode ser usado como atuador]
tipos:
carvão [carbono]
filme
fio
resistência:
fixo
variável
eletrônica – resistores41
valores expressos em ohms
o corpo dos resistores possui um código de cores para identificar o
valor
Perguntas42
antes disso
mais um pouco
de eletrônica...
43
Sensores Para Arduino
Eletrônica
• Os Sensores Mas Conhecidos no
Mercado
• O sensor ultra-sônico HC-SR04
• Sensor de Movimento
• Sensor de temperatura LM35
O sensor ultra-sônico HC-SR04
Qual a Função ?
 é utilizado para a medição de distâncias com precisão. Sua utilização é
bem simples, e também podemos contar com uma classe pronta para
fazer seu tratamento ou programação usando a seguintes portas.
 O HC-SR04 conta com 4 pinos:
 Vcc (pino de alimentação)
 Trig (entrada de dados)
 Echo (saida de dados)
 Gnd (comum, neutro)
Sensor de Movimento
Qual a sua Função ?
Sensor também é conhecido como sensor de
presença ou sensor de movimento. Ele é um
sensor infravermelho passivo capaz de
detectar níveis de irradiação infravermelha
emitida por alguns objetos no campo de
visão do sensor
Sensor de temperatura LM35
Qual a sua Função ?
O sensor LM35 é um sensor de precisão, fabricado pela
National Semiconductor
(www.national.com), que apresenta uma saída de
tensão linear relativa à temperatura em que ele se
encontrar no momento em que for alimentado por
uma tensão de 4-20Vdc e GND, tendo em sua saída
um sinal de 10mV para cada Grau Celsius de
temperatura, sendo assim, apresenta uma boa
vantagem com relação aos demais sensores de
temperatura calibrados em “KELVIN”, não
necessitando nenhuma subtração de variáveis para
que se obtenha uma escala de temperatura em
Graus Celsius
Perguntas52
antes disso
mais um pouco
de eletrônica...
53
Motores Para Arduino
Eletrônica
Tipos de Motores
 Motores DC
 Motor CC/DC
 Controlando um servomotor
Qual a sua Função ?
Motor CC/DC
Um Circuito de eletrônico
com Moto Motor CC/DC
mecanismos eletrônicos que usam
motores, aqui está um conceito muito
importante, conceito este que trata do
controle de um motor de corrente
contínua CC/DC, que permite que você
controle a velocidade de rotação e
também o sentido da rotação, horário
ou anti-horário. Esse tipo de mecanismo
é a base para a construção de braços
robóticos, mini guinchos, mini
elevadores.
Controlando um
servomotor
Controlando um servomotor
Qual a sua
função ?
Na robótica os servomotores são responsáveis por
movimentar braços, pernas e mãos de robôs. No
automodelismo os servomotores são usado para virar
as rodinhas dianteiras dos carrinhos, para esquerda e
direita. No aeromodelismo são usados para controlar
os flaps das asas dos aviões. Os servomotores são
componentes chave em muitos projetos, por isso neste
post vamos ensinar o conceito básico de controle de
um servomotor, usando um arduino. E ao final deste
post veja o vídeo deste projeto em funcionamento.
Um Esquema do servomotor
Perguntas63
Plataforma Arduino
plataforma arduino - instalação65
• Selecionando a placa e a porta serial
plataforma arduino – ambiente66
área de código
área de status
compilar
(verif. programa)
parar execução
novo
abrir
salvar
enviar programa
para placa
exibir serial
plataforma arduino – estrutura do
sketch
67
plataforma arduino – linguagem68
• linguagem baseada em C (mas bem mais
fácil)
• comandos básicos
• pinMode() – define um pino com entrada ou
saída
• digitalWrite() – liga ou desliga uma saída digital
• delay() – “espera” um determinado tempo
plataforma arduino – linguagem69
• Exemplos
• pinMode(num_do_pino, OUTPUT);
• digitalWrite(num_do_pino, valor);
valor é LOW ou HIGH (0 ou 1, 0V ou 5V)
• delay(milisegundos);
plataforma arduino – linguagem
• Constantes
LOW | HIGH – indica nível baixo (0V) e alto (5V) nos pinos
INPUT | OUTPUT – define se um pino vai ser pino de entrada ou de
saída
70
bibliotecas do arduino
72
bibliotecas do arduino
• é possível estender a
plataforma Arduino com
adição de componentes
de código, para controlar
sensores e atuadores
específicos.
• estes componentes são
chamados de bibliotecas
(libraries)
73
bibliotecas do arduino
• as bibliotecas são
geralmente disponibilizadas
como um zip que deve ser
descompactado dentro da
pasta libraries do Arduino.
74
bibliotecas do arduino
• após reiniciar o Arduino, a
biblioteca estará disponível
no menu Sketch->Import Library
• a maioria das bibliotecas
para o Arduino pode ser
encontrada em
http://arduino.cc/en/Reference/Libraries
atividade
prática!
75
 Para começar a escrever o programa precisamos saber em que pinos
do Arduino estarão conectados nossos componentes, nesse caso,
somente o LED, então vamos ao nosso circuito elétrico:
→ Como conectamos nosso LED no pino 10 do
Arduino, vamos declarar uma variavel do tipo inteiro
para guardarmos o numero do pinos em que o LED esta.
(esta será uma variável global) int LED = 10;
→ Agora vamos configurar o pino 10 como uma saída void setup(){
pinMode(LED,OUTPUT);
}
→ Escrevemos agora a rotina para acender, esperar
algum tempo e depois apagar o LED.
Declaramos a função loop{ void loop(){
Sentamos o pino do LED para nível logico alto; digitalWrite(LED, HIGH);
Esperamos um tempo (1000 ms = 1 s); delay(1000);
Sentamos o pino do LED para nível logico baixo; digitalWrite(LED, LOW);
Esperamos um tempo (1000 ms); delay(1000);
Fechamos a funcao loop} }
Vejamos o que as linhas mais relevantes significam:
→ pinMode(pino, modo) Configura um pino especifico para se comportar como
uma
entrada ou uma saida (INPUT ou OUTPUT).
→ digitalWrite(pino, valor) Escreve em um pino digital o valor logico Alto ou Baixo.
(HIGH ou LOW)
→ delay(tempo) Pausa o programa durante um certo tempo especificado
em milissegundos (ms).
 Obs: vocês deve ter percebido que usamos no início a variável padrão
 int LED = x ao pino sempre depois usar no nome LED pode ser substituído por outra
função
 Ou seja se você usa sensor de movimento a função “pinBuzzer, pinSensorPIR,
valorSensorPIR
 pinLed = x;
 Sempre usamos ; “ponto e virgula no final do código ”
 const int = LED;
 // usando para descreve o que esta acontecendo essa função o arduino não
reconhece como
 Código
 void setup () este usa depois “ void setup”()
 Quando usa { quer dizer que a programação iniciou ou seja esta aberta
 Quando usa } quer dizer que a programação terminou ou seja esta fechada
atividade
prática!
80
Projeto 2: Semáforo
arduino - referencias
• Lista dos comandos da linguagem em:
http://arduino.cc/en/Reference/HomePage
• Lista dos tutoriais em:
http://www.arduino.cc/en/Tutorial/HomePage
83

Aula básica Arduino

  • 1.
    Introdução Básica doBásico de Arduino
  • 2.
    Apresentação  Edgley Xavier Qualificação em Tecnologia Digital, UFG 2010  Técnico Voluntário EESVB  Técnico em Hardware, Suporte Linux Educacional  Estudante de Engenharia Civil - UnP  Contato:  Edgley.Xavier@Hotmail.com 2
  • 3.
  • 4.
    Conteúdo  Conceito BásicoO Que é Arduino  hardware  software  A programação do Arduino  Conhecendo cada parte do Arduino  Motores Eletrônica  Sensores Eletrônica  Resistores eletrônica  protoboard 4
  • 5.
    O que éArduino ?
  • 6.
     O Arduinoé uma placa que permite a automação de projetos eletrônicos e robóticos por profissionais é amadores, é uma plataforma de prototipagem eletrônica de hardware livre (plataforma open-source) é um hardware como também o software.
  • 8.
    O que éhardware ?
  • 9.
     Hardware éa parte física de um computador, é formado pelos componentes eletrônicos, como por exemplo, circuitos de fios e luz, placas, utensílios, correntes, e qualquer outro material em estado físico, que seja necessário para fazer com o que computador funcione.
  • 10.
    O que ésoftware ?
  • 11.
     Software éuma sequência de instruções escritas para serem interpretadas por um computador com o objetivo de executar tarefas específicas. Também pode ser definido como os programas que comandam o funcionamento de um computador.  Ou seja o Software são jogos, programas ou aplicativos
  • 12.
  • 13.
    13 área de código áreade status compilar (verif. programa) parar execução novo abrir salvar enviar programa para placa exibir serial
  • 14.
  • 15.
     É baseadona linguagem C original, a que usaremos terá algumas diferenças, por exemplo, aqui ao invés de uma função principal - int main() - teremos no mínimo dois ambientes, que basicamente terão a seguinte forma:  void setup ( ) { void setup() é usada para fazer a configuração. Como dizer se um pino será entrada ou saída e configurar a taxa da comunicação serial. Essa função é executada uma vez no início do programa.  }  void loop () { void loop() é usada para escrever a rotina a ser executada pelo microcontrolador.  }
  • 16.
    Este e oesqueleto básico de um programa, porem como em C/C++ podemos incluir bibliotecas adicionais, declarar variáveis globais, escrever outras funções fora das citadas acima, entre outras funcionalidades.
  • 17.
  • 18.
  • 19.
    Arduino UNO –hardware19
  • 20.
    Arduino – hardware(UNO ou STAR ) 1 – Conexão USB 2 – Alimentação 3 – Chip de comunicação com o computador 4 – Cristal de 16MHz 5 – Conexões digitais 6 – Led – Está ligado ao pino 13, 7 – Leds TX/RX – 8 – Este é o microcontrolador ATMEGA328 – 9 – Barra de energia – 10 – Pinos (TX/RX) para comunicação serial com dispositivos externos 11 – Led de indicação de ligado 12 – Botão de RESET – 13 – Entradas analógicas 20
  • 21.
    21 Conexão USB 1 –Conexão USB – Utilizada para a comunicação com o computador 1
  • 22.
    22 Alimentação 2 – Alimentação– Ligue aqui o plug para alimentar o Arduino quando não estiver no computador 2
  • 23.
    23 Chip de Comunicação 3– Chip de comunicação com o computador – Este chip que faz a comunicação entre o computador e o Arduino 3
  • 24.
    24 Cristal de 16MHz 4– Cristal de 16MHz – É este componente que faz a frequência do microcontrolador funcionar 4
  • 25.
    Conexões Digitais  5– Conexões digitais – Funcionam tanto como entrada quanto como saída de dados. As que possuem um “~” na frente, são saídas PWM 5
  • 26.
    Led  6 –Led – Está ligado ao pino 13, serve para fazer pequenos testes sem precisar ligar mais nada no Arduino 6
  • 27.
    Leds Tx/RX  7– Leds TX/RX – Indicam que o Arduino está se comunicando com o computador 7
  • 28.
    Microcontrolador  8 –Este é o microcontrolador ATMEGA328 – O cérebro do nosso Arduino 8
  • 29.
    Barra de Engergia 9 – Barra de energia – Fornece uma fonte de energia para alimentar pequenos dispositivos externos (ou outros circuitos – “Shields”) 9
  • 30.
    Pinos (TX/RX)  10– Pinos (TX/RX) para comunicação serial com dispositivos externos 10
  • 31.
    Led de Indicação 11 – Led de indicação de ligado – Indica quando o Arduino está ligado à uma fonte de energia 11
  • 32.
    RESET  12 –Botão de RESET – Reinicia o Arduino, começando sua programação desde o início 12
  • 33.
    Entradas Analógicas  13– Entradas analógicas – Entradas que podemos ligar potenciômetros ou outros componentes analógicos 13
  • 34.
  • 35.
    Outras Partes doConjunto Arduino (Eletrônica )
  • 36.
    eletrônica – Umaplaca de ensaio ou matriz de contato conhecida inglês por protoboard Funcionamento da placa 36 • Protoboard
  • 37.
  • 38.
  • 39.
    antes disso mais umpouco de eletrônica... 39
  • 40.
    Eletrônica – Resistores40 oferecemresistência à passagem da corrente elétrica transformam energia elétrica em energia térmica [pode ser usado como atuador] tipos: carvão [carbono] filme fio resistência: fixo variável
  • 41.
    eletrônica – resistores41 valoresexpressos em ohms o corpo dos resistores possui um código de cores para identificar o valor
  • 42.
  • 43.
    antes disso mais umpouco de eletrônica... 43
  • 44.
  • 45.
    • Os SensoresMas Conhecidos no Mercado • O sensor ultra-sônico HC-SR04 • Sensor de Movimento • Sensor de temperatura LM35
  • 46.
    O sensor ultra-sônicoHC-SR04 Qual a Função ?
  • 47.
     é utilizadopara a medição de distâncias com precisão. Sua utilização é bem simples, e também podemos contar com uma classe pronta para fazer seu tratamento ou programação usando a seguintes portas.  O HC-SR04 conta com 4 pinos:  Vcc (pino de alimentação)  Trig (entrada de dados)  Echo (saida de dados)  Gnd (comum, neutro)
  • 48.
    Sensor de Movimento Quala sua Função ?
  • 49.
    Sensor também éconhecido como sensor de presença ou sensor de movimento. Ele é um sensor infravermelho passivo capaz de detectar níveis de irradiação infravermelha emitida por alguns objetos no campo de visão do sensor
  • 50.
    Sensor de temperaturaLM35 Qual a sua Função ?
  • 51.
    O sensor LM35é um sensor de precisão, fabricado pela National Semiconductor (www.national.com), que apresenta uma saída de tensão linear relativa à temperatura em que ele se encontrar no momento em que for alimentado por uma tensão de 4-20Vdc e GND, tendo em sua saída um sinal de 10mV para cada Grau Celsius de temperatura, sendo assim, apresenta uma boa vantagem com relação aos demais sensores de temperatura calibrados em “KELVIN”, não necessitando nenhuma subtração de variáveis para que se obtenha uma escala de temperatura em Graus Celsius
  • 52.
  • 53.
    antes disso mais umpouco de eletrônica... 53
  • 54.
  • 55.
    Tipos de Motores Motores DC  Motor CC/DC  Controlando um servomotor
  • 56.
    Qual a suaFunção ? Motor CC/DC
  • 57.
    Um Circuito deeletrônico com Moto Motor CC/DC
  • 58.
    mecanismos eletrônicos queusam motores, aqui está um conceito muito importante, conceito este que trata do controle de um motor de corrente contínua CC/DC, que permite que você controle a velocidade de rotação e também o sentido da rotação, horário ou anti-horário. Esse tipo de mecanismo é a base para a construção de braços robóticos, mini guinchos, mini elevadores.
  • 59.
  • 60.
  • 61.
    Na robótica osservomotores são responsáveis por movimentar braços, pernas e mãos de robôs. No automodelismo os servomotores são usado para virar as rodinhas dianteiras dos carrinhos, para esquerda e direita. No aeromodelismo são usados para controlar os flaps das asas dos aviões. Os servomotores são componentes chave em muitos projetos, por isso neste post vamos ensinar o conceito básico de controle de um servomotor, usando um arduino. E ao final deste post veja o vídeo deste projeto em funcionamento.
  • 62.
    Um Esquema doservomotor
  • 63.
  • 64.
  • 65.
    plataforma arduino -instalação65 • Selecionando a placa e a porta serial
  • 66.
    plataforma arduino –ambiente66 área de código área de status compilar (verif. programa) parar execução novo abrir salvar enviar programa para placa exibir serial
  • 67.
    plataforma arduino –estrutura do sketch 67
  • 68.
    plataforma arduino –linguagem68 • linguagem baseada em C (mas bem mais fácil) • comandos básicos • pinMode() – define um pino com entrada ou saída • digitalWrite() – liga ou desliga uma saída digital • delay() – “espera” um determinado tempo
  • 69.
    plataforma arduino –linguagem69 • Exemplos • pinMode(num_do_pino, OUTPUT); • digitalWrite(num_do_pino, valor); valor é LOW ou HIGH (0 ou 1, 0V ou 5V) • delay(milisegundos);
  • 70.
    plataforma arduino –linguagem • Constantes LOW | HIGH – indica nível baixo (0V) e alto (5V) nos pinos INPUT | OUTPUT – define se um pino vai ser pino de entrada ou de saída 70
  • 71.
  • 72.
    72 bibliotecas do arduino •é possível estender a plataforma Arduino com adição de componentes de código, para controlar sensores e atuadores específicos. • estes componentes são chamados de bibliotecas (libraries)
  • 73.
    73 bibliotecas do arduino •as bibliotecas são geralmente disponibilizadas como um zip que deve ser descompactado dentro da pasta libraries do Arduino.
  • 74.
    74 bibliotecas do arduino •após reiniciar o Arduino, a biblioteca estará disponível no menu Sketch->Import Library • a maioria das bibliotecas para o Arduino pode ser encontrada em http://arduino.cc/en/Reference/Libraries
  • 75.
  • 76.
     Para começara escrever o programa precisamos saber em que pinos do Arduino estarão conectados nossos componentes, nesse caso, somente o LED, então vamos ao nosso circuito elétrico:
  • 77.
    → Como conectamosnosso LED no pino 10 do Arduino, vamos declarar uma variavel do tipo inteiro para guardarmos o numero do pinos em que o LED esta. (esta será uma variável global) int LED = 10; → Agora vamos configurar o pino 10 como uma saída void setup(){ pinMode(LED,OUTPUT); } → Escrevemos agora a rotina para acender, esperar algum tempo e depois apagar o LED. Declaramos a função loop{ void loop(){ Sentamos o pino do LED para nível logico alto; digitalWrite(LED, HIGH); Esperamos um tempo (1000 ms = 1 s); delay(1000); Sentamos o pino do LED para nível logico baixo; digitalWrite(LED, LOW); Esperamos um tempo (1000 ms); delay(1000); Fechamos a funcao loop} }
  • 78.
    Vejamos o queas linhas mais relevantes significam: → pinMode(pino, modo) Configura um pino especifico para se comportar como uma entrada ou uma saida (INPUT ou OUTPUT). → digitalWrite(pino, valor) Escreve em um pino digital o valor logico Alto ou Baixo. (HIGH ou LOW) → delay(tempo) Pausa o programa durante um certo tempo especificado em milissegundos (ms).
  • 79.
     Obs: vocêsdeve ter percebido que usamos no início a variável padrão  int LED = x ao pino sempre depois usar no nome LED pode ser substituído por outra função  Ou seja se você usa sensor de movimento a função “pinBuzzer, pinSensorPIR, valorSensorPIR  pinLed = x;  Sempre usamos ; “ponto e virgula no final do código ”  const int = LED;  // usando para descreve o que esta acontecendo essa função o arduino não reconhece como  Código  void setup () este usa depois “ void setup”()  Quando usa { quer dizer que a programação iniciou ou seja esta aberta  Quando usa } quer dizer que a programação terminou ou seja esta fechada
  • 80.
  • 81.
  • 83.
    arduino - referencias •Lista dos comandos da linguagem em: http://arduino.cc/en/Reference/HomePage • Lista dos tutoriais em: http://www.arduino.cc/en/Tutorial/HomePage 83