Olá pessoal. Entrei agora para o fórum, com interesse em arduino. Meu primeiro projeto vai andar junto com aprendizado, pois não sei nada ainda. 

Quero controlar dois motores através de um app (https://play.google.com/store/apps/details?id=com.thehlab.pc.rccar) via bluetooth.

O visual do app é assim: 

As informações dos códigos são esses:

Steering wheel: send code from T00 to T99, middle point is T50
Gas Pedal: send code from S00 to S99
Guear P-R-N-D: send code G00 (P), G01(R), G02(N) and G03(D)
.
Vou usar uma ponte H L293D, para controlar dois motores traseiros, sendo que estes vão fazer o protótipo virar para direita ou esquerda. Já vi muitos projetos no youtube de robôs com dois motores, mas são diferentes do que pretendo.
.
Minha intenção é:  ao acelerar (Gas Pedal) os dois motores girem por igual com controle da velocidade, ao girar o volante (Steering Wheel) um dos motores teria uma diminuição da velocidade, fazendo o protótipo virar mantendo a velocidade para frente.
.
Minha dúvida inicial é:
.
Seria possível usar tanto o volante quanto o pedal para controlar simultaneamente os dois motores DC?
.
E se caso uma alma bondosa puder me ajudar com a adaptação da programação, acredito que tenho as bases necessárias e que estão fáceis para quem entende. (ANEXOS).
.
No anexo as sketchs originais desse app da imagem, mas ele usa um servo motor para virar as rodas dianteiras. No meu caso as rodas dianteiras ficarão livres (tipo roda boba).
.
E tbm a sketch de um outro app (https://play.google.com/store/apps/details?id=braulio.calle.bluetoo...) bastante conhecido pelo pessoal que faz robôs, nessa sketch tem programado a velocidade do motor PWM. Que estão em anexo. O arquivo pdf APP SEM VOLANTE é do link postado agora, já o arquivo APP COM VOLANTE é do app que desejo usar, que tem a imagem acima. O terceiro anexo são as duas programações no word.
.
Muito obrigado pela atenção.
E já peço desculpas por qualquer falha nessa minha primeira postagem.

Exibições: 412

Anexos

Responder esta

Respostas a este tópico

Boa noite MPS,

na dúvida eu faço como o JACK, vou por partes.

No caso do seu projeto, use o ultimo sketch que postei o " Carro_BT_V04.ino".

Não ligue no Arduíno nada além do circuito do BT.

Para o BT eu usei os ports  2 (RX) e 3 (TX).

O RX do Arduíno é o TX do BT e o TX do Arduíno é o RX do BT.

Dai, com o Arduíno ligado no PC, você abre o serial monitor, e observa se aprecem valores na tela.

Lembre-se de certificar que tanto o serial monitor quanto seu BT estão

na velocidade que eu coloquei no setup().

Os valores só aparecerão se você apertar algum comando, e principalmente

o comando R ou D.

Se nesta fase estiver tudo ok, então passe para a próxima, conectando o

drive e os motores.

Sempre com  muita atenção para não inverter pinos.

RV

Bom dia MPS,

sobre sua pergunta:

"   Na sketch tem uma definição para o port 3, que é o pino 2 do L293D.
    Não sei se estou entendendo direito, o TX deveria ser ligado
    nessa mesma port 3 ou seria na port 0 (zero) RX? "

Você  está correto, eu cometi um erro. Ainda bem que você identificou..

Esqueci que tinha usado o port 3 para o BT.

Ao invés de usar os ports 3 e 4 para o motor 1, vamos usar o 10 e 0 11.

Por favor modifique no seu sketch,

Desculpe pelo erro.

Corrigido:  Carro_BT_V05.ino

RV

Grande RV,

Que isso amigo, não tem nada que desculpar. Vou atualizar o sketch.

Abraço!

SHOW!!! 

.

Testado e aprovado a sketch RV, que bacana, funcionou legal, inclusive o giroscópio. 

Só estou achando que o CI L293D fora do driver é fraco para esse projeto, percebi que ele não conseguiu controlar o aumento e diminuição da corrente perfeitamente. Houve oscilações nos motores, por exemplo, percebi que no motor 1 ao virar para direita, ele deveria manter sua velocidade, mas diminuiu um pouco junto com o motor 2,e quando testei ele sozinho, com o motor 2 desconectado, aí ele manteve a velocidade, ou seja, acredito que esta programação exige demais do L293D. Estive pesquisando tem o mini L298N, tbm conhecido como MX1508, que parece bem robusto. Outra opção ainda pode ser o TB6612FNG. Irei providenciar. 

.

Excelente trabalho! 

Bom dia Sr. MPS,

Qdo entrar online, me chame no chat.

RV mineirin

Car_BT_01.ino

Olá RV mineirin, como vai?

Estive alterando o sketch que fizeste (retirei os links que continha no sketch original para baixar o app e para a página aqui do lab, pois ainda não consegui fazer esse funcionar) , estou adaptando para usar no ESP32, mais precisamente no wroom, estou usando um downloader para gravar nele. Consegui com sucesso fazer a conexão por bluetooth usando o app, e alterei pouquíssimas coisas do qual fizeste, incluindo agora uma biblioteca para analogWrite, pois precisei. 

Infelizmente não consegui fazer os motores funcionarem, poderia por gentileza verificar para mim, quando possível, o que estaria errado?

Agradeço por sua preciosa dedicação.

verifica por esse por favor, dei uma limpada, acabou que fui mexendo, mexendo,, o Car_BT_01 ficou com alguns rascunhos no meio do código.

Car_BT_02.ino

RV, vou tentar explicar o desafio do meu sketch dos sonhos... :))

1º - Continuar o que já está pronto, desejo usar no ESP32 WROOM, ok, isso já tinha informado.

2º - Tem uma função na sketch que está definido como N, é o comando G02. Nele gostaria que fosse implementada a mesma lógica da D (G03), com a diferença que na void movimento(), o calc_1 e calc_2 seriam divididos por 3, por exemplo, ao invés de 2 como está... isso seria para que eu tivesse dois tipos de pilotagem na mesma sketch. D (G03) divide por 2 e N (G02) divide por 3... então vou testar esses valores e alterando até ter um resultado esperado no veículo embarcado.

3º - Gostaria de definir os pinos da wroom para acender os LEDS dos faróis. Já estou com os LEDS aqui, tudo SMD, minúuuusculo, esperando chegar a pasta de solda pra conseguir soldar eles.

4º - Pretendo adicionar no projeto o módulo ADPS-9960

https://how2electronics.com/interfacing-apds9960-gesture-rgb-color-...

Ele teria uma finalidade, que seria marcar as voltas e cronometrar o tempo de cada volta...

Para isso pensei em usar somente o leitor RGB do módulo (sketch pronta no link acima).

Pensei assim... colocaria uma faixa preta no chão claro, e o ADPS 9960 embaixo do veículo, ao passar pela faixa preta ele leria a taxa de Red, Green e Blue. 

A lógica da ideia é por exemplo: Se Red < 100, Green < 20, e Blue < 100, então ativa o cronômetro... logo após, se essa condição for novamente chamada, então conta 1 volta,  imprime o tempo e começa a contar a volta 2... assim sucessivamente.

Para a leitura das voltas eu usaria um outro app em outro smartphone...  

https://play.google.com/store/apps/details?id=com.keuwl.arduinoblue...

Nesse app consigo colocar um monitor e já testei ele com o wroom aqui, deu certinho. Enviei mensagem dele pro monitor serial e do serial monitor para ele... :)) ... acho que daria até pra simular todo o app que estamos utilizando, dentro desse aí, mas isso fica pra eu tentar fazer, aprendendo, depois.

É isso RV, a parte mecânica da coisa eu tenho aqui 80% pronta, já verifiquei os espaços e consigo embarcar tudo, bateria, módulo ADPS, wroom, ponte H, demais eletrônicas, como resistor...  espero ficar bem legal o resultado final, se não ficar, não será falha da programação, mas sim do tipo de motor disponível, ou outro fator não presumido (que tentarei solucionar). Mas assim que eu tiver um resultado final legal eu me proponho a fazer uma cópia do projeto já embarcado em um carrinho hotwheels e lhe enviar como reconhecimento de sua gratidão e do seu trabalho.

Até breve! Saudações RV!

RSS

© 2021   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço