Inhoudsopgave:

LiFi-communicatie: 6 stappen
LiFi-communicatie: 6 stappen

Video: LiFi-communicatie: 6 stappen

Video: LiFi-communicatie: 6 stappen
Video: Wi Fi 6E een grote stap voorwaarts in Wi Fi communicatie 2024, November
Anonim
LiFi-communicatie
LiFi-communicatie

In deze instructable leert u hoe u LiFi-communicatie (zender en ontvanger) op software- en hardwareniveau kunt implementeren.

Stap 1: Verzamel componenten

Verzamel componenten
Verzamel componenten

Dingen die je nodig hebt:

-Arduino en Zedboard

-oscilloscoop

-Weerstanden: 8k ohm, 1k2 ohm, 1k ohm, 220 ohm en 27 ohm.

-opamp, condensator, zenerdiode, fotodiode, LED's en breadbord.

Stap 2: Het ontwerp bouwen

Het ontwerp bouwen
Het ontwerp bouwen
Het ontwerp bouwen
Het ontwerp bouwen
Het ontwerp bouwen
Het ontwerp bouwen

Op de afbeelding wordt het schema voor de ontvanger gegeven.

Sluit eerst de anode (negatieve aansluiting) van de fotodiode aan op 3,3 V (Vcc), de kathode (positieve aansluiting) op aarde via een weerstand van 8k2 ohm. Sluit ook de kathode aan op de positieve pool van je opamp, die zal worden gebruikt om het signaal te versterken. We gebruiken negatieve feedback, dus sluit 2 weerstanden aan op de negatieve pool van de opamp, 1 (1k2 ohm) gaat naar de uitgang van de opamp, de andere (220 ohm) gaat naar aarde. Om uw GPIO-pin te beschermen, sluit u een omgekeerde voorgespannen zenerdiode van 3,3 V in serie met een weerstand van 1k2 ohm aan op aarde. De uitgang van de opamp moet worden aangesloten op een GPIO-pin.

De zender bestaat slechts uit één weerstand van 27 ohm en een LED in serie. Het ene uiteinde gaat naar een GPIOpin en het andere naar aarde, en zorg ervoor dat het korte been van de LED is verbonden met aarde.

Als de ontwerpen werken, kun je er een PCB voor maken. Op de print hebben we de zender en ontvanger gecombineerd op één print, zodat we uiteindelijk data in twee richtingen kunnen sturen. U kunt de PCB-schema's ook zien in de afbeeldingen voor de ontvanger en zender.

Stap 3: Het ontwerp testen

Gebruik een oscilloscoop om het ontwerp te controleren, omdat omgevingslicht en het verschil in fotodiodes verschillende resultaten in het uitgangssignaal kunnen geven.

Sluit je zender aan op een arduino en genereer een blokgolf met de gewenste frequentie. Plaats de zender-LED dicht bij de fotodiode.

Sluit een sonde aan op de positieve pool van uw opamp, een andere op de uitgang van uw opamp. Als uw uitgangssignaal te zwak is, moeten de negatieve feedbackweerstanden (1k2 ohm, 220 ohm) worden gewijzigd. Je hebt 2 keuzes, de weerstand van 1k2 ohm verhogen of de weerstand van 220 ohm verlagen. Als de output te hoog is, doe dan het tegenovergestelde.

Als alles er goed uitziet, gaat u verder met de volgende stap.

Stap 4: Alle benodigde software verkrijgen

Alle benodigde software verkrijgen
Alle benodigde software verkrijgen

Op de afbeelding zijn de verschillende coderingsstappen te zien om LiFi te implementeren. Om te decoderen, moeten dezelfde stappen in omgekeerde volgorde worden uitgevoerd.

Voor dit project zijn enkele bibliotheken nodig, deze zijn opgenomen in de gegeven bestanden en hier zijn de links naar de github-repository:

-Reed-Solomon:

-Convolutionele encoder:

Om de bestanden te laten doen wat we willen, hebben we er enkele aanpassingen in gemaakt, dus het is noodzakelijk om onze versie van de bibliotheken te gebruiken die in de bestanden zijn opgenomen.

Na de convolutionele encoder is nog een laatste coderingsstap nodig, de Manchester-codering. De gegevens van de convolutionele encoder worden naar een fifo-buffer gestuurd. Deze buffer wordt ingelezen in het PL-gedeelte van het zedboard, het project wordt opgenomen in het 'LIFI.7z'-bestand. Met het project kun je je eigen bitstream voor het zedboard bouwen of je kunt gewoon de bitstream gebruiken die we hebben geleverd. Om deze bitstream te gebruiken moet je eerst Xillinux 2.0 op het zedboard installeren. De uitleg hoe je dit doet staat op de website van Xillybus.

Stap 5: Maak de uitvoerbare bestanden

Er moeten twee afzonderlijke uitvoerbare bestanden worden gemaakt, één voor de zender en één voor de ontvanger. Om dit te doen, moeten de volgende commando's worden uitgevoerd op het zedboard:

- Zender: g++ ReedSolomon.cpp Interleaver.cpp viterbi.cpp Transmission.cpp -o Zender

- Ontvanger: g++ ReedSolomon.cpp Interleaver.cpp viterbi.cpp Receiver.cpp -o Ontvanger

Stap 6: Alles testen

Verbind de zender met de JD1_P pin en de ontvanger met de JD1_N pin op het zedboard. Zorg ervoor dat u het beperkingsbestand wijzigt als u de standaardpinnen wilt wijzigen.

Om te testen of alles werkt, open je 2 terminalvensters in het PS-gedeelte. Voer in een terminal eerst het ontvangende deel uit. Voer daarna het zendergedeelte uit in het tweede terminalvenster.

Als alles gaat zoals het hoort, zou het resultaat hetzelfde moeten zijn als op de afbeelding hierboven.

Aanbevolen: