Motor with Wires
Motor with Wires

Construir um Carro de Brinquedo com Arduino: Guia para Iniciantes

Para entusiastas de automóveis e tecnologia, a interseção entre carros e programação é fascinante. Embora utilizemos software e sistemas digitais, a eletrónica subjacente pode parecer um mistério. A ideia de que a eletrónica é complexa e requer formação especializada é um equívoco comum. Como especialista em reparação automóvel e apaixonado por programação, sempre fui intrigado pelo Arduino e pelas suas possibilidades. Como muitos, tive um carro de controlo remoto (RC) na infância e sonhava em construir o meu próprio. Combinar as minhas habilidades de programação com um kit Arduino foi a oportunidade perfeita para concretizar este sonho.

Este guia irá orientá-lo na criação de um carro RC baseado em Arduino do zero. Não é necessária experiência prévia em programação, Arduino ou eletrónica. Embora qualquer conhecimento nestas áreas seja benéfico, estas instruções são para iniciantes. Poderá questionar o uso de uma power bank. As power banks são acessíveis e, muitas vezes, mais baratas que pilhas tradicionais, além de serem reutilizáveis e recarregáveis. Este projeto foca-se nos princípios fundamentais da construção, usando materiais comuns e fornecendo uma explicação detalhada do código. Os princípios aqui aprendidos podem ser aplicados a uma vasta gama de projetos. Vamos começar e divertir-nos!

Como entusiasta, procurei simplicidade e acessibilidade, utilizando itens comuns como cabos USB e power banks. Siga estas instruções ou adapte-as à sua visão criativa. Eis a lista de materiais:

  • Arduino UNO
  • Kit de chassis para carro (incluindo rodas e motores)
  • Fios de ligação (jumpers, macho-macho e fêmea-macho)
  • Fita isolante
  • Módulo Bluetooth (HC-06 ou HC-05)
  • Controlador de motor DC (L298N)
  • Power Bank com 2 saídas USB
  • Buzzer piezoelétrico
  • Telemóvel Android
  • PC com Arduino IDE instalado
  • Aplicação ArduCar – Arduino RC Car Bluetooth Controller

Passo 1: Montagem do Chassis

O primeiro passo é montar o chassis do seu carro. Se comprou um kit, este provavelmente inclui instruções de montagem. No entanto, aqui estão os passos básicos:

  1. Reúna os componentes principais: chassis, quatro suportes de motor (dois para cada motor), parafusos, espaçadores de latão, porcas, motores, um cabo USB antigo e quatro fios de ligação.
  2. Ligue um fio de ligação a cada terminal de ambos os motores. Soldar garante uma ligação robusta, mas, para iniciantes, torcer os fios nos terminais do motor será suficiente.

  1. Pegue num cabo USB antigo e corte uma das extremidades, deixando cerca de 20 cm de cabo.

  2. Remova cuidadosamente alguns centímetros do isolamento externo para expor os fios internos. Deverá encontrar vários fios, mas estamos interessados nos fios preto (GND – Terra) e vermelho (VCC – Alimentação). Descasque cerca de 2-4 cm de isolamento das extremidades dos fios vermelho e preto. Pode usá-los como estão ou reforçá-los torcendo-os ou soldando-os a fios de ligação mais longos para uma ligação mais segura.

  3. Monte os motores no chassis usando os suportes de plástico, parafusos e porcas. Cada motor geralmente tem um pequeno ponto num dos lados. Certifique-se de que esses pontos ficam voltados para dentro, um em direção ao outro. Esta orientação é importante para a direção consistente do motor.

  1. Localize os quatro pequenos orifícios dispostos num quadrado perto da extremidade do chassis. Estes são para a roda de suporte de nylon. Fixe os espaçadores de latão a esses orifícios com parafusos, garantindo que os espaçadores estejam do mesmo lado do chassis que os motores.
  2. Monte a roda de suporte de nylon nos espaçadores de latão usando parafusos. Esta roda fornece estabilidade ao carro.

  1. Fixe as rodas motrizes ao eixo de cada motor. Observe a forma dentro do cubo da roda, que deve alinhar-se com o eixo do motor. Poderá encontrar alguma resistência ao empurrar as rodas para os eixos, mas aplique uma pressão firme e suave até que estejam firmemente no lugar.
  2. Nesta fase, pode montar a placa Arduino UNO e o controlador de motor DC L298N no chassis. Use parafusos e porcas do seu kit ou outras fixações adequadas. Use fita isolante para isolar quaisquer fios expostos e fixar os componentes.

Passo 2: Ligações

Com o chassis montado e os componentes eletrónicos fixos, é hora de ligar tudo. Prepare os seus fios de ligação macho-macho e fêmea-macho.

  1. Ligue os fios dos motores ao controlador de motor DC L298N. O controlador L298N tem terminais rotulados como OUT1, OUT2, OUT3 e OUT4 para ligações do motor. Tipicamente, os pinos mais próximos da borda da placa são considerados terra (-) e os pinos internos são positivos (+). Ligue-os da seguinte forma:

    • OUT1: Motor esquerdo (-) fio GND
    • OUT2: Motor esquerdo (+) fio
    • OUT3: Motor direito (+) fio
    • OUT4: Motor direito (-) fio GND

  1. Agora, ligue o Arduino UNO ao controlador de motor DC. Use os pinos rotulados como IN1, IN2, IN3 e IN4 no L298N. Esses pinos receberão sinais de controlo do Arduino para acionar os motores. Provavelmente, precisará de fios de ligação fêmea-macho para essas ligações.

    • IN1: Pino Digital 5 do Arduino
    • IN2: Pino Digital 6 do Arduino
    • IN3: Pino Digital 10 do Arduino
    • IN4: Pino Digital 11 do Arduino
  2. Ligue o módulo Bluetooth (HC-06 ou HC-05). Esses módulos geralmente têm quatro pinos: VCC (Alimentação), GND (Terra), TXD (Transmitir Dados) e RXD (Receber Dados). Fios de ligação fêmea-macho provavelmente serão necessários aqui também. A transmissão de dados requer ligação cruzada: o TXD do módulo Bluetooth conecta-se ao RXD do Arduino e vice-versa.

    • Bluetooth VCC: Pino 5V do Arduino
    • Bluetooth GND: Pino GND do Arduino
    • Bluetooth TXD: Pino Digital 0 do Arduino (RXD)
    • Bluetooth RXD: Pino Digital 1 do Arduino (TXD)

  1. Ligue o buzzer piezoelétrico. Os buzzers piezoelétricos têm dois pinos: um pino Ânodo (+) mais longo e um pino Cátodo (-) mais curto. Embora um resistor de 330 Ohm seja recomendado entre o Ânodo e o Arduino para limitar a corrente e proteger o buzzer, ele pode reduzir significativamente o volume do buzzer. Para este projeto, pode ligá-lo diretamente.

    • Ânodo (+) do Piezo (Perna mais longa): Pino Digital 3 do Arduino
    • Cátodo (-) do Piezo (Perna mais curta): Pino GND do Arduino

  1. Alimentando o circuito. Use a secção do cabo USB que preparou anteriormente para alimentar o Arduino e o controlador de motor DC. Ligue os fios vermelho (+) e preto (-) aos terminais de entrada de alimentação do controlador de motor L298N.

    • Fio vermelho (+): Terminal 12V do L298N
    • Fio preto (-): Terminal GND do L298N
  2. Finalmente, ligue dois cabos USB à sua power bank. Um cabo liga a power bank à placa Arduino (para alimentação do Arduino). O outro cabo liga a power bank aos fios USB que vão para o controlador de motor DC (para alimentação do motor). Fixe a power bank ao chassis usando fita isolante ou outro método de montagem. Observe que algumas power banks exigem que pressione um botão de alimentação para ativar a saída.

  1. Com todos os componentes ligados, a configuração do hardware está concluída. O próximo passo é programar o Arduino e instalar a aplicação de controlo.

Passo 3: Programar o Arduino

Agora, vamos ao cerne de “como programar um carro de brinquedo” – carregar o código de controlo para a placa Arduino. Precisará do software Arduino IDE (Ambiente de Desenvolvimento Integrado) instalado no seu computador, que pode ser transferido do website oficial do Arduino.

  1. Configurar o Arduino IDE: Abra o Arduino IDE. Vá para “Ferramentas” na barra de menus. Selecione “Placa:” e escolha a sua placa Arduino (geralmente Arduino UNO). Em seguida, selecione “Porta:” e escolha a porta USB à qual o seu Arduino está ligado. Se a opção “Porta” estiver acinzentada, ligue o seu Arduino ao seu computador via USB e espere que a porta fique disponível. Poderá precisar de experimentar portas USB diferentes no seu computador até que o Arduino seja reconhecido.

  1. Carregar o Código: Tem duas opções para colocar o código no Arduino IDE:

    a. Transferir e Abrir: Transfira o ficheiro de código Arduino fornecido (se disponível como um ficheiro separado). Abra o ficheiro diretamente no Arduino IDE. b. Copiar e Colar: Copie o código fornecido abaixo. No Arduino IDE, vá para “Ficheiro” > “Novo” para criar um novo sketch. Cole o código na nova janela do sketch.

  2. Carregar para o Arduino: Clique no botão “Carregar” (geralmente um ícone de seta para a direita) no Arduino IDE.

    Nota Importante: Desligue os fios RX (Digital 0) e TX (Digital 1) do módulo Bluetooth do Arduino antes de carregar o código. Essas ligações podem interferir no processo de carregamento do código. Volte a ligá-los após o carregamento estar concluído.

Aqui está o código Arduino para controlar o seu carro de brinquedo:

#define in1 5
#define in2 6
#define in3 10
#define in4 11
int state;
int piezo = 3;

void setup() {
  pinMode(in1, OUTPUT);
  pinMode(in2, OUTPUT);
  pinMode(in3, OUTPUT);
  pinMode(in4, OUTPUT);
  pinMode(piezo,OUTPUT);
  Serial.begin(9600);
}

void loop() {
  if (Serial.available() > 0) {
    state = Serial.read();
    Stop();
    switch (state) {
      case 'F': forward(); soundFX(3000.0,30+400*(1+sin(millis()/5000))); break;
      case 'G': forwardleft(); soundFX(3000.0,60); break;
      case 'D': forwardright(); soundFX(3000.0,60); break;
      case 'N': backright(); soundFX(3000.0,30+100*(1+sin(millis()/2500))); break;
      case 'C': backleft(); soundFX(3000.0,30+100*(1+sin(millis()/2500))); soundFX(3000.0,30+100*(1+sin(millis()/2500))); soundFX(3000.0,30+100*(1+sin(millis()/2500))); soundFX(3000.0,30+100*(1+sin(millis()/2500))); break;
      case 'B': back(); soundFX(3000.0,30+200*(1+sin(millis()/2500))); soundFX(3000.0,30+200*(1+sin(millis()/2500))); soundFX(3000.0,30+200*(1+sin(millis()/2500))); soundFX(3000.0,30+200*(1+sin(millis()/2500))); break;
      case 'L': left(); soundFX(3000.0,60); soundFX(3000.0,60); soundFX(3000.0,60); soundFX(3000.0,60); break;
      case 'R': right(); soundFX(3000.0,60); soundFX(3000.0,60); soundFX(3000.0,60); soundFX(3000.0,60); break;
      case 'H': soundFX(3000.0,30+200*(1+sin(millis()/2500))); soundFX(3000.0,60); soundFX(3000.0,30+200*(1+sin(millis()/2500))); soundFX(3000.0,60); break;
    }
  }
}

void forward() {
  analogWrite(in1, 255);
  analogWrite(in3, 255);
}

void forwardleft() {
  analogWrite(in1, 50);
  analogWrite(in3, 255);
}

void forwardright() {
  analogWrite(in1, 255);
  analogWrite(in3, 50);
}

void back() {
  analogWrite(in2, 255);
  analogWrite(in4, 255);
}

void backright() {
  analogWrite(in2, 50);
  analogWrite(in4, 255);
}

void backleft() {
  analogWrite(in2, 255);
  analogWrite(in4, 50);
}

void left() {
  analogWrite(in4, 255);
  analogWrite(in1, 255);
}

void right() {
  analogWrite(in3, 255);
  analogWrite(in2, 255);
}

void Stop() {
  analogWrite(in1, 0);
  analogWrite(in2, 0);
  analogWrite(in3, 0);
  analogWrite(in4, 0);
}

void soundFX(float amplitude,float period){
  int uDelay=2+amplitude+amplitude*sin(millis()/period);
  for(int i=0;i<200;i++){
    digitalWrite(piezo, HIGH);
    delayMicroseconds(uDelay);
    digitalWrite(piezo, LOW);
    delayMicroseconds(uDelay);
  }
}
  1. Reconectar e Ligar: Após o carregamento bem-sucedido do código, reconecte os fios RX e TX do módulo Bluetooth ao Arduino. Reconecte o cabo USB do Arduino à power bank para alimentar o circuito.
  2. Instalar a Aplicação de Controlo: Transfira a aplicação ArduCar – Arduino RC Car Bluetooth Controller da Google Play Store no seu telemóvel Android. Inicie a aplicação e siga as instruções para ligar ao seu carro de brinquedo via Bluetooth. Pode também explorar outras aplicações de controlo de carro RC Bluetooth que enviam comandos seriais compatíveis ou até desenvolver a sua própria aplicação para uma experiência personalizada.

Parabéns! Construiu e programou o seu próprio carro de brinquedo controlado por Arduino. Divirta-se a experimentar e a conduzir a sua criação!

Passo 4: Compreender o Código Arduino

Para os interessados em aprofundar o código e compreender como funciona, aqui está uma análise do sketch do Arduino:

Todo programa Arduino tem duas funções essenciais: setup() e loop().

  1. void setup() { }: Esta função é executada uma vez no início do programa. É usada para inicializar definições, definir modos de pinos e iniciar a comunicação serial.

    • pinMode(in1, OUTPUT);, pinMode(in2, OUTPUT);, etc.: Estas linhas configuram os pinos digitais 5, 6, 10, 11 e 3 como pinos de SAÍDA (OUTPUT). Esses pinos enviarão sinais para controlar o driver do motor e o buzzer piezoelétrico. in1, in2, in3, in4 e piezo são nomes simbólicos atribuídos a esses pinos usando #define no início do código, tornando o código mais legível.
    • Serial.begin(9600);: Esta linha inicializa a comunicação serial a uma taxa de baud de 9600 bits por segundo. É assim que o Arduino comunica com o módulo Bluetooth para receber comandos do seu telemóvel Android. 9600 é uma taxa de baud comum e confiável para comunicação Bluetooth.
  2. void loop() { }: Esta função é executada continuamente após a função setup() ser concluída. Contém a lógica principal do seu programa, verificando constantemente a entrada e controlando as ações do carro.

    • if (Serial.available() > 0) { ... }: Isto verifica se existem dados disponíveis para serem lidos da porta serial (ou seja, do módulo Bluetooth).
    • state = Serial.read();: Se houver dados disponíveis, esta linha lê o primeiro byte de dados seriais e armazena-o na variável state. Esta variável state representa o comando recebido da aplicação de controlo Bluetooth.
    • Stop();: Antes de executar qualquer comando de movimento, a função Stop() é chamada para garantir que o carro pare antes de executar uma nova ação. Isso impede que os comandos se sobreponham.

Comments

No comments yet. Why don’t you start the discussion?

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *