Sommario:

Comunicazione LiFi: 6 passaggi
Comunicazione LiFi: 6 passaggi

Video: Comunicazione LiFi: 6 passaggi

Video: Comunicazione LiFi: 6 passaggi
Video: SOCIAL MEDIA STRATEGY: le 6 fasi da seguire 2024, Luglio
Anonim
Comunicazione LiFi
Comunicazione LiFi

In questo tutorial imparerai come implementare la comunicazione LiFi (trasmettitore e ricevitore) a livello software e hardware.

Passaggio 1: raccogliere i componenti

Raccogli componenti
Raccogli componenti

Cose di cui avrai bisogno:

-Arduino e Zedboard

-oscilloscopio

-Resistenze: 8k ohm, 1k2 ohm, 1k ohm, 220 ohm e 27 ohm.

-opamp, condensatore, zenerdiode, fotodiodo, LED e breadbord.

Passaggio 2: costruire il design

Costruire il design
Costruire il design
Costruire il design
Costruire il design
Costruire il design
Costruire il design

Nell'immagine è riportato lo schema del ricevitore.

Innanzitutto, collegare l'anodo (terminale negativo) del fotodiodo a 3,3 V (Vcc), il catodo (terminale positivo) a massa tramite un resistore da 8 k2 ohm. Collega anche il catodo al terminale positivo del tuo opamp, che verrà utilizzato per amplificare il segnale. Stiamo usando un feedback negativo, quindi collega 2 resistori al terminale negativo dell'amplificatore operazionale, 1 (1k2 ohm) va all'uscita dell'amplificatore operazionale, l'altro (220 ohm) va a massa. Per proteggere il tuo pin GPIO, collega un diodo zener polarizzato inverso di 3,3 V in serie con un resistore da 1k2 ohm a terra. L'uscita dell'opamp deve essere collegata a un pin GPIO.

Il trasmettitore consiste solo di un resistore da 27 ohm e un LED in serie. Un'estremità va a un pin GPIO e l'altra a massa, assicurandosi che la gamba corta del LED sia collegata a terra.

Se i progetti funzionano, puoi creare un PCB per questo. Sul PCB abbiamo combinato il trasmettitore e il ricevitore su un'unica scheda, in modo da poter eventualmente inviare i dati in due direzioni. Puoi anche vedere gli schemi PCB nelle immagini per il ricevitore e il trasmettitore.

Passaggio 3: test del design

Utilizzare un oscilloscopio per controllare il progetto perché la luce ambientale e la differenza nei fotodiodi possono dare risultati diversi nel segnale di uscita.

Collega il tuo trasmettitore a un arduino e genera un'onda quadra con la frequenza desiderata. Avvicinare il LED del trasmettitore al fotodiodo.

Collega una sonda al terminale positivo del tuo opamp, un'altra all'uscita del tuo opamp. Se il segnale in uscita è troppo debole, è necessario sostituire i resistori di feedback negativo (1k2 ohm, 220 ohm). Hai 2 scelte, aumentare la resistenza da 1k2 ohm o diminuire la resistenza da 220 ohm. Se l'uscita è troppo alta, fai il contrario.

Se tutto sembra a posto, vai al passaggio successivo.

Passaggio 4: ottenere tutto il software necessario

Ottenere tutto il software necessario
Ottenere tutto il software necessario

Nell'immagine si possono vedere i diversi passaggi di codifica per implementare LiFi. Per decodificare, gli stessi passaggi devono essere eseguiti al contrario.

Per questo progetto sono necessarie alcune librerie, sono incluse nei file forniti e qui ci sono i collegamenti al repository github:

-Reed-Solomon:

- Encoder convoluzionale:

Per fare in modo che i file facciano ciò che vogliamo, abbiamo apportato alcune modifiche in essi, quindi è necessario utilizzare la nostra versione delle librerie, inclusa nei file.

Dopo il codificatore convoluzionale, è necessario un ultimo passaggio di codifica, la codifica manchester. I dati dall'encoder convoluzionale vengono inviati a un buffer fifo. Questo buffer viene letto nella parte PL della zedboard, il progetto è incluso nel file 'LIFI.7z'. Con il progetto puoi costruire il tuo bitstream per zedboard o puoi semplicemente usare il bitstream che abbiamo fornito. Per usare questo bitstream devi prima installare Xillinux 2.0 sulla zedboard. La spiegazione su come eseguire questa operazione è fornita sul sito Web Xillybus.

Passaggio 5: creare gli eseguibili

È necessario creare due eseguibili separati, uno per il trasmettitore e uno per il ricevitore. Per fare ciò, è necessario eseguire i seguenti comandi sulla zedboard:

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

- Ricevitore: g++ ReedSolomon.cpp Interleaver.cpp viterbi.cpp Ricevitore.cpp -o Ricevitore

Passaggio 6: testare tutto

Collegare il trasmettitore al pin JD1_P e il ricevitore al pin JD1_N sulla zedboard. Assicurati di modificare il file dei vincoli se desideri modificare i pin standard.

Per verificare se tutto funziona, apri 2 finestre di terminale nella parte PS. In un terminale eseguire prima la parte ricevente. Successivamente, esegui la parte del trasmettitore nella seconda finestra del terminale.

Se tutto va come dovrebbe, il risultato dovrebbe essere lo stesso dell'immagine sopra.

Consigliato: