Arduino + Carro RC RX2\TX2

bubulindo:
Não... a interferência é estares a enviar 5V e teres um chip que liga esses 5V ao GND. Que achas que vai acontecer na base do transistor?

Estás a perceber? É interferência no sentido em que um chip interfere com o outro.

Agora ficou mais claro que água!!! rs

Muito obrigado!

Aqui estão as fotos da máquina:









O melhor é tirar o chip e ligar o arduino no sitio onde estavam os outputs (back,fwrd,left,right)? Entre o arduino e essas ligações usa-se algum Opto-isolator (ou alguma proteção) ?

almamater:
Aqui estão as fotos da máquina:

O melhor é tirar o chip e ligar o arduino no sitio onde estavam os outputs (back,fwrd,left,right)? Entre o arduino e essas ligações usa-se algum Opto-isolator (ou alguma proteção) ?

Me parece que sim, pois os transistores protegem as porta do arduíno. Como alimentarás o arduino e o motor?

Vamos ver se o bubulindo percebe algo mais ^^

Para a alimentação estava a pensar deixar ficar as pilhas apenas para os motores tal como estão ligados os fios e usar uma bateria externa para o Arduino (9V ou assim) ligando o GRND das pilhas (motor) ao Arduino.

Sim, isso parece realmente com o que tinha dito... é tirar o chip e soldar lá os fios que vêm do Arduino para dar os comandos. :slight_smile:

Andei a correr a web procurando o esquema do teu carro mas não encontrei, fazendo a busca pelo google imagens, encontramos umas placas semelhantes e o esquema básico do TX2/RX2 http://forum.cxem.net/index.php?showtopic=16742&st=20, mas o sites são poloneses ou russos (mas o tradutor do google dá uma ajudinha) rs

O meu circuito eu encontrei sem muita dificuldade, tudo bem que foi em um site chinês lol

Peço desculpa por voltar ao assunto mas só agora tive disponibilidade de iniciar o processo XD

Surgiram apenas as seguintes dúvidas:

  • Na vossa opinião qual a melhor forma de retirar o chip sem danificar outros componentes\fios, ferro de soldar ou estação de ar quente?
  • Para se controlar a velocidade dos motores convém ligar a pinos PWM do Arduino e enviar sinal nesta forma?

Unicamente vou retirar o chip, ligar o arduino e deixar tudo o resto, tem uns 4 fios de alimentação, rosa+preto e dois mais pequenos vermelho+laranja (deve ser para diferentes voltagens digo eu).

Ferro de soldar. Ar quente vai dessoldar tudo o que está à volta, né?

Sim.

almamater:
Na vossa opinião qual a melhor forma de retirar o chip sem danificar outros componentes\fios, ferro de soldar ou estação de ar quente?

almamater:
Eu removi usando um sugador de solda, com cuidado não danificarás nada :wink:

Unicamente vou retirar o chip, ligar o arduino e deixar tudo o resto, tem uns 4 fios de alimentação, rosa+preto e dois mais pequenos vermelho+laranja (deve ser para diferentes voltagens digo eu).

Por que diferentes voltagens? Acompanha a conexão das baterias até o interruptor e do interruptor até a placa, se você tiver um multímetro pode medir a tensão e ver como as conexões dos fios se comportam.

Pronto, com algum trabalho lá consegui remover o chip. Foi um pouco complicado devido aos fios soldados não dava para rodar muito a placa.

Mas correu bem, tirando uma pasta que meteram em cima dos componentes, pois com o ferro de soldar aquilo derrete tudo e fica tudo pegajoso.. grrr, deve ser para proteger ou assim.

Coloquei um socket para mais tarde usar o chip original se for preciso e agora só falta testar com o Arduino.

Outra dúvida :relaxed:

Ontem testei ligar o Arduino e funcionou, liguei diretamente nos pinos (Back\Forward\Right\Left) e o carro funcionou como esperado. Alimentei o Arduino com uma pilha de 9V e o carro com as 6 pilhas dele (liguei o Grnd ao do Arduino).

Para verificar se podia queimar alguma coisa medi a intensidade de corrente com o multimetro, uma ponta no pino VDD e outra nos outros pinos (Back\Forward\Right\Left) e tive um valor de ~30mA.. depois troquei as 6 pilhas do carro (que já estavam fracas) por umas novas e voltei a medir, já tive valores na ordem dos ~60mA.. desta forma é arriscado ligar diretamente o Arduino não é?

Olá, almamater.

Desculpe-me por não responder antes, tenho tido problemas no trabalho que me tomam todo o tempo.

Na verdade você precisa ligar o multímetro entre o pino do arduino e a base do transistor para medir a corrente, como se o multímetro fosse uma extensão do fio.

veja a imagem nessa página:
http://forum.pcproject.com.br/usando-os-multimetros-medindo-corrente-dc-fontes/166

ou;

pino do arduino + ponta preta do multímetro-----------multímetro----------ponta vermelha do multímetro + base do transistor.

Percebes?

Sim eu medi dessa forma mas em vez de colocar no transistor coloquei por exemplo no pino FORWARD (onde antes estava o chip), e com o multimetro nos 200mA, os valores chegam a ir aos ~60. Ontem testei colocar uma resistência de 1K entre o pino do Arduino e o FORWARD, com esta resistência o multimetro mede o máximo de 03.3mA, penso que desta forma é o mais seguro para limitar a corrente não?

P.S.: Algum problema em alimentar o Arduino tb a partir das pilhas do carro? Podia ligar diretamente no VIN do Arduino e dessa forma a alimentação era apenas uma (carro e arduino).

30mA? Ou 3mA? 30mA ainda é um pouco alto para um pino do ATmega.

Onde é que essa resistência ia dar? A um chip/transistor? Ou ao motor?

Não há problema em alimentar o Arduino com as pilhas do carro.

Meti o multimetro na escala de 200mA e a leitura foi de 03.3mA por isso são os 3.3mA, esta resistência ia dar onde o chip estava ligado (pino FORWARD) que depois liga aos transistores que controlam o motor.

Realmente, 60mA é um pouco alto, estranho que a base do transistor pegue tanta corrente, verificarei na minha ponte H, apensar de que nela já existem resistores entre o transistor e os pinos onde conecto o arduino, penso que essa é a melhor forma de limitar a corrente.

Não existe problema em alimentar a ponte H com a mesma fonte do arduino, mas lembre-se que esses motores "low cost" consomem muita corrente (entre 600mA e 800mA cada, apesar dos transistores, pelo menos no meu caso, serem amplificadores), como no meu "brinquedo" tenho sensores de temperatura (monitorando a temperatura das baterias), divisores de tensão (para monitorar a tensão das baterias) e infravermelho uso uma fonte diferente para evitar ruídos. Ao ativar os três motores (dois laterais e mais o motor da torre do tanque) usando duas baterias de Li-ion (3,7v e 2200mAh cada) a tensão caiu muito no regulador de tensão. sem dizer que os motores param, mas o arduino não ^^

1º teste concluído, usei um conversor Serial RS232 para enviar comandos:

1 -> Frente
2 -> Trás
3 -> Frente + Direita
4 -> Frente + Esquerda
5 -> Trás + Direita
6 -> Trás + Esquerda

As 6 pilhas do carro têm uns ~6v em vez dos 9v, por esse motivo o carro está assim a morrer um pouco, mas depois testo com pilhas novas e tb com o módulo Bluetooth para não haver fios :slight_smile:

Vídeo: RC Car controlled by Arduino - Test 1 - YouTube

Bacana! Agora é só ir melhorando ^^

Qual linguagem de programação você usará para controlar via bluetooth serial?

Eu preciso fazer um desses filminhos qualquer hora, mas eu sempre desmonto antes de pensar e quando penso fico com preguiça de monta lol

Vou usar VB .Net, a comunicação Serial já está programada e é só concluir o envio das variáveis e asssim, falta-me ver se consigo adaptar um jostick ou um comando mas não deve ser muito difícil.

Eu peguei uns códigos para fazer usando direct imput do SDK do DirectX, mas deixei de lado por falta de tempo =/

Fiz minha interface no PC usando C#, mas esta tudo muito bagunçado ainda, pois tudo o que vou testando e incrementando eu coloco no mesmo sketch, até eu me perco lol

Quando eu tiver um tempo para revisar meus códigos eu compartilho aqui, dependendo de como você montar o código para o PC mandar para o arduino, se o arduino não for responder para que o pc envie novo comando, cuidado com as propriedade Handshake, eu testei diversos métodos de leitura do SerialPort e para melhor sincronização estou usando o método ReadByte, pode parecer mais trabalhoso, porem pareceu-me mais eficiente quando trocamos muitos pacotes em um intervalo de tempo pequeno. Evite usar o ReadExisting, tive problemas e vi muitos reclamarem pelos fóruns da vida