İçeriğe Geç

Uzaktan Test Projesi

27 Nov 2023
Remote Test Project

Uzaktan Test

Bunun en iyisi olduğuna eminiz harika elektronik projeler! Nedenini görelim.

Kızılötesi sensörler, ortamdaki ışık seviyelerini veya nesnelerin yakınlığını tespit etmek için kızılötesi ışıktan yararlanır. Bu sensörler, çeşitli dalga boylarında kızılötesi ışık yayma ve tespit etme kapasitesine sahip özel yarı iletkenlerden yapılmıştır. Kızılötesi sensörler, nesne yakınlığı algılama, hareket algılama ve mesafe ölçümü dahil olmak üzere çok çeşitli senaryolarda uygulama alanı bulur. Günlük yaşamda hareket algılama, mesafe ölçümü ve ışık algılama gibi görevlerde kullanılırlar. Bu mevcut projede PicoBricks kitini kullanan bir IR sensörüyaygın olarak 'olarak bilinir'IR Uzaktan Kumanda' veya 'Kızılötesi Uzaktan Kumanda' da kullanılır. Bu teknoloji, kızılötesi ışık kullanılarak elektronik cihazların uzaktan kontrol edilmesinde yaygın olarak kullanılmaktadır. Yaygın olarak ev elektroniklerinde, TV uzaktan kumandalarında, uzaktan kumandalı arabalarda, klima ünitelerinde ve diğer birçok uygulamada bulunur.

Ayrıntılar ve Algoritma

Bu kodun amacı, IR uzaktan kumandayı ve OLED ekranı entegre etmek için PicoBricks kitini kullanarak etkileşimli bir uygulama oluşturmaktı. Şimdi algoritmayı derinlemesine inceleyelim: Başlamak için gerekli kütüphaneler ve modüller içe aktarılır, ardından gerekli pinler ve nesneler oluşturulur. Bir döngü içerisinde program sabırla bir düğme tuşuna basın ve etkinleştirildiğinde ekranda hemen özel bir karşılama mesajı görüntülenir. Daha sonra IR verilerini yakalayan devam eden bir döngü başlatılır. Alınan veriler daha sonra belirli butonlara karşılık gelen kodlarla karşılaştırılıyor ve ilgili mesajlar anında ekranda gösteriliyor. Bu özel projede uzaktan kumandada beş düğme kullandık ve aynı yaklaşım gerektiğinde ek düğmelere de uygulanabilir. Her düğme için ayrı eylemler yürütülür ve program bir sonraki IR verisi alınana kadar duraklatılır. Bu süreç boyunca, uzaktan kumandanın operasyonel mantığını basit bir proje aracılığıyla açıklamak amacıyla IR uzaktan kumandayla etkileşimli bir deneyimi başarılı bir şekilde oluşturacaksınız.

Bileşenler

1 x PicoBrick'ler

1 x Kızılötesi Uzaktan Kumanda

Bağlantı şeması

Remote-Test diagram

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.

Yalnızca ilk 4 düğme için alındığında ekledim. Ama sanırım nasıl çalıştığını anladınız. İyi eğlenceler 🙂

PicoBricks'in MicroBlock Kodları

remote tester

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ı
picobricks'ten NEC_16'yı içe aktar
picobricks'ten IR_RX'i içe aktarın
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)
def ir_callback(veri, adres, ctrl):
    küresel ir_data
    genel ir_addr, data_rcvd
    veri > 0 ise:
        ir_data = veri
        ir_addr = adres
        print('Veri {:02x} Addr {:04x}'.format(data, addr))
        data_rcvd = Doğru
ir = NEC_16(Pin(0, Pin.IN), ir_callback)
ir_veri = 0
data_rcvd = Yanlış
while (pin_button.value()) == (0):
    oled.text("{}".format("Hoşgeldiniz"), 20, 10)
    oled.text("{}".format("Uzaktan Test"), 15, 20)
    oled.text("{}".format("Basma Düğmesi"), 15, 30)
    oled.text("{}".format("Başlamak İçin"), 25, 40)
    oled.show()
zaman.uyku((0.1))
Doğruyken:
    oled.fill(0)
    oled.show()
    oled.text("{}".format("Uzaktan Kumandayı Kullan"), 0, 0)
    oled.show()
    zaman.uyku((0.1))
    if data_rcvd == Doğru:
        data_rcvd = Yanlış
        oled.fill(0)
        eğer ir_data == IR_RX.number_1 ise:
            oled.text("{}".format("Düğme 1'e Basıldı"), 0, 0)
            oled.show()
            zaman.uyku((1))
        elif ir_data == IR_RX.number_2:
            oled.text("{}".format("Düğme 2'ye Basıldı"), 0, 0)
            oled.show()
            zaman.uyku((1))
        elif ir_data == IR_RX.number_3:
            oled.text("{}".format("3. Düğmeye Basıldı"), 0, 0)
            oled.show()
            zaman.uyku((1))
        elif ir_data == IR_RX.number_4:
            oled.text("{}".format("Düğme 4'e Basıldı"), 0, 0)
            oled.show()
            zaman.uyku((1))
        elif ir_data == IR_RX.number_ok:
            oled.text("{}".format("Düğme Tamam "), 0, 0)
            oled.text("{}".format("Basıldı"), 0, 10)
            oled.show()
            zaman.uyku((1))

PicoBricks'in PicoBlockly Kodları

PicoBlockly Codes of the PicoBricks

PicoBlockly Codes of the PicoBricks

PicoBricks'in Arduino C Kodları

#katmak
#"ACROBOTIC_SSD1306.h"yi dahil et
#katmak
#katmak
#define IR_RECEIVE_PIN 0
#define BUTTON_PIN 10

int a = 0;

geçersiz kurulum() {
  Seri.begin(9600);
  Wire.begin();
  oled.init();
  oled.clearDisplay();
  IrReceiver.begin(IR_RECEIVE_PIN, ENABLE_LED_FEEDBACK);
}

geçersiz döngü () {
  while (digitalRead(BUTTON_PIN) == DÜŞÜK) {
    oled.setTextXY(1, 2);
    oled.putString(“Hoş Geldiniz”);
    oled.setTextXY(2, 1);
    oled.putString(“Uzaktan Test”);
    oled.setTextXY(3, 1);
    oled.putString(“Basma Düğmesi”);
    oled.setTextXY(4, 2);
    oled.putString(“Başlamak İçin”);
  }
  oled.clearDisplay();

  while (doğru) {
    oled.setTextXY(0, 0);
    oled.putString(“Uzaktan Kumandayı Kullan”);

    if (IrReceiver.decode()) {
      oled.clearDisplay();
      a = (IrReceiver.decodedIRData.decodedRawData);
      Seri.println(a);
      IrReceiver.resume();
    }

    eğer (a == -1169817856) {
      oled.setTextXY(0, 0);
      oled.putString(“Düğme 1 Basıldı”);
      gecikme(1000);
    }
    eğer (a == -1186529536) {
      oled.setTextXY(0, 0);
      oled.putString(“Düğme 2'ye Basıldı”);
      gecikme(1000);
    }
    eğer (a == -1203241216) {
      oled.setTextXY(0, 0);
      oled.putString(“3. Düğmeye Basıldı”);
      gecikme(1000);
    }
    eğer (a == -1153106176) {
      oled.setTextXY(0, 0);
      oled.putString(“Düğme 4'e Basıldı”);
      gecikme(1000);
    }
    eğer (a == -484638976) {
      oled.setTextXY(0, 0);
      oled.putString(“Düğme Tamam”);
      oled.setTextXY(1, 0);
      oled.putString(“Basıldı”);
      gecikme(1000);
    }
    bir = 0;
    gecikme(1000);
    oled.clearDisplay();
  }
}
Ö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