Páginas

Robot Total Control 23 Channels


- Controle para Robô de 2 Motores com 23 canais:

- Controle de 5 Velocidades;
- Controle dos motores com 8 movimentos;

- 10 Botões com icones para controles ON/OFF para  dispositivos conectados ao seu Robô, como Farol, Lanterna, buzina, Acionadores, Eletroimãs, Lazer Farol de led Cree Q5 e outros conforme sua necessidade.

- Efeitos de Luz e Som podem ser adicionados, pois estes são importantes quando o Robô participa de eventos e demonstrações públicas em feiras de ciências.

Robot Total Control 23 Channels




Google Play: 



Veja no meu canal Youtube:


Icone de Apresentação:




Conteúdo:

1)- Descrição de Funcionamento;

2)- Comandos utilizados e pinagem do Arduino;

3)- Fotos do aplicativo;

3.1)- Fotos do aplicativo funcionando com tablet Samsung;

4)- Código Arduino: Robot Total Control 23 Channels

5)- Lista de Materiais;

6)- Esquema de ligações;


1)- DESCRIÇÃO DE FUNCIONAMENTO:

Robô Bluetooth Arduino Uno r3 de baixo custo:
Robô 2 motores, controle em 8 direções, 5 velocidades e 10 ON/OFF: Total de 23 canais.

Codigo para Arduino Uno r3 - Gratuito:
//-------------------------------------------------------------------------------
//  Código para Arduino Uno r3:
//  App -  Robot Total Control 23 Chanels.
//-------------------FORWARD-------------------- 
 if(caracter == 'F')
{
 digitalWrite(D4,HIGH);
 digitalWrite(D5,LOW);
 digitalWrite(D6,HIGH);
 digitalWrite(D7,LOW);
}
//-------------------------------------------------------------------------------

Conteúdo:

1)- Descrição de Funcionamento;
2)- Comandos utilizados e pinagem do Arduino;
3)- Fotos do aplicativo;
3.1)- Fotos do aplicativo funcionando com tablet Samsung;
4)- Código Arduino Uno r3: Robot Total Control 23 Channels;
5)- Lista de Materiais;
6)- Esquema de ligações;

1)- Descrição de Funcionamento:

Controle total dos motores com 8 movimentos:

1)-Ir para Frente;
2)-Ir para Traz;
3)-Girar no próprio Eixo para a Esquerda;
4)-Girar no próprio Eixo para a Direita;
5)-Ir para Frente Girando para a Esquerda(curva aberta);
6)-Ir para Frente Girando para a Direita(curva aberta);
7)-Ir para Traz Girando para a Esquerda(curva aberta);
8)-Ir para Traz Girando para a Direita(curva aberta);

Controle PWM para Potência dos Motores  com 5 Velocidades:

1)- Velocidade 1: 20% da Potência;
2)- Velocidade 2: 40% da Potência;
3)- Velocidade 3: 60% da Potência;
4)- Velocidade 4: 80% da Potência;
5)- Velocidade 5: 100% da Potência Máxima;

Switches - Controle ON/OFF de 10 canais:
1)- Farol: Frontal Light Button icon Blue Light;
2) -Luz interna: Internal Light Button icon Green Light;
3)- Lanterna trazeira: Back Light Button icon Yellow Light;
4)- Buzina: Horn Button icon White horn(Pressione para acionar e solte para desligar);
5)- Canal 5: Button icon  Yellow car;
6)- Canal 6: Button icon Red triangle;
7)- Canal 7: Button icon Windshield yellow;
8)- Canal 8: Button icon Red battery;
9)- Canal 9: Button icon Drowner yellow;
10)- Canal 10: Button icon Red temperature;
11)- Canal Extra para Buzina localizado no centro do volante(direção)(Pressione para acionar e solte para desligar);

Todos os 11 canais podem ser modificados para qualquer outro acionamento, conforme sua  necessidade, possibilitando uma grande  combinação de  controles de sua preferencia.


Como Funciona o Robot Total Control 23 Chanels:

O aplicativo Android se conecta com o Arduino  via bluetooth. Então quando pressionamos o por exemplo o botão para o Robô ir para frente, o App envia um caracter "F" este caracter é interpretado pelo Arduino através de seu código(fornecido gratuitamente) e envia sinal para a placa de com o Driver Ponte H onde será feito o acionamento de potencia dos motores; Neste caso exemplo comando Ir para Frente os dois motores serão acionados no mesmo sentido de rotação que dará propulsão para o Robot Ir para Frente.

Exemplo Ir para Traz os dois motores também serão acionados mas neste caso em sentido de rotação contrário ao exemplo acima o que  fará com que o Robô ande para Traz.

Mantendo a mesma analogia quando o Robô Gira no Eixo significa que um motor é acionado no sentido horário e outro no sentido antihorário e assim por diante.

Para o Robô ir para Frente Girando para a Esquerda(Curva Aberta) então os dois motores giram no mesmo sentido mas um deles através do controle PWM tem sua potencia reduzida fazendo com que um motor gire mais rápido que o outro o que faz o Robô executar uma curva aberta.

Toda esta operação fica por conta do App. Robot Total Control 23 Channels com o  Código Arduino.

VEJA TAMBÉM:

PROGRAMA CÓDIGO ARDUINO COMPLETO;
ESQUEMA DE LIGAÇÕES COM LEDS;
ESQUEMA DE LIGAÇÕES COM MÓDULOS DE RELÉS;
LISTA DE MATERIAIS;
FOTOS E VÍDEOS;
DESCRIÇÃO DE FUNCIONAMENTO;
DESCRIÇÃO DE TODOS OS COMANDOS E PINAGENS DO ARDUINO;

2)- COMANDOS UTILIZADOS E PINAGEM ARDUINO:

TELA DO APP. E COMANDOS.





TOTAL CONTROL: O App. permite a movimentação do Robô em todos os sentidos com apenas Dois Motores, utilizando o sistema PWM para controle de tração independente; Veja figura abaixo.

1)-Ir para Frente;
2)-Ir para Traz;
3)-Girar no próprio Eixo para a Esquerda;
4)-Girar no próprio Eixo para a Direita;
5)-Ir para Frente Girando para a Esquerda(curva aberta);
6)-Ir para Frente Girando para a Direita(curva aberta);
7)-Ir para Traz Girando para a Esquerda(curva aberta);
8)-Ir para Traz Girando para a Direita(curva aberta);



A buzina também pode ser acionada no painel ou volante(Direção) conforme mostrado abaixo:
Pressione para acionar e solte para desligar(Pulsativo)

CONTROLE DE POTÊNCIA DOS MOTORES 
 Controles  com 5(cinco) Velocidades que assumem valores de 20% a 100% da Potência Máxima.
Veja na figura abaixo:



Controle para o Robô com 10 Canais independentes:

Controle de 4 canais ao lado direito da tela do App. com icones relacionados conforme figura abaixo:



Controle de 6 canais parte inferior da tela do App. com icones relacionados conforme figura abaixo:



TELA DEMONSTRAÇÃO DOS CARACTERES ENVIADOS VIA BLUETOOTH PELO APP.

TELA REFERÊNCIA DA PINAGEM ARDUINO UNO:



1)- Farol: Frontal Light Button icon Blue Light;
2) -Luz interna: Internal Light Button icon Green Light;
3)- Lanterna trazeira: Back Light Button icon Yellow Light;
4)- Buzina: Horn Button icon White horn(Pressione para acionar e solte para desligar);
5)- Canal 5: Button icon  Yellow car;
6)- Canal 6: Button icon Red triangle;
7)- Canal 7: Button icon Windshield yellow;
8)- Canal 8: Button icon Red battery;
9)- Canal 9: Button icon Drowner yellow;
10)- Canal 10: Button icon Red temperature;
11)- Canal Extra para Buzina localizado no centro do volante(direção)(Pressione para acionar e solte para desligar);

PINAGEM ARDUINO UNO:
Controle dos botões do painel: 10 Canais.
 pinMode(AA0, OUTPUT); 1)- Farol: Frontal Light Button icon Blue Light;
 pinMode(AA1, OUTPUT); 2) -Luz interna: Internal Light Button icon Green Light;
 pinMode(AA2, OUTPUT); 3)- Lanterna trazeira: Back Light Button icon Yellow Light;
 pinMode(AA3, OUTPUT); 4)- Buzina: Horn Button icon White horn;
 pinMode(AA4, OUTPUT); 5)- Canal 5: Button icon  Yellow car;
 pinMode(AA5, OUTPUT); 6)- Canal 6: Button icon Red triangle;

D0, D1(N/C) Não utilizados;

D2, D3(Bluetooth TX, RX);

 pinMode(D8,  OUTPUT); 7)- Canal 7: Button icon Windshield yellow; 
 pinMode(D11, OUTPUT); 8)- Canal 8: Button icon Red battery;
 pinMode(D12, OUTPUT); 9)- Canal 9: Button icon Drowner yellow;
 pinMode(D13, OUTPUT); 10)- Canal 10: Button icon Red temperature;

Controle dos motores; 
 pinMode(D4, OUTPUT);
 pinMode(D5, OUTPUT); 
 pinMode(D6, OUTPUT); 
 pinMode(D7, OUTPUT); 

Controle de Potência(PWM);
D9 - analogWrite (TURBO_D, POTENCIA); 
D10 - analogWrite (TURBO_E, POTENCIA);

Obs1.:

D0 = N/C(não utilizado);
D1 = N/C(não utilizado);

D2 = TX do Módulo Bluetooth(JY-MCU);
D3 = RX do Módulo Bluetooth(JY-MCU);


3)- Imagem do aplicativo:





3.1)- Fotos do aplicativo funcionando com tablet Samsung:









4)- Código Arduino: Robot Total Control 23 Channels

             
//-------------------------------------------------------------------------------
//  Código para Arduino Uno r3:
//  App -  Robot Total Control 23 Chanels.
//-------------------------------------------------------------------------------
 #include <SoftwareSerial.h>
 SoftwareSerial mySerial(2, 3); // 2-RX, 3-TX

 int AA0 =  A0;
 int AA1 =  A1;
 int AA2 =  A2;
 int AA3 =  A3;
 int AA4 =  A4;
 int AA5 =  A5;

 int D4 =  4;
 int D5 =  5;
 int D6 =  6;
 int D7 =  7;
 int D8 =  8;
 int D11 =  11;
 int D12 =  12;
 int D13 =  13;

 int POTENCIA = 0;//Cria a variavel POTENCIA;
 int TURBO_D = 9;// Cria a variavel TURBO_D com o numero do pino Arduino;
 int TURBO_E = 10;// Cria a variavel TURBO_E com o numero do pino Arduino;
 int DriverL = 6;
 int DriverR = 5;

//------------Declaration of variables to count---------------
int conta = 0;
int contb = 0;
int contc = 0;
int contd = 0;
int conte = 0;
int contf = 0;
int contg = 0;
int conth = 0;
int conti = 0;
int contj = 0;

 void setup()
{
 mySerial.begin(9600);

 pinMode ( TURBO_D, OUTPUT);//Pino 9 ajustado como saida;
 pinMode ( TURBO_E, OUTPUT);//Pino 10 ajustado como saida;
 analogWrite (TURBO_D, 90);//saida inicia com o nivel em 90;
 analogWrite (TURBO_E, 90);//saida inicia com o nivel em 90;
 pinMode (DriverL, OUTPUT);//Saída controle de direção;
 analogWrite (DriverL, 0);//Controle de direção em PWM = 0;
 pinMode (DriverR, OUTPUT);//Saída controle de direção;
 analogWrite (DriverR, 0);//Controle de direção em PWM = 0;

 pinMode(AA0, OUTPUT);//Controle dos botões do painel 10 channels;
 pinMode(AA1, OUTPUT);
 pinMode(AA2, OUTPUT);
 pinMode(AA3, OUTPUT);
 pinMode(AA4, OUTPUT);
 pinMode(AA5, OUTPUT);
 pinMode(D8,  OUTPUT);
 pinMode(D11, OUTPUT);
 pinMode(D12, OUTPUT);
 pinMode(D13, OUTPUT);

 pinMode(D4, OUTPUT);//Controle dos motores;
 pinMode(D5, OUTPUT);
 pinMode(D6, OUTPUT);
 pinMode(D7, OUTPUT);
}

 void loop()
{
 char caracter = mySerial.read();//Reading of the character by the serial;

//-------------------VELOCITY CONTROL----------------------
 if(caracter == '1')//Velocity 1 = 20%;
{
 POTENCIA=90;
 analogWrite (TURBO_D, POTENCIA); //ajusta o saida do Pino 9 para o novo PWM;
 delay (30);
 analogWrite (TURBO_E, POTENCIA); //ajusta o saida do Pino 10 para o novo PWM
 delay (30);
}

if(caracter == '2')//Velocity 2 = 40%;
{
 POTENCIA=120;
 analogWrite (TURBO_D, POTENCIA); //ajusta o saida do Pino 9 para o novo PWM;
 delay (30);
 analogWrite (TURBO_E, POTENCIA); //ajusta o saida do Pino 10 para o novo PWM
 delay (30);
}

if(caracter == '3')//Velocity 3 = 60%;
{
 POTENCIA=160;
 analogWrite (TURBO_D, POTENCIA); //ajusta o saida do Pino 9 para o novo PWM;
 delay (30);
 analogWrite (TURBO_E, POTENCIA); //ajusta o saida do Pino 10 para o novo PWM
 delay (30);
}

if(caracter == '4')//Velocity 4 = 80%;
{
 POTENCIA=200;
 analogWrite (TURBO_D, POTENCIA); //ajusta o saida do Pino 9 para o novo PWM;
 delay (30);
 analogWrite (TURBO_E, POTENCIA); //ajusta o saida do Pino 10 para o novo PWM
 delay (30);
}

if(caracter == '5')//Velocity 5 = 100%;
{
 POTENCIA=255;
 analogWrite (TURBO_D, POTENCIA); //ajusta o saida do Pino 9 para o novo PWM;
 delay (30);
 analogWrite (TURBO_E, POTENCIA); //ajusta o saida do Pino 10 para o novo PWM
 delay (30);
}

//-------------------CONTROL PANNEL 10 CHANNELS---------------------
//-----------Receives and character counts between 1 and 2----------
 if(caracter == 'a')
{
 conta++;
 if(conta>=3)
 {
   conta=1;
 }
}
 if(caracter == 'b')
{
 contb++;
 if(contb>=3)
 {
   contb=1;
 }
}
 if(caracter == 'c')
{
 contc++;
 if(contc>=3)
 {
   contc=1;
 }
}
// if(caracter == 'd')
//{
// contd++;
// if(contd>=3)
// {
//   contd=1;
// }
//}
 if(caracter == 'e')
{
 conte++;
 if(conte>=3)
 {
   conte=1;
 }
}
 if(caracter == 'f')
{
 contf++;
 if(contf>=3)
 {
   contf=1;
 }
}
 if(caracter == 'g')
{
 contg++;
 if(contg>=3)
 {
   contg=1;
 }
}
 if(caracter == 'h')
{
 conth++;
 if(conth>=3)
 {
   conth=1;
 }
}
 if(caracter == 'i')
{
 conti++;
 if(conti>=3)
 {
   conti=1;
 }
}
 if(caracter == 'j')
{
 contj++;
 if(contj>=3)
 {
   contj=1;
 }
}


//Compares the count and triggers the digital and analogic port;

if(conta==1)
{
 digitalWrite(AA0,HIGH);//ON - Frontal Light Button icon Blue Light;
}
 if(conta==2)
{
 digitalWrite(AA0,LOW);//OFF - Frontal Light Button icon Blue Light;
}
//----------------------
if(contb==1)
{
 digitalWrite(AA1,HIGH);//ON - Internal Light Button icon Green Light;
}
 if(contb==2)
{
 digitalWrite(AA1,LOW);//OFF - Internal Light Button icon Green Light;
}
//----------------------
if(contc==1)
{
 digitalWrite(AA2,HIGH);//ON - Back Light Button icon Yellow Light;
}
 if(contc==2)
{
 digitalWrite(AA2,LOW);//OFF - Back Light Button icon Yellow Light;
}
//----------------------
//if(contd==1)
//{
// digitalWrite(AA3,HIGH);//ON - Horn Button icon White horn;
//}
// if(contd==2)
//{
//digitalWrite(AA3,LOW);//OFF - Horn Button icon White horn;
//}
//----------------------
if(conte==1)
{
 digitalWrite(AA4,HIGH);//ON - Button icon  Yellow car;
}
 if(conte==2)
{
 digitalWrite(AA4,LOW);//OFF - Button icon  Yellow car;
}
//----------------------
if(contf==1)
{
 digitalWrite(AA5,HIGH);//ON - Button icon Red triangle;
}
 if(contf==2)
{
 digitalWrite(AA5,LOW);//OFF - Button icon Red triangle;;
}
//----------------------
if(contg==1)
{
 digitalWrite(D8,HIGH);//ON - Button icon Windshield yellow;
}
 if(contg==2)
{
 digitalWrite(D8,LOW);//OFF - Button icon Windshield yellow;
}
//----------------------
if(conth==1)
{
 digitalWrite(D11,HIGH);//ON - Button icon Red battery;
}
 if(conth==2)
{
 digitalWrite(D11,LOW);//OFF - /Button icon Red battery;
}
//----------------------
if(conti==1)
{
 digitalWrite(D12,HIGH);//ON - Button icon Drowner yellow;
}
 if(conti==2)
{
 digitalWrite(D12,LOW);//OFF - Button icon Drowner yellow;
}
//----------------------
if(contj==1)
{
 digitalWrite(D13,HIGH);//ON - Button icon Red temperature;
}
 if(contj==2)
{
 digitalWrite(D13,LOW);//OFF - Button icon Red temperature;
}

//-------------------FORWARD--------------------
 if(caracter == 'F')
{
 digitalWrite(D4,HIGH);
 digitalWrite(D5,LOW);
 digitalWrite(D6,HIGH);
 digitalWrite(D7,LOW);
}
//-------------------BACKWARD-------------------
if(caracter == 'B')
{
 digitalWrite(D4,LOW);
 digitalWrite(D5,HIGH);
 digitalWrite(D6,LOW);
 digitalWrite(D7,HIGH);
}
//-------------------LEFT-----------------------
if(caracter == 'L')
{
 digitalWrite(D4,HIGH);
 digitalWrite(D5,LOW);
 digitalWrite(D6,LOW);
 digitalWrite(D7,HIGH);
}
//-------------------RIGHT----------------------
if(caracter == 'R')
{
 digitalWrite(D4,LOW);
 digitalWrite(D5,HIGH);
 digitalWrite(D6,HIGH);
 digitalWrite(D7,LOW);
}
//-------------------STOP-----------------------
if(caracter == 'S')
{
digitalWrite(D4,LOW);
digitalWrite(D5,LOW);
digitalWrite(D6,LOW);
digitalWrite(D7,LOW);
digitalWrite(AA3,LOW);//Horn
}
//-------------------FORWARD-LEFT-----------------------
if(caracter == 'X')
{
 digitalWrite(D4,HIGH);
 digitalWrite(D5,LOW);
 analogWrite(DriverL,170);//LEFT
 digitalWrite(D7,LOW);
}

//-------------------FORWARD-RIGHT-----------------------
if(caracter == 'Y')
{
 digitalWrite(D4,HIGH);
 analogWrite(DriverR,70);//RIGHT
 digitalWrite(D6, HIGH);
 digitalWrite(D7,LOW);
}
//-------------------BACK-LEFT-----------------------
if(caracter == 'Z')
{
 digitalWrite(D4,LOW);
 digitalWrite(D5,HIGH);
 analogWrite(DriverL,70);//LEFT
 digitalWrite(D7,HIGH);
}
//-------------------BACK-RIGHT-----------------------
if(caracter == 'W')
{
 digitalWrite(D4,LOW);
 analogWrite(DriverR,170);//RIGHT
 digitalWrite(D6,LOW);
 digitalWrite(D7,HIGH);
}

if(caracter == 'd')
{
 digitalWrite(AA3,HIGH);
}

 delay(10);

}


5)- Lista de Materiais:


Este material é vendido no Ebay, AliExpress ou Mercado Livre como kit carro robô 2WD para 2 motores, já vem tudo completinho para você montar!
Apenas substituiremos as 4 pilhas AA(6V) pelas de Lipo2S 7,4V/ 2x Ultrafire 18650 7,4V aumentando a Potência dos motores no Controle de 5 Velocidades com uma grande autonomia ou durabilidade das baterias.




Escolha uma bateria com carregador de sua preferencia:



2 x Bateria 18650 de Lipo Ultrafire 3,7V com suporte e plug P4 total = 7,4V.


 Carregador de bateria 18650 Lipo 2 x Ultrafire 3,7V.

Bateria Lipo 2S 7,4V/1000mA/1500mA/2200mA, utilizar com carregador apropriado.





Veja na figura abaixo as 2x Bateria 18650 de Lipo Ultrafire 3,7V com suporte e plug P4 total = 7,4V montadas na parte inferior do Robô:



Placa Arduino Uno R3:



 


 

 

 

 

 

 

 

 

 

 

 

 

 



Ponte H de potência para controle de motor L298N - Serve para motor DC/CC e motor de passo -Ideal para Arduino e PIC



 




O módulo Driver L298N, usa o chip da ST L298N para controlar 2 motores com tensão 3-30V de corrente contínua (DC), e possui interface de saída de 5V, pode ser controlado por microcontroladores que trabalhem com 5V ou 3,3V sem problemas, você pode controlar facilmente a velocidade e a direção dos motores, você pode controlar um motor de passo de 2 polós, ideal para controle de carrinhos e outros.
Características:
  • Chip Driver: Chip dupla ponte H L298N
  • Tensão de alimentação: +5 V ~ +35 V
  • Pico de corrente de Saída: 2A por porta (Motor)
  • Tensão dos terminais de controle: 4.5~5.5 V
  • Corrente dos terminais de controle: 0~36mA
  • Tensão por nível lógico: Nível alto 4.5~5.5V e 0V para nível baixo
  • Potência máxima: 20W
  • Temperatura de trabalho: -25ºC ~ +130ºC
  • Outras características: Indicador de direção, indicador de Ligado, proteção contra sobre corrente.


 


 


      
 Leds Coloridos para representar os acionamentos das saídas Arduino.

Resistores de 220 ohms para interligar com os leds para as saídas Arduino.





  Placa Módulo Bluetooth JY-MCU:

 

 

 

 

 

 

 

 

 

                      







Exemplo de módulos de relés se necessário para acionamentos de dispositivos de potência como Lazer, Farol de led Cree Q5, Magnetos e outros.






 Exemplo de Protoboard/Breadboard:















Jumpers Macho Macho:
























Cabo USB comunicação para carregar o programa Arduino / Fonte
Alimentação 5V:

 

 


6)- Esquema de ligações: Robot Total Control 23 Channels:




Robot Total Control 23 Channels

Google Play: 


Veja no meu canal Youtube:

Nenhum comentário:

Postar um comentário