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
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
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
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();
}
}