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ı
PicoBricks'in MicroBlock Kodları
PicoBricks'in PicoBlockly Kodları
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!