İçeriğe Geç

#22 PicoBricks ile Dijital Cetvel Projesi

03 Nov 2023
#22 Digital Ruler Project With PicoBricks

Uzunluğu ölçmek için birçok alet kullanılır. İlk akla gelenlerden biri cetvellerdir. Ölçü aletimiz ölçülecek yer ve boyuta göre farklılık göstermektedir. İnşaat ve mimaride şerit metreler, milimetrik hassasiyet gerektiren küçük nesneler için kumpaslar kullanılır. Ayrıca hem büyük hem de hassas ölçüm gerektiren bir alanın ölçülmesi isteniyorsa lazer ve kızılötesi sistemlerle çalışan mesafe ölçerler kullanılır. Sağlık sektöründe kullanılan ultrasonografi cihazları da aynı mantıkla çalışır ancak ölçümlerini görsele dönüştürür.

Projemizde PicoBricks ve ultrasonik sensör kullanarak mesafe değerini ekran üzerinde gösterecek dijital cetvel hazırlayacağız. OLED ekran düğmeye basıldığında. Ultrasonik sensörler yaydıkları ses dalgalarının geri dönüş sürelerine göre mesafeyi tespit ederler.

Ayrıntılar ve Algoritma

Program başladığında OLED ekranında talimatlar görüntülenir. Kullanıcı tuşuna bastıktan sonra düğme, bir ölçüm alınır. Kırmızı LED ölçüm sırasında yanık kalır ve ardından söner. Ölçülen değer, sensörün ucundan kutunun arkasına kadar olan mesafeye eklenir. Hesaplanan son değer OLED ekranda görüntülenir.

Bileşenler

1X PicoBrick
1X HC-SR04 Ultrasonik Sensör
Atlama Kabloları
Kolay Bağlantı Kabloları

Bağlantı şeması

Picobricks modüllerini kablolama olmadan kodlayabilir ve çalıştırabilirsiniz. Modülleri panodan ayırarak kullanacaksanız modül bağlantılarını grove kablolarla yapmalısınız.

Projenin İnşaat Aşamaları

Projeyi hazırlamak için çift taraflı köpük bant, maket bıçağı, yaklaşık 15x10x5 cm ebatlarında atık karton kutuya ihtiyacınız var.

1) Ultrasonik sensör, OLED ekran, düğme LED modülü için delikleri kesin, zil, akü kutusunun kablolarını maket bıçağıyla geçirmek için.

2) Tüm kabloları kutunun içine asın ve modüllerin arkasını çift taraflı köpük bantla kutuya yapıştırın. Bağlan tetik ultrasonik sensörün pimini GPIO14 pin ve Eko pinlemek GPIO15 toplu iğne. VCC pinini VBUS Picoboard'a sabitleyin.

 

3) Tüm modüllerin kablo bağlantılarını tamamladıktan sonra 2'li pil kutusunu Picoboard'un power girişine takıp anahtarı açabilirsiniz. Dijital cetvel projesi için bu kadar!

Mikroblok Çalıştırma Sekmesi

PicoBricks'in MicroPython Kodları

 


makineden içe aktarma Pin, PWM, I2C
utime içe aktarma uykusundan
picobricks'ten SSD1306_I2C'yi içe aktar
kullanım süresini içe aktar

# Kütüphaneleri tanımlayın
redLed = Pin(7, Pin.OUT)
düğmesi = Pin(10, Pin.IN, Pin.PULL_DOWN)
buzzer = PWM(Pin(20, Pin.OUT))
buzzer.freq(392)
tetikleyici = Pin(15, Pin.OUT)
echo = Pin(14, Pin.IN)

# Giriş ve çıkış pinlerini tanımlayın
GENİŞLİK = 128
YÜKSEKLİK = 64

# OLED ekran ayarları
sda = makine.Pin(4)
scl = makine.Pin(5)
i2c = makine.I2C(0, sda=sda, scl=scl, frek=1000000)

# OLED iletişimi için dijital pin 4 ve 5'i ÇIKIŞ olarak başlatın
oled = SSD1306_I2C(128, 64, i2c)

ölçü = 0
sonMesafe = 0

def getDistance():
    tetikleyici.düşük()
    utime.sleep_us(2)
    tetikleyici.yüksek()
    utime.sleep_us(5)
    tetikleyici.düşük()
    while echo.value() == 0:
        signaloff = utime.ticks_us()
    while echo.value() == 1:
        signalon = utime.ticks_us()
    geçen süre = sinyal açık - sinyal kapalı
    mesafe = (geçen süre * 0,0343) / 2
    dönüş mesafesi

# Mesafeyi hesapla
def getMeasure(pin):
    küresel ölçü
    küresel finalMesafe
    redLed.value(1)
    (20) aralığındaki i için:
        ölçü += getDistance()
        uyku(0,05)
    kırmızıLed.value(0)
    finalDistance = (ölçü/20) + 1
    oled.fill(0)
    oled.show()
    oled.text(">Dijital Cetvel<", 2, 5)
    oled.text("Mesafe " + str(round(finalDistance)) + " cm", 0, 32)
    oled.show()

    # Belirtilen mesafeyi belirtilen x ve y koordinatlarına OLED ekranında yazdırın
    yazdır(sonMesafe)
    buzzer.duty_u16(4000)
    uyku(0,05)
    buzzer.duty_u16(0)
    ölçü = 0
    sonMesafe = 0

# Zili çal
Button.irq(trigger=machine.Pin.IRQ_RISING, işleyici=getMeasure)

PicoBricks'in Arduino C Kodları

 


#include 
#include "ACROBOTIC_SSD1306.h"
#include 
//Kütüphaneleri tanımlayalım
#define TRIGGER_PIN 15
#define ECHO_PIN 14
#define MAX_DISTANCE 400
YeniPing sonarı(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
#tanımla T_B 493
int mesafe = 0;
int toplam = 0;

geçersiz kurulum() {
  pinMode(7, ÇIKIŞ);
  pinMode(20, ÇIKIŞ);
  pinMode(10, INPUT);
  // Giriş ve çıkış pinlerini tanımlıyoruz
  Wire.begin();
  oled.init();
  oled.clearDisplay();
}

geçersiz döngü () {
  gecikme(50);
  if(digitalRead(10) == 1) {
    int ölçü = 0;
    digitalWrite(7, YÜKSEK);
    tone(20, T_B);
    gecikme(500);
    ton yok(20);
    for (int i = 0; i < 20; i++) {
      ölçü = sonar.ping_cm();
      toplam = toplam + ölçü;
      gecikme(50);
    }
    mesafe = toplam / 20 + 6; // Mesafeyi hesapla
    digitalWrite(7, DÜŞÜK);
    gecikme(1000);
    oled.clearDisplay();
    oled.setTextXY(2, 1);
    oled.putString(">Dijital Cetvel<");
    oled.setTextXY(5, 1);
    oled.putString("Mesafe: ");
    oled.setTextXY(5, 10);
    String string_distance = String(mesafe);
    oled.putString(string_distance);
    oled.setTextXY(5, 12);
    oled.putString("cm"); // Hesaplanan mesafeyi OLED ekrana yazdırıyoruz
    ölçü = 0;
    mesafe = 0;
    toplam = 0;
  }
}

GitHub Proje Sayfası
Ö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