Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Arduino Marble Maze Labyrinth: Bouw Je Eigen Kartonnen Bordspel

Componenten en Benodigdheden

Arduino UNO (elk board type werkt) × 1
SG90 Micro Servo Motor × 2
Breadboard × 1
Joystick Module × 1
Jumper Wires × 1

Nodige Tools en Machines

Lijmpistool
Scherp Mes (Stanley)

Apps en Online Diensten

Arduino IDE

Over dit Project

Ik laat je zien hoe je een Arduino-gestuurd Marble Maze Labyrinth bordspel maakt dat super makkelijk en leuk is. En het beste: het is gemaakt van karton!

Doel van het spel: manoeuvreer de knikker door het doolhof naar de finishpoort om te winnen.

Uitbreidingen: sensoren aan het einde, buzzer voor geluid, of gaten in het doolhof voor extra uitdaging.

Het Concept: Wat is een Labyrinth?

Labyrinth is een vaardigheidsspel bestaande uit een doos met een doolhof bovenaan met gaten, en een staalbal. Het doel is het speelvlak te kantelen om de bal naar het einde te manoeuvreren zonder in gaten te vallen. Sommige versies hebben een opgehangen oppervlak dat op twee assen draait, elk bestuurd door een knop. Het spel werd ontwikkeld door BRIO inZweden en eerst uitgebracht in 1946.

Ontwerp

Ik ontwierp mijn eigen doolhof in SketchUp Pro om de afmetingen en moeilijkheidsgraad te bepalen (geschikt voor kinderen). De ontwerpbestanden zijn beschikbaar om je eigen kartonnen spel in 1 uur te maken.

Benodigdheden:

  • Karton 3mm
  • Lijmpistool
  • Scherp mes
  • Liniaal & Potlood
  • 2x Servo motor 9g
  • Joystick module
  • 2x Schroef & Moer 12mm x 3mm

Knippen en Assembleren

  1. Knip een 20x20 cm vierkant voor de basis.
  2. Knip twee 14x16 cm gelijkbenige trapeziums voor de zijkanten.
  3. Zag een rechthoekig gat in één zijde voor de X-as servo.
  4. Boor een 3mm gat in de andere zijde (tegenover de servo-as).
  5. Knip vier 14x4 cm rechthoeken voor interne steunen.
  6. Boor 3mm gat in steun voor Y-as servo-as.
  7. Zag rechthoekig gat in één steun voor Y-as servo.
  8. Kies een doolhof uit de bijlage, knip 12x12 cm vierkant.
  9. Plak het papierdoolhof als sjabloon.
  10. Knip minstens 8 muurtjes (1.5x12 cm) en pas ze aan het doolhof aan.
  11. Lijm de muren op de juiste plekken.
  12. Monteer de servomotoren op hun plekken.
  13. Lijm de servo-horns op de bewegende platen.

Aansluiten

  • Arduino Pin 8 → Gele draad Servo 1 (X-as)
  • Arduino Pin 9 → Gele draad Servo 2 (Y-as)
  • Rode & Bruine draden → Breadboard (voeding)
  • Arduino Pin A0 → Joystick VRx
  • Arduino Pin A1 → Joystick VRy
  • Joystick VCC & GND → Breadboard
  • Arduino 5V & GND → Breadboard

Code

Sluit Arduino aan via USB. Open Arduino IDE. Kopieer de code. Selecteer juiste board en poort. Upload.

Code

Joystick Besturing voor Doolhof (Arduino)

#include <Servo.h>

Servo myServoX;
Servo myServoY;

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 range = 12;
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); Serial.print(" - "); Serial.println(YAxleValue);

  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)); }

  // Begrenzing servopositie
  ServoXPos = constrain(ServoXPos, ServoXHomePos - 20, ServoXHomePos + 20);
  ServoYPos = constrain(ServoYPos, ServoYHomePos - 20, 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;
}

Schema

Aansluitschema voor servos en joystick op Arduino.

Productieproces

  1. TinyML Taaldetector met Edge Impulse op Arduino Nano 33 BLE Sense
  2. Bouw een real-time gyroscoop-spel met Arduino Nano & MPU-6050 sensor
  3. Arduino Digitale Dobbelsteen: Bouw Je Eigen LCD-willekeurige Getalgenerator
  4. Een Arduino Iron Man bouwen: onderdelen, sensoren en stapsgewijze handleiding
  5. Find Me: Slimme Item Locator met Arduino en Bluetooth
  6. DIY Arduino Luchtbevochtiger Controller met Relais – Veilige Hoogspanningsopstelling
  7. Realtime afstandsmeting met Arduino Sonar & Processing visualisatie
  8. MobBob: Bouw Je Eigen Arduino Robot, Naadloos Bestuurd via Android Smartphone
  9. Een audio-reactieve bureaulamp bouwen met Arduino Nano
  10. NeoPixel Matrix Pong op Arduino Nano: Bouw je eigen neon Pong-spel
  11. Bouw een Aangepaste Arduino Joystick Stuurwiel voor Gaming