Arduino
-
Upload
arlindo-santos -
Category
Education
-
view
1.600 -
download
5
description
Transcript of Arduino
10-04-2023Arlindo Santos - IPB 1
Arlindo Santos
* ARDUINO
ARDUINO
10-04-2023Arlindo Santos - IPB 2
*Objetivos?
*Dar a conhecer novas abordagens no desenvolvimento de aplicações informáticas
*Suscitar curiosidade por parte dos alunos (alguns, não todos)
*Mostrar o que o IPB e os seus alunos fazem
*E também para eu aprender com o feedback de todos!
ARDUINO
10-04-2023Arlindo Santos - IPB 3
*Vamos esquecer o rato e o teclado
*Mix entre a informática (programação) e a eletrónica
ARDUINO
10-04-2023Arlindo Santos - IPB 4
*O princípio …
ARDUINO
10-04-2023Arlindo Santos - IPB 5
*simplificar
Hoje, pequenos dispositivos eletrónicos, como o Arduino, podem facilmente comunicar com computador, e oferecer ao utilizador formas de interação ilimitadas que criam emoções no utilizador.
Mais informação: Documentário http://vimeo.com/31389230
ARDUINO
10-04-2023Arlindo Santos - IPB 6
*Porque o arduino?
*Baixo custo ~20 euros.
*Modularidade.
*Facilidade de uso.
*Facilidade de programação.
*Curto tempo de aprendizado.
*Curto tempo de retorno de implementação.
*Facilidade de troca de informações.
*Implementa a filosofia DiY!
ARDUINO
10-04-2023Arlindo Santos - IPB 7
*Porque o arduino?
* Possui compatibilidade com as linguagens de programação C e C++.
*Apresenta ambiente de desenvolvimento integrado (IDE).
*Utiliza filosofia de projeto open-source.
* Existência de módulos de expansão - shields.
*Comunidade de utilizadores, programadores e autores.
ARDUINO
10-04-2023Arlindo Santos - IPB 8
*Arduino: componentes
Porta USB
Alimentação
Portas de dados analógicos
Portas de dados digitais
Ver mais em : http://arduino.cc/en/Main/ArduinoBoardDiecimila
Microcontrolador
ARDUINO
10-04-2023Arlindo Santos - IPB 9
*Datasheet
Microcontrolador ATmega328Tensão de operação 5 VTensão de entrada (recomendada) 7-12 V
Tensão de entrada (limites) 6-20 V
Pinos E/S digitais 14
Pinos de entrada analógicos 6
Corrente CC por pino E/S 40 mACorrente CC por pino 3.3 V 50 mA
Memória Flash 32 KB, sendo 2 KB utilizados pelo bootloader
SRAM 2 KBEEPROM 1 KBVelocidade de Clock 16 MHz
ARDUINO
10-04-2023Arlindo Santos - IPB 10
*Arduino: outros formatos
LilyPad ArduinoArduino Mega- 126k (Flash Memory)54 Pinos de I/O
ARDUINO
10-04-2023Arlindo Santos - IPB 11
*Arduino: outros formatos
Arduino BT (Bluetooth) Arduino Pro
Ver mais em: http://arduino.cc/en/Main/Hardware
ARDUINO
10-04-2023Arlindo Santos - IPB 12
Sensores Atuadores
acelerómetrotemperatura
humidade
vibração
led’s
LCD’s
laser
ARDUINO
10-04-2023Arlindo Santos - IPB 13
*Mãos à obra!
ARDUINO
10-04-2023Arlindo Santos - IPB 14
*… 5 passos
* É necessário que o arduino faça o que queremos!
* Então é necessário:1. Descarregar o IDE
http://arduino.cc/en/Main/Software
2. Ideia
3. Programar (aprender a linguagem)http://arduino.cc/en/Reference/HomePage
4. Carregar o programa para a memória do Arduino
5. Testar!
ARDUINO
10-04-2023Arlindo Santos - IPB 15
*Primeira aplicação
Ideia?
- Pisca-pisca
Colocar um led em modo intermitente.
ARDUINO
10-04-2023Arlindo Santos - IPB 16
*Primeira aplicação
/*
Programa: Blink, * The basic Arduino example. * http://www.arduino.cc/en/Tutorial/Blink
*/
int ledPin = 12; // Usar o Pino de número 13 do Arduino e ele será chamado "ledPin" e // será uma variável inteira.
/*
Função chamada automaticamente na primeira vez que o código é lido.
Devemos dizer como o Pino deve se comportar.
*/
void setup() {/* PinMode(Nome do pino, ENTRADA ou SAÍDA).
Temos OUTPUT=Saída e INPUT=Entrada.
O nome do pino é LedPIN.
*/
pinMode(ledPin, OUTPUT); }
ARDUINO
10-04-2023Arlindo Santos - IPB 17
*Primeira aplicação
/* Função onde tudo acontece. Chama-se Loop porque é executada infinitas vezes.
*/
void loop()
{
digitalWrite(ledPin, HIGH);
/*
Temos HIGH= LIGADO e LOW=DESLIGADO
O nome do pino é LedPIN, que é o mesmo Pino 13
*/
delay(1000); // Atraso de 1 segundo
digitalWrite(ledPin, LOW); // Temos LOW=DESLIGADO
delay(1000); // Atraso de 1 segundo
}
ARDUINO
10-04-2023Arlindo Santos - IPB 18
*A ter em atenção
*Instalar drivers *Pasta drivers\FTDI
USB Drivers
*Verificar o nome da porta COM
ARDUINO
10-04-2023Arlindo Santos - IPB 19
*A ter em atenção
*Compilar
*Salvar
*Upload
*Selecionar o board e a porta
ARDUINO
10-04-2023Arlindo Santos - IPB 20
*Segunda aplicação
Ideia?
- Botão
O utilizador pressiona um botão.
ARDUINO
10-04-2023Arlindo Santos - IPB 21
*Segunda aplicação
int Pin = 13;
void setup()
{
Serial.begin(9600);
pinMode(Pin, INPUT);
}
void loop()
{
int value = digitalRead(Pin);
Serial.println(value, DEC);
delay(1000);
}
ARDUINO
10-04-2023Arlindo Santos - IPB 22
*Terceira aplicação
Ideia?
- liga e desliga manualmente
O utilizador liga e desliga o Led.
ARDUINO
10-04-2023Arlindo Santos - IPB 23
*Terceira aplicação
int PinBotao = 13;
int PinLed = 12;
void setup()
{
pinMode(PinLed, OUTPUT);
pinMode(PinBotao, INPUT);
}
void loop()
{
int value = digitalRead(PinBotao);
if(value == 1)
digitalWrite(PinLed, HIGH);
else
digitalWrite(PinLed, LOW);
delay(1000);
}
ARDUINO
10-04-2023Arlindo Santos - IPB 24
*Quarta aplicação
Ideia?
- Comunicar com o computador
O utilizador inicia a animação e quando esta finaliza o led acende.
ARDUINO
10-04-2023Arlindo Santos - IPB 25
*Quarta aplicação
int PinBotao = 13;
int PinLed = 12;
int recebido = 0;
int state = 0;
void setup()
{
pinMode(PinLed, OUTPUT);
pinMode(PinBotao, INPUT);
Serial.begin(9600);
digitalWrite(PinLed, LOW);
}
void loop()
{
int value = digitalRead(PinBotao);
digitalWrite(PinLed, LOW);
if(value == 1 && state == 0)
{
Serial.println(value, DEC);
state = 1;
}
if (Serial.available() > 0)
{
digitalWrite(PinLed, HIGH);
recebido = Serial.read();
Serial.println(recebido, DEC);
state = 0;
delay(5000);
}
delay(100);
}
ARDUINO
10-04-2023Arlindo Santos - IPB 26
*Referências
*Web site oficial : http://www.arduino.cc/
*Wikipédia: http://pt.wikipedia.org/wiki/Arduino
*Documentário: http://vimeo.com/31389230
*Loja: http://inmotion.pt
*Loja: http://shop.gtronica.com/index.php?manufacturers_id=7