Zum Inhalt springen

Labyrinthspiel

06 Nov 2023
Labyrinth Game

Inhaltsverzeichnis

    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