Índice:
- Etapa 1: Equipamentos
- Etapa 2: Arquivo de imagem do diagrama de circuito
- Etapa 3: Arquivo Fritzing do Diagrama de Circuito
- Etapa 4: Código do transmissor
- Etapa 5: Código do receptor
- Etapa 6: Arquivos INO
- Etapa 7: Link de bibliotecas
Vídeo: Carro sem fio controlado por gestos: 7 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:37
Neste tutorial vamos aprender como fazer um carro controlado por gestos ou qualquer robô. Este projeto tem duas partes, uma parte é a unidade transmissora e a outra parte é a unidade receptora. A unidade transmissora é, na verdade, montada em luvas de mão e a unidade receptora é colocada dentro de um carro ou qualquer robô. Agora é hora de fazer um bom carro. Vamos lá!
Etapa 1: Equipamentos
Unidade Transmissora
1. Arduino Nano.
2. Módulo do sensor MPU6050.
3. Transmissor RF 433 MHz.
4. Qualquer tipo de bateria de 3 células, 11,1 volts (aqui usei célula tipo moeda).
5. Vero-Board.
6. Luvas de mão.
Unidade Receptora
1. Arduino Nano ou Arduino Uno.
2. Módulo do driver do motor L298N.
3. Estrutura do robô de 4 rodas incluindo motores.
4. Receptor RF 433 RF.
5. Bateria Li-po de 3 células, 11,1 volts.
6. Vero-board.
Outros
1. Varas de cola e pistola.
2. Fios de ligação em ponte.
3. Chaves de fenda
4. Kit de solda.
etc.
Etapa 2: Arquivo de imagem do diagrama de circuito
Etapa 3: Arquivo Fritzing do Diagrama de Circuito
Etapa 4: Código do transmissor
#incluir
#incluir
#incluir
MPU6050 mpu6050 (fio);
temporizador longo = 0;
char * controlador;
void setup ()
{Serial.begin (9600); Wire.begin (); mpu6050.begin (); mpu6050.calcGyroOffsets (true); vw_set_ptt_inverted (verdadeiro); // vw_set_tx_pin (10); vw_setup (4000); // velocidade de transferência de dados Kbps
}
void loop ()
{ ////////////////////////////////////////////////////////////////////////////////////////////////
mpu6050.update ();
if (milis () - cronômetro> 1000)
{Serial.println ("================================================ =========== "); Serial.print ("temp:"); Serial.println (mpu6050.getTemp ()); Serial.print ("accX:"); Serial.print (mpu6050.getAccX ()); Serial.print ("\ taccY:"); Serial.print (mpu6050.getAccY ()); Serial.print ("\ taccZ:"); Serial.println (mpu6050.getAccZ ()); Serial.print ("giroX:"); Serial.print (mpu6050.getGyroX ()); Serial.print ("\ tgyroY:"); Serial.print (mpu6050.getGyroY ()); Serial.print ("\ tgyroZ:"); Serial.println (mpu6050.getGyroZ ()); Serial.print ("accAngleX:"); Serial.print (mpu6050.getAccAngleX ()); Serial.print ("\ taccAngleY:"); Serial.println (mpu6050.getAccAngleY ()); Serial.print ("gyroAngleX:"); Serial.print (mpu6050.getGyroAngleX ()); Serial.print ("\ tgyroAngleY:"); Serial.print (mpu6050.getGyroAngleY ()); Serial.print ("\ tgyroAngleZ:"); Serial.println (mpu6050.getGyroAngleZ ()); Serial.print ("angleX:"); Serial.print (mpu6050.getAngleX ()); Serial.print ("\ tangleY:"); Serial.print (mpu6050.getAngleY ()); Serial.print ("\ tangleZ:"); Serial.println (mpu6050.getAngleZ ()); Serial.println ("=================================================== ========== / n "); temporizador = milis (); }
/////////////////////////////////////////////////////////////////////////////////////
if (mpu6050.getAccAngleX () 30) {controlador = "X2"; vw_send ((uint8_t *) controlador, strlen (controlador)); vw_wait_tx (); // Espere até que toda a mensagem desapareça Serial.println ("FORWARD"); } else if (mpu6050.getAccAngleY ()> 40) {controlador = "Y1"; vw_send ((uint8_t *) controlador, strlen (controlador)); vw_wait_tx (); // Espere até que toda a mensagem desapareça Serial.println ("LEFT"); } else if (mpu6050.getAccAngleY () <- 40) {controlador = "Y2"; vw_send ((uint8_t *) controlador, strlen (controlador)); vw_wait_tx (); // Espere até que toda a mensagem desapareça Serial.println ("RIGHT"); } else if (mpu6050.getAccAngleX () - 10 && mpu6050.getAccAngleY () - 10) {controlador = "A1"; vw_send ((uint8_t *) controlador, strlen (controlador)); vw_wait_tx (); // Espere até que toda a mensagem desapareça Serial.println ("STOP"); }}
Etapa 5: Código do receptor
#incluir
int LA = 3;
int LB = 11; int RA = 5; int RB = 6; void setup () {Serial.begin (9600); vw_set_ptt_inverted (verdadeiro); // Requerido para DR3100 vw_set_rx_pin (12); vw_setup (4000); // Bits por segundo pinMode (13, OUTPUT); pinMode (LA, OUTPUT); pinMode (LB, OUTPUT); pinMode (RA, OUTPUT); pinMode (RB, OUTPUT); vw_rx_start (); // Iniciar o receptor PLL executando Serial.println ("All OK");
}
void loop () {uint8_t buf [VW_MAX_MESSAGE_LEN]; uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message (buf, & buflen)) // Sem bloqueio
{if ((buf [0] == 'X') && (buf [1] == '1')) {Serial.println ("BACKWARD"); para trás(); atraso (100); //desligado(); } else if ((buf [0] == 'X') && (buf [1] == '2')) {Serial.println ("FORWARD"); frente(); atraso (100); //desligado(); }
else if ((buf [0] == 'Y') && (buf [1] == '1'))
{Serial.println ("LEFT"); deixou(); atraso (100); //desligado(); }
else if ((buf [0] == 'Y') && (buf [1] == '2'))
{Serial.println ("DIREITO"); direito(); atraso (100); //desligado(); } else if ((buf [0] == 'A') && (buf [1] == '1')) {Serial.println ("STOP"); desligado(); atraso (100); }} else {Serial.println ("Nenhum sinal recebido"); }}
void forward ()
{analogWrite (LA, 70); analogWrite (LB, 0); analogWrite (RA, 70); analogWrite (RB, 0); }
void backward ()
{analogWrite (LA, 0); analogWrite (LB, 70); analogWrite (RA, 0); analogWrite (RB, 70); }
void left ()
{analogWrite (LA, 0); analogWrite (LB, 70); analogWrite (RA, 70); analogWrite (RB, 0); }
void right ()
{analogWrite (LA, 70); analogWrite (LB, 0); analogWrite (RA, 0); analogWrite (RB, 70); }
void off ()
{analogWrite (LA, 0); analogWrite (LB, 0); analogWrite (RA, 0); analogWrite (RB, 0); }
Etapa 6: Arquivos INO
Etapa 7: Link de bibliotecas
Virtual Wire Library:
MPU6050_tockn Libraby:
Wire Library:
Recomendado:
Robô Arduino sem fio usando módulo sem fio HC12: 7 etapas
Robô Arduino sem fio usando módulo sem fio HC12: Olá pessoal, bem-vindos de volta. Em meu post anterior, eu expliquei o que é um circuito de ponte H, L293D motor driver IC, pegando carona L293D Motor driver IC para dirigir drivers de motor de alta corrente e como você pode projetar e fazer sua própria placa de driver de motor L293D
Carro com controle remoto - controlado com o controle sem fio do Xbox 360: 5 etapas
Carro com controle remoto - controlado com o controle sem fio do Xbox 360: Estas são as instruções para construir seu próprio carro com controle remoto, controlado com um controle sem fio do Xbox 360
Carro RC controlado por gestos manuais: 15 etapas
Carro RC controlado por gestos manuais: Olá, mundo! Este é o meu primeiro InstructableSe você tiver alguma dúvida - não hesite em perguntar. Público Alvo: Este projeto é aplicável a qualquer pessoa que seja apaixonada por tecnologia. Quer você seja um especialista ou um iniciante
Carro controlado por gestos: 5 etapas (com imagens)
Carro controlado por gestos: os robôs estão desempenhando um papel importante na automação em todos os setores como construção, militar, médico, manufatura, etc. Depois de fazer alguns robôs básicos como o carro controlado usando Bluetooth, desenvolvi este acelerômetro baseado em ges
Robótica sem fio controlada por gestos e voz: 7 etapas (com imagens)
Robótica Manual Sem Fio Controlada por Gestos e Voz: Basicamente este foi nosso projeto de faculdade e por falta de tempo para enviar este projeto esquecemos de tirar fotos de algumas etapas. Também projetamos um código com o qual se pode controlar esta mão robótica usando gestos e voz ao mesmo tempo, mas devido a