Diagnostico automotivo

Olá amigos, estou querendo desenvolver um software de diagnostico automotivo em java para ler o parâmetros de sensores do carro. Por assim dizendo um software de diagnostico automotivo no qual possa ver o estado de avanço do motor, RPM, erros gravados na memoria, TPS, CTS, IAC, CO entre outros.

Meu objetivo é montar um computador de bordo onde eu possa ter todos esses parâmetros de dentro do carro sem a necessidade de levar o carro em um “mexanico”…

O problema é que não sei onde posso encontrar algo para começar o desenvolvimento. Tenho o scanner caseiro que os amigos kadetteiros montaram e usando o EFI Live para pra ler alguns parâmetros, porem não é confiável.

O meu carro é um Kadett EFI 1.8 GL que usa ECU Delco Multec 700.

Alguém poderia me ajudar com esse dilema?

Já consegui conectar o scanner EFI Live para funcionar na porta COM e com um software capturei os dados que são enviados para ECU e os dados que são recebidos da ECU. Os dados vem na forma de hexadecimal, preciso de algo que me ajude a interpretar esses dados Hex para que assim eu possa contervelos em RPM, MAP etc…

Se alguém conseguir me da uma luz agradeço…

Este scanner que você conseguiu deve ter fabricante, modelo e ainda deve ter um firmware dentro dele que também tem versão.

Tente encontrar a documentação tecnica que explica o protocolo de comunicação serial. Se não encontrar nada mesmo, estude a viabilidade de adquirir outro scanner com documentação para desenvolvimento.

Obs.: Boa sua idéia de monitorar seu carro.

wiliamps

[quote=wiliamps]Este scanner que você conseguiu deve ter fabricante, modelo e ainda deve ter um firmware dentro dele que também tem versão.

Tente encontrar a documentação tecnica que explica o protocolo de comunicação serial. Se não encontrar nada mesmo, estude a viabilidade de adquirir outro scanner com documentação para desenvolvimento.

Obs.: Boa sua idéia de monitorar seu carro.

wiliamps
http://oracle2java.blogspot.com/[/quote]

Olá amigo, este scanner que tenho é um adaptador serial to USB e ele não tem a particularidade especifica, ou seja, é um conversor de serial ttl para usb quem faz o trabalho de interpretação é o algorítimo.

No caso, nenhum aparelho a venda fornece a documentação sobre interpretar os hex para convertemos em dados reais da tabela ascii. O que pretendo é saber se alguém daqui já conseguiu isso e se pode me ajudar, entende…

Em todo caso, agradeço sua opinião!

Como você está utilizando USB na adaptação, faça uma leitura via Porta Serial. Utilizou Java Comm API para isso, mas a Sun não investiu muito nela e não tem atualização mais. Sempre me recomendaram RXTX porque é utilizado mais hoje.

Sobre usar o RXTX para ler serial, veja este artigo: http://www.devmedia.com.br/utilizando-a-api-rxtx-para-manipulacao-da-serial-parte-i/6722

Para converter uma string de hexa em ASCII:

	public static String hexStringToAscii(String hex) {

		int hexPosition = 0;

		if (hex == null) return null;

		String newHex = hex.replace(" ", "");

		byte[] bts = new byte[newHex.length() / 2];
		for (int i = 0; i < bts.length; i++) {
			bts[i] = (byte) (Integer.parseInt(newHex.substring(hexPosition, hexPosition+2), 16) & 0xFF);
			hexPosition += 2; 
		} 

		return new String(bts);

	}	

wiliamps

Galera consegui com a ajuda do wiliamps fazer a comunicação com a porta serial.

Agora preciso é uma ferramenta que não sei nome para netbeans.

Bem eu quero é montar um scanner automotivo e gostaria de obter aquelas ferramentas que parecem o RPM analógico e/ou digital assim como os medidos de temperatura e voltagem.

Como eu não sei o nome desta ferramenta ou gui, gostaria que me informem o nome dela para que eu possa realizar o download e começar a dar caras ao meu scanner.

Alguém tem ideia do nome dessa ferramenta e onde posso baixa-la?

Já tentei pesquisar com diversos nomes no google sem sucesso.

Obrigado!

Opa, você conseguiu avançar então. Parabéns.

Sobre o medidor de RPM, isso é o mesmo que manometro. É um termo geral para medidores analógicos de desempenho, pressão etc.

Não sei se vai conseguir isso pronto, talvez se você explorar um framework gráfico é até capaz de achar um componente gráfico na forma de relógio analógico. Ai basta você personalizar o gráfico e integrar ao seu algoritimo de medição de RPM.

Veja no site do SwingX (http://swingx.java.net/), porque costuma ter extensões boas de componentes do Java Swing.

wiliamps

[quote=wiliamps]Opa, você conseguiu avançar então. Parabéns.

Sobre o medidor de RPM, isso é o mesmo que manometro. É um termo geral para medidores analógicos de desempenho, pressão etc.

Não sei se vai conseguir isso pronto, talvez se você explorar um framework gráfico é até capaz de achar um componente gráfico na forma de relógio analógico. Ai basta você personalizar o gráfico e integrar ao seu algoritimo de medição de RPM.

Veja no site do SwingX (http://swingx.java.net/), porque costuma ter extensões boas de componentes do Java Swing.

wiliamps


[/quote]

Valeu wiliamps, vou pesquisar com o termo me passado e ver que consigo.

Muito obrigado!

Ae wiliamps, com base no que você me disse consegui chegar até um site onde tem o nome desses componentes.

O nome deles é gauge controls.

Pesquisei no google e veio um monte:
https://www.google.com.br/search?hl=pt-PT&site=imghp&tbm=isch&source=hp&biw=1280&bih=699&q=framework+gráfico+para+netbeans&oq=framework+gráfico+para+netbeans&gs_l=img.3...1205.8492.0.8712.31.9.0.22.22.0.226.1646.1j1j7.9.0...0.0...1ac.1.2.img.Pj9eh5YQh20#hl=pt-PT&tbo=d&site=imghp&tbm=isch&sa=1&q=gauge+controls&oq=gauge+controls&gs_l=img.3..0i24.100188.101608.2.102117.2.2.0.0.0.0.251.453.2-2.2.0...0.0...1c.1.2.img.w4oxEUCHy9Y&bav=on.2,or.r_gc.r_pw.r_cp.r_qf.&fp=c831fb9ae19645eb&biw=1280&bih=699

Valeu pela ajuda.

Obrigado pela informação.

Este seu sistema você vai embarcar no carro ou é só um estudo mesmo?

Qualquer dúvida, estamos aqui para nos ajudar mesmo.

wiliamps

Então cara, é assim o meu objetivo é criar um scanner para verificar o status dos sensores do veiculo.

Futuramente se tudo der certo prentendo melhorar o projeito e criar um computador de bordo para colocar no GPS ou num dispositivo como o carPC.

Mas primeiro, vou montar para ser no PC para eu ir me familiarizando com a programação em Java.

É um estudo e também minha vontade colocar no carro, então acho que a melhor maneira de aprender a programação é por a mão na massa para fazer o que no meu caso eu desejo.

Valeu, caso eu tenha mais duvidas, voltarei aqui.

Massa colega isso, existe hardwares prontos que leem os dados das centrais dos carros que possuem injeção eletrônica, da um procurada por OBD2, esses hardwares normalmente enviam os dados que são lidos da central via bluetooth ou 3g, qualquer duvida so perguntar.

Então cara isso eu já sabia, foi justamente por esse motivo que eu tomei iniciativa de montar um pra mim.

Mas no meu caso OBD2 não serve, porque o protocolo de meu carro é OBDI ou o famoso ALDL 12 pinos. Esse protocolo foi usado nos carros da GM fabricados na década de 90 como Monza/Kadett/Corsa/S10 até 96.

Eu já tenho o hardware e já achei um software que faz essa leitura, porém o software é pago e totalmente em inglês fora que alguns parâmetros a medição não é a real.
Por isso quero fazer um pra mim que seja mais confiável e também por hob, pois gosto de poder fazer coisas do jeito que quero.

Meu desafio agora é achar os medidores chamado de “gauges” para que o sistema tenha os medidores estilo radial como os softwares atuais. Ontem depois de muito pesquisar achei na net um free que se chama Jfreechart. É mais pra gráficos, mas tem uma parte lá que é radial sendo que um medidor é idêntico à um termômetro antigo.

Agora preciso estudar esse JfreeChart para construir os medidores.

É bem possível que ainda precise da ajuda de vocês. A medida que eu precisar postarei aqui as duvidas.

Valeu!