Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Labirinto de Bolinha com Arduino: Jogo de Tabuleiro em Cartão Ondulado

Componentes e Materiais

Ferramentas

Aplicativos

Sobre o Projeto

Versão DIY do clássico Labyrinth (BRIO, 1946): uma caixa com labirinto inclinável em dois eixos, controlada por joystick via dois micro-servos. O objetivo é levar a bolinha do início ao fim sem cair nos buracos. Feito inteiramente de cartão ondulado — barato, rápido (≈1 h) e ótimo para crianças.

Design e Corte (SketchUp / PDF)

  1. Base: quadrado 20 × 20 cm.
  2. Laterais: dois trapézios isósceles 14 × 16 cm.
  3. Furo retangular em uma lateral para servo X; furo 3 mm central na outra (eixo X).
  4. 4 suportes internos 14 × 4 cm.
  5. Furo 3 mm central em um suporte (eixo Y); furo retangular no oposto para servo Y.
  6. Labirinto: quadrado 12 × 12 cm (escolha um dos modelos anexos). Cole o papel como guia.
  7. Paredes: tiras 1,5 × 12 cm, recortadas e coladas seguindo o guia.
  8. Cole os servos nos furos retangulares; cole as hastes (horns) nos suportes móveis.
Labirinto de Bolinha com Arduino: Jogo de Tabuleiro em Cartão Ondulado
Labirinto de Bolinha com Arduino: Jogo de Tabuleiro em Cartão Ondulado

Ligação Elétrica

Labirinto de Bolinha com Arduino: Jogo de Tabuleiro em Cartão Ondulado

Código

Leitura suave do joystick com zona morta (threshold) e limites mecânicos (±20° da posição central 90°).

#include <Servo.h>

Servo myServoX, myServoY;
const int ServoXPin = 8, ServoYPin = 9;
int ServoXHomePos = 90, ServoYHomePos = 90;
int ServoXPos = 103, ServoYPos = 135;  // posições iniciais calibradas
const int XAxlePin = A0, YAxlePin = A1;
int XAxleValue = 0, YAxleValue = 0;
const int range = 12, center = range / 2, threshold = range / 4;

void setup() {
  myServoX.attach(ServoXPin);
  myServoY.attach(ServoYPin);
  ServoXPos = ServoXHomePos;
  ServoYPos = ServoYHomePos;
  myServoX.write(ServoXPos);
  myServoY.write(ServoYPos);
  Serial.begin(9600);
}

void loop() {
  XAxleValue = readAxis(XAxlePin);
  YAxleValue = readAxis(YAxlePin);

  if (XAxleValue > 0) {
    ServoXPos++;
    myServoX.write(ServoXPos);
    delay(100 * (7 - XAxleValue));
  }
  if (XAxleValue < 0) {
    ServoXPos--;
    myServoX.write(ServoXPos);
    delay(100 * (7 + XAxleValue));
  }
  if (YAxleValue > 0) {
    ServoYPos++;
    myServoY.write(ServoYPos);
    delay(100 * (7 - YAxleValue));
  }
  if (YAxleValue < 0) {
    ServoYPos--;
    myServoY.write(ServoYPos);
    delay(100 * (7 + YAxleValue));
  }

  // Limites mecânicos
  ServoXPos = constrain(ServoXPos, ServoXHomePos - 20, ServoXHomePos + 20);
  ServoYPos = constrain(ServoYPos, ServoYHomePos - 20, ServoYHomePos + 20);

  delay(10);
}

int readAxis(int pin) {
  int reading = analogRead(pin);
  reading = map(reading, 0, 1023, 0, range);
  int distance = reading - center;
  if (abs(distance) < threshold) distance = 0;
  return distance;
}

Ideias de Expansão

Processo de manufatura

  1. Detector de Idiomas TinyML com Edge Impulse no Arduino Nano 33 BLE Sense
  2. Construa um Jogo em Tempo Real com Giroscópio: Arduino Nano + Sensor MPU-6050
  3. Dados Digital com Arduino: Gere Números Aleatórios 1-6 em LCD 16x2
  4. Construa um Homem de Ferro com Arduino: Componentes, Sensores e Guia Passo a Passo
  5. Find Me: Localizador Inteligente de Objetos com Arduino e Bluetooth
  6. Controlador de Umidificador DIY com Arduino e Relé – Configuração Segura de Alta Tensão
  7. Medição de Distância em Tempo Real com Sonar Arduino e Visualização no Processing
  8. MobBob: Construa Seu Próprio Robô Arduino, Controlado via Smartphone Android
  9. Lâmpada de Mesa Reativa a Áudio com Arduino Nano
  10. Jogo Pong Neon em Matriz NeoPixel com Arduino Nano