O documento apresenta o Arduino, uma plataforma de hardware e software open-source para desenvolvimento de projetos eletrônicos e robótica. Descreve as características do Arduino, como programá-lo usando a IDE, exemplos de aplicações e robótica com Arduino utilizando diferentes materiais de construção.
2. Quem sou eu?
• Pós-Graduando em Sistemas e Desenvolvimento
WEB
• Formado em Sistemas de Informações - (FIAP)
• Twitter: @HeiderLopes
• Blog: www.heidertreinamentos.com.br/blog
• Programador
4. Introdução
• Plataforma baseada em Atmel da AVR
(ATMega168);
• Oferece um IDE e bibliotecas de programação de
alto nível;
• Open-source hardware e software
• Ampla comunidade
• Programado em C/C++
• Transferência de firmware via USB
• MCU com bootloader
5. Histórico
• Criado na Itália
– Mássimo Banzi no Interaction Design Institute Ivrea;
• Nasceu para complementar o aprendizado de
programação, computação física e gráfica;
9. Atmega168 / Atmega328
•
•
•
•
•
•
•
•
•
•
Características do ATmega 168:
RISC
20 MIPS (20 Milhões de instruções por segundo)
16Kb Flash / 512 b EEPROM / 1Kb RAM Estática
10.000 ciclos na Flash e 100.000 na EEPROM
2 contadores / temporizadores de 8bits
1 contador / temporizador de 16bits
1 temporizador de tempo real com clock a parte
14 portas digitais
6 portas analógicas
10. Características técnicas
•
•
•
•
•
•
•
•
6 canais PWM
6 conversores analógico/digital de 10 bits
1 serial programável (USART)
1 interface SPI (Serial Peripheral Interface)
1 interface serial a 2 fios (I2C)
1 watch dog timer programável
1 comparador analógico no chip
Interrupção ou wake-up na alteração de estado
dos pinos
12. Demonstrando uma placa Arduino
FT232RL
Conversor USB-Serial
Conector USB
Regular 7085:
Recebe até 12 volts e
regula para 5 volts
Alimentação externa:
Até 12 volts
13. Demonstrando uma placa Arduino
Botão de reset
ICSP
Para gravar bootloader
ou programas/firmware
AtMega328 /168/8
14. Demonstrando uma placa Arduino
AREF
Referência analógica
Padrão 5 volts
GND
Portas digitais 0 a 13
0 RX 1 TX = usada durante
transferência de sketch e
comunicação serial com
placa
2,4,7,8,12,13 = portas
digitais convêncionais
3,5,6,9,10,11 = portas PWM
15. Demonstrando uma placa Arduino
Portas analógicas 4 e 5
São as portas utilizadas
para conexões via I2C /
TWI.
Portas analógicas de 0 a 5
GND
Reset
Podem funcionar como digitais de 14 a 19
5 volts
VIN
3.3 volts
Alimentação de entrada sem regulagem
16. Porta Digital Vs. Analógica
• Digital: trabalha com 0 e 1 na lógica binária.
– Digital do Arduino segue padrão TTL onde:
• 0 a 0,8 volts = 0
• 2 a 5 volts = 1
• Analógica: valor lido é análogo a tensão.
– Referência de analogia é 5 volts
• 0 volts = 0
• 2.5 volts= 512
• 5 volts = 1023
– Conversor A/D de 10 bits: 0 a 1023
17. Porta Digital Vs. Analógica
• Portas analógicas expressam valores de 0 a 1023
mas não são utilizadas para transferência de
informações precisas
• As portas digitais permitem que dados sejam
transferidos em sequencia através de uma lógica
ou protocolo binário
• Portas digitais não conseguem comandar
potência
18. Porta PWM
• Uma porta híbrida: digital
porém com
modularização de zeros e
uns de forma que
consegue expressar uma
idéia de potência;
19. Na prática
• Ligamos componentes em portas digitais
comuns, pwm ou analógica
• Fazemos leitura e escrita nestas portas afim de
obter um dado ou um determinado
comportamento
• Processamos os dados no microcontrolador
20. Shields
• Arquitetura modular inteligente
• Arduino estabeleceu um padrão de pinagem que
é respeitado por diversas placas shield:
28. Como programar?
•
•
•
•
•
IDE pode ser baixada de www.arduino.cc
A IDE foi desenvolvida com Java (necessário JVM)
Funciona em Windows, Mac OS X e Linux
Utiliza GCC + GCC Avr para compilação
A transferência para a placa pode ser feita
– via USB pelo IDE;
– Gravadores ICSP
29. Primeiros passos na IDE
• Temos que obrigatoriamente programar dois
métodos:
void setup() {
}
void loop() {
}
• O setup é executado úma só vez assim que a placa
for ligada
• O loop terá o código de execução infinita
30. Manipulando as Portas digitais e
analógicas
– pinMode(<porta>, <modo>): configura uma porta
digital para ser lida ou para enviarmos dados;
– digitalWrite(<porta>, 0 ou 1): envia 0 ou 1 para porta
digital
– digitalRead(<porta>): retorna um 0 ou 1 lido da porta
– analogRead(<porta>): retorna de 0 a 1023 com o
valor da porta analógica
– analogWrite(<porta>, <valor>): escreve em uma
porta PWM um valor de 0 a 255
32. Exemplo II: Luz Ambiente
void setup() {
//Inicializando conexão com PC via FT232 cabo
Serial.begin(9600);
}
void loop() {
int luz = analogRead(5); //LDR ligado na 5
//envia informações para o PC
Serial.println(luz);
delay(500);
}
36. Introdução
• A palavra robô vem de robot que foi utilizada em
uma peça de teatro de 1920, chamada R.U.R.
(Rossum's Universal Robots), do tcheco Karel Capek.
• Aparentemente a palavra descende de ROBOTA, que
em checo significa trabalho servil ou trabalho
pesado.
• Uma definição mais realista de robô, seria que ele é
um manipulador reprogramável e multi-funcional
projetado para mover materiais, partes, ferramentas
ou dispositivos especializados através de
movimentos variáveis programados para
desempenhar uma variedade de tarefas.
38. Nos seres humanos
• Nos seres humanos, iniciando pelos seus
sentidos, temos um caminho que passa pelo
tratamento do pensamento e termina ou resulta
em ações.
39. Nos robôs
• Um robô aciona seus atuadores, baseado em seu
processamento que teve como entrada os dados
vindos de seus sensores
• Sentidos - > Sensores
• Pensamentos- > Processamento
• Ações - > Atuadores
40. Robôs: Disitinguindo por capacidade
de processamento
• Todos os robôs têm em comum a realização de
algum tipo de movimento sendo que também
podemos distinguir os robôs pela sua capacidade
de processamento, sendo assim poderíamos
classificar os robôs como:
41. Robô inteligente
• Pode se mover de forma autônoma e segura por
um ambiente não preparado e atingir um
objetivo ou efetivar uma tarefa.
42. Robô não inteligente
• Deve repetir de forma confiável a mesma tarefa
para que foi programado, porém sem enfrentar
variações no ambiente ou situações.
• Nesse caso, a definição fica mais próxima de
automação e pode distinguir entre um robô e
uma máquina de lavar.
43. Robôs de forma geral
• Manipuladores ou braços robóticos;
• Robôs móveis com rodas;
• Robôs móveis com pernas;
• Humanóides
44. Manipuladores ou braço robótico
• Atualmente, a maior
aplicação de robôs é na
área
industrial, principalmente
na produção de bens de
consumo.
• Nessa área, o tipo mais
popularmente conhecido
de robô é o braço
robótico
50. Robôs de madeira
• Compensado / MDF: talvez o
material mais fácil de trabalhar e
muito acessível. É isolante, o que
diminui a preocupação com a
montagem. Pode ser colada e furada
com facilidade. O inconveniente é a
sua relação peso / resistência.
• Duratex: muito fácil de ser
trabalhado, pode ser usado em
alguns casos, porém, é muito flexível
para ser usado como chassi de robôs
maiores.
52. Concluindo
• Arduino é um projeto simples, popular e acessível
• Eletrônica e programação embarcada alto nível
• Na prática ligamos componentes nas portas analógicas e
digitais e escrevemos programas que usam as portas
• Existem diversas bibliotecas que encapsulam a lógica de
comunicação digital ou analógica: servo, motor de
passo, Android, display LCD
• Ter portas digitais analógicas e pmw é um grande valor do
microcontrolador utilizado
• A transfêrencia via USB e a ferramenta / IDE para
programação funcionam em múltiplas plataformas
• Open-source Hardware e Open-source software