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).
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...
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
Valew!!!
#variometer #variometro #vario #arduino #makers #DIY #paraglider #parapente #thiagogo #Thiagogó #variomètre
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
Parabéns Thiago pela tua disponibilidade. Já fiz o meu baseado no teu código e está funcionando muito bem. Simples e confiável....Forte Abraço parceiro.
ResponderExcluirShow!!! Valew pelo apoio!!!!
ResponderExcluirBoa tarde Thiago cara gostei muito do seu projeto, estava querendo fazer um que comunicasse via bluetooth com o xcsoar consegui fazer o xc ler o bluetooth mas não estou consequindo enviar os dados do BMP280, de repente vc pode me dar uma ideia obrigado e parabens pelo projeto não deixe de postar o finalmente, abraços.
ResponderExcluirOpa tudo bom?! Então, chutando eu acho que o xcsoar recebe a informação do Bluetooth através do serial monitor... aí teria que colocar as variáveis das informações naquele serialprint... acho q é isso...
ExcluirNe caso precisaria de um módulo Bluetooth?
Excluirsuper my friend ... i want connect greater oled ...
ResponderExcluirThiago blz uma curiosidade vc utilizou um arduino 5v e esta alimentando o mesmo com 3,7v,não teria uma tendencia a funcionamento meio deficitario? Podendo sofrer atrasos? abraços !
ResponderExcluirCom certeza com a voltagem mais baixa ele ficaria mais lento, mas a diferença é imperceptível pois a lipo carregada fica com 4,2volts... o que deixaria mais rápido seria a conexão do oled e sensor em SPI ou invés de I2C
ResponderExcluirEste comentário foi removido pelo autor.
ResponderExcluirBom dia Thiago blz, confeccionei 2 modelos de vario um so o apto e outro com o oled cara ficou bom demais agora notei uma coisa, ele le e grava o ganho de altitude em cima do pouso, nao seria enteressante em cima da decolagem abracos.
ResponderExcluirOpa tudo bom?!
ResponderExcluirMinha ideia era pegar a altura e excluir a altura do pouso( pensando sempre q o pouso fosse mais baixo), mas pode ser q tenha me com fundido é feito alguma bobagem na programação.... obrigado pelo toque, vou verificar....
Thanks for the great device. I have implemented height from start
ExcluirHola, Thiago, agradezco enormemente que gente como tu comparata este tipo proyectos que llevan tanto trabajo sin fines de lucro. Gracias hice un variometro para volar que de otra forma me costaria demasiado dinero y posiblemente nisiquiera tendria uno. Un abrazo desde URUGUAY.
ResponderExcluirhello;
ResponderExcluirI applied progy.I like it and very beautiful and very sensitive.I have a problem.The sound is too low.I have a small box my variometer so voice is too low.I am using small buzzer.
I want to raise the voice.How can ı do it?
p.s. I dont want to use big buzzer.
Iam waiting your answer.Thank you
Use a 3w amplifier module and a speaker in place of the buzzer will greatly improve the sound.
ExcluirObrigado Thiagogo...
ResponderExcluirEu vou mantê-lo atualizado sobre a operação!!
how can i download the pcb File?
ResponderExcluirhttps://drive.google.com/open?id=1vPsMePv_DHzuqNviZ7B89mRKi-gVlM3P
Excluiror
https://drive.google.com/open?id=1as27CFyAZq_Izczv55A9q6QVncg2wK8x
Thank you, Whats the difference between first file and the file with capasitors?
Excluirthe difference is for the use of either an oscillator or a crystal.
ResponderExcluirthe oscillator does not need the 0.22uf capacitors the crystal needs.
Bom dia, Onde consigo as peças para fabricar um desse para mim??
ResponderExcluirSe for montar com a placa do arduino e as shields, pode comprar pelo mercado livre ou tem uma loja muito boa chamada Mamute eletronica, ou Baú da eletrônica. agora se for montar a placa vc pode ou comprar os componentes soltos ou na digikey.com ou mouser.com, ou até mesmo soltar os componetes dos shields com soprador quente.
ResponderExcluirGood afternoon. You made a very nice vario! I have a problem. After inserting the codes into the program, I can not upload it to the arduino nano .. The problem is in the 4th line "Adafruit_sensor.h: No such file or directory ". What else is missing?
Excluiris missing installing the libraries in the arduino libraries folder.
ResponderExcluirWhich library is not installed? Bmp280 is installed.
ResponderExcluirAll is done. Everything work perfectly!
ResponderExcluirChapeau! continuez et merci pour le partage.
ResponderExcluirGreetings!
ResponderExcluirI have built this variometer but I have one problem. The variometer works really slow, it seems like its working on 1MHz.
I think that the problem is FUSE BITS on atmega328p (they are set wrong).
Can someone please post me correct fuse bits for this shematic. My fuse bits right now are
extended 0XFF
high 0Xd9
Low 0X62
I have bricked about 4 ATMEGA328P's by setting the wrong fuse bits :-(.
I used the fuses of own ide. I bootloaded on ide.
ExcluirAnd to be honest in a little naive in this regard.
Hello,
ResponderExcluirI uploaded version 1.1 code and soldered all parts like in the picture but the menu does not appear when i push the push button. Any suggestions?
Thanks
quick clicking the button changes the sensitivity;
ResponderExcluirhold for 3 seconds enters the flight menu;
Keep holding for 9 seconds it will switch between screens and then reset all flight recordings.
muchas gracias ahora tengo mi vario, funciona muy bien.. gran trabajo!!!
ResponderExcluirJá vou tentar criar o meu vário , grande ajuda amigo parabéns Deus abençoe . Brigado
ResponderExcluirOlá Thiago ! Eu vivo na Rússia, eu gosto de voar, eu gostaria de fabricar um instrumento de sua instrução. Eu posso fazer isso, muito obrigado, mas há um problema, eu realmente preciso para o dispositivo mostrou a 0 no instante em que eu, hoje, eu sou muito ruim sei de programação, você poderia me ajudar, mudar a sua firmware para que a altura era igual a 0 quando se liga o aparelho. Eu realmente espero que você possa me ajudar, obrigado, atenciosamente Andrey.
ResponderExcluirParabens Thiago. Sensacional. Gostaria de entrar em contato com vc te explicar uma situação e quem sabe vc poderá me ajudar. Desde já fico Grato. Allan 35 98877-2121
ResponderExcluirEu fiz aqui e deu super certo! Só tive que incluir o endereço na variável que inicializa o BMP, pois não carregava na tela as informações de temperatura e tal. Na variável sensor_bmp.begin() alterei para sensor_bmp.begin(0x76) tá funcionando lindamente no Arduino uno. Agora vou montar o projeto todo. Muito obrigada por compartilhar seu trabalho! Parabéns!
ResponderExcluirEu fiz aqui e deu super certo! Só tive que incluir o endereço na variável que inicializa o BMP, pois não carregava na tela as informações de temperatura e tal. Na variável sensor_bmp.begin() alterei para sensor_bmp.begin(0x76) tá funcionando lindamente no Arduino uno. Agora vou montar o projeto todo. Muito obrigada por compartilhar seu trabalho! Parabéns!
ResponderExcluirEu fiz aqui e deu super certo! Só tive que incluir o endereço na variável que inicializa o BMP, pois não carregava na tela as informações de temperatura e tal. Na variável sensor_bmp.begin() alterei para sensor_bmp.begin(0x76) tá funcionando lindamente no Arduino uno. Agora vou montar o projeto todo. Muito obrigada por compartilhar seu trabalho! Parabéns!
ResponderExcluirFala Thiago blz me tira uma dúvida, vc chegou a comercializar este vario?
ResponderExcluirExcelente, um forte abraço e e igual sucesso nos proximos
ResponderExcluirTop... meu primeiro arduino.. deu certo... agora queria incluir o modulo bluetooth... alguem tem o codigo para eu acrescentar neste projeto... to começando agora em arduino.
ResponderExcluirInfelizmente não manjo muito do modulo bluetooth, ia ficar show.
Excluirboa noite thiago estou querendo fazer um vario desses , mas nao se nada de programacao...
ResponderExcluirvi alguns videos sobre arduino e os codigos. onde e como devo me informar para conseguir fazer esse projeto?
genial código, he hecho una pequeña funcion para que se acople con xctrack
ResponderExcluirla he probado y funciona bien, espero les sirva.
void sentToUSB(float* temperature, float* pressure){
if(true){
String str_out = String("LK8EX1,")
+String(*pressure)
+String(",0,9999,")
+String(*temperature/10)
+String(",999,");
unsigned int checksum_end, ai, bi; // Calculating checksum for data string
for (checksum_end = 0, ai = 0; ai < str_out.length(); ai++)
{
bi = (unsigned char)str_out[ai];
checksum_end ^= bi;
}
Serial.print("$");
Serial.print(str_out);
Serial.print("*");
Serial.println(checksum_end, HEX);
}
}
Estoy probándolo para usarlo con xc track pero todo el rato me devuelve el siguiente error.
Excluir2022-01-12 09:53:10.166 ERROR [org.xcontest.XCTrack.z$b:c()18] USB bulk failed: -1
A que puede ser?
Muchas gracias
Podrías subirlo a github, he hecho algunas modificaciones que pienso servirían como incluir módulo bluetooth, ahora estoy intentando migrar el código a esp32.
ResponderExcluirTeria essas modificações para usar com bluetooth para compartilhar conosco? Gracias!
ExcluirComparto código para el Bluetooth
ResponderExcluirvoid sendData(int *temperature, long *pressure)
{
String str_out = String("LK8EX1,") + String(*pressure) + String(",0,9999,") + String(*temperature) + String(",999,");
unsigned int checksum_end, ai, bi; // Calculating checksum for data string
for (checksum_end = 0, ai = 0; ai < str_out.length(); ai++)
{
bi = (unsigned char)str_out[ai];
checksum_end ^= bi;
}
str_out = "$" + str_out + "*" + String(checksum_end, HEX);
if (enableSerial)
{
Serial.println(str_out);
}
sendDataBluetoothClasic(str_out);
}
how to ad this to code?
ExcluirOlá amigo, você poderia informar em qual parte do programa posso colocar esse código?
Excluirhi
ResponderExcluircan you add gps to variomrter
vc ja esta comercializando seu vario ?
ResponderExcluirInfelizmente não consegui produzir pra venda...
Excluirhttps://articulo.mercadolibre.com.ar/MLA-813870477-flybox-2-variometro-altimetro-parapente-paramotor-aladelta-_JM
Excluirhttps://nuttech.com.ar/inicio/120-flybox-2-variometro-altimetro-temperatura.html
Sensacional. Alguém implementou o filtro de kalman nesse projeto que possa compartilhar?
ResponderExcluirThank you very much for this great project!
ResponderExcluirCan you or somebody else explain the calculation of the climbrate from the sensor readings.
I get thet you are collecting samples of altitude/time and calculate the climbrate out of the last 10 samples. But i really don't get this formula:
vario=1000*((samples*N1)-N2*N3)/(samples*D1-D2*D2);
What kind of fliter is this?
Thanks, Markus
Thiago voce não vende??? Eu nao sei nada de programar e estou precisando de um
ResponderExcluirHi Thiago and to all those who follow him.
ResponderExcluirI have long been built a variometer and it works very well, but I wanted to include the GPS sensor to have speed and GPS speed.
I'm going crazy as I can't see the GPS data on the screen,
Someone could help me, please.
I attach the sketch below.
Thank you
http://www.fileconvoy.com/dfl.php?id=ge31b72541346bc5810004590393472939499a7eb61
ResponderExcluirParabéns irmão ficou show 🎉
ResponderExcluirDo you have a code for an arduino nano every, with U8g2??
ResponderExcluirE ai pessoal tudo bem , cara que projeto top, estou tentando montar o meu pois estou na duvida se esse programa que está disponível ali no link serve tanto para a placa arduino já comprada pronta, quanto para a que foi mandado fazer a impressão, alguém sabe me disser?
ResponderExcluirOpa, tudo Bom Romario, desculpa a demora, não estava conseguindo acessar.
ExcluirSim, da pra usar qualquer placa de arduino para montar o projeto, você só tem que selecionar a placa correta na plataforma de programação. Só se atente a colocar as bibliotecas na pasta correta.
O Tiago valeu por me responder, estou aguardando chegarem as peças q comprei para iniciar a montagem . Quando ficar pronto te envio como ficou.
ExcluirMontei o meu deu super certo o porém é que a bateria marca sempre zerada usei uma 3.7v de 700 mAh. Alguma dica de como resolvo esse probleminha?
ExcluirEstranho pq usei uma verificação interna de tensão de entrada do próprio microcontrolador. ou a bateria realmente esta fraca ou pode ter alguma diferença no microcontrolador...
Excluirvc pode adaptar um divisor de tensão e medir em um pino analógico para determinar o nível da bateria.
Este comentário foi removido pelo autor.
ResponderExcluirOi Thiago, tudo bom, esse blog esta com problemas, e estou tendo dificuldades para responder. Respondendo a sua pergunta de onde encontrar os componentes eletrônicos SMD. Encontrei todo na Aliexpress so procurar pelo código. o problema maior é o frete. Ou você pode comprar o arduino e shield bmp280 e tirar os componentes com uma estação de retrabalho.
ExcluirGrande Thiago! Eu apaguei meu comentario, pois vi que você comentou a mesma resposta para outro rapaz logo acima. Mas, de qualquer forma, agradeço demais a atenção. Aproveitando a oportunidade... o codigo que o "danygancino29 de outubro de 2020 às 23:49" colocou aqui na sua página, serve para seu projeto? E se sim, quais portas eu irei conectar o rx e tx do modulo bluetoof?? Abraço meu xara!
ExcluirAlguem tem o código com sensor bluetooth?
ResponderExcluir