Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Labyrinthe à billes Arduino : jeu de plateau en carton motorisé

Composants et fournitures

Outils nécessaires

Applications et services en ligne

À propos du projet

Je vous montre comment fabriquer un labyrinthe à billes commandé par Arduino, simple et amusant, entièrement en carton. But : guider la bille à travers le labyrinthe jusqu'à la sortie en inclinant le plateau via deux servos pilotés par un joystick. Idées d'amélioration : capteurs à la sortie, buzzer, trous dans le labyrinthe.

L'idée

Lassé des jeux électroniques, j'ai découvert le Labyrinthe (jeu d'adresse physique : plateau percé de trous, bille d'acier, inclinaison manuelle via deux boutons). Développé par BRIO (Suède) en 1946. J'ai voulu en faire une version motorisée Arduino.

Conception

Labyrinthe à billes Arduino : jeu de plateau en carton motorisé

Conçu sous SketchUp Pro pour visualiser, dimensionner (facile pour enfants). Fichiers de découpe fournis pour réaliser le jeu en 1 h.

Matériaux : carton 3 mm, colle chaude, cutter, règle, crayon.
Composants : Arduino, mini breadboard, fils, 2 servos 9 g, joystick, 2 vis/écrous M3×12.

Découpe des pièces

Imprimez les gabarits joints et suivez ces étapes :

  1. Base : carré 20×20 cm.
  2. Deux côtés : trapèzes isocèles 14×16 cm.
  3. Dans l'un, découpez l'emplacement du servo (axe X).
  4. Dans l'autre, percez un trou 3 mm au centre (face au servo axe X).
  5. Quatre renforts intérieurs : rectangles 14×4 cm.
  6. Percez un trou 3 mm au centre de l'un (axe Y).
  7. Dans l'un des quatre, découpez l'emplacement du servo (axe Y).
  8. Choisissez un labyrinthe (fichiers fournis), découpez un carré 12×12 cm pour le plateau de jeu.
  9. Collez le papier labyrinthe comme guide.
  10. Au moins huit bandes 1,5×12 cm pour les murs ; recoupez aux bonnes dimensions.
  11. Collez les murs en suivant le guide.
  12. Fixez les servos à leur emplacement.
  13. Collez les bras de servo (cornes) sur les pièces mobiles.
Labyrinthe à billes Arduino : jeu de plateau en carton motorisé
Labyrinthe à billes Arduino : jeu de plateau en carton motorisé
Labyrinthe à billes Arduino : jeu de plateau en carton motorisé
Labyrinthe à billes Arduino : jeu de plateau en carton motorisé
Labyrinthe à billes Arduino : jeu de plateau en carton motorisé
Labyrinthe à billes Arduino : jeu de plateau en carton motorisé
Labyrinthe à billes Arduino : jeu de plateau en carton motorisé

Câblage

Code

  1. Connectez l'Arduino au PC (USB).
  2. Ouvrez l'IDE Arduino.
  3. Copiez-collez le code ci-dessous dans un nouveau sketch.
  4. Outils > Carte > sélectionnez votre carte ; Outils > Port > port série actif.
  5. Cliquez sur Téléverser (flèche ronde).
  6. Message « Done » → prêt à jouer.

Code : contrôle du labyrinthe au joystick

#include <Servo.h>
Servo myServoX; // servo axe X
Servo myServoY; // servo axe Y
int ServoXPin = 8;
int ServoYPin = 9;
int ServoXHomePos = 90;
int ServoYHomePos = 90;
int ServoXPos = 103;
int ServoYPos = 135;
int XAxlePin = A0;
int YAxlePin = A1;
int XAxleValue = 0;
int YAxleValue = 0;
int Direction = 0;
int range = 12;      // amplitude de mouvement
int center = range/2;
int 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);
  Serial.print(XAxleValue, DEC);
  Serial.print(" - ");
  Serial.println(YAxleValue, DEC);

  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 mécaniques ±20° autour de la position centrale
  if (ServoXPos > ServoXHomePos + 20) ServoXPos = ServoXHomePos + 20;
  if (ServoXPos < ServoXHomePos - 20) ServoXPos = ServoXHomePos - 20;
  if (ServoYPos > ServoYHomePos + 20) ServoYPos = ServoYHomePos + 20;
  if (ServoYPos < ServoYHomePos - 20) ServoYPos = ServoYHomePos - 20;

  delay(10);
}

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

Pièces personnalisées et boîtiers

Fichiers de découpe (carton) disponibles en téléchargement.

Schéma de câblage

Labyrinthe à billes Arduino : jeu de plateau en carton motorisé

Processus de fabrication

  1. Détecteur de langue TinyML avec Edge Impulse sur Arduino Nano 33 BLE Sense
  2. Construire un jeu gyroscopique temps réel avec Arduino Nano et capteur MPU-6050
  3. Dé numérique Arduino sur écran LCD 16x2 – Générateur aléatoire à bouton poussoir
  4. Construire un Iron Man animé avec Arduino : capteurs, sons et relais
  5. Find Me : Localisateur d'objets intelligent avec Arduino et Bluetooth
  6. Contrôleur d'humidificateur DIY avec Arduino et relais – Installation haute tension sécurisée
  7. Mesure de distance en temps réel par sonar Arduino et visualisation Processing
  8. MobBob : Construisez votre propre robot Arduino, contrôlé via smartphone Android
  9. Construire une lampe de bureau réactive à l'audio avec Arduino Nano