28
Componentes Avançados Workshop de automação de mini helicópteros Prof. Leandro Rubim Prof. Wagner Sanchez

Componentes Avançados Workshop de automação de mini helicópteros Prof. Leandro Rubim Prof. Wagner Sanchez

Embed Size (px)

Citation preview

Page 1: Componentes Avançados Workshop de automação de mini helicópteros Prof. Leandro Rubim Prof. Wagner Sanchez

Componentes Avançados

Workshop de automação de mini helicópteros

Prof. Leandro RubimProf. Wagner Sanchez

Page 2: Componentes Avançados Workshop de automação de mini helicópteros Prof. Leandro Rubim Prof. Wagner Sanchez

2

Agenda

Introdução

Pré Requisitos

Fases– Blink– Placa com Leds Infravermelho– Controle do mini helicóptero– Controle do mini helicóptero por mobile via bluetooth (próxima

aula)

Page 3: Componentes Avançados Workshop de automação de mini helicópteros Prof. Leandro Rubim Prof. Wagner Sanchez

3

Introdução

Esta aula tem como objetivo apresentar um passo a passo do processo de automação de mini helicópteros através de conceitos básicos de eletrônica e programação, com a utilização de placa Arduino.

A aula é dividida:

– Na explicação e utilidade dos componentes pré-requisitos, tais como a placa Arduino, os Jumpers, placas com Leds Infravermelho, Drivers, Softwares, entre outros.

– Fase 1: montagem simples do circuito eletrônico e configuração inicial da programação com o objetivo de realizar o acendimento de uma luz Led.

– Fase 2: montagem completa do circuito eletrônico e configuração avançada da programação com o objetivo de realizar o controle do mini helicóptero através do computador.

– Fase 3: adição de placa de Bluetooth e utilização do mobile para o controle do mini helicóptero (próxima aula).

Page 4: Componentes Avançados Workshop de automação de mini helicópteros Prof. Leandro Rubim Prof. Wagner Sanchez

4

Pré Requisitos

Page 5: Componentes Avançados Workshop de automação de mini helicópteros Prof. Leandro Rubim Prof. Wagner Sanchez

5

Placa Arduino

A Placa Arduino UNO é um microcontrolador com 14 entradas /saídas digitais e 6 entradas/saídas analógicas, um cristal oscilador de 16 MHz e entrada USB.

Trata-se de um dispositivo de fácil uso e muita eficiência. Podemos conectá-lo a ao USB dos micros e operar dispositivos eletrônicos externos.

Neste projeto iremos acionar com a placa Arduino um emissor de luzes infravermelhos para o controle do micro helicópteros.

Page 6: Componentes Avançados Workshop de automação de mini helicópteros Prof. Leandro Rubim Prof. Wagner Sanchez

6

Led

LED (Light Emitting Diode) Diodo emissor de luz Sua funcionalidade básica é a emissão de

luz em locais e instrumentos onde se torna mais conveniente a sua utilização no lugar de uma lâmpada.

Especialmente utilizado em produtos de microeletrônica como sinalizador de avisos, também pode ser encontrado em tamanho maior, como em alguns modelos de semáforos. Também é muito utilizado em painéis de led, cortinas de led e pistas de led.

Para que ele acenda se faz necessário observar a polaridade, identificada pelos terminais. O Terminal mais curto é o catodo ( negativo) e o terminal mais longo é o positivo.

Page 7: Componentes Avançados Workshop de automação de mini helicópteros Prof. Leandro Rubim Prof. Wagner Sanchez

7

Transistor – IRLB8721

O primeiro protótipo surgiu em 1947 com o descobrimento dos componentes semicondutores, surgiu para substituir as válvulas

Um bloco de germânio e três filamentos de ouro onde um filamento era pólo positivo o outro negativo, e, o terceiro tinha a função de controle. O funcionamento desta era bastante simples, sendo que, quando certa tensão elétrica era aplicada usando o filamento de controle, um fenômeno acontecia e a carga elétrica passava a fluir para o pólo negativo.

O Transistor que iremos usar tem o funcionamento bastante simples. Quando recebe sinais pelo Gate, que será enviada pela placa Arduino, ele libera a corrente negativa que tem conectado no terminal Source pelo terminal Drain. Ou seja, o emissor de infravermelho é conectado ao pólo negativo da bateria, alimentando-o conforme o sinal que a placa envia.

Page 8: Componentes Avançados Workshop de automação de mini helicópteros Prof. Leandro Rubim Prof. Wagner Sanchez

8

Emissor de infravermelho

Este dispositivo a base de leds irá emitir luzes infravermelhas, que por são invisíveis a olho nú.

O computador irá gera um sinal digital (binário) dependendo da tecla pressionada. O sinal sairá pela porta USB e chegará a placa Arduino.

A Placa irá ampliar o sinal e transformará em pulsos elétricos que serão enviados ao emissor de infravermelho, que por sua vez irá produzir sinais infravermelhos que serão captados pelo micro helicóptero.

No micro helicópetro teremos um receptor de infravermelho que irá decodificar os sinais luminosos para sinais digitais para a aeronave seguir.

Page 9: Componentes Avançados Workshop de automação de mini helicópteros Prof. Leandro Rubim Prof. Wagner Sanchez

9

• 8 pilhas de 1,5 volts em série para produzir 12 volts e alimentar o emissor de infravermelho.

• Ferro de solda para que possamos estabelecer as conexões.

Page 10: Componentes Avançados Workshop de automação de mini helicópteros Prof. Leandro Rubim Prof. Wagner Sanchez

10

• Estanho para soldar os componentes eletrônicos.

• Placa de circuito impresso Universal para servir de base na soldagem dos componentes

Page 11: Componentes Avançados Workshop de automação de mini helicópteros Prof. Leandro Rubim Prof. Wagner Sanchez

11

• Cabos flexíveis para as conexões.’

• Multímetro para medições de voltagem e amperagem.

Page 12: Componentes Avançados Workshop de automação de mini helicópteros Prof. Leandro Rubim Prof. Wagner Sanchez

12

• Suga solda para retirar o estanho em excesso.

• Cabo usb A/B para conectar o Arduino ao PC

• Alicates de corte e bico

Page 13: Componentes Avançados Workshop de automação de mini helicópteros Prof. Leandro Rubim Prof. Wagner Sanchez

13

Fase 1

Page 14: Componentes Avançados Workshop de automação de mini helicópteros Prof. Leandro Rubim Prof. Wagner Sanchez

14

Fase 1

Estrutura

A primeira fase consiste em fazer um teste de comunicação do micro com a placa. O Objetivo é acender um Led, que será conectado a saída 13.

O terminal mais longo deve ser conectado a saída 13 e o mais curto no GND da placa

Page 15: Componentes Avançados Workshop de automação de mini helicópteros Prof. Leandro Rubim Prof. Wagner Sanchez

15

Fase 1

IDE

Page 16: Componentes Avançados Workshop de automação de mini helicópteros Prof. Leandro Rubim Prof. Wagner Sanchez

16

Fase 1

Uma vez instalado o driver e o software do Arduino, você passará a trabalhar com o IDE do Arduino para novas configurações na placa ou poderá utilizar os programas que já vem preparados.

Para salvar os programas na placa Arduino é necessário selecionar qual placa está usando (existem diversos modelos) e qual porta COM do PC.

1. Abra o ambiente de desenvolvimento Arduino.

2. No menu, clique na opção TOOLS e depois em BOARD.

3. Selecione o seu modelo.

Page 17: Componentes Avançados Workshop de automação de mini helicópteros Prof. Leandro Rubim Prof. Wagner Sanchez

17

Fase 1

4. No menu, ainda na opção TOOLS, clique em SERIAL PORT e selecione a porta existente.

Agora seu Arduino está instalado e pronto para receber sua ideias!

Page 18: Componentes Avançados Workshop de automação de mini helicópteros Prof. Leandro Rubim Prof. Wagner Sanchez

18

Fase 1

Para entender como funciona o Arduino, vamos começar com o mais básico. Existe um exemplo chamado BLINK que está pronto no software de compilamento do Arduino.

Para acessá-lo clique em FILE > EXAMPLES > 1.BASICS > BLINK

Page 19: Componentes Avançados Workshop de automação de mini helicópteros Prof. Leandro Rubim Prof. Wagner Sanchez

19

Fase 1

Feito isto, o código do programa irá aparecer na tela do ambiente de desenvolvimento.

• /* Blink• Liga um LED  por um segundo, depois apaga por um segundo, repetidamente. • Este exemplo de código é de domínio público .• */

• void setup() { • // Inicializa o pino digital 13 como uma saída. • // Normalmente existe um Pino 13  com LED já conectado na maioria das placas Arduino: • pinMode(13, OUTPUT); • }

• void loop() {• digitalWrite(13, HIGH); // Liga o LED no Pino 13• delay(1000); // Espera por um segundo• digitalWrite(13, LOW); // Desliga o LED no Pino 13• delay(1000); // Espera por um segundo• }

Page 20: Componentes Avançados Workshop de automação de mini helicópteros Prof. Leandro Rubim Prof. Wagner Sanchez

20

Fase 1

No inicio de todos os programas, uma ordem deve ser respeitada:

1. Estrutura de Inclusão de Bibliotecas2. Estrutura de Declaração de Variáveis3. Estrutura Setup4. Estrutura Loop5. Demais estruturas de funções

As estruturas de Setup e Loop são obrigatórias em qualquer programa.

O programa BLINK não necessita de uma biblioteca para funcionar, pois é um programa muito básico e utiliza apenas escritas digitais e delays, funções que já estão inseridas em todos os programas feitos no ambiente de desenvolvimento Arduino.

As estruturas utilizadas foram apenas o Setup, para indicar o pino que será usado pela placa, e o seu modo, se é entrada (INPUT) ou saída (OUTPUT), e o Loop, que informa o programa principal que ficará rodando por tempo indeterminado em seu Arduino.

Page 21: Componentes Avançados Workshop de automação de mini helicópteros Prof. Leandro Rubim Prof. Wagner Sanchez

21

Fase 1

Agora que o programa está 100% entendido, já podemos compilar o mesmo e fazer o upload para nossa placa Arduino.

Conecte o Arduino ao PC através do cabo USB.

Para compilar o programa, devemos clicar no botão “Verify” do ambiente de desenvolvimento, para ver se não existe nenhum erro de código. Uma mensagem deve aparecer na barra inferior “Done Compiling”, indicando que o programa está pronto para ser enviado ao Arduino.

Agora basta clicar no botão Upload, espere então o upload ser completado e pronto.

Você deverá ver o LED localizado na própria placa piscando com intervalos de 1 segundo.

Agora vamos ver como acender e apagar um LED externo a placa, utilizando uma protoboard, resistores e fios jumpers.

Page 22: Componentes Avançados Workshop de automação de mini helicópteros Prof. Leandro Rubim Prof. Wagner Sanchez

22

Esse projeto consiste em utilizar Leds infravermelhos conectados ao Arduino, para enviar sinais ao mini helicóptero, assim controlando-o.

Vamos enviar dados seriais do computador para o Arduino, e este para o helicóptero.

Serão necessárias 8 pilhas de 1,5V para alimentação do projeto.

Dica: Levantar o infravermelho e apontar na direção do helicóptero, isso aumenta significativamente a área de comunicação.

Fase 2

Page 23: Componentes Avançados Workshop de automação de mini helicópteros Prof. Leandro Rubim Prof. Wagner Sanchez

23

Emissor de Infravermelho

GND

Porta 7

USB

Fase 2

Transistor

G S

D

Page 24: Componentes Avançados Workshop de automação de mini helicópteros Prof. Leandro Rubim Prof. Wagner Sanchez

24

Fase 2

Agora que a estrutura está pronta, é necessário abrir o código que controla o mini helicóptero.

Ao abrir o código no ambiente de desenvolvimento, procure a seguinte linha “case 't': ”, pois será nesse case que vamos informar os comandos a serem seguidos.

Utilizaremos a função “HoldCommand”, que programa o helicóptero para realizar uma ação por um determinado período de tempo.

Tal função possui 4 parâmetros, que controlam o helicóptero :1. Yam: responsável pelo movimento do eixo horizontal;2. Pitch: responsável pelo movimento do eixo vertical;3. Throttle: responsável pela rotação das hélices;4. Delay: Determina por quanto tempo a ação será executada.

O código a seguir explica o que será feito quando apertamos a letra “t”.

Page 25: Componentes Avançados Workshop de automação de mini helicópteros Prof. Leandro Rubim Prof. Wagner Sanchez

25

• case 't': // Decola com ‘t’• Serial.println("Taking Off");•  // Yaw: 1-15• // 8 = Nenhuma guinada• // 1 = máxima guinada para direita• // 5 = máxima guinada para esquerda• // Pitch: 1-15• // 8 = Nenhuma inclinação• // 15 = máxima inclinação para frente• // 1 = máxima inclinação para trás• //Throttle: 0-255• // 0 = desligado• // 130 = vôo estável• // 240 = subida rápida

• // Primeiro, suba com muita potência por 650ms• // yaw: 8 --> no yaw• // pitch: 8 --> no pitch• // throttle: 240 --> fast climb• // delay: 650ms --> o suficiente para subir, não tão longo para não atingir o teto

• // HoldCommand: uma função que manda dados por um determinado período de tempo• // HoldCommand(yaw, pitch, throttle, tempo-para-segurar-ms);• HoldCommand(8, 8, 240, 650);• • // seta a variável global para um vôo estável• throttleCmd = 130;• break;

Fase 2

Page 26: Componentes Avançados Workshop de automação de mini helicópteros Prof. Leandro Rubim Prof. Wagner Sanchez

26

Para testar, basta compilar e realizar o upload do código para o Arduino.

Aponte os Leds infravermelhos para o helicóptero, para realizar a sincronização do canal. Os canais podem ser alterados através da linha de comando “ byte channel = 1 ” (1 = A, 2 = B ou 3 = C).

Abra o Serial Monitor do ambiente de desenvolvimento, e digite “t”.

Fase 2

Page 27: Componentes Avançados Workshop de automação de mini helicópteros Prof. Leandro Rubim Prof. Wagner Sanchez

27

Se tudo foi feito corretamente, o seu helicóptero deve ter decolado por um determinado tempo e em seguida pousado.

Também é possível controlar o helicóptero manualmente, através das teclas:

• W – Frente;• S – Traz;• A – Esquerda;• D – Direita;• 0 a 9 controla a hélice/força do helicóptero.

Agora que os comandos estão entendidos, realize o seguinte desafio: Faça com que o seu helicóptero decole e faça o trajeto de um quadrado! Você pode repetir a linha da função várias vezes para realizar o desafio!

• HoldCommand(8, 8, 240, 2000); // realiza a decolagem por 2 seg.• HoldCommand(8, 11, 240, 500); // faz o helicóptero ir para frente por 1

seg.

Fase 2

Page 28: Componentes Avançados Workshop de automação de mini helicópteros Prof. Leandro Rubim Prof. Wagner Sanchez

28

Links Interessantes

Site oficial do Arduino - http://arduino.cc/

Portal brasileiro sobre o Arduino - http://www.arduinobrasil.com/

Site onde adquirir o Arduino e diversos produtos - http://www.robocore.net/

Versão brasileira do Arduinohttp://nighto.net/brasuino-o-arduino-livre-da-holoscopio/

Canal do Youtube, explicando sobre o Arduino e com diversos tutoriaishttp://www.youtube.com/user/sciguy14?feature=watch