sábado, 23 de dezembro de 2017

Variometro Arduino com Oled e BMP280

Depois de um longo tempo apanhando e ainda apanhando resolvi postar esse projeto.

Cansei de ver esses variometros caros e convenhamos e esta merda só serve pra apitar, então resolvi montar o meu e da forma mais barata possível, e mesmo assim conseguindo um ótimo resultado.

O variometro esta super simples, apita nas ascendentes selecionável entre 0.3 0.5 e 0.8 metros por segundo, além disso mostra altitude, tempo de voo, temperatura, variação em metros por segundo e nível de bateria.

Falta algumas coisas que gostaria de fazer, mas estou um pouco limitado nos meu conhecimentos de códigos e tal (to estudando...).

Falta fazer um menu com:
Calibragem de altitude,
Calibragem mais flexível dos parâmetros do vario (subida e descida)
Gravação dos dados dos vôos... (esse ta foda de fazer mas está funcioando relativamente bem!!!)...
Versão teste com gravação de altitude (17/01/2018):

CODIGO E BIBLIOTECA AQUI:
(as bibliotecas estão no arquivo zip completo)


clique rápido no botão muda a sensibilidade;
manter segurando por 3 segundos entra no menu de voos;
manter segurando por 9 segundos ele vai alternar entre as telas e depois resetar todas as gravações de voos.


Acabei fazendo uma placa simples com oled I2C, mas descobri que se fosse com o outro modelo com mais pinos ficaria mais rápido e preciso (tem que alterar a quantidade mínima de samples para 40 para funcionar com outro oled).



Esse variometro é baseado em arduino com o microcontrolador Atmega 328.
Então pode ser montado com os arduinos Uno, Nano, Pro Mini, Lilipad...

A pinagem você pode encontrar na imagem.



I2C que seria o SDA no pino 4 e SCK(ou scl) no pino 5. (oled e sensor bmp280 em paralelo).
Botão digital 4 e GND.
Buzzer no pino digital 8 e GND.

Material necessário:
- Arduino Nano, Pro Mini ou Uno;
- Sensor Bmp280;
- Oled i2C 96" 128x64;
- 1 push button;
- 1 Buzzer;
- 1 botão de liga / desliga;
- TP4056 (carregador de Lipo opcional);
- 1 Bateria de Lipo 1s (opcional)
- fios para conexões.

Você também pode usar uma bateria 9 volts, mas não esqueça de sempre conectar no pino VIN. Pois se conectado em outro pino pode queimar o arduino.

Vou fazer uma observação aqui sobre o TP4056:
Ele vem projetado para carregar baterias de 1000mah, para usar baterias menores, você deve fazer um pequena alteração na placa.
Tem que trocar o resistor indicado que originalmente é 1200ohms ou 1.2kohms ou no código SMD(122).






E como tenho tido muitas reclamações do volume baixo do variometro, você pode conectar um mini amplificador de 3w no lugar do buzzer. Ai você pode usar o buzzer ou um alto-falante pequeno.

Seque ligação abaixo.
Preste atenção nas voltagens:

Oled e Sensor BMP 280 3.3V;
Amplificador 5V;
Bateria 9V no pino VIN.


ou para ter o controle do volume, você pode colocar esse amplificador abaixo.



Se for fazer o variometro a partir da placa, segue algumas dicas.
Componentes, encontrei todos na Aliexpress, demora um pouco mas sai mais barato, mas pode comprar também na mouser ou digikey.

Bom, vou começar com o link para o código e bibliotecas necessárias:

Se for montar com as placas arduino isso ja é o suficiente. Agora se for fazer o projeto completo... vamos lá... que a Treta começa agora.

Vamos começar com a placa em si.


Esse é o esquema de ligação dos componentes e não o fiz aleatoriamente. Estudei bastante os datasheets, e mesmo assim acabei fazendo varias cagadas.... Mas é fazendo merda que se aduba o projeto....



Umas observação que já faço de cara, é que ser for usar um Oscilador modelo CSTCE16M0v53-R0
não existe necessidade de colocar os capacitores C1 e C2, se fizer da pau... mas pode usar cristal e ai sim precisa dos capacitores.

Se for soldar com pasta de solda, facilita muito pq os componentes são minúsculos e precisa de perícia e muita paciência.




É possível fazer a placa em casa? Acho bem difícil, principalmente por ser tão pequena e dual layer.
Aonde mandar fabricar a placa? 
Eu estou mandando para o site: https://www.oshpark.com/

Sai super barato, 20 reais por 3 exemplares da placa.
OBS: pra ficar mais legal, selecione a opção de espessura da placa "thickness" 2oz Copper with
0.8mm FR4. (pra ficar mais fininha)


É só entrar no site e mandar este arquivo ZIP:

Placa com os capacitores do cristal:

Placa Atualizada sem os capacitores para oscilador:

Ok mandamos fazer a placa, agora vem os componentes....
Tenho esse arquivo em excel com fotos e modelos específicos q usei: https://github.com/tlbenedetti/variometer_thiagogo/blob/main/Bill%20Of%20Materials.xlsx

Essa parte é bem trabalhosa e chatinha... encontrar tudo essas pecinhas e o pior de tudo, esperar chegar. Mas chega! (pelo menos todas as minhas vieram direitinho).
Ahhh!! prestar a atenção ao comprar o oled na ordem dos conectores GND VCC SCL SDA.

A bateria estou usando de Lipo uma célula. A de 100mah dura 4 horas... a carga se quiser colocar mais fica a escolha de vocês... so lembrando que a placa tem um ci responsável por carregar a bateria e esta configurado "por intermédio de um resistor R5" em 100mah por hora (resistor 10k). Possível alterar pra até 500mah por hora (limite do ci) (se não me engano resistor de 2.2k). 

Se tudo der certo até aqui e tivermos em mãos alguma coisa parecida com isso.



Os componentes são realmente muito pequenos, comece a soldar pelo sensor se for fazer com ferro de solda.



comparando a placa com uma moeda... 27mm por 27mm...


Se você observar soldei os capacitores C1 e C2... mas não deveria pois estou usando o oscilador q já possui embutido... Tive que retirar...




Acabou ficando assim:


Sem os capacitores C1 e C2

Usei esse mapa tosco pra montar e anotei a ordem pra facilitar a solda com ferro:


Mas da pra usar a imagem da Placa junto com  esquema elétrico ou lista de materiais que tem todas as descrições:





Bom se chegou até aqui já foi uma luta kkkk.... Mas os problemas ainda não acabaram...

É preciso programar a bagaça!!! e pra isso deixei preparado uma porta icsp embaixo da placa.

Mas você vai precisar comprar um gravador ARV modelo USBASP. (serve os ching-ling mesmo).

Você pode baixar os drives aqui: http://www.fischl.de/usbasp/
mas se estiver usando Mac não precisa, reconhece automatico.
e no programador do arduino use a opção carregar usando o programador (usbasp).




Adaptador com os pogopin. A ideia é fazer algo desse tipo pra facilitar:


E acabou ficando assim pogo pin de 0.68mm:



E Finalmente:












O video abaixo mostra a ultima versão do código com gravação dos parâmetros. São 20 memórias, não sendo possível mais por conta da memória disponível no atmega328. 

Para apagar a memória toda é só segurar o botão por 10 segundos.



Além disso fiz um case na impressora 3d! Uma versão tosquinha e outra com o botão que ainda não finalizei, mas a ideia é que o botão fica no proprio case evitando peças soltas:

Esse abaixo é o que imprimi e testei, mas precisa de alguns ajustes:https://drive.google.com/open?id=1mYSW6wT-5I9HbR46S_FaDg_HidtICWGu





E este abaixo com umas melhorias (praticamente finalizado):  https://3dwarehouse.sketchup.com/model/909bfa09-a8f8-4740-9803-f62881d0b31d/Case-Vario-Thiagog%C3%B3


Segue link do arquivo STL pronto para impressão 3D: https://github.com/tlbenedetti/variometer_thiagogo/blob/main/case%20variometro_para%20impress%C3%A3o.stl





Esse Laranja foi impresso em impressora SLA em Resina.
Hoje é o que eu uso pra voar.


Esse amarelo era um backup que eu tinha, faltava a case e bateria.
acabei montando e vendendo. Ficou muito bom pra pender no tirante do parapente.


Tenho recebido um Feedback de muita gente de varios lugares pelo mundo!
Muito obrigado por montar e compartilhar as experiências comigo.

Fica ai algumas fotos dos projetos do pessoal.








Nuttech Flybox 1 - Mercadolivre - Argentina


Nuttech Flybox 2 - Mercado livre - Argentina




Parasna - instagran: @iranparaglidingg

Variometro Level Up



Raven Flight Equipament - Mercadolivre Brasil


Quem puder compartilhar e me ajudar a finalizar esse projetinho, Seja bem vindo, quem não quiser seja bem vindo também!


Para quem não sabe programar, vou deixar abaixo das fotos, alguns variometros com modificações que podem ser comprados na internet.







Valew!!!

#variometer #variometro #vario #arduino #makers #DIY #paraglider #parapente #thiagogo #Thiagogó #variomètre