Spisu treści:
- Krok 1: Zbierz komponenty
- Krok 2: Budowanie projektu
- Krok 3: Testowanie projektu
- Krok 4: Uzyskanie całego niezbędnego oprogramowania
- Krok 5: Utwórz pliki wykonywalne
- Krok 6: Testowanie wszystkiego
Wideo: Komunikacja LiFi: 6 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:31
W tej instrukcji dowiesz się, jak wdrożyć komunikację LiFi (nadajnik i odbiornik) na poziomie oprogramowania i sprzętu.
Krok 1: Zbierz komponenty
Rzeczy, których będziesz potrzebować:
-Arduino i Zedboard
-oscyloskop
-Rezystory: 8k omów, 1k2 omów, 1 k omów, 220 omów i 27 omów.
-opamp, kondensator, zenerdiode, fotodioda, diody LED i breadbord.
Krok 2: Budowanie projektu
Na zdjęciu schemat odbiornika.
Najpierw podłącz anodę (zacisk ujemny) fotodiody do 3,3 V (Vcc), katodę (zacisk dodatni) do masy przez rezystor 8 k2 omów. Podłącz również katodę do dodatniego zacisku wzmacniacza operacyjnego, który będzie używany do wzmocnienia sygnału. Używamy ujemnego sprzężenia zwrotnego, więc podłącz 2 rezystory do ujemnego zacisku opampa, 1 (1k2 ohm) idzie do wyjścia opampa, drugi (220 ohm) idzie do masy. Aby chronić swój pin GPIO, podłącz szeregowo odwróconą diodę Zenera o napięciu 3,3 V z rezystorem 1 k2 omów do masy. Wyjście opamp musi być podłączone do pinu GPIO.
Nadajnik składa się tylko z jednego rezystora 27 omów i diody LED połączonych szeregowo. Jeden koniec idzie do GPIOpin, a drugi do masy, upewniając się, że krótka noga diody LED jest podłączona do masy.
Jeśli projekty działają, możesz zrobić dla nich płytkę drukowaną. Na płytce PCB połączyliśmy nadajnik i odbiornik na jednej płytce, dzięki czemu docelowo możemy przesyłać dane w dwóch kierunkach. Możesz również zobaczyć schematy PCB na zdjęciach odbiornika i nadajnika.
Krok 3: Testowanie projektu
Użyj oscyloskopu, aby sprawdzić projekt, ponieważ światło otoczenia i różnica w fotodiodach mogą dawać różne wyniki w sygnale wyjściowym.
Podłącz nadajnik do arduino i wygeneruj falę prostokątną o pożądanej częstotliwości. Umieść diodę LED nadajnika blisko fotodiody.
Podłącz jedną sondę do dodatniego zacisku twojego opampa, drugą do wyjścia twojego opampa. Jeśli twój sygnał wyjściowy jest zbyt słaby, rezystory ujemnego sprzężenia zwrotnego (1k2 ohm, 220 ohm) muszą zostać zmienione. Masz 2 możliwości, zwiększ rezystor 1k2 omów lub zmniejsz rezystor 220 omów. Jeśli moc wyjściowa jest zbyt wysoka, zrób odwrotnie.
Jeśli wszystko wygląda dobrze, przejdź do następnego kroku.
Krok 4: Uzyskanie całego niezbędnego oprogramowania
Na obrazie można zobaczyć różne etapy kodowania w celu wdrożenia LiFi. Aby zdekodować, te same kroki należy wykonać w odwrotnej kolejności.
Do tego projektu potrzebne są biblioteki, są one zawarte w podanych plikach i oto linki do repozytorium github:
-Reed-Solomon:
- Enkoder splotowy:
Aby pliki robiły to, co chcemy, dokonaliśmy w nich pewnych poprawek, więc konieczne jest użycie naszej wersji bibliotek zawartych w plikach.
Po koderze splotowym potrzebny jest ostatni etap kodowania, kodowanie manchester. Dane z kodera splotowego są przesyłane do bufora fifo. Bufor ten jest odczytywany w części PL zedboard, projekt jest zawarty w pliku 'LIFI.7z'. Dzięki projektowi możesz zbudować własny strumień bitów dla zedboard lub możesz po prostu użyć dostarczonego przez nas strumienia bitów. Aby korzystać z tego strumienia bitów, musisz najpierw zainstalować Xillinux 2.0 na zedboard. Wyjaśnienie, jak to zrobić, znajduje się na stronie internetowej Xillybus.
Krok 5: Utwórz pliki wykonywalne
Należy utworzyć dwa oddzielne pliki wykonywalne, jeden dla nadajnika i jeden dla odbiornika. Aby to zrobić, na zedboard należy wykonać następujące polecenia:
- Nadajnik: g++ ReedSolomon.cpp Interleaver.cpp viterbi.cpp Transmission.cpp -o Nadajnik
- Odbiornik: g++ ReedSolomon.cpp Interleaver.cpp viterbi.cpp Odbiornik.cpp -o Odbiornik
Krok 6: Testowanie wszystkiego
Podłącz nadajnik do pinu JD1_P, a odbiornik do pinu JD1_N na zedboard. Pamiętaj, aby zmienić plik wiązania, jeśli chcesz zmienić standardowe szpilki.
Aby sprawdzić, czy wszystko działa, otwórz 2 okna terminala w części PS. W jednym terminalu najpierw wykonaj część odbiorczą. Następnie wykonaj część nadajnika w drugim oknie terminala.
Jeśli wszystko pójdzie tak, jak powinno, wynik powinien być taki sam, jak na powyższym obrazku.
Zalecana:
Komunikacja bezprzewodowa LoRa 3Km do 8Km z tanim urządzeniem E32 (sx1278/sx1276) dla Arduino, Esp8266 lub Esp32: 15 kroków
LoRa 3Km do 8Km Bezprzewodowa komunikacja z niskokosztowym urządzeniem E32 (sx1278/sx1276) dla Arduino, Esp8266 lub Esp32: Tworzę bibliotekę do zarządzania EBYTE E32 opartą na urządzeniu LoRa serii Semtech, bardzo wydajne, proste i tanie urządzenie. Wersja 3Km tutaj, wersja 8Km tutaj Mogą pracować na dystansie od 3000m do 8000m i mają wiele funkcji i
Żyroskop MPU 6050, komunikacja z akcelerometrem z Arduino (Atmega328p): 5 kroków
MPU 6050 Żyroskop, komunikacja z akcelerometrem z Arduino (Atmega328p): IMU MPU6050 posiada zarówno 3-osiowy akcelerometr, jak i 3-osiowy żyroskop zintegrowane w jednym układzie. Oś X, Y i Z. Wyjścia żyroskopu ar
Komunikacja Serial Com a Dragonboard 410c Usando Mezzanine 96boards Czujniki: 7 kroków
Komunikacja Serial Com a Dragonboard 410c Usando Mezzanine 96boards Czujniki: O objetivo desse tutorial é mostrar as etapas necessárias para configurar o ambiente de desenvolvimento, de modo que seja possível comunicar com a Dragonboard 410c através de um computador / notebook usando comunica&ccedi
Arduino i mobilna komunikacja Bluetooth (komunikator): 8 kroków
Arduino i mobilna komunikacja Bluetooth (Messenger): Komunikacja odgrywa ważną rolę w naszym codziennym życiu. Ale w tych czasach zablokowania komunikacji z własną rodziną lub porozumiewania się z ludźmi w naszym domu czasami potrzebne są telefony komórkowe. Ale korzystanie z telefonów komórkowych przez krótki czas
Szyfrowana komunikacja bezprzewodowa Arduino: 5 kroków
Szyfrowana komunikacja bezprzewodowa Arduino: Witam wszystkich, W tym drugim artykule wyjaśnię, jak korzystać z układu Atecc608a, aby zabezpieczyć komunikację bezprzewodową. W tym celu użyję NRF24L01+ dla części bezprzewodowej i Arduino UNO. Mikroukład ATECC608A został zaprojektowany przez