Arduino Hack Day PROMOVA VOCÊ TAMBÉM UM ARDUINO HACK DAY!



Documentos relacionados
Hacking Class Controlando tomadas da sua casa via Internet

Arduino Hack Day PROMOVA VOCÊ TAMBÉM UM ARDUINO HACK DAY!

Viabilizado pela Organização do ERI MS; Apoiado pelo grupo ArduinoMS; Agradecimentos especiais ao do SENAC e UCDB.

Características técnicas Baseado no ATMega da empresa AVR, fabricante de micro-controladores em plena ascensão e concorrente do PIC Pode usar ATMega

Manual Técnico Módulo Ponte H Dupla

Na primeira aula, conhecemos um pouco sobre o projeto Arduino, sua família de placas, os Shields e diversos exemplos de aplicações.

Eletrônica & Robótica open-source

Arduino MS. Sobre esta Oficina. Oriunda do Arduino Hack Day Organizado pelos Coordenadores do ArduinoMS Agradecimentos ao apoio do SENAC

Introdução ao Arduino. Pessanha Santos ASPOF EN-AEL

Manual Técnico Arduino Supervisório MODBUS & Conversor RS485

ACENDENDO AS LUZES. Capitulo 2 - Aula 1 Livro: Arduino básico Tutor: Wivissom Fayvre

Arduino. Wanderson Souza Professor de Robótica

ARDUINO UNO Guia do Usuário

1Manual do Program-ME... 6

Manual de funcionamento Esteira transportadora

InteropMix Arduino e Internet das Coisas. Leandro Ramos Leonardo Toledo Robson Machado

Minicurso Arduino JACEE 2012

Manual do instalador Box Output AC Rev Figura 01 Apresentação do Box Output AC.

Minicurso de Arduino

Robótica com Arduino CDI. Professor: Paulo Marcos Trentin

Easy Lab. Manual do usuário Revisão /11/14. DMA Electronics 1

RESULTAR EM "CHOQUE ELÉTRICO", FOGO, ENTRE OUTROS.

Cerne Tecnologia e Treinamento

Manual do instalador Box Output DC Rev Figura 01 Apresentação do Box Output DC.

Minicurso de Arduino

Kit de desenvolvimento ACEPIC 40N

A idéia hardware sugerida é colocar a placa entre o PC e o microcontrolador, conforme mostrado no esquema abaixo.

Arquitetura do Microcontrolador Atmega 328

Conceitos Fundamentais de Eletrônica

ACIONAMENTOS ELETRÔNICOS (INVERSOR DE FREQUÊNCIA)

Guia de Instalação Rápida PLC KL320. Keylogix, abrindo portas para a automação industrial. KEYLOGIX

Leitor MaxProx-Lista-PC

Tutorial de Eletrônica Aplicações com 555 v

Cerne Tecnologia e Treinamento

Manual do instalador Box Input Rev Figura 01 Apresentação do Box Input.

Suporta os microcontroladores: R. Leonardo da Vinci, Campinas/SP CEP F.: (19) /

RECONHECIMENTO DE VOZ UTILIZANDO ARDUINO

Descrição dos pinos do Módulo Driver Motor com Dupla Ponte-H - L298N:

MANUAL DE INSTALAÇÃO E PROGRAMAÇÃO CONVERSOR - IP / USB / SERIAL RV1

Placa Acessório Modem Impacta

Comunicação Serial com o AVR ATMEGA8

Lojamundi CNPJ: / Av. Paranoá Qd. 09 conj. 01 lote 01 sala 304, Paranoá DF CEP:

Professor: Fernando Krein Pinheiro

Manual Técnico Arduino Programador Supervisório Gravador de Bootloader

Módulo WCM200. Controlador WSI250 - HI Tecnologia

TUTORIAL Arduino Nano

Parallel to Serial Shifting IN

Boletim Técnico R&D 03/08 CARACTERÍSTICAS DO DRIVER MPC6006L 14 de março de 2008

Introdução do Arduino para aquisição de dados e controle de instrumentos

Arduíno. Adriano Cruz. 16 de setembro de Adriano Cruz () Arduíno 16 de setembro de / 51

Cerne Tecnologia e Treinamento

Motor de Passo - Arduino

Cerne Tecnologia e Treinamento

Acionamento Motor CC 1.25 a 1.6/2.1 CV - BIVOLT

Controle para Motores de Passo usando módulo USB-6008

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ CÂMPUS CURITIBA CURSO DE ENGENHARIA DE COMPUTAÇÃO

Arduino Aula 4 SHIELDS: BLUETOOTH, ETHERNET E EMG

Projeto No. 11 Display de Leds de 7 Segmentos

1.3 Conectando a rede de alimentação das válvulas solenóides

Este tutorial mostra como utilizar as ferramentas Send Mail e Web Commands.

WiFiShield. Introdução

IW10. Rev.: 02. Especificações Técnicas

Plataforma de desenvolvimento dspic - SIGMA128 -

Manual PROTO-BEE Versão 1.1 Julho/2012 (nota na última página deste) Copyright, ROGERCOM Fones: / Cel.

Servo Motores. Jener Toscano Lins e Silva

Robótica com Arduino

Microcontrolador Arduino: Aplicação em controle PI

CAPÍTULO 5. INTERFACES PARA PERIFÉRICOS DE ARMAZENAMENTO INTERFACES DIVERSAS: FIREWIRE, SPI e I 2 C INTERFACES COM O MUNDO ANALÓGICO

Uma Introdução ao ARDUINO e suas Aplicações na Robótica. André F. Núñez

Programação em BASIC para o PIC Mostrando Mensagens no Display LCD Vitor Amadeu Souza

Introdução. àeletrônica com Arduino. Felipe Nascimento Martins. VIII Jornada de Iniciação Científica, Desenvolvimento Tecnológico e Inovação do Ifes

Hera Indústria de Equipamentos Eletrônicos LTDA Manual de Instalação e Operação DISCADORA VIA CELULAR. HERA HR Cel.

Manual. Controle de motores via Bluetooth. William Trevine

Arquitetura e Organização de Computadores. Conjunto de Instruções da Arquitetura CompSim

Na Placa de Comando estão montados os circuitos para partida direta, partida direta com reversão e partida estrelatriângulo;

Conteúdo deste Kit: E-6 uno

AUTOMAÇÃO INDUSTRIAL INTRODUÇÃO A ROBÓTICA

Cerne Tecnologia e Treinamento

Alarme Automotivo com mensagem para móvel utilizando Arduino

// Arduino {? } Mais o que é?..

PROGRAMAÇÃO FÁCIL DO. Micro Master. Midi Master

RECEPTOR GPS ME1513 ARM7 LPC ME Componentes e Equipamentos Eletrônicos Ltda

1. INTRODUÇÃO COMPUTADOR

Arduino e Proteus (Tutorial)

Controle universal para motor de passo

Manual de Instalação. GPRS Universal

DeviceNet Drive Profile CFW-09

MÓDULO DE ORIENTAÇÃO TCA-MASTER

Introdução à Plataforma ARDUINO

PROJETO. Ponte Digital. Luciano Daniel Amarante - carabina@pop.com.br Ricardo Watzko - rw@netuno.com.

O Laboratório de Garagem

Intel Galileo: Instalação e IDE Arduino

CAPÍTULO 2 CARACTERÍSTICAS DE E/S E PORTA PARALELA

3.1.6 Entradas digitais Quantidade: 8. Tipo: NPN / PNP conforme configuração, dividida em 2 grupos de 4 entradas. Impedância de entrada: 8.8KΩ.

2014 Lumikit Sistemas para Iluminação

Datasheet Componentes Eletrônicos

APLICAÇÃO PARA ANÁLISE GRÁFICA DE EXERCÍCIO FÍSICO A PARTIR DA PLATAFORMA ARDUINO

Controle remoto por Bluetooth

Transcrição:

Arduino Hack Day Evento promovido por entusiastas, universidades e empresas Colaborativo e participativo Informações técnicas e troca de experiências Elétron Livre apoia a iniciativa emprestando materiais, cedendo direito de uso de slides e ajudando na preparação geral do evento PROMOVA VOCÊ TAMBÉM UM ARDUINO HACK DAY!

Sobre este Arduino Hack Day Esse evento é realizado por: Lucas Fragomeni Uaná Tecnologia

Agenda Padrão Introdução a Arduino Controlando tomadas pela Internet Controle de motores com Arduino Programando Robôs Criação de placas e shields

Introdução ao Arduino 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 do Arduino Projeto criado na Itália pelo Mássimo Banzi no Interaction Design Institute Ivrea; Nasceu para complementar o aprendizado de programação, computação física e gráfica; Nasceu do Processing e Wiring; Processing é um ambiente e linguagem de programação para criar imagens, animação e interação;

Simplicidade no circuito:

Muitas 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

Vários tipos, vários fabricantes... Mega Lilypad Nano Uno Pro Arduino BT Freeduino Severino Program-ME

Atmega168 / Atmega328: coração 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

Resumo das conexões da placa

FT232RL Conversor USB- Serial Conector USB Regular 7085: Recebe até 12 volts e regula para 5 volts Alimentação externa: Até 12 volts

Botão de reset ICSP Para gravar bootloader ou programas/firmware AtMega328 /168/8

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

Portas analógicas 4 e 5 São as portas uzlizadas para conexões via I2C / TWI. GND Portas analógicas de 0 a 5 Reset 5 volts Podem funcionar como digitais de 14 a 19 3.3 volts VIN Alimentação de entrada sem regulagem

Shields: arquitetura modular inteligente Arduino estabeleceu um padrão de pinagem que é respeitado por diversas placas shield:

Por dentro do MCU

Programando para Arduino IDE pode ser baixada de www.arduino.cc A IDE foi desenvolvida com Java, portanto precisaremos de um máquina virtual 1.5 ou 1.6 instalada Funciona em Windows. Mac OS X e Linux (em alguns windows e mac pode ser necessário colocar driver) Utiliza GCC + GCC Avr para compilação (você pode também programar diretamente com GCC!) A transferência para a placa é feita via USB pelo IDE; (mas também pode ser feita com gravadores ICSP!)

Partes básicas do programa Arduino Temos que obrigatoriamente programar dois métodos: void setup() { } void loop() { } O setup é executado úma só vez assim que a placa for ligada e o loop terá o código de execução infinita

Portas digitais e analógicas Na prática ligamos componentes em portas digitais e analógicas e através do código Arduino, manipulamos as portas: 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 pisca 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 pisca led com Arduino Esta conexão é bem simples somente para efeito de teste para piscar o led. O correto é ligar um resistor usando uma protoboard.

Exemplo 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);

LDR no Arduino sem protoboard

DEMO Apresentação básica do Arduino IDE: Compilação; Samples; Upload; Dicas Demonstração do código com Arduino convencional Demonstração do código com Program-ME

Program-ME: Arduino turbinado nacional

Ligando componentes Com o mapa de portas documentado a seguir, conseguimos saber qual jumper habilita qual componente e em qual porta Jumpers são uzlizados para ligar ou desligar os componentes on- board Se todos os jumpers forem rezrados, todas as portas são liberadas deixando o Program- ME funcionando como um Arduino. Você pode escolher o que ligar!

Mapa de portas Vs. componentes Código Porta Componente L1 14 (igual analógica 0) Led L2 1 Led L3 2 Led L4 3 Led L5 4 Led L6 5 Led L7 8 Led L8 6 Led L9 13 Led C1 Analógica 5 LDR

Mapa de portas Vs. componentes Código Porta Componente Q2 Digital 6 Led Q3 Digital 9 Led Q4 Digital 18 Led Q5 Digital 17 Led Chv1 Digital 0 Chave microswitch / botão Spk Digital 12 Speaker Servo- 1 Digital 10 Entrada servo- 1 Servo- 2 Digital 11 Entrada servo- 2 JP7 Analógica 1 Entrada analógica / potenciômetro JP6 Analógica 2 Entrada analógica / potenciômetro

Selecionando alimentação O Program-ME possui um jumper para seleção de alimentação USB ou fonte externa Toda vez que ligar componentes que possam consumir mais que 500ma, devemos alimentar com fonte externa! Durante os laboratórios de motores e relés lembre-se de mudar este jumper e alimentar com fonte externa

Selecionando alimentação Jumper Seleção Externo ou USB

Lab 1: primeiro contato com Program-ME / Arduino Ligar sua placa no cabo USB e no PC Verificar o jumper de alimentação configurando para USB se necessário Digitar o código a seguir no Arduino IDE Clicar no botão de transferência de sketch

Lab 1:Exemplo pisca 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); }

O que precisamos para controlar uma tomada via Web Microcontrolador Relê, transistor, diodo e resistor PC ou um shield Ethernet, WiFi ou ZigBee para seu microcontrolador Aqui vamos usar... Arduino UNO Placa Tomad@ PC e shield XBee para Arduino

Porque é necessário utilizar relés? As portas de saída do microcontrolador (ATmega), utilizado nas placas Arduino, tem uma capacidade máxima de corrente de 40mA por porta. Essa corrente é suficiente apenas para alimentar uns 4 Leds comuns, portanto para acionar dispositivos que consomem correntes acima de 40mA em 5Volts, dispositivos de voltagens maiores e dispositivos alimentados com tensão AC, é necessário colocar um transistor e um relé entre o micro-controlador e a carga.

O que é um relé? Os relés são basicamente interruptores acionados elétricamente. Os relés podem possuir um ou mais contatos ( interruptores ) sendo que esses contatos podem ser: NA (normalmente aberto) / NO (normal open) ou NF (normalmente fechados) / NC (normal closed).

Como funciona um Relé O acionamento dos contatos de um relé ocorre quando a sua bobina é energizada. Nesse momento é criado um campo magnézco que atrai uma alavanca responsável pelo acionamento dos contatos Para acionar um relé precisamos de transistor e diodo de proteção relé simples relé duplo

Porque é necessário uzlizar o transistor? Existem relés bem pequenos que poderiam ser acionados diretamente por um microcontrolador, porém na maioria dos casos uzlizamos um transistor entre a porta do micro- controlador e o relé devido a corrente necessária para azvar a bobina do relé ser maior que 40mA.

Tensão reversa nos relés Ao desenergizar a bobina de um relé, ocorre um fenômeno que faz com que seja gerada uma tensão reversa pela bobina. Devemos proteger o circuito responsável pelo acionamento, instalando um diodo em paralelo com a bobina.

Placa Tomad@

Hacking Class Componentes da placa R1 e R2 = resistor 1k para os transistores R3 e R4 = resistor 330R para os leds D1 e D2 = diodo IN4007 Led1 e Led2 = led on / off Fusível 1 e Fusível 2 = proteção T1 e T2 = transistor para acionar bobina do relê Relê 1 e Relê 2 Bornes para encaixe dos fios de acionamento da saída do contato do relê

Conectando seu Program-Me na placa Tomad@

Hacking Class Ligando a placa no Arduino

Hacking Class Ligando a placa na tomada Devemos romper o fio de uma das fases; Cortamos o fio e vamos ligar cada uma das pontas em um dos bornes da placa

void setup() { pinmode(2, OUTPUT); pinmode(3, OUTPUT); } void loop() { digitalwrite(3, LOW); digitalwrite(2, HIGH); delay(1000); digitalwrite(2, LOW); digitalwrite(3, HIGH); delay(1000); }

1. Computador conectado na Web com servidor Java recebe request HTTP com solicitação para acionar a tomada 2. Este servidor web terá uma placa Arduino ligada permanentemente. O servlet (ou equiv) vai acionar a placa via comunicação serial RS- 232. 3. Para controlar as tomadas, vamos ligar a placa Tomad@ no Arduino. Essa placa possui um par de relês que podem ser ligados em uma tomada e acionados on / off através de sinal digital 0 ou 1 4. Vamos ligar uma tomada no relê da nossa placa ou então um aparelho qualquer.

void setup() { Serial.begin(9600); pinmode(2, OUTPUT); pinmode(3, OUTPUT); } void loop() { if(serial.available() >0) { int incoming=serial.read(); Serial.println("Recebendo dados"); Serial.println(incoming, DEC); acionarrele(incoming);// seu protocolo } }

void acionarrele(int codigo) { if(codigo=65) { Serial.println("HIGH no rele 1"); digitalwrite(3, HIGH); } else if(codigo=66) { Serial.println("LOW no rele 1"); digitalwrite(3, LOW); } else if(codigo=67) { Serial.println("HIGH no rele 2"); digitalwrite(2, HIGH); } else if(codigo=68) { Serial.println("LOW no rele 2"); digitalwrite(2, LOW); } }

Hacking Class Código Servlet response.setcontenttype("text/html;charset=utf-8"); PrintWriter out = response.getwriter(); try { byte[] dados = new byte[1]; dados[0] = Byte.parseByte(request.getParameter("rele")); try { Arduino.enviar(dados);...

outputstream = serialport.getoutputstream(); serialport.setserialportparams(9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE); serialport.notifyonoutputempty(true); outputstream.write(bytes); serialport.close();

Vamos praticar? Laboratório de uso de Arduino e placa tomad@

Motores CC Baseados no principio da atração e repulsão entre pólos magnézcos os motores CC são uma aplicação inteligente da comutação de circuitos eletromagnézcos. Principio de Funcionamento:

Regra da mão esquerda O senzdo da rotação do motor dependerá da polaridade da ligação da fonte de alimentação e está vinculada com a regra da mão esquerda, que define o senzdo da corrente, do campo gerado e do movimento. E a velocidade de rotação dependerá da corrente que atravessa o circuito e consequentemente da tensão aplicada.

Partes de um Motor DC

CaracterisZcas Gerais dos Motores CC Um motor cc é caracterizado basicamente por: Dimensionamento ysico; Potência nominal; Tensão nominal; Corrente nominal; Velocidade nominal; Torque nominal; Torque de frenagem; Potência (WaUs) = Tensão (Volts) x Corrente (Amperes)

Redutor de rotação.

Circuito de acionamento com um transistor A maneira mais simples de controlar um motor é uzlizando um único transistor. Com esse método podemos controlar o acionamento e a velocidade do motor. O circuito para esse controle é parecido com o circuito de acionamento do solenóide, como podemos ver a seguir:

Circuito para controle de 2 motores Podemos notar que a alimentação do circuito lógico é feita com 5V e a alimentação dos motores é separada, podendo ser de até 36V.

Principio de funcionamento Servo Motores

Vista explodida de um servomotor

Controle do Servo Motor

CaracterísZcas do Servo Motor Sistema de controle: Largura de pulso com 1,52ms para posição neutra Tipo do Motor: 3- polos Tensão de Alimentação: 4.8V ou 6V Consumo de potência: 6V x 8mA (em descanso) Torque: 33,3 oz- in (2,4 kg/cm) @ 4.8V 42 oz- in (3,0 kg/cm) @ 6V Tempo de trânsito: 0,28 seg/60 @ 4.8V 0,22 seg/60 @ 6V Dimensões: 40 x 20 x 36mm Peso: 44g Diametro do eixo: 5,88mm

Servos digitais Possuem uma taxa de atualização da posição muito maior. Enquanto os servos analógicos são atualizados 30 vezes por segundo (30Hz) os digitais são atualizados 300 vezes por segundo (300 Hz). O torque pode chegar a ser 3 vezes maior que o do servo analógico. Os servos digitais também podem ser programados em relação ao posicionamento, definindo limites e posições para o caso de falhas.

Conexão e Esquema Elétrico

Padrões de conexão dos Servos Outra diferença está na conexão mecânica do eixo do servo, que no Hitec tem 24 dentes e no Futaba 25.

1. Laboratório de Servomotores (laboratório assiszdo, instrutor guia alunos) Obje`vo: PraZcar. Tabela de a`vidades: Laboratório de servo