Inhaltsverzeichnis:
- Schritt 1: Komponenten sammeln
- Schritt 2: Erstellen des Designs
- Schritt 3: Testen des Designs
- Schritt 4: Besorgen Sie sich die notwendige Software
- Schritt 5: Erstellen Sie die ausführbaren Dateien
- Schritt 6: Alles testen
Video: LiFi-Kommunikation - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:20
In dieser Anleitung erfahren Sie, wie Sie die LiFi-Kommunikation (Sender und Empfänger) auf Software- und Hardwareebene implementieren.
Schritt 1: Komponenten sammeln
Dinge, die Sie brauchen:
-Arduino und Zedboard
-Oszilloskop
-Widerstände: 8k Ohm, 1k2 Ohm, 1k Ohm, 220 Ohm und 27 Ohm.
-Opamp, Kondensator, Zenerdiode, Fotodiode, LEDs und Steckbrett.
Schritt 2: Erstellen des Designs
Auf dem Bild ist der Schaltplan für den Empfänger angegeben.
Verbinden Sie zuerst die Anode (Minuspol) der Fotodiode mit 3,3V (Vcc), die Kathode (Pluspol) über einen 8k2 Ohm Widerstand mit Masse. Verbinden Sie auch die Kathode mit dem positiven Anschluss Ihres Operationsverstärkers, der zur Verstärkung des Signals verwendet wird. Wir verwenden negatives Feedback, also schließen Sie 2 Widerstände an den negativen Anschluss des Operationsverstärkers an, 1 (1 k2 Ohm) geht an den Ausgang des Operationsverstärkers, der andere (220 Ohm) geht an Masse. Um Ihren GPIO-Pin zu schützen, schließen Sie eine umgekehrt vorgespannte Zenerdiode von 3,3 V in Reihe mit einem 1 k2-Ohm-Widerstand an Masse an. Der Ausgang des Operationsverstärkers muss mit einem GPIO-Pin verbunden werden.
Der Sender besteht nur aus einem 27 Ohm Widerstand und einer LED in Reihe. Ein Ende geht an einen GPIOpin und das andere an Masse, um sicherzustellen, dass der kurze Schenkel der LED mit Masse verbunden ist.
Wenn die Designs funktionieren, können Sie eine Leiterplatte dafür erstellen. Auf der Platine haben wir Sender und Empfänger auf einer Platine kombiniert, sodass wir schließlich Daten in zwei Richtungen senden können. Sie können auch die PCB-Schaltpläne in den Bildern für den Empfänger und den Sender sehen.
Schritt 3: Testen des Designs
Verwenden Sie ein Oszilloskop, um das Design zu überprüfen, da das Umgebungslicht und der Unterschied in den Fotodioden unterschiedliche Ergebnisse im Ausgangssignal liefern können.
Verbinden Sie Ihren Sender mit einem Arduino und erzeugen Sie eine Rechteckwelle mit der gewünschten Frequenz. Bringen Sie die Sender-LED in die Nähe der Fotodiode.
Verbinden Sie eine Sonde mit dem Pluspol Ihres Operationsverstärkers, eine andere mit dem Ausgang Ihres Operationsverstärkers. Wenn Ihr Ausgangssignal zu schwach ist, müssen die Gegenkopplungswiderstände (1k2 Ohm, 220 Ohm) ausgetauscht werden. Sie haben 2 Möglichkeiten, den 1k2-Ohm-Widerstand zu erhöhen oder den 220-Ohm-Widerstand zu verringern. Wenn die Leistung zu hoch ist, gehen Sie umgekehrt vor.
Wenn alles in Ordnung aussieht, fahren Sie mit dem nächsten Schritt fort.
Schritt 4: Besorgen Sie sich die notwendige Software
Auf dem Bild sind die verschiedenen Codierungsschritte zu sehen, um LiFi zu implementieren. Zum Decodieren müssen die gleichen Schritte in umgekehrter Reihenfolge ausgeführt werden.
Für dieses Projekt werden einige Bibliotheken benötigt, sie sind in den angegebenen Dateien enthalten und hier sind die Links zum Github-Repository:
-Reed-Solomon:
-Faltungsencoder:
Damit die Dateien das tun, was wir wollen, haben wir einige Anpassungen vorgenommen, so dass es notwendig ist, unsere Version der Bibliotheken zu verwenden, die in den Dateien enthalten sind.
Nach dem Faltungscodierer ist ein letzter Codierungsschritt erforderlich, die Manchester-Codierung. Die Daten vom Faltungscodierer werden an einen Fifo-Puffer gesendet. Dieser Puffer wird im PL-Teil des Zedboards gelesen, das Projekt ist in der Datei 'LIFI.7z' enthalten. Mit dem Projekt können Sie Ihren eigenen Bitstream für das Zedboard erstellen oder einfach den von uns bereitgestellten Bitstream verwenden. Um diesen Bitstream verwenden zu können, müssen Sie zuerst Xillinux 2.0 auf dem Zedboard installieren. Die Erklärung dazu finden Sie auf der Xillybus-Website.
Schritt 5: Erstellen Sie die ausführbaren Dateien
Es müssen zwei separate ausführbare Dateien erstellt werden, eine für den Sender und eine für den Empfänger. Dazu müssen folgende Befehle auf dem Zedboard ausgeführt werden:
- Sender: g++ ReedSolomon.cpp Interleaver.cpp viterbi.cpp Transmission.cpp -o Sender
- Empfänger: g++ ReedSolomon.cpp Interleaver.cpp viterbi.cpp Empfänger.cpp -o Empfänger
Schritt 6: Alles testen
Verbinden Sie den Sender mit dem JD1_P-Pin und den Empfänger mit dem JD1_N-Pin auf dem Zedboard. Stellen Sie sicher, dass Sie die Einschränkungsdatei ändern, wenn Sie die Standardstifte ändern möchten.
Um zu testen, ob alles funktioniert, öffnen Sie 2 Terminalfenster im PS-Teil. Führen Sie in einem Terminal zuerst den empfangenden Teil aus. Führen Sie danach den Senderteil im zweiten Terminalfenster aus.
Wenn alles wie gewünscht läuft, sollte das Ergebnis das gleiche sein wie auf dem Bild oben.