İçeriğe Geç

Karnaval Swing Ride Projesi

13 Nov 2023
Carnival Swing Ride Project

hatırlıyor musun karnaval salıncak yolculuğu Derslerden sonra okul kapısında bizi heyecanla bekleyen setler? Bir grubun aynı anda atlayabildiği ve heyecan verici bir yolculuğun tadını çıkarabildiği bu salıncaklar, eğlence parklarında da sıkça görülen bir manzaraydı ya da mahalle köşelerine gizlenmişti. Muhtemelen en az bir kez bir dönüş yapmışsınızdır. Şimdi bu geleneksel oyun alanlarının favorisini elektronik ortamda hayata döndürüyoruz. PicoBricks, bir DC motor ve bir zil, sizi bu klasik eğlenceyi yeniden yaratmaya davet ediyoruz; ister dekoratif bir parça, ister oyuncak, ister yaratıcı proje fikirleri hayal gücünüze göre tasarlandı. Bu projeyi denemek ve dünyanızda en iyi nereye uyacağına karar vermek ister misiniz?

Ayrıntılar ve Algoritma

Bu kod bir temel oluşturur Ahududu Pi-desteklenen salıncak karnaval yolculuğu Geleneksel eğlencenin nostaljisini modern elektronik kontrolle harmanlayan proje. Salınımın hızını düzenlemek için 'motorState' ve 'motorSpeed' gibi temel değişkenleri devreye sokar. Başlangıç ​​motor hızı, başlangıç ​​noktası olarak sıfıra ayarlanır.

Kod iki temel fonksiyondan oluşur: 'runMotor' ve 'stopMotor'. 'runMotor' işlevi şunu okur: potansiyometredeğerini yüzdeye dönüştürür ve motorun hızını belirler. Aynı zamanda karnaval salıncağının hızını da ekranda gösteriyor. OLED ekran. Öte yandan 'stopMotor' işlevi, motor hızını sıfıra ayarlayarak ekranda 'Karnaval Durduruldu' mesajını görüntüler. Temelde bu kod, bir potansiyometre kullanarak salınımın dönüş hızının gerçek zamanlı olarak ayarlanmasına olanak tanır ve ekranda anında geri bildirim sağlar.

Başlangıçta kullanıcı, bir tuşa basmasını söyleyen bir mesajla karşılanır. düğme başlatmak için proje salıncak parkı. Kod daha sonra kullanıcının düğmeye basmasını bekler ve basıldığında motorun durumunu değiştirir. Daha sonra motorun durumuna bağlı olarak 'runMotor' veya 'stopMotor' fonksiyonu çağrılır.

Özet olarak, bu kod, kontrol etmek için bir düğme ve bir potansiyometre kullanır. Nostalji dokunuşunu modern elektronikle harmanlayan proje salıncak parkı. İlgi çekici ve etkileşimli bir deneyim sunarak kullanıcıların bir yandan klasik bir sallanmanın cazibesinin tadını çıkarırken diğer yandan gerçek zamanlı olarak salıncağın hızına ince ayar yapmalarına olanak tanıyor. karnaval salıncak gezisi.

Bileşenler

  • 1xPicoBricks
  • 1xDC Motorlu
  • Atlama Kabloları
  • Karton
  • Renkli Kağıtlar
  • 8xHalat
  • 1xMakas
  • Kalafat Tabancası

Kablolama Şeması

carnival swing ride diagram

PicoBricks'in MicroBlock Kodları

swing ride microblocks

PicoBricks'in PicoBlockly Kodları

carnival swing ride microblocks

PicoBricks'in MicroPython Kodları

zamandan içe uyku
ithalat makinesi
makineden içe aktarma Pimi
makine ithalatından I2C
picobricks'ten SSD1306_I2C'yi içe aktar
ithalat zamanı
matematik ithalatı
makine içe aktarma PWM'sinden
makine içe aktarma ADC'sinden

pin_button = makine.Pin(10, makine.Pin.IN)
i2c = I2C(0, scl=Pin(5), sda=Pin(4), frek=200000)
oled = SSD1306_I2C(128, 64, i2c, addr=0x3c)
matematik ithalatı
kap = makine.ADC(26)
motor_1 = PWM(Pin(21))
motor_1.duty_u16(0)

def runMotor():
    küresel motorDurum, motorHız
    motorHızı = round(round( pot.read_u16() - 0 ) * ( 100 - 0 ) / ( 65535 - 0 ) + 0)
    motor_1.duty_u16(motorHızı * 650)
    oled.fill(0)
    oled.text("{}".format("Karnaval "), 26, 20)
    oled.text("{}".format("Hız "), 38, 30)
    oled.text("{}".format("%"), 44, 45)
    oled.text("{}".format(motorSpeed), 54, 45)
    oled.show()

def stopMotor():
    küresel motorDurum, motorHız
    motor_1.duty_u16(0 * 650)
    oled.fill(0)
    oled.text("{}".format("Karnaval"), 32, 15)
    oled.text("{}".format("oldu"), 50, 30)
    oled.text("{}".format("Durduruldu"), 35, 45)
    oled.show()

motorDurumu = 0
motor Hızı = 0
while (pin_button.value()) == (0):
    oled.fill(0)
    oled.text("{}".format("Karnaval Gezisi"), 10, 5)
    oled.text("{}".format("Düğmeye Basın"), 15, 45)
    oled.text("{}".format("Başlamak İçin"), 35, 55)
    oled.show()

Doğruyken:
    if (pin_button.value()) == (1):
        eğer motorDurumu == (0):
            motorDurumu = 1
        başka:
            motorDurumu = 0
        zaman.uyku((0.1))
    eğer motorDurumu == (1):
        runMotor()
    başka:
        stopMotor()

PicoBricks'in Arduino C Kodları

#katmak
#include "ACROBOTIC_SSD1306.h"

#define BUTTON_PIN 10

const int motorPin = 21;
const int potPin = 26;

bool motorDurumu = false;

void stopMotor() {
  analogWrite(motorPin, 0);
  //oled.clearDisplay();
  oled.setTextXY(1, 3);
  oled.putString("Karnaval");
  oled.setTextXY(3, 6);
  oled.putString("oldu");
  oled.setTextXY(5, 4);
  oled.putString("Durduruldu");
}

geçersiz kurulum() {
  Seri.begin(9600);
  pinMode(BUTTON_PIN, INPUT);
  pinMode(motorPin, OUTPUT);
  Wire.begin();
  oled.init();
  oled.clearDisplay();
  oled.setTextXY(1, 4);
  oled.putString("Karnaval");
  oled.setTextXY(2, 6);
  oled.putString("Yol");
  oled.setTextXY(5,2);
  oled.putString("Düğmeye Basın");
  oled.setTextXY(6,3);
  oled.putString("Başlamak İçin");
}

geçersiz döngü () {
  if (digitalRead(BUTTON_PIN) == YÜKSEK) {
    motorDurumu = doğru;
    gecikme(100);
    oled.clearDisplay();
  }

  while(motorState == true) {
    Serial.println(motorState);
    int motorSpeed ​​= harita(analogRead(potPin), 0, 1023, 0, 99);
    analogWrite(motorPin, motorHızı * 2.5);
    oled.setTextXY(1, 4);
    oled.putString("Karnaval");
    oled.setTextXY(3, 5);
    oled.putString("Hız");
    oled.setTextXY(5, 5);
    oled.putString("%");
    oled.setTextXY(5, 7);
    oled.putString(String(motorSpeed));
    
    if (digitalRead(BUTTON_PIN) == YÜKSEK) {
      motorDurumu = yanlış;
      oled.clearDisplay();
      stopMotor();
      gecikme(300);
    }
 }

}

bunlarla yaratıcı proje fikirleri PicoBricks ile kendi başınıza kolayca yapabileceğiniz kodlama alanında her geçen gün biraz daha kendinizi geliştirme fırsatını yakalayın!

Önceki Gönderi
Sıradaki Gönderi

Abone olduğun için teşekkürler!

Bu e-posta kaydedildi!

Görünümü satın alın
Seçenekleri Seçin

Seçeneği Düzenle

Stok Bildirimi

Karşılaştır

Ürün Stok KoduDeğerlendirmeAçıklama Kategori Uygunluk Ürün Tipi Diğer Detaylar
this is just a warning
Giriş Yap
Alışveriş Sepeti
0 Ürünler
Same Day Shipping No Extra Costs
Easy Returns Guarantee Return with Ease
Secure Checkout Secure Payment