TUTORIAL ALTÍMETRO LAE - P

Documentos relacionados
ETAPAS PARA A CONSTRUÇÃO DA SONDA

Arduino. Conectores, Fonte, USB, LEDs. Compilador, Bibliotecas, Editor, Burner

Disciplina: Laboratório de Fis26

Kit controle remoto IR acionando 3 Led com Arduino

ROBÓTICA 1 INTRODUÇÃO A PROGRAMAÇÃO NO ARDUINO

Por Fernando Koyanagi

Projeto 01. Adriano Joaquim de Oliveira Cruz Instituto de Matemática UFRJ 2015 Adriano Cruz. 30 de agosto de 2015

Arduino. Conectores, Fonte, USB, LEDs. Compilador, Bibliotecas, Editor, Burner

Curso introdutório de microcontroladores - Plataforma Arduino

Por Fernando Koyanagi. ESP32 + chip SX1276

Programação do Arduino. Parte 1. IDE Wiring

Introdução ao Arduino ESCOLA DE ARTES VISUAIS DO PARQUE LAGE. Núcleo de Arte e Tecnologia. julio lucio martin. Aula 01

Programação em Linguagem C

Manual Técnico Arduino Supervisório RTC (Real Time Clock)

Arduino - Primeiros Passos

Curso: Tecnologias educacionais de baixo custo. Conector Ciência:

Introdução ao Arduino ESCOLA DE ARTES VISUAIS DO PARQUE LAGE. Núcleo de Arte e Tecnologia. julio lucio martin. Aula 07

Por Fernando Koyanagi 1

Tutorial Proteus 02. Como simular o Arduino no Proteus ISIS utilizando a biblioteca "Emulater" por João Vitor

MINICURSO - PLATAFORMA ARDUINO Eixo de Informação e Comunicação Gil Eduardo de Andrade

Arduino: primeiros passos para aprender e configurar.

Podem ser substituídos pelo módulo P7-Sensor de Luminosidade da GBK Robotics.

INTRODUÇÃO AO ARDUINO DUE, CANAL DIGITAL, FUNÇÃO DELAY

Curso de robótica 2. Novos conceitos de programação

introdução Olá, Após alimentar você deve enviar comandos AT para verificar que o modulo está funcionando e comunicando via serial.

Por Fernando Koyanagi

KIT INICIANTE V7 PARA ARDUINO

Listagem dos programas de controle (sketch) para a placa Arduino utilizados no presente trabalho.

exercício 1 Piscar o LED a cada 1 segundo Parar ao pressionar o botão, mantendo o LED aceso para sempre Programa interativo!

Integração Arduino - Python Leitura de sensor de umidade e temperatura

Cerne Tecnologia e Treinamento

Por Fernando Koyanagi 1

Over the Air OTA. Por Fernando Koyanagi

UPLOAD NO ARDUINO MEGA

Por Fernando Koyanagi 1

Arduino. Introdução aos Componentes Básicos. Leonardo Mauro P. Moraes. Universidade Federal de Mato Grosso do Sul - UFMS.

Arduino. Gilmar Aquino

OFICINA Uso da plataforma Arduino no Ensino de Ciências

Arduino e Proteus (Tutorial)

MINICURSO ARDUINO AVANÇADO

Por Fernando Koyanagi

Conhecendo o ARDUINO LEGENDA

Instituto Federal do Paraná IF-Robótica. Prof. MSc. Marcos Dinís Lavarda Contato:

Missão: Arduino. 3 de Março. Organização

Entrada de dados com botões

Circuito e programa do módulo Arduino de leitura da Célula de Ar

#include <SoftwareSerial.h> SoftwareSerial myserial(2, 3); // RX, TX

Mundo Arduino: Vamos começar a programar?

Arquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador;

Enviando Dados Pela Porta Serial na placa LaunchPad MSP430 Utilizando o ambiente ENERGIA

Acendendo o Led com Arduino.

Robótica com Arduino Professor: Paulo Marcos Trentin

Projeto Final de Microcontroladores 2 Alarme de Temperatura

Procedimento para Atualização de Firmware do Coletor de Dados DC-3500

INTRODUÇÃO A PLATAFORMA ARDUINO. TÁSSIO JOSÉ GONÇALVES GOMES

Scaling Up Inclusion: Robotics, a STEM focused Project. Centro de Formação de Associação de Escolas Paços de Ferreira, Paredes e Penafiel

Por Fernando Koyanagi

Caderno de Atividades 1

Estudo do Ambiente de Programação Arduino Software (IDE) com Intel Galileo Gen2. Apostila de acompanhamento para o aluno.

Device Manager (firmware upgrade + repair) & Media Convertor (converting video) Philips Songbird (firmware upgrade + repair + media management)

Scaling Up Inclusion: Robotics, a STEM focused Project. Centro de Formação de Associação de Escolas Paços de Ferreira, Paredes e Penafiel

INSTALAÇÃO DO CLIENTE LOTUS NOTES ROTEIRO DE INSTALAÇÃO E CONFIGURAÇÃO

Gravador da Linha 89S e AVR ISP89S. Manual do usuário. Versão 1.0

Aula 1 Apresentação e Conceitos Iniciais. Wellington Cássio Faria fb.com/wellingtoncf

Sensor óptico em quadratura: leitura via Arduino

TERMÔMETRO COM O LM35 Parte I

Utilizando o compilador CCS integrado ao MPLAB X

Depois de configurada nossa comunicação serial podemos enviar vários comandos para comunicação entre o computador e o Arduino:

Por Fernando Koyanagi 1

- Tarefas Práticas de Programação usando Arduino - Imagem do Robô com Legendas

arduino = new roboticalivre(); Arduino Marcus Fazzi

PME-ESP8266 Guia do Usuário V1.0

Discentes: Weverton Lima e Juliete Souza Disciplina: Sistemas Embarcados Professor Orientador: Ilton Barbacena

Arduino. Prof. Maurício Dias

Salvar Relatórios em Arquivo

Curso de Arduino. Quais seus principais componentes?

Roteiro de Comunicação Raspberry Arduino/ESP8266 com I2C

Cerne Tecnologia e Treinamento

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ CENTRO DE CIÊNCIAS EXATAS E DE TECNOLOGIA ENGENHARIA DE COMPUTAÇÃO PROJETO SCATMAN S DIMMER

Projeto No. 17 Infravermelho

Internet das Coisas Ferramentas Para Prototipação. João Bosco Teixeira Junior >

Por Fernando Koyanagi

Controlando até 68 pontos Com Arduino Mega e ESP8266. Por Fernando Koyanagi

SEMÁFORO, SUPER MÁQUINA

Atualização do firmware para controladores remotos sem fio WR-R10

Projeto No. 11 Display de Leds de 7 Segmentos

Microcontroladores PROF. ME. HÉLIO ESPERIDIÃO

Por Fernando Koyanagi

MINICURSO ARDUINO BÁSICO

UNIVERSIDADE FEDERAL DO RIO DE JANEIRO

Oficina de Programação utilizando a plataforma Arduino

Transcrição:

1 2016 TUTORIAL ALTÍMETRO LAE - P FABIO MAURICIO MATOS LAE - UFPR 14/03/2016

2 TUTORIAL PARA UTILIZAÇÃO DO ALTÍMETRO LAE-P O altímetro LAE-P é um altímetro baseado na placa de prototipagem Arduino. Ele foi desenvolvido no Laboratório de Atividades Espaciais (LAE) da UNIVERSIDADE FEDERAL DO PARANÁ (UFPR). A letra P é uma referência ao Primeiro altímetro do LAE, que ainda está na fase de protótipo. Esse primeiro protótipo baseado no Arduino funciona como um kit de montagem. Cada sensor criado para o Arduino tem sua própria biblioteca, facilitando a implementação do código. 1. Componentes 1 Arduino pro mini 3,3 V 1 sensor bmp 180 1 módulo mini SD card 1 mini SD card 1 adaptador de gravação para o Arduino pro mini 1 pilha A23 e suporte 2. Ligação bmp-180 O esquema de ligação do sensor bmp 180 (Figura 1) é mostrado na Tabela 1. BMP 180 SDA SCL GND ARDUINO A5 A4 GND VCC 3,3V Tabela 1. Ligação entre o sensor bmp 180 e o Arduino F ig. 1 S ensor BM P - 180

3 3. LIGAÇÃO DO MÓDULO MINI SD CARD Para o módulo mini SD card a ligação será a mesma para qualquer modelo de módulo SD card. Aqui vou indicar um modelo, mas você pode usar o que encontrar. SD CARD ARDUINO CS 9 MOSI 11 MISO 12 SCK 13 GND GND VCC 3,3V T ab. 2 ligação entre o módulo sd card e o Arduino F ig. 2 módulo sd card indicado http://produto.mercadolivre.com.br/mlb-731957017-leitor-gravador-micro-sd-p-arduinoraspberrynodemcu-_jm 4. LIGAÇÃO DA BATERIA Nesse projeto usamos uma bateria de 12V (A23). Esse modelo tem um tamanho e massa bem reduzidos. A vantagem é fazer minifoguetes mais finos e leves. A desvantagem é que essa bateria fornece um pequena corrente; apenas 55 mah. O positivo da bateria deve ser ligado no pino RAW e o negativo no pino GND ao lado. Fig.3 Pilha A23 e seu suporte

4 5. MONTAGEM A montagem depende do usuário e da habilidade de solda. No protótipo LAE-P tentei deixar tudo o mais próximo possível de cada pino. A configuração de montagem é livre. Devem ser mantidos apenas os pinos de ligação. As figuras abaixo mostram uma opção de montagem. Figura 4. O altímetro LAE-P.

5 6. SOFTWARE PARA FUNCIONAMENTO DO ARDUINO De posse da placa Arduino para prototipagem, necessitamos do software para escrever o código e fazer a compilação. No link https://www.arduino.cc/en/main/software você pode fazer o download do software na versão atual. Após precisamos instalar as bibliotecas para o funcionamento do sensor. As bibliotecas são sub-rotinas preparadas especificamente para fazer a ligação do sensor com a placa Arduino. Assim, não precisamos nos preocupar com a configuração entre os componentes e podemos nos dedicar ao código e aos dados que queremos obter com o código. 6.1 INSTALAÇÃO DAS BIBLIOTECAS NO ARDUINO Para o funcionamento do módulo são necessárias algumas bibliotecas. Para esse Tutorial vamos usar a biblioteca bmp 085, bmp 180 e a biblioteca I2Cdev. Estas bibliotecas são facilmente encontradas na internet pelo próprio nome de chamada. Após descompactar os arquivos de biblioteca, devemos copiar a pasta descompactada e colar na pasta libraries. em: c:arquivos de programs(x86)/arduino/libraries **Apenas após esse passo deve-se abrir o compilador Arduino. Se o compilador estava aberto nesse passo feche e abra novamente.** Figura 5. Linha de comando e velocidade de leitura da porta serial. Confira na linha que contém o comando serial.begin(9600). Essa é a velocidade leitura da porta serial.

6 Figura 6. Seleção da placa Arduino disponível para o projeto. A Figura 6 mostra como selecionar o modelo do Arduino que você está usando. Para o caso de um Arduino pro mini devemos escolher o mesmo nessa aba. Para esse tutorial usaremos o Arduino uno. 6.2 COMPILANDO Após escrever ou carregar o código devemos verificar o código clicando no botão verificar no canto superior esquerdo. Concluída a verificação do código e não havendo erros de compilação, deve-se verificar a porta de comunicação. Para o Arduino UNO usamos a porta com3. Verifique se há outra porta livre. Se não houver use a que estiver disponível. Figura 7. Seleção da porta.

7 Agora devemos carregar o código para o Arduino clicando no botão carregar no canto superior esquerdo ao lado do botão verificar. Após a mensagem de que o código está carregado, devemos abrir a porta serial para visualização dos dados, clicando no ícone da lupa no canto superior direito da tela. F i g 8. J anela serial co m velocidade incompatível com a linha de comando serial.begin 7. Leitura dos dados Se as ligações estiverem corretas e o código carregado, podemos ligar nosso altímetro LAE-P, apenas colocando a pilha. O altímetro só funciona com o sd card inserido. Após ligarmos veremos um led piscar no Arduino na mesma frequência da leitura dos dados. Enquanto o led estiver piscando o altímetro está colhendo dados. Os dados são gravados em um arquivo chamado laedata.txt. Recomendo que a cada lançamento descarregue os dados ou renomeie o arquivo. O código não muda o nome do arquivo a cada lançamento; ele salva no mesmo arquivo. Então se você fizer dois lançamentos no mesmo cartão sem renomear os dados dos dois lançamentos, eles estarão no mesmo arquivo, um após o outro. Para identificá-los você terá que localizar o ponto em que o tempo reinicia. 8. Código #include <SD.h> #include<spi.h> #include "Wire.h" #include "Adafruit_BMP085.h" #include "I2Cdev.h" #include "MPU6050.h" #include <SFE_BMP180.h>

8 Adafruit_BMP085 mysensor; //cria um sensor chamado mysensor Adafruit_BMP085 bmp; #define P0 91971 #define LED_PIN 9 SFE_BMP180 pressure; //bmp 180 float tempc; //variável de temperatura em C float pressure2; // variável de leitura de pressão double h, d; double a_ant; unsigned long time; double getpressure(); //bmp180 double baseline; //bmp180 int ledpin = 8; // ejetor int ledpin2 = 3; int chipselect = 4; bool blinkstate = false; File mysensordata; //----------------------------------------------------------------------- void setup() a_ant = 0; pinmode(ledpin, OUTPUT); pinmode(ledpin2, OUTPUT); Wire.begin(); Serial.begin(9600); mysensor.begin(); Serial.println("Initializing I2C devices..."); if (pressure.begin()) //bmp180 Serial.println("BMP180 init success"); else Serial.println("BMP180 init fail (disconnected?)\n\n"); while(1); // Pause // bmp180

9 baseline = getpressure(); // bmp180 // pinmode(led_pin, OUTPUT); pinmode(10, OUTPUT); // reserve SD.begin(4); //Initializa the SD card reader void loop() double a,p; double b; P = getpressure(); tempc = mysensor.readtemperature(); // 0 time = millis(); digitalwrite(ledpin2, HIGH); delay(20); digitalwrite(ledpin2, LOW); delay(20); blinkstate =!blinkstate; digitalwrite(led_pin, HIGH); delay(5); digitalwrite(led_pin, LOW); delay(5); a = pressure.altitude(p,baseline); b= a-a_ant; mysensordata = SD.open("laeData.txt", FILE_WRITE); if (mysensordata) Serial.print(time); Serial.print("\t"); Serial.print(tempC); Serial.print("\t"); Serial.print(P); Serial.print("\t"); Serial.print(a); Serial.print("\t"); a_ant = a; if ( (b < 0) && (a >30) ) digitalwrite(ledpin, HIGH), Serial.println("apogeu"),

10 Serial.print(a_ant); Serial.println(""); delay(5); mysensordata.print(time); mysensordata.print("\t"); mysensordata.print(tempc); mysensordata.print("\t"); mysensordata.print(p); mysensordata.print("\t"); mysensordata.println(a); mysensordata.close(); // fim; linhas abaixo copiadas da biblioteca (não apagar senão falha o getpressure------------ ------------------------------------------------------------------------------------------ double getpressure() char status; double T,P,p0,a; // You must first get a temperature measurement to perform a pressure reading. // Start a temperature measurement: // If request is successful, the number of ms to wait is returned. // If request is unsuccessful, 0 is returned. status = pressure.starttemperature(); if (status!= 0) // Wait for the measurement to complete: delay(status); // Retrieve the completed temperature measurement: // Note that the measurement is stored in the variable T. // Use '&T' to provide the address of T to the function. // Function returns 1 if successful, 0 if failure. status = pressure.gettemperature(t); if (status!= 0) // Start a pressure measurement: // The parameter is the oversampling setting, from 0 to 3 (highest res, longest wait). // If request is successful, the number of ms to wait is returned.

11 // If request is unsuccessful, 0 is returned. status = pressure.startpressure(3); if (status!= 0) // Wait for the measurement to complete: delay(status); // Retrieve the completed pressure measurement: // Note that the measurement is stored in the variable P. // Use '&P' to provide the address of P. // Note also that the function requires the previous temperature measurement (T). // (If temperature is stable, you can do one temperature measurement for a number of pressure measurements.) // Function returns 1 if successful, 0 if failure. status = pressure.getpressure(p,t); if (status!= 0) return(p); else Serial.println("error retrieving pressure measurement\n"); else Serial.println("error starting pressure measurement\n"); else Serial.println("error retrieving temperature measurement\n"); else Serial.println("error starting temperature measurement\n"); 9. Contatos e condições de uso Não há custo nem restrição ao uso ou melhoria do altímetro LAE-P mas peço que em caso do leitor fazer alguma melhoria entre em contato comigo para dividi-la. Mande-me seu e-mail caso tenha interesse em receber as atualizações do código. Para ajudar no desenvolvimento desse altímetro, por favor, mande-me dados dos voos realizados para estudos e melhorias. E-mail: fabiogtz2@hotmail.com O primeiro uso bem-sucedido do altímetro LAE-P foi divulgado em http://fogueteufpr.blogspot.com.br/2016/03/lae-p-nosso-primeiro-altimetro-para.html Revisão: Marchi, 20 Mar 2016