Zum Inhalt springen

Labyrinthspiel

06 Nov 2023
Labyrinth Game

Ihrer Fantasie sind keine Grenzen gesetzt, was Sie mit PicoBricks erreichen können!

Mit PicoBricks können Sie mit Ihrer Kreativität die meisten Spiele erstellen, die Sie möchten. Beispielsweise kann das Erstellen von Labyrinthspielen ziemlich viel Spaß machen. Mit der neuen Version von PicoBricks können Sie es mit einer Fernbedienung steuern! 

Wenn wir über das Labyrinthspiel sprechen müssen und wie es gespielt werden sollte; Spieler haben die Möglichkeit, die Bewegung des Balls mit einer Fernbedienung oder einem vergleichbaren Gerät zu steuern, mit dem Ziel, ein Loch oder einen Zielpunkt zu erreichen. Beim Navigieren durch das Labyrinthspiel halten die Spieler das Gleichgewicht des Balls aufrecht und überwinden Hindernisse, während sie gleichzeitig versuchen, den Ball gekonnt an sein Ziel zu führen. Das Labyrinthspiel erfordern Konzentration, Hand-Auge-Koordination und Geduld und bieten den Spielern ein fesselndes und lohnendes Erlebnis.

Details und Algorithmus

Wir haben das Labyrinth-Spiel speziell entwickelt, um die drahtlose Steuerung eines Servomotors mithilfe von PicoBricks und einem zu ermöglichen UND Empfänger. Unser Programm ist so konzipiert, dass es von einer IR-Fernbedienung gesendete Signale erkennt und dann den Servomotor anweist, basierend auf diesen Signalen verschiedene Aktionen wie Aufwärts-, Abwärts-, Links-, Rechtsbewegung oder Stoppen auszuführen. 

Wir haben die Winkel des Servomotors sorgfältig berechnet und sie mithilfe eines PWM-Signals (Pulsweitenmodulation) in präzise Positionen übersetzt. Unser Programm dient nicht nur als grundlegendes Beispiel für Automatisierungsprojekte und ferngesteuerte Geräte, sondern umfasst auch ein mechanisches Design, das mit einem 3D-Drucker erstellt wurde. Interessierte können sich in den Code vertiefen, um seine Funktionalität zu verstehen und ihn für ähnliche Projekte zu nutzen.

Wenn Sie möchten, können Sie Ihr eigenes Labyrinthspiel erstellen und es auf Ihrem 3D-Drucker ausdrucken, oder Sie können die STL-Datei herunterladen und sie mithilfe des Downloads auf Ihrem 3D-Drucker ausdrucken Taste unter.

HERUNTERLADEN

Schaltplan

MicroBlocks-Codes von PicoBricks

PicoBlockly-Codes von PicoBricks

MicroPython-Codes von PicoBricks

Der MicroPython-Code wird unten angezeigt. Denken Sie daran, das einzustellen Grad Und Grad2 Achten Sie bei der Codierung auf Werte, da die Servos unterschiedlich angeschlossen sein können.


von Zeit zu Zeit Schlaf importieren
vom Maschinenimport-Pin
aus Picobricks importieren NEC_16
aus Picobricks IR_RX importieren
vom Maschinenimport PWM
von Math Import Fabs

def ir_callback(data, addr, ctrl):
    globale ir_data
    globale ir_addr, data_rcvd
    wenn Daten > 0:
        ir_data = Daten
        ir_addr = Adr
        print('Data {:02x} Addr {:04x}'.format(data, addr))
        data_rcvd = True
ir = NEC_16(Pin(0, Pin.IN), ir_callback)
ir_data = 0
data_rcvd = Falsch

pwm_2 = PWM(Pin(22))
pwm_2.freq(50)
def CalculateAngle(Winkel):
   Winkel = Fabs((Winkel * (6000 / 180)) + 2000)
   Winkel = rund(Winkel)
   Rückkehrwinkel

def up():
    global dare_question_long, blank, Degree, Degree2, i
    für count in range((8)):
        Grad += 2
        pwm_2.duty_u16(CalculateAngle(Grad))

pwm_1 = PWM(Pin(21))
pwm_1.freq(50)

def left():
    global dare_question_long, blank, Degree, Degree2, i
    für count in range((8)):
        Grad2 += 2
        pwm_1.duty_u16(CalculateAngle(degree2))

def down():
    global dare_question_long, blank, Degree, Degree2, i
    für count in range((8)):
        Grad -= 2
        pwm_2.duty_u16(CalculateAngle(Grad))

auf jeden Fall richtig():
    global dare_question_long, blank, Degree, Degree2, i
    für count in range((8)):
        Grad2 -= 2
        pwm_1.duty_u16(CalculateAngle(degree2))

def stop():
    global dare_question_long, blank, Degree, Degree2, i
    Grad = 0
    Grad2 = 0
    pwm_1.duty_u16(CalculateAngle(Grad))
    pwm_2.duty_u16(CalculateAngle(degree2))

Grad = 60
Grad2 = 60
ich = 0

während True:
    if data_rcvd == True:
        data_rcvd = Falsch
        wenn ir_data == IR_RX.number_up:
            hoch()
        elif ir_data == IR_RX.number_down:
            runter()
        elif ir_data == IR_RX.number_left:
            links()
        elif ir_data == IR_RX.number_right:
            Rechts()
        elif ir_data == IR_RX.number_ok:
            stoppen()

Arduino C-Codes von PicoBricks


#include 
#include 
#include „ACROBOTIC_SSD1306.h“
#include 
#include 
#include 
#define IR_RECEIVE_PIN 0
Servo servo1;
Servo servo2;
int Winkel1, Winkel2;
void servoBalance(){
  Winkel1 = 90; // den horizontalen Ebenenwinkel festlegen
  Winkel2 = 90;
  setServoAngle();
}
void setServoAngle(){
  servo1.write(angle1);
  servo2.write(angle2);
}
void setup() {
  Serial.begin(9600);
  Wire.begin();
  oled.init();
  oled.clearDisplay();
  pinMode(0,INPUT);
  IrReceiver.begin(IR_RECEIVE_PIN, ENABLE_LED_FEEDBACK);
  servo1.attach(21);
  servo2.attach(22);
  servoBalance();
}
void loop() {
  setServoAngle();
  Verzögerung (500);
  if (IrReceiver.decode()) {
    int a = (IrReceiver.decodedIRData.decodedRawData);
    Serial.println(a);
    IrReceiver.resume(); // Den nächsten Wert erhalten
    if(a == -417792256){
       Winkel2+=30;
    }else if (a == -1387069696){
       Winkel2-=30;
    }sonst wenn (a == -150405376){
       Winkel1-=30;
    }sonst wenn (a == -1520763136){
       Winkel1+=30;
    }else if (a == -484638976){
       servoBalance();
    }
  }
}
Vorheriger Beitrag
Nächster Beitrag

Danke fürs Abonnieren!

Diese E-Mail wurde registriert!

Shoppen Sie den Look
Wählen Sie Optionen

Bearbeitungsoption

Benachrichtigung wieder auf Lager

Vergleichen

Produkt ArtikelnummerBewertungBeschreibung Sammlung Verfügbarkeit Produktart Andere Details
this is just a warning
Anmeldung
Einkaufswagen
0 Artikel
Same Day Shipping No Extra Costs
Easy Returns Guarantee Return with Ease
Secure Checkout Secure Payment