Բովանդակություն:
- Քայլ 1: Բաղադրիչների հավաքում
- Քայլ 2: Դիզայնի կառուցում
- Քայլ 3: Դիզայնի փորձարկում
- Քայլ 4: Ստացեք բոլոր անհրաժեշտ ծրագրակազմը
- Քայլ 5: Ստեղծեք գործարկվող ֆայլեր
- Քայլ 6: Ամեն ինչ փորձարկելը
Video: LiFi հաղորդակցություն ՝ 6 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:50
Այս ձեռնարկում դուք կսովորեք, թե ինչպես իրականացնել LiFi հաղորդակցությունը (հաղորդիչ և ընդունիչ) ծրագրակազմի և ապարատային մակարդակի վրա:
Քայլ 1: Բաղադրիչների հավաքում
Ձեզ անհրաժեշտ բաներ.
-Արդուինո և edեդբորդ
-օսկիլոսկոպ
-Դիմադրյալներ ՝ 8k ohm, 1k2 ohm, 1k ohm, 220 ohm և 27 ohm:
-օմբ, կոնդենսատոր, զեներդիոդ, ֆոտոդիոդ, լուսադիոդներ և հացահատիկ:
Քայլ 2: Դիզայնի կառուցում
Պատկերի վրա տրված է ստացողի սխեմատիկ պատկերը:
Նախ, լուսադիոդի անոդը (բացասական տերմինալը) միացրեք 3.3V (Vcc), կաթոդին (դրական տերմինալ) `8k2 օհմ ռեզիստորի միջոցով գետնին: Նաև միացրեք կաթոդը ձեր opamp- ի դրական տերմինալին, որը կօգտագործվի ազդանշանը ուժեղացնելու համար: Մենք օգտագործում ենք բացասական արձագանք, այնպես որ միացրեք 2 դիմադրիչ բացիչի բացասական տերմինալին, 1 -ը (1k2 ohm) գնում է դեպի opamp- ի ելքը, մյուսը (220 ohm) անցնում է գետնին: Ձեր GPIO- ի քորոցը պաշտպանելու համար միացրեք 3.3 Վ -ի հակադարձ կողմնակալ զեներային դիոդ ՝ 1k2 օհմ ռեզիստորով գետնին: Օպամպի ելքը պետք է միացված լինի GPIO կապին:
Հաղորդիչն ընդամենը բաղկացած է մեկ 27 օմ դիմադրողից և LED- ից: Մի ծայրը գնում է GPIOpin- ին, իսկ մյուսը `գետնին` համոզվելով, որ LED- ի կարճ ոտքը միացված է գետնին:
Եթե նախագծերն աշխատում են, կարող եք դրա համար պատրաստել PCB: PCB- ի վրա մենք միացրել ենք հաղորդիչն ու ընդունիչը մեկ տախտակի վրա, այնպես որ մենք ի վերջո կարող ենք տվյալներ ուղարկել երկու ուղղությամբ: Ստացողի և հաղորդիչի պատկերներում կարող եք տեսնել նաև PCB- ի սխեմաները:
Քայլ 3: Դիզայնի փորձարկում
Օգտագործեք օսկիլոսկոպ `դիզայնը ստուգելու համար, քանի որ շրջապատող լույսը և ֆոտոդիոդների տարբերությունը կարող են տարբեր արդյունքներ տալ ելքային ազդանշանի վրա:
Միացրեք ձեր հաղորդիչը arduino- ին և ստեղծեք քառակուսի ալիք ցանկալի հաճախականությամբ: Տեղադրեք հաղորդիչի LED լուսադիոդին մոտ:
Մի զոնդ միացրեք ձեր opamp- ի դրական տերմինալին, մյուսը `ձեր opamp- ի ելքին: Եթե ձեր ելքային ազդանշանը չափազանց թույլ է, ապա անհրաժեշտ է փոխել բացասական հետադարձ ռեզիստորները (1k2 ohm, 220 ohm): Դուք ունեք 2 ընտրություն ՝ բարձրացրեք 1k2 ohm դիմադրությունը կամ նվազեցրեք 220 ohm դիմադրությունը: Եթե ելքը չափազանց բարձր է, արեք հակառակը:
Եթե ամեն ինչ կարգին է, անցեք հաջորդ քայլին:
Քայլ 4: Ստացեք բոլոր անհրաժեշտ ծրագրակազմը
Պատկերի վրա կարելի է տեսնել կոդավորման տարբեր քայլեր ՝ LiFi- ի ներդրման համար: Վերծանման համար նույն քայլերը պետք է կատարվեն հակառակ ուղղությամբ:
Այս նախագծի համար անհրաժեշտ են որոշ գրադարաններ, դրանք ներառված են տվյալ ֆայլերում, և ահա github- ի պահեստի հղումները.
-Քար-Սողոմոն ՝
-Կոնվոլյուցիոն կոդավորիչ ՝
Որպեսզի ֆայլերը մեր ուզածն անեն, մենք որոշ ճշգրտումներ կատարեցինք դրանց մեջ, ուստի անհրաժեշտ է օգտագործել ֆայլերի մեջ ներառված գրադարանների մեր տարբերակը:
Կոնվոլյուցիոն կոդավորողից հետո անհրաժեշտ է կոդավորման վերջին քայլը ՝ մանչեսթեր կոդավորումը: Կոնվոլյուցիոն կոդավորիչի տվյալները ուղարկվում են fifo բուֆեր: Այս բուֆերը կարդացվում է zedboard- ի PL մասում, նախագիծը ներառված է «LIFI.7z» ֆայլում: Նախագծով դուք կարող եք կառուցել ձեր սեփական բիթստրիմը zedboard- ի համար կամ պարզապես կարող եք օգտագործել մեր տրամադրած բիթսթրիմը: Այս bitstream- ից օգտվելու համար նախ պետք է Xillinux 2.0 -ը տեղադրել zedboard- ում: Բացատրությունը, թե ինչպես դա անել, տրվում է Xillybus կայքում:
Քայլ 5: Ստեղծեք գործարկվող ֆայլեր
Անհրաժեշտ է պատրաստել երկու առանձին կատարելիք `մեկը հաղորդիչի և մյուսը` ստացողի համար: Դա անելու համար zedboard- ում անհրաժեշտ է կատարել հետևյալ հրամանները.
- Հաղորդիչ ՝ g ++ ReedSolomon.cpp Interleaver.cpp viterbi.cpp Transmission.cpp -o հաղորդիչ
- Ստացող ՝ g ++ ReedSolomon.cpp Interleaver.cpp viterbi.cpp Receiver.cpp -o Receiver
Քայլ 6: Ամեն ինչ փորձարկելը
Հաղորդիչը միացրեք JD1_P կապին, իսկ ստացողը ՝ zedboard- ի JD1_N պինին: Համոզվեք, որ փոխեք սահմանափակման ֆայլը, եթե ցանկանում եք փոխել ստանդարտ կապերը:
Ամեն ինչ աշխատելու համար ստուգելու համար PS մասում բացեք 2 տերմինալային պատուհան: Մեկ տերմինալում նախ կատարեք ընդունող մասը: Դրանից հետո գործարկեք հաղորդիչի մասը երկրորդ տերմինալի պատուհանում:
Եթե ամեն ինչ ընթանա այնպես, ինչպես պետք է, արդյունքը պետք է լինի նույնը, ինչ վերևի պատկերում:
Խորհուրդ ենք տալիս:
SmartHome անլար հաղորդակցություն. MQTT- ի ծայրահեղ հիմունքները. 3 քայլ
SmartHome անլար հաղորդակցություն. MQTT- ի ծայրահեղ հիմունքներ. MQTT հիմունքներ. Այս Instructable- ը հիմք է, թե ինչպես կարելի է տեղադրել MQTT- ն ՝ իմ հետագա Instructables- ում օգտագործելու համար: Ինչպես
LoRa 3 կմ -ից 8 կմ անլար հաղորդակցություն ցածր գնով E32 (sx1278/sx1276) սարք Arduino- ի, Esp8266- ի կամ Esp32- ի համար ՝ 15 քայլ
LoRa 3Km- ից 8Km անլար հաղորդակցություն ցածր գնով E32 (sx1278/sx1276) Սարք Arduino- ի, Esp8266- ի կամ Esp32- ի համար. Ես ստեղծում եմ գրադարան ՝ EBYTE E32- ը կառավարելու համար ՝ LoRa սարքի Semtech շարքի հիման վրա, շատ հզոր, պարզ և էժան սարք: Դուք կարող եք գտնել 3Km տարբերակ այստեղ, 8Km տարբերակ այստեղ Նրանք կարող են աշխատել 3000 մ -ից 8000 մ հեռավորության վրա, և նրանք ունեն բազմաթիվ հնարավորություններ
Սենսորային հաղորդակցություն USB- ով. 3 քայլ
Սենսորային հաղորդակցություն USB- ով. Այս ձեռնարկը ցույց է տալիս, թե ինչպես օգտագործել մեկուսացված USB EZO Carrier Board- ը `EZO սխեմաների հետ փոխգործակցության համար: Մի քանի պարզ քայլերով դուք կկարողանաք չափագրել և կարգաբերել սխեմաները կամ նույնիսկ իրական ժամանակում վերահսկել տվյալ պարամետրը:
Անլար կոդավորված հաղորդակցություն Arduino. 5 քայլ
Անլար կոդավորված հաղորդակցություն Arduino. Բարև բոլորին, այս երկրորդ հոդվածում ես ձեզ կբացատրեմ, թե ինչպես օգտագործել Atecc608a չիպը `ձեր անլար հաղորդակցությունն ապահովելու համար: Դրա համար ես կօգտագործեմ NRF24L01+ անլար մասի և Arduino UNO- ի համար: ATECC608A միկրո չիպը նախագծվել է
Arduino սերիական հաղորդակցություն. 5 քայլ
Arduino սերիական հաղորդակցություն. Arduino- ի շատ նախագծեր հիմնված են մի քանի Arduinos- ի միջև տվյալների փոխանցման վրա: Անկախ նրանից, թե դուք հոբբիստ եք, ով կառուցում է RC մեքենա, RC ինքնաթիռ, կամ հեռակառավարվող էկրանով եղանակային կայան է նախագծում, դուք պետք է իմանաք, թե ինչպես կարելի է հուսալիորեն: սերիայի փոխանցում