- 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.
- 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ô 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.
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);
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);
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.
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
Nenhum comentário:
Postar um comentário