Arduino
Transcrição
Arduino
Governo do Estado de Pernambuco Secretaria de Educação Secretaria Executiva de Educação Profissional Escola Técnica Estadual Professor Agamemnon Magalhães ETEPAM Arduino: Primeiros Passos Prof. Jener Toscano Lins e Silva Toscano Lins e Silva Características da plataforma Arduino • O Arduino é uma plataforma de prototipagem eletrônica open-source que se baseia em hardware e software flexíveis e fáceis de usar. • É destinado a artistas, designers, hobbistas e qualquer pessoa interessada em criar objetos ou ambientes interativos. • O Arduino pode interagir com os seus arredores, controlando luzes, motores e outros atuadores. • O microcontrolador na placa é programado com a linguagem de programação Arduino. • Os projetos desenvolvidos com o Arduino podem ser autônomos ou podem comunicar-se com um computador para a realização da tarefa, com uso de software específico. Microcontroladores - Prof. Jener Toscano 2 A plataforma de desenvolvimento Arduino • O Arduino é formado por dois componentes principais: Hardware e Software. • O hardware é composto por uma placa de prototipagem na qual são construídos os projetos. • O software é uma IDE, que é executado em um computador onde é feita a programação, conhecida como sketch, na qual será feita upload para a placa de prototipagem Arduino, através de uma comunicação serial. • O sketch feito pelo projetista dirá à placa o que deve ser executado durante o seu funcionamento. Microcontroladores - Prof. Jener Toscano 3 Hardware Arduino UNO Os diversos conectores que servem para interface com o mundo externo • 14 pinos de entra e saída digital (pinos 0-13): – Esses pinos podem ser utilizados como entradas ou saídas digitais de acordo com a necessidade do projeto e conforme foi definido no sketch criado na IDE. • 6 pinos de entradas analógicas (pinos A0 - A5): – Esses pinos são dedicados a receber valores analógicos, por exemplo, a tensão de um sensor. O valor a ser lido deve estar na faixa de 0 a 5 V onde serão convertidos para valores entre 0 e 1023. • 6 pinos de saídas analógicas (pinos 3, 5, 6, 9, 10 e 11): – São pinos digitais que podem ser programados para ser utilizados como saídas analógicas, utilizando modulação PWM. Microcontroladores - Prof. Jener Toscano 4 Alimentação • A placa pode ser alimentada pela conexão USB ou por uma fonte de alimentação externa com valores de 7 a 12 volts. • O CI regulador de tensão NCP1117 + diodo D1 fazem a proteção da placa quando a tensão ligada for invertida. Microcontroladores - Prof. Jener Toscano 5 Circuitos de Proteção • • • • • • Quando o cabo USB é plugado, a tensão não precisa ser estabilizada pelo regulador de tensão. Dessa forma a placa é alimentada diretamente pela USB. Dois varistores (Z1 e Z2) protege a placa de picos de tensões elevadas transientes. Os resistores de 22 Ohms (RN3A e RN3D) protege os pinos do microcontrolador de descarga elétrica eventual de um usuário em contato com o conector USB. O fusível resetável (F1) de 500mA impede que a porta USB do computador queime, caso ocorra uma falha no circuito. O ferrite L1 evita que ruídos da USB externa entrem no circuito da placa Arduino. O regulador de (U2- LP2985), é responsável por fornecer uma tensão continua de 3,3V e corrente máxima de 50 mA para alimentação de circuitos ou shields. Microcontroladores - Prof. Jener Toscano 6 Conectores de alimentação para conexão de shields e módulos na placa Arduino UNO • • • • • • IOREF - fornece uma tensão de referência para que os shields possam selecionar o tipo de interface apropriada. Dessa forma, shields que funcionam com a placas Arduino alimentadas com 3,3V, podem se adaptar para funcionar em 5V, e vice-versa. RESET - pino conectado ao pino de RESET do microcontrolador. Pode ser utilizado para um reset externo da placa Arduino. 3,3 V. – fornece tensão de 3,3V. para alimentação de shield e módulos externos. Corrente máxima de 50 mA. 5 V - Fornece tensão de 5 V para alimentação de shields e circuitos externos. GND - pinos de referência, terra. VIN - pino para alimentar a placa através de shield ou bateria externa. Quando a placa é alimentada através do conector jack, a tensão da fonte estará nesse pino Microcontroladores - Prof. Jener Toscano 7 Comunicação USB • • • • O microcontrolador ATMEGA16U2 é responsável pela comunicação via USB entre o computador e a placa Arduino UNO, possibilitando o upload do código binário gerado após a compilação do programa feito pelo usuário. Possui um conector ICSP para gravação de firmware através de um programador ATMEL, para atualizações futuras. Dois leds (TX, RX), controlados pelo software do microcontrolador, que indicam o envio e recepção de dados da placa para o computador. Possui um cristal externo de 16 MHz. Microcontroladores - Prof. Jener Toscano 8 Conexão dos Microcontroladores na placa do Arduino UNO ATMEGA16U2 ATMEGA328P Microcontroladores - Prof. Jener Toscano 9 O microcontrolador ATMEGA328 • É o componente principal da placa Arduino UNO: • É um dispositivo de 8 bits da família AVR com arquitetura RISC avançada e com encapsulamento DIP28. – Com 32 KB de Flash (mas 512 Bytes são utilizados pro bootloader), – 2 KB de RAM e 1 KB de EEPROM. • Pode operar a até 20 MHz, porém na placa Arduino UNO opera em 16 MHz, valor do cristal externo que está conectado aos pinos 9 e 10 do microcontrolador. • Possui 28 pinos, sendo que 23 desses podem ser utilizados como E/S. Microcontroladores - Prof. Jener Toscano 10 Entradas e saídas • • • Possui 14 pinos de entrada e saídas digitais que trabalham com tensão de 5 volts e corrente de 40 mA. Cada pino possui resistor de pull-up interno habilitado por software. Pinos com funções digitais especiais: – – – • PWM : 3,5,6,9,10 e 11 podem ser usados como saídas PWM de 8 bits através da função analogWrite(); Comunicação serial: 0 e 1 podem ser utilizados para comunicação serial; Interrupção externa: 2 e 3 para gerar uma interrupção externa, através da função attachInterrupt(). E 6 pinos de entrada analógicas, onde cada um tem a resolução de 10 bits. – – Por padrão a referencia do conversor AD está ligada internamente a 5V, ou seja, quando a entrada estiver com 5V o valor da conversão analógica digital será 1023; O valor da referência pode ser mudado através do pino AREF. Microcontroladores - Prof. Jener Toscano 11 Outras Características da placa • • • • • • O usuário deve ter muito cuidado ao manusear os pinos de E/S, pois entre os pinos do microcontrolador e a barra de pinos, não há nenhum resistor, que limite a corrente Cuidado para não provocar curto circuito nos pinos na sua parte inferior da placa, pois a mesma não possui isolação. A placa não possui botão liga/desliga. Para desligar a alimentação, tem que “puxar” o cabo USB. A placa Arduino UNO é programada através da comunicação serial, pois o microcontrolador vem programado de fábrica com o bootloader para fazer o upload do programa a ser carregado na placa através do protocolo STK500. A programação do microcontrolador também pode ser feitar através do conector ICSP (in – circuit serial programming), utilzando um programador ATMEL. A placa Arduino UNO possui pequenas dimensões cabendo na palma da mão. Possui 4 furos para que a mesma possa ser fixada em alguma superfície. Microcontroladores - Prof. Jener Toscano 12 Resumo da placa Arduino UNO Microcontroladores - Prof. Jener Toscano 13 Software do Arduino • • • • • O software para programação do Arduino é uma IDE que permite a criação de sketches para a placa Arduino. A linguagem de programação é modelada a partir do programa escrito . Quando pressionado o botão upload da IDE, o código escrito é traduzido para a linguagem C e é transmitido para o compilador que realiza a tradução dos comandos para uma linguagem que pode ser compreendida pelo microcontrolador. A IDE apresenta um alto grau de abstração possibilitando o uso do microcontrolador sem que o usuário conheça a sua estrutura interna. A IDE do Arduino possui uma linguagem própria baseada na linguagem C e C++. Microcontroladores - Prof. Jener Toscano 14 O Ciclo de programação do Arduino • • • • Conexão da placa a uma porta USB do computador; Desenvolvimento de um sketch com comandos para a placa; Upload do sketch para a placa, utilizando a comunicação USB. Aguardar a reinicialização, após ocorrerá à execução do sketch criado. • A partir do momento que foi feito o upload o Arduino não precisa mais do computador: o Arduino executará o sketch criado, desde que seja ligado a uma fonte de energia. Microcontroladores - Prof. Jener Toscano 15 IDE do Arduino • A IDE pode ser baixada gratuitamente no site do Arduino, onde pode ser escolhida a melhor opção de download conforme plataforma utilizada. Microcontroladores - Prof. Jener Toscano 16 Seleção do modelo de placa Arduino • Após a conexão do Arduino ao computador, é atribuído a placa uma COM. A primeira vez que o programa Arduino for executado deve-se selecionar o modelo de placa utilizado, no nosso caso escolheremos Arduino Uno. Microcontroladores - Prof. Jener Toscano 17 Seleção da porta de comunicação Após estas configurações o ambiente está preparado para uso e pode-se testar qualquer um dos exemplos que acompanham a IDE ou até mesmo com um novo sketch. Microcontroladores - Prof. Jener Toscano 18 Iniciando a Programação Arduino • A placa Arduino Uno possui um Led ligado ao pino digital 13 que pode ser utilizado para o teste, e na IDE podemos carregar o exemplo Blink: Microcontroladores - Prof. Jener Toscano 19 Verificação do Código • Para verificar de o código está correto deve-se clicar no ícone verify, após a compilação é exibida uma mensagem de status da operação e caso esteja tudo certo será exibida a quantidade de bytes gerados pelo programa: • Para gravar o código na memória flash do microcontrolador é necessário clicar no ícone Upload, para ser transferido o código para a placa que após alguns segundos o LED ligado ao pino 13 começará a piscar em intervalos de 1 segundo. Microcontroladores - Prof. Jener Toscano 20 Analisando o Código • • • • • • • • • • O código do exemplo Blink é relativamente simples, porém apresenta a estrutura básica de um programa desenvolvido na IDE Arduino. Inicialmente nota-se que existem duas funções obrigatórias em um programa Arduino: setup() e loop(). A função setup () é executada na inicialização do programa e é responsável pelas configurações iniciais do microcontrolador, tal como definição dos pinos de I/O, inicialização da comunicação serial, entre outras. A função loop () será onde ocorrerá o laço infinito da programação, ou seja, onde será inserido o código que será executado continuamente pelo microcontrolador. Dentro do loop principal está o código que fará o led ligado pino 13 piscar em intervalos de 1 segundo. A função digitalWrite(led, HIGH); coloca o pino em nível lógico 1, ligando o led. A função delay(1000); aguarda o tempo de 1000 ms, ou seja, 1 segundo para que possa ser executada a próxima instrução. A função digitalWrite(led, LOW); coloca o pino em nível lógico 0, desligando o led. E novamente é esperado 1 segundo com a função delay(); O loop é repetido infinitamente enquanto a placa estiver ligada. Microcontroladores - Prof. Jener Toscano 21 A referência da linguagem Arduino • Pode ser acessada através do menu <help>: Microcontroladores - Prof. Jener Toscano 22 Conclusão • A placa Arduino UNO é uma ótima ferramenta para quem está começando. • É uma ferramenta simples e possui um hardware mínimo, com várias características interessantes de projeto. • Sua conectividade USB e facilidade em programar é, sem dúvida nenhuma, um grande atrativo. http://www.embarcados.com.br/arduino-uno/ Microcontroladores - Prof. Jener Toscano 23