Zum Inhalt springen

Remote-Testprojekt

27 Nov 2023
Remote Test Project

Ferntest

Wir sind sicher, dass dies das Beste unter ihnen ist coole elektronische Projekte! Mal sehen, warum.

Infrarotsensoren nutzen Infrarotlicht, um die Umgebungshelligkeit oder die Nähe von Objekten zu erkennen. Diese Sensoren bestehen aus speziellen Halbleitern, die Infrarotlicht verschiedener Wellenlängen aussenden und erfassen können. Infrarotsensoren finden in einer Vielzahl von Szenarien Anwendung, darunter die Erkennung von Objektnähe, Bewegungserkennung und Entfernungsmessung. Im Alltag werden sie für Aufgaben wie Bewegungserkennung, Entfernungsmessung und Lichterkennung eingesetzt. In diesem aktuellen Projekt mit dem PicoBricks-Kit wurde ein IR-Sensor, allgemein bekannt als „IR-Fernbedienung“ oder „Infrarot-Fernbedienung“ wird ebenfalls verwendet. Diese Technologie wird häufig zur Fernsteuerung elektronischer Geräte mithilfe von Infrarotlicht eingesetzt. Man findet es häufig in Heimelektronik, TV-Fernbedienungen, ferngesteuerten Autos, Klimaanlagen und zahlreichen anderen Anwendungen.

Details und Algorithmus

Ziel dieses Codes war die Erstellung einer interaktiven Anwendung mithilfe des PicoBricks-Kits zur Integration einer IR-Fernbedienung und eines OLED-Displays. Lassen Sie uns nun tiefer in den Algorithmus eintauchen: Zunächst werden die notwendigen Bibliotheken und Module importiert, gefolgt von der Erstellung der benötigten Pins und Objekte. Innerhalb einer Schleife wartet das Programm geduldig auf a Taste Drücken Sie, und bei der Aktivierung wird sofort eine bestimmte Willkommensnachricht auf dem Bildschirm angezeigt. Anschließend wird eine fortlaufende Schleife eingeleitet, in der IR-Daten erfasst werden. Die empfangenen Daten werden dann mit Codes verglichen, die bestimmten Schaltflächen entsprechen, und relevante Meldungen werden umgehend auf dem Bildschirm angezeigt. In diesem speziellen Projekt haben wir fünf Tasten auf der Fernbedienung verwendet, und der gleiche Ansatz kann bei Bedarf auf weitere Tasten angewendet werden. Für jede Taste werden individuelle Aktionen ausgeführt, wobei das Programm pausiert, bis die nächsten IR-Daten empfangen werden. Durch diesen Prozess werden Sie erfolgreich ein interaktives Erlebnis mit einer IR-Fernbedienung schaffen, mit dem Ziel, die Betriebslogik der Fernbedienung anhand eines einfachen Projekts zu verdeutlichen.

Komponenten

1 x PicoBricks

1 x IR-Fernbedienung

Schaltplan

Remote-Test diagram

Sie können die Module von Picobricks ohne Verkabelung programmieren und betreiben. Wenn Sie die Module getrennt von der Platine verwenden möchten, sollten Sie die Modulverbindungen mit Grove-Kabeln herstellen.

Ich habe bei Erhalt nur die ersten 4 Tasten hinzugefügt. Aber ich denke, Sie verstehen, wie es funktioniert. Viel Spaß 🙂

MicroBlocks-Codes der PicoBricks

remote tester

MicroPython-Codes der PicoBricks

von Zeit zu Zeit Schlaf importieren
Importmaschine
vom Maschinenimport-Pin
vom Maschinenimport I2C
Von Picobricks importieren Sie SSD1306_I2C
Importzeit
aus Picobricks importieren NEC_16
aus Picobricks IR_RX importieren
pin_button = machine.Pin(10, machine.Pin.IN)
i2c = I2C(0, scl=Pin(5), sda=Pin(4), freq=200000)
oled = SSD1306_I2C(128, 64, i2c, addr=0x3c)
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
while (pin_button.value()) == (0):
    oled.text("{}".format("Willkommen bei"), 20, 10)
    oled.text("{}".format("Remote Test"), 15, 20)
    oled.text("{}".format("Push Button"), 15, 30)
    oled.text("{}".format("to Start"), 25, 40)
    oled.show()
time.sleep((0.1))
während True:
    oled.fill(0)
    oled.show()
    oled.text("{}".format("Use Remote"), 0, 0)
    oled.show()
    time.sleep((0.1))
    if data_rcvd == True:
        data_rcvd = Falsch
        oled.fill(0)
        wenn ir_data == IR_RX.number_1:
            oled.text("{}".format("Taste 1 gedrückt"), 0, 0)
            oled.show()
            time.sleep((1))
        elif ir_data == IR_RX.number_2:
            oled.text("{}".format("Taste 2 gedrückt"), 0, 0)
            oled.show()
            time.sleep((1))
        elif ir_data == IR_RX.number_3:
            oled.text("{}".format("Taste 3 gedrückt"), 0, 0)
            oled.show()
            time.sleep((1))
        elif ir_data == IR_RX.number_4:
            oled.text("{}".format("Taste 4 gedrückt"), 0, 0)
            oled.show()
            time.sleep((1))
        elif ir_data == IR_RX.number_ok:
            oled.text("{}".format("Button OK"), 0, 0)
            oled.text("{}".format("Pressed"), 0, 10)
            oled.show()
            time.sleep((1))

PicoBlockly-Codes der PicoBricks

PicoBlockly Codes of the PicoBricks

PicoBlockly Codes of the PicoBricks

Arduino C-Codes der PicoBricks

#enthalten
#include „ACROBOTIC_SSD1306.h“
#enthalten
#enthalten
#define IR_RECEIVE_PIN 0
#define BUTTON_PIN 10

int a = 0;

void setup() {
  Serial.begin(9600);
  Wire.begin();
  oled.init();
  oled.clearDisplay();
  IrReceiver.begin(IR_RECEIVE_PIN, ENABLE_LED_FEEDBACK);
}

void loop() {
  while (digitalRead(BUTTON_PIN) == LOW) {
    oled.setTextXY(1, 2);
    oled.putString(“Willkommen bei”);
    oled.setTextXY(2, 1);
    oled.putString(“Remote Test”);
    oled.setTextXY(3, 1);
    oled.putString(“Push Button”);
    oled.setTextXY(4, 2);
    oled.putString(“zum Starten”);
  }
  oled.clearDisplay();

  while (wahr) {
    oled.setTextXY(0, 0);
    oled.putString(“Fernbedienung verwenden”);

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

    if (a == -1169817856) {
      oled.setTextXY(0, 0);
      oled.putString(“Taste 1 gedrückt”);
      Verzögerung (1000);
    }
    if (a == -1186529536) {
      oled.setTextXY(0, 0);
      oled.putString(“Taste 2 gedrückt”);
      Verzögerung (1000);
    }
    if (a == -1203241216) {
      oled.setTextXY(0, 0);
      oled.putString(“Taste 3 gedrückt”);
      Verzögerung (1000);
    }
    if (a == -1153106176) {
      oled.setTextXY(0, 0);
      oled.putString(“Taste 4 gedrückt”);
      Verzögerung (1000);
    }
    if (a == -484638976) {
      oled.setTextXY(0, 0);
      oled.putString(“Button OK”);
      oled.setTextXY(1, 0);
      oled.putString(“Gedrückt”);
      Verzögerung (1000);
    }
    a = 0;
    Verzögerung (1000);
    oled.clearDisplay();
  }
}
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