Projetos

Fórmula RPS: Carrinho de Corrida com Arduino Nano e Joystick PS2

Um carrinho de corrida com direção de verdade — caixa de direção com servo motor — controlado por um joystick de PS2 sem fio. Feito para as atividades da Robótica Paula Souza e para quem quer aprender robótica montando, dirigindo e, claro, batendo um pouquinho.

Dois carrinhos Fórmula RPS montados lado a lado, com o controle de PS2 sem fio entre eles

Visão geral

O Fórmula RPS é um projeto de Arduino Nano — e não de ESP32 — documentado com o mesmo padrão dos outros projetos do Tio Rafa: hardware primeiro, depois pinagem, código, teste e resultado esperado. Um joystick de PS2 sem fio comanda os motores de tração e o servo da direção: botão X para frente, Círculo para ré, e o analógico esquerdo gira a caixa de direção para a esquerda ou para a direita.

Se o controle não for encontrado, os motores ficam parados, a direção volta ao centro, e o Arduino tenta reconectar a cada 2 segundos.

Detalhe do chassi do Fórmula RPS, com a caixa de direção, o servo motor, o suporte de baterias 18650 e a placa controladora

Lista de peças

Todas as peças são encontradas na Mamute Eletrônica, inclusive a caixa de direção com servo motor.

  • 1 Arduino Nano V3.0 — cérebro do carrinho
  • 1 ponte H L298N — aciona os dois motores de tração
  • 2 motores com caixa de redução e roda — tração
  • 1 caixa de direção com servo motor — ligado ao pino D2
  • 1 receptor de joystick PS2 sem fio — ligado nos pinos D10 a D13
  • 1 controle de PS2 sem fio — par do receptor
  • 1 suporte de baterias 18650 (3 células)
  • Baterias 18650, conforme o suporte
  • 1 chave liga/desliga, em série com a alimentação
  • Chassi de acrílico, rodas e ferragens
  • Peças da Mamute Conecta — montagem da carroceria e do parachoque
  • Fios jumper
Ver Mamute Eletrônica

Hardware e pinagem

Pinagem conferida entre o código e o esquema do Cirkit Designer.

Esquema de ligação do Fórmula RPS: Arduino Nano, ponte H L298N, servo da direção, receptor PS2 e baterias 18650

Ponte H L298N

  • IN1 → D3 (PWM)
  • IN2 → D5 (PWM)
  • IN3 → D6 (PWM)
  • IN4 → D9

Sentido de giro usado no código: frente (X) liga PWM em IN2 e IN3; ré (Círculo) liga PWM em IN1 e IN4; parado deixa todos em LOW.

Servo da direção

Sinal do servo no pino D2. Ângulos: esquerda 60°, centro 90°, direita 120° — ajustáveis em leftPos, centerPos e rightPos no código, conforme o seu carrinho.

Receptor do joystick PS2

  • DAT (fio laranja) → D13 → PS2_DAT
  • CMD (fio amarelo) → D12 → PS2_CMD
  • CS / SEL (fio verde) → D10 → PS2_SEL
  • CLK (fio azul) → D11 → PS2_CLK
  • VCC (fio vermelho) → 5V
  • GND (fio preto) → GND

Alimentação

Baterias 18650 -> chave -> L298N (entrada 12V / GND) L298N (saída 5V / GND) -> Nano (5V / GND), receptor PS2 e servo

Todos os GNDs são comuns. Confira no seu módulo se o jumper do regulador de 5V do L298N está colocado, e se a tensão do pacote de baterias está dentro do que o L298N aceita.

Bibliotecas

  • Servo — já vem com a Arduino IDE, controla o servo da direção
  • PS2X_lib — lê o controle de PS2 (licença GPL v3), disponível no repositório do projeto

Como instalar e gravar

  • Instale a Arduino IDE.
  • Instale a PS2X_lib: Sketch, Incluir Biblioteca, Adicionar Biblioteca .ZIP, e escolha o arquivo PS2X_lib.zip da pasta libs/ do repositório.
  • Abra firmware/FormulaRPS/FormulaRPS.ino.
  • Em Ferramentas, selecione a placa Arduino Nano e a porta USB correta. No processador, escolha entre ATmega328P e ATmega328P (Old Bootloader) conforme o seu Nano — se o upload falhar com um, tente o outro.
  • Faça o upload.
  • Abra o Monitor Serial em 57600 baud.

Como usar

  • Monte tudo conforme o esquema e ligue a chave.
  • Ligue o controle de PS2 — ele precisa ser o par do receptor.
  • No Monitor Serial deve aparecer: "Controle PS2 sem fio encontrado e configurado com sucesso".
  • Analógico esquerdo para a esquerda: direção para a esquerda. Para a direita: direção para a direita.
  • Botão X (Cross): anda para frente. Botão Círculo: anda de ré.

O limite do analógico é: menor que 100 vira esquerda, maior que 150 vira direita, entre os dois fica no centro.

Pontos de atenção

  • PWM nos pinos 9 e 10 com a biblioteca Servo: no Arduino Nano, a biblioteca Servo usa o mesmo timer do PWM dos pinos 9 e 10. Hoje a velocidade máxima liga o pino direto, então funciona — mas para velocidade variável, vale mover uma linha do receptor PS2 para outro pino.
  • Reconexão bloqueante: quando o controle não é encontrado, o código espera 2 segundos antes de tentar de novo, e nesse tempo o carrinho não responde a nada.
  • Alimentação: motores geram ruído e queda de tensão. Se o Nano reiniciar quando o carrinho acelera, olhe a alimentação antes de mexer no código.

O projeto no GitHub

O Fórmula RPS está no GitHub com o código completo, o esquema de ligação, a biblioteca PS2X_lib e um README detalhado com hardware, pinagem, lista de peças, passo a passo de gravação e pontos de atenção.

github.com/Tio-Rafa-SE/F-rmula-RPS

Quer montar o seu Fórmula RPS?

Todas as peças, inclusive a caixa de direção com servo motor, estão disponíveis na Mamute Eletrônica. O código completo e o passo a passo de montagem estão no repositório do projeto no GitHub.