[TUTORIAL] - Computador de bordo através do TID

Faça você mesmo as instalações e manutenções em o seu Corsa.
Responder
gui_srs
:: Super ::
Mensagens: 81
https://www.facebook.com/lodz.meble.kuchenne/
Registrado em: Quinta-feira 19 2016f Maio 2016 05:31:31 PM
Localização: Santa Rita do Sapucaí - MG
Modelo do veiculo: MONTANA SPORT 1.8 MPFI FLEXPOWER
Ano de fabricação: 2007
Contato:

Re: [TUTORIAL] - Computador de bordo através do TID

Mensagem por gui_srs »

Olá Pessoal.

Cansei, vamos lá aos pontos:

TID:
Bom, realmente, acho que meu TID é diferente do seu. Quando zerado aparece 01/01/1997.
Não sei se é versão de 'firmware' mais antiga, ou se muda hardware, ou qual a diferença. Mas é um ponto a se considerar sim, pois pode existir diferenças. A questão é, isso tem solução?

ALIMENTAÇÃO:
Acabei de finalizar nesse minuto diversos testes. Fiz até um vídeo mostrando o teste com uma fonte de alimentação externa. O link segue abaixo.
O que eu fiz:
- Testei o Arduino sem regulador, com 12v diretamente no VIN.
- Testei o Arduino com uma fonte de alimentação externa regulada em 12v, com o regulador presente. (Mostrei no video).
- Inserção dos capacitores na entrada e saida do regulador, conforme comentei antes.
Nada disso fez diferença.

Ou seja, estou suspeitando que alimentação não deve ser o problema. Até porque, quando a alimentação está via USB (que ameniza um pouco os travamentos), esses travamentos não somem por completo, apenas ficam menos intensos. Então eles ainda existem. (No vídeo dá pra ver claramente).

SOBRE O EON:
Fiz um teste alimentando o Arduino via USB e liguei o carro... funcionei por alguns segundos e desliguei. Aí beleza, o Arduino continuou alimentado, o EON acendeu apos alguns segundos e apagou em seguida. Aparentemente ta funcionando.

Vi seus Videos Cansei, e realmente cara, o PC de bordo no seu carro tá funcionando LISO. Sem nenhum tipo de travamento ou lentidão.
Foi só assim pra eu entender a questão do EON, do pós chave do seu Corsa.... Infelizmente o do meu Astra não funciona dessa forma (não sei se todas as versões são assim). Temos então outro problema, a questão de memorizar já que o Astra corta a alimentação abruptamente ao desligar, e não somente ao retirar a chave.

SOBRE A IDE DO ARDUINO:
Fiz o que você sugeriu, baixei a versão 1.6.5. Também testei uma versão mais antiga hoje.
Também não fez diferença nenhuma.
Creio que não tenha relação com o problema.
Ah, lembrando que eu já tentei regravar o Sketch com as bibliotecas mais novas que vc disponibilizou.

SOBRE O CRONOMETRO:
É uma função legal, o MID original tem. Mas se a gente for parar pra pensar acho dificil ser utilizada, pois já temos o 'Tempo de Viagem' contando desde quando ligamos o carro. Eu particularmente não acho muito importante. Por isso que, se não tiver como o meu Display funcionar "liso" essas coisas, pra mim não importa muito. O que importa mesmo pra mim é que as funções principais (consumo/quilometragem/tempo) funcionem corretamente, e, claro, o armazenamento na memória. O resto é detalhe.. hehe.

SOBRE A VERSÃO DISPONIBILIZADA HOJE:
Teste ela também, mas não mudou nada. Pra falar verdade a animação do 'Bem-vindo' ficou até pior e mais travada do que a anterior, aqui no meu caso. rsrs.

SOBRE O CONSUMO:
Ainda estou fazendo a calibração.
Alterei o valor de 14.0 para 15.0 conforme sugerido, massss, o resultado acabou piorando. Deu 25% a menos registrado no computador de bordo, contra 13% da primeira vez. Ou seja, acho que o ideal seria diminuir o valor do FatorCons, certo? Alterei ela para 13.0 agora. Se o meu raciocinio estiver certo, creio que agora acertei. hehe. Confirme pra mim.

Outra coisinha:
Pode-se usar o pino 5V do Arduino para alimenta-lo? Acho que é o pino 27, próximo do VIN.
Parece que vi na especificação que pode alimentar nesse pino usando uma fonte regulada em 5v ao invés de utilizar a VIN.

Galera, por enquanto é isso... Agradeço muito a ajuda suas até o momento, e espero que a gente consiga a solução pra esses probleminhas.

Segue o video de testes na alimentação:
https://youtu.be/8rDVqAfch-Y
Matheus Abreu
:: Wind ::
Mensagens: 33
Registrado em: Sexta-feira 25 2012f Maio 2012 08:29:02 PM
Localização: São Luís - MA
Modelo do veiculo: CORSA SEDAN CLASSIC LIFE 1.0 FLEXPOWER
Ano de fabricação: 2010

Re: [TUTORIAL] - Computador de bordo através do TID

Mensagem por Matheus Abreu »

Parabéns pelo tutorial! Sou novato no Arduino e no Corsa. Em breve pretendo iniciar esse projeto. Valeu!
cansei
:: Piquet ::
Mensagens: 319
Registrado em: Quinta-feira 06 2008f Março 2008 10:30:35 PM
Localização: São Paulo - SP
Modelo do veiculo: CORSA HATCH 1 8 FLEXPOWER
Ano de fabricação: 2004

Re: [TUTORIAL] - Computador de bordo através do TID

Mensagem por cansei »

gui_srs escreveu:TID:
Bom, realmente, acho que meu TID é diferente do seu. Quando zerado aparece 01/01/1997.
Não sei se é versão de 'firmware' mais antiga, ou se muda hardware, ou qual a diferença. Mas é um ponto a se considerar sim, pois pode existir diferenças. A questão é, isso tem solução?
Eu acho que muda o hardware. Além do TID eu cheguei a mexer com o MID do Vectra e da Zafira (aquele grandão) e pra vc ter ideia a biblioteca do TID que eu uso não funcionou com ele, precisei usar uma variante que tinha lá no fórum do Arduino pra funcionar. Olhando as diferenças entre as bibliotecas o que muda são só alguns timings, deu pra ver que aquele MID exige um intervalo maior entre uma comunicação e outra provavelmente pq ele é mais lento pra processar informação, e se vc procurar bem na internet vc vai ver vários TID diferentes...

Eu tenho dois TID comigo, um que fica no meu carro e outro que fica solto aqui na minha mesa que eu uso pra testar o programa. Os dois mostram o 1/1/2000 e o que eu tenho aqui solto tem essa numeração GM:

Imagem

Outra coisa que reparei é na tela propriamente dita, a do seu TID fica rente a carcaça, não fica? No meu TID a tela fica inclinada em relação a carcaça, olha só:

Imagem

Vendo seu vídeo e olhando esses detalhes cada vez mais acho que é a versão do TID mesmo e não a alimentação o problema.
Solução acho que tem mas não sei se vai valer a pena pra vc. Eu acho que vc pode pegar um TID mais novo ou abrir mão das animações.
gui_srs escreveu:SOBRE O EON:
Fiz um teste alimentando o Arduino via USB e liguei o carro... funcionei por alguns segundos e desliguei. Aí beleza, o Arduino continuou alimentado, o EON acendeu apos alguns segundos e apagou em seguida. Aparentemente ta funcionando.

Vi seus Videos Cansei, e realmente cara, o PC de bordo no seu carro tá funcionando LISO. Sem nenhum tipo de travamento ou lentidão.
Foi só assim pra eu entender a questão do EON, do pós chave do seu Corsa.... Infelizmente o do meu Astra não funciona dessa forma (não sei se todas as versões são assim). Temos então outro problema, a questão de memorizar já que o Astra corta a alimentação abruptamente ao desligar, e não somente ao retirar a chave.
Tudo bem, vamos pensar em alguma alternativa.
Nos próximos dias eu te passo uma versão sem animação do programa.
gui_srs escreveu:SOBRE O CRONOMETRO:
É uma função legal, o MID original tem. Mas se a gente for parar pra pensar acho dificil ser utilizada, pois já temos o 'Tempo de Viagem' contando desde quando ligamos o carro. Eu particularmente não acho muito importante. Por isso que, se não tiver como o meu Display funcionar "liso" essas coisas, pra mim não importa muito. O que importa mesmo pra mim é que as funções principais (consumo/quilometragem/tempo) funcionem corretamente, e, claro, o armazenamento na memória. O resto é detalhe.. hehe.
É, eu desenvolvi isso lá nos primórdios justamente pq o MID tinha mas eu mesmo acabei tirando do programa que eu uso no meu carro. Diante dos problemas vou tirar então.
gui_srs escreveu:SOBRE O CONSUMO:
Ainda estou fazendo a calibração.
Alterei o valor de 14.0 para 15.0 conforme sugerido, massss, o resultado acabou piorando. Deu 25% a menos registrado no computador de bordo, contra 13% da primeira vez. Ou seja, acho que o ideal seria diminuir o valor do FatorCons, certo? Alterei ela para 13.0 agora. Se o meu raciocinio estiver certo, creio que agora acertei. hehe. Confirme pra mim.
O certo seria aumentar mesmo pq esses valores entram em contas de multiplicação, então aumentando o valor vc aumenta a quantidade de litros consumidos. Talvez essa variação seja pq a bomba do posto desarmou em um momento diferente da vez anterior que vc abasteceu e como vc ta calculando usando poucos litros aí a variação percentual fica grande. Meu chute é que o valor certo pra vc deve estar entre 14 e 15.

No meu carro eu optei por calibrar o consumo gastando quase todo o tanque. Atualmente estou com o fatorCons em 14 e o tanque está com pouco menos de 1/4, e o computador de bordo registrando 33 litros gastos de um tanque de 40.

Vc tb tem que levar em conta que pode ter imprecisão dos cálculos no arduino, não espere conseguir resultados super precisos. Eu tenho alguns testes planejados com foco no aumento de precisão usando formas diferentes de ler o sinal mas isso eu ainda vou levar um tempo pra conseguir fazer.
gui_srs escreveu:Outra coisinha:
Pode-se usar o pino 5V do Arduino para alimenta-lo? Acho que é o pino 27, próximo do VIN.
Parece que vi na especificação que pode alimentar nesse pino usando uma fonte regulada em 5v ao invés de utilizar a VIN.
Olha, eu nunca fiz isso mas pesquisando por aí vi gente dizendo que pode pq esse pino ta ligado na saída do regulador do arduino.
Matheus Abreu escreveu:Parabéns pelo tutorial! Sou novato no Arduino e no Corsa. Em breve pretendo iniciar esse projeto. Valeu!
Obrigado! Manda ver.
cansei
:: Piquet ::
Mensagens: 319
Registrado em: Quinta-feira 06 2008f Março 2008 10:30:35 PM
Localização: São Paulo - SP
Modelo do veiculo: CORSA HATCH 1 8 FLEXPOWER
Ano de fabricação: 2004

Re: [TUTORIAL] - Computador de bordo através do TID

Mensagem por cansei »

Ah, sobre as animações existe uma terceira possibilidade que seria fazer animações mais lentas de forma que o seu TID consiga exibir de forma adequada, mas aí vc mesmo teria que mexer no código pra ver o que fica bom.
gui_srs
:: Super ::
Mensagens: 81
Registrado em: Quinta-feira 19 2016f Maio 2016 05:31:31 PM
Localização: Santa Rita do Sapucaí - MG
Modelo do veiculo: MONTANA SPORT 1.8 MPFI FLEXPOWER
Ano de fabricação: 2007
Contato:

Re: [TUTORIAL] - Computador de bordo através do TID

Mensagem por gui_srs »

Bom dia pessoal!

Cansei, então cara, o meu TID é sim diferente, nem sabia que tinha esse de tela inclinada. O meu é rente a carcaça sim. O seu deve ser uma versão mais moderna, sei lá. Será que é especifico de algum modelo? Do astra acho que nenhum é desse jeito aí.

Bom, eu acho que não vale a pena comprar outro TID só por causa das animações. Se o restante funcionar normal, eu abro mão das animações. É bacana ter, mas acho que é detalhe também.

O que seria fazer as animações mais lentas? O tempo de movimento dela menor, por exemplo?


Quanto ao consumo, vc tem razão, valores maiores... Mas é que eu abasteci na mesma bomba, no mesmo posto, e mando parar sempre no primeiro desarme. Bom, vou continuar os testes.

Quanto a memorização das variáveis, eu pensei numa possibilidade, tipo assim:
Criar uma rotina que de X em X segundos faça leitura das variaveis e grave na memória, com o carro em funcionamento. De forma que, ao desligar de uma vez o Arduino, a tarefa de salvamento tenha sido feita. O máximo que iria acontecer é perder a atualização de X segundos atrás. Não sei qual seria o intervalo mais viável ou até se é possivel fazer dessa forma, mas acho q pode ser uma alternativa.
robsonlobinho
:: Wind ::
Mensagens: 49
Registrado em: Terça-feira 10 2016f Maio 2016 11:32:49 PM
Localização: Campinas - SP
Modelo do veiculo: CORSA WIND 1.6 MPFI 4P
Ano de fabricação: 2000

Re: [TUTORIAL] - Computador de bordo através do TID

Mensagem por robsonlobinho »

Sera que não teria como colocar alguma alimentação extra que depois de 10 seg por exemplo desligue,um capacitor por exemplo, posso estar falando besteira rs

Enviado de meu GT-I9515L usando Tapatalk
robsonlobinho
:: Wind ::
Mensagens: 49
Registrado em: Terça-feira 10 2016f Maio 2016 11:32:49 PM
Localização: Campinas - SP
Modelo do veiculo: CORSA WIND 1.6 MPFI 4P
Ano de fabricação: 2000

Re: [TUTORIAL] - Computador de bordo através do TID

Mensagem por robsonlobinho »

Acho que uma função legal seria alem da distância percorrida atual, distancia total, e tempo de viagem atual e total, e os totais fossem salvos na memória, mas acho que deve ser complicado salvar tantas variaveis assim

Enviado de meu GT-I9515L usando Tapatalk
gui_srs
:: Super ::
Mensagens: 81
Registrado em: Quinta-feira 19 2016f Maio 2016 05:31:31 PM
Localização: Santa Rita do Sapucaí - MG
Modelo do veiculo: MONTANA SPORT 1.8 MPFI FLEXPOWER
Ano de fabricação: 2007
Contato:

Re: [TUTORIAL] - Computador de bordo através do TID

Mensagem por gui_srs »

Estive conversando com meu pai e pensamos tambem na possibilidade de se utilizar um timer para alimentar o Arduino. Parece que não é dificil de fazer. Após desligar o pós chave ele manteria o Arduino alimentado por cerca de alguns segundos ou o tempo que for necessário e desativa em seguida. Acho uma solução bem interessante também.
AlexSGP
:: Wind ::
Mensagens: 23
Registrado em: Quarta-feira 23 2016f Março 2016 09:25:19 PM
Localização: São João de Meriti - RJ
Modelo do veiculo: CORSA (DEMAIS)
Ano de fabricação: N/I

Re: [TUTORIAL] - Computador de bordo através do TID

Mensagem por AlexSGP »

Save galera!

Gravar em cada X segundos causa um problema de lentidão, pois o arduino para gravar na EEPROM ele perde segundos preciosos que seriam para enviar os dados para o display e fazer outros cálculos. (Cansei me corrija se estiver errado), tem a possibilidade de incluir mais um componente EEPROM (memoria externa), existem EEPROM com comunicação I2c o que ficaria bem mais tranquilo para o arduino, pois ele só enviaria para a memoria externa via I2C o que ela tem que gravar e todas as vezes que o arduino for ligado ele consulta via I2C a memoria externa e atualiza as variáveis com os dados gravados na mesma.

Alimentação extra vc pode utilizar um rele temporizador para manter o arduino ligado por X segundos/minutos apos a chave do veiculo desligado, tempo suficiente para guardar os dados na EEPROM. (há outras formas)

Utilizei o arduino num projeto tão grande que era arriscado ene falhar em um processo onde não é admitido falhas, a solução fui utilizar 2 arduinos onde o mesmo se comunicavam via serial para que um soubesse o que o outro estava fazendo, mas cada um era responsável por leitura e controle de comandos de seu lado do equipamento (era um guindaste no caso).

Cansei, por favor corrija-me se falei besteira.

VLW!!!
cansei
:: Piquet ::
Mensagens: 319
Registrado em: Quinta-feira 06 2008f Março 2008 10:30:35 PM
Localização: São Paulo - SP
Modelo do veiculo: CORSA HATCH 1 8 FLEXPOWER
Ano de fabricação: 2004

Re: [TUTORIAL] - Computador de bordo através do TID

Mensagem por cansei »

gui_srs escreveu:Cansei, então cara, o meu TID é sim diferente, nem sabia que tinha esse de tela inclinada. O meu é rente a carcaça sim. O seu deve ser uma versão mais moderna, sei lá. Será que é especifico de algum modelo? Do astra acho que nenhum é desse jeito aí.
O meu deve ser o de Corsa/Meriva que são carros que foram lançados depois do Astra, mas eu aposto que nos últimos Astras a GM deve ter usado essa versão mais nova do TID.
gui_srs escreveu:O que seria fazer as animações mais lentas? O tempo de movimento dela menor, por exemplo?
Deixar ela mais devagar, pra da tempo pro seu TID processar todos os comandos, aí não fica a sensação de engasgo. Faz um teste com esse código abaixo:

Código: Selecionar todos

void texto_boas_vindas()
{
  byte i;
  zera_intervalo();
  for (i=0;i<11;i++)
  {
    mydisplay.display_message(F("           Bem-vindo!"),20);
    mydisplay.display_symbol(i);
    atraso(50);
    coisas_a_fazer_sempre();
  }
  mydisplay.clear_message();
  coisas_a_fazer_sempre();
  mydisplay.display_message(F("Bem-vindo!"),20);
  while(intervaloMiliSecs <= 3000)
  {
    calcula_intervalo();
    coisas_a_fazer_sempre();
  }
  for (i=11;i>0;i--)
  {
    mydisplay.display_message(F("Bem-vindo!           "),255);
    mydisplay.clear_symbol(i);
    atraso(50);
    coisas_a_fazer_sempre();
  }
}
Ta vendo os dois trechos atraso(50)? Vai testando como fica aumentando esse número aos poucos, vai aumentando de 10 em 10 ou de 50 em 50.
A função atraso faz tipo de uma pausa no programa com a quantidade de milisegundos que vc coloca entre os parenteses. Isso deve dar um tempo pro seu TID conseguir processar o próximo comando.

gui_srs escreveu:Quanto a memorização das variáveis, eu pensei numa possibilidade, tipo assim:
Criar uma rotina que de X em X segundos faça leitura das variaveis e grave na memória, com o carro em funcionamento. De forma que, ao desligar de uma vez o Arduino, a tarefa de salvamento tenha sido feita. O máximo que iria acontecer é perder a atualização de X segundos atrás. Não sei qual seria o intervalo mais viável ou até se é possivel fazer dessa forma, mas acho q pode ser uma alternativa.
Eu cheguei a pensar nessa alternativa antes de montar a função que tem hoje, o problema dela é que a memória do Arduino não aguenta que fiquem gravando coisas nela indefinidamente. Ela aguenta cerca de 100 mil ciclos de gravação antes de começar a falhar, isso até parece um número alto só que se a gente fica gravando toda hora rapidinho a gente chega nesse número.
robsonlobinho escreveu:Sera que não teria como colocar alguma alimentação extra que depois de 10 seg por exemplo desligue,um capacitor por exemplo, posso estar falando besteira rs
Não é besteira não, o problema é que precisa de um capacitor grande pra dar conta de alimentar o Arduino por um tempo aceitável.
A alimentação extra é mais viável, o problema aqui é que a gente só precisa disso por alguns segundos.
robsonlobinho escreveu:Acho que uma função legal seria alem da distância percorrida atual, distancia total, e tempo de viagem atual e total, e os totais fossem salvos na memória, mas acho que deve ser complicado salvar tantas variaveis assim
É complicado sim. Pra salvar os outros dados de viagem eu vou ser obrigado a criar tudo isso que vc falou.

A distância total eu já criei no programa do meu carro e to testando ela. Essas coisas eu vou levar um tempo pra fazer pq dão mais trabalho.
gui_srs escreveu:Estive conversando com meu pai e pensamos tambem na possibilidade de se utilizar um timer para alimentar o Arduino. Parece que não é dificil de fazer. Após desligar o pós chave ele manteria o Arduino alimentado por cerca de alguns segundos ou o tempo que for necessário e desativa em seguida. Acho uma solução bem interessante também.
Eu tb acho que o caminho é por aí, um tempo atrás cheguei a ver um relé que fazia isso só que não fui muito atrás dele pq eu queria ver se tinha algo menor e mais simples. Se tiver mais informações posta aí.
AlexSGP escreveu:Save galera!

Gravar em cada X segundos causa um problema de lentidão, pois o arduino para gravar na EEPROM ele perde segundos preciosos que seriam para enviar os dados para o display e fazer outros cálculos. (Cansei me corrija se estiver errado), tem a possibilidade de incluir mais um componente EEPROM (memoria externa), existem EEPROM com comunicação I2c o que ficaria bem mais tranquilo para o arduino, pois ele só enviaria para a memoria externa via I2C o que ela tem que gravar e todas as vezes que o arduino for ligado ele consulta via I2C a memoria externa e atualiza as variáveis com os dados gravados na mesma.

Alimentação extra vc pode utilizar um rele temporizador para manter o arduino ligado por X segundos/minutos apos a chave do veiculo desligado, tempo suficiente para guardar os dados na EEPROM. (há outras formas)

Utilizei o arduino num projeto tão grande que era arriscado ene falhar em um processo onde não é admitido falhas, a solução fui utilizar 2 arduinos onde o mesmo se comunicavam via serial para que um soubesse o que o outro estava fazendo, mas cada um era responsável por leitura e controle de comandos de seu lado do equipamento (era um guindaste no caso).

Cansei, por favor corrija-me se falei besteira.

VLW!!!
Da EEPROM da pra tratar a lentidão aumentando o intervalo de tempo entre uma gravação e outra, acho que o problema maior é o ciclo limitado de gravações que ela suporta. Gravando de maneira frequente ela não vai durar muito. Da uma olhada: https://www.arduino.cc/en/Reference/EEPROMWrite

A memória externa da pra fazer, da pra colocar um módulo com cartão SD e gravar tudo nele, é uma opção. Não sou contra mas eu particularmente fico com a sensação que a gente ta matando mosca com bala de canhão pq são poucos bytes que vamos gravar. Se a gente conseguir resolver isso de uma maneira simples acho que seria ideal.

Da alimentação eu concordo, acho que é por aí mesmo.
Responder
  • Tópicos Semelhantes
    Respostas
    Exibições
    Última mensagem

Voltar para “Tutoriais”

Clube do Corsa - Fórum do Chevrolet Corsa