Arduíno muito prazer
-
Upload
heider-lopes -
Category
Documents
-
view
293 -
download
3
Transcript of Arduíno muito prazer
Arduíno: muito prazer
Heider Lopes
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
Agenda
• O que é o Arduino?• Como programar?• Robótica com o Arduino• Demonstrações
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
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;
Aplicações práticas
• Robôs• Roupas eletrônicas• Máquinas de corte e modelagem 3D de baixo custo;• Segway open-source• Desenvolvimento de celulares customizados• Instrumentos musicais• Paredes interativas• Instrumentação humana• Circuit bending
Fabricantes
• Mega• Lilypad• Nano• Uno• Pro• Arduino BT• Freeduino• Severino• Program-ME
Modelo de Arduino
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
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
Demonstrando uma placa Arduino
Demonstrando uma placa Arduino
Conector USB
Alimentação externa:Até 12 volts
Regular 7085:Recebe até 12 volts e regula para 5 volts
FT232RLConversor USB-Serial
Demonstrando uma placa Arduino
ICSPPara gravar bootloader ou programas/firmware
AtMega328 /168/8
Botão de reset
Demonstrando uma placa ArduinoPortas digitais 0 a 130 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
GNDAREFReferência analógicaPadrão 5 volts
Demonstrando uma placa Arduino
Portas analógicas de 0 a 5Podem funcionar como digitais de 14 a 19
VINAlimentação de entrada sem regulagem
GND5 volts
3.3 volts
Reset
Portas analógicas 4 e 5São as portas utilizadas para conexões via I2C / TWI.
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
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
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;
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
Shields
• Arquitetura modular inteligente• Arduino estabeleceu um padrão de pinagem que
é respeitado por diversas placas shield:
Exemplo de shields
EXEMPLO DE COMPONENTES
Ping – Sensor de distância ultrasonico
Bússola
Shield LCD Touch screen
SIM Reader
Bluetooth
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
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
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
Exemplo I: Piscando Led
void setup() { pinMode(13, OUTPUT); //porta 13 em output }
void loop() { digitalWrite(13, HIGH); //HIGH = 1 = TRUE delay(500); digitalWrite(13, LOW); //LOW = 0 = FALSE delay(500);}
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);}
Exemplo III: Sensor de movimento
Demonstração da IDE
• Como compilar?• Como ver exemplos?• Como enviar o código para a placa?
ROBÓTICA COM ARDUINO
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.
Paralelo entre robôs e humanos• Sentidos• Pensamentos• Ações
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.
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
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:
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.
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.
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
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
Robô cartesiano
Robôs móveis com rodas
Robôs móveis com pernas
Robôs humanóides
Robôs de papelão
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.
Robôs de plástico
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