Satura rādītājs:

Python RF attīstības komplekts: 5 soļi
Python RF attīstības komplekts: 5 soļi

Video: Python RF attīstības komplekts: 5 soļi

Video: Python RF attīstības komplekts: 5 soļi
Video: Contain Yourself: введение в Docker и контейнеры Николы Кабара и Мано Маркса 2024, Jūlijs
Anonim
Python RF attīstības komplekts
Python RF attīstības komplekts

Vispirms es gribētu sniegt nelielu ievadu par to, kā es nokļuvu RF lietās un kāpēc es strādāju pie šī projekta.

Kā datorzinātņu students, kuram bija interese par aparatūru, 2018. gada oktobrī sāku apmeklēt dažus kursus, kas nodarbojas ar bezvadu signāliem un bezvadu sakaru drošību. Es ātri sāku eksperimentēt ar RTL-SDR un HackRF programmatūras definētiem radioaparātiem. plaukts Arduino RF moduļi.

Jautājums ir šāds: SDR nav pietiekami pārnēsājami maniem mērķiem (vienmēr jāņem līdzi klēpjdators, antenas utt.), Un lētie Arduino RF moduļi nav pietiekami spējīgi attiecībā uz signāla stiprumu, pielāgojamību, frekvenču diapazoniem un automatizāciju.

CC1101 antenas no Texas Instruments ir lieliska izvēle maziem, bet spējīgiem RF raiduztvērējiem, kas ir arī ļoti lēti. Cilvēki ar viņiem ir izveidojuši lieliskas lietas, piemēram, DIY SDR un tamlīdzīgas lietas.

Vēl viena lieta, ko es gribēju risināt ar šo tēmu, bija CircuitPython. Tā ir jauna programmēšanas valoda no mikrokontrolleriem, par ko esmu dzirdējis daudz laba, tāpēc gribēju to izmēģināt. Izrādījās, ka man tas ļoti patīk, it īpaši kopā ar Adafruit Feather M4 Express dēli, kuru arī izmantoju šajā projektā. To ir ļoti viegli atkļūdot, jo jums nav jāapkopo pielāgota programmaparatūra katru reizi, kad mēģināt veikt nelielas izmaiņas kodā, jūs saņemat REPL konsoli, un jūsu kods paliek arī pašā mikrokontrollerī, kas nozīmē, ka varat to nēsāt līdzi, pievienojiet to dažādos datoros, un jūs vienmēr varēsit veikt izmaiņas, atrodoties ceļā.

1. darbība. Aparatūras komponenti

Aparatūras komponenti
Aparatūras komponenti

Kas jums būs nepieciešams, lai atkārtotu šo projektu:

  • Adafruit Feather M4 Express
  • 2x Texas Instruments CC1101 uztvērējs + antena
  • Adafruit FeatherWing OLED
  • 3.7V LiPo

Būtībā tas ir viss, kas jums nepieciešams, lai būtu diezgan kompakts un spējīgs RF raiduztvērējs, taču, kā redzams attēlā, tas nebūs ļoti uzticams un sakārtots ar visiem šiem džemperu vadiem.

Tāpēc es izveidoju pielāgotu PCB, izmantojot vietni https://easyeda.com/, un pasūtīju to no JLCPCB.com (ļoti lēti un lieliska kvalitāte!), Lai visu savienotu kopā. Tas arī ļāva viegli integrēt 3 pogas un gaismas diodes lietotāja ievadei un statusa izvadei.

Visbeidzot, es 3D izdrukāju nelielu vāku PCB aizmugurē, lai tas netrūktu pret neko un nesēdētu uz galda.

Ja esat iesācējs elektronikas un PCB dizainā, es ieteiktu iepazīties ar šiem norādījumiem: pamata elektronika, shēmas plates dizaina klase!

Pielikumos varat atrast Gerber failus manai PCB. Ja jūs nolemjat to ražot, jums būs nepieciešami pāris papildu komponenti, kurus es personīgi pasūtīju no LCSC, jo tie ir saistīti ar JLCPCB, tāpēc tie piedāvā nosūtīt visu kopā, kas nedaudz ietaupa piegādes izmaksas, un sastāvdaļas ir arī tikai tur ļoti lēti. Detalizētu sarakstu skatiet BOM. Es apzināti izvēlējos SMD komponentiem lielo iepakojuma izmēru 0805, lai ikviens varētu tos lodēt uz PCB!

2. solis: valdes veidošana

Valdes veidošana
Valdes veidošana
Valdes veidošana
Valdes veidošana
Valdes veidošana
Valdes veidošana

Pirmajā attēlā mēs varam redzēt PCB bez jebkādām "modifikācijām" - tās nāk no rūpnīcas. Ļoti tīri griezumi (bez v-rievas, pilnībā izgriezti) un jauki vias uz visiem THT caurumiem.

Ja vēlaties izmantot gaismas diodes, tās būs jāpielodē, kā arī SMD rezistori. Rezistori parasti ir paslēpti zem mikrokontrollera, bet ir redzami otrajā attēlā, kurā redzama pilnībā pielodēta plāksne. Ja jums nav lielas pieredzes ar lodēšanu, SMD lodēšana var būt nedaudz sarežģīta, taču tas ir neobligāti, un visas galvenās sastāvdaļas ir THT. Man vienmēr patīk ieteikt Deiva (EEVblog) videoklipus, un es pats noskatījos šo: EEVblog #186 - Lodēšanas apmācība, 3. daļa - Virsmas stiprinājums. Tas ir diezgan garš, bet tā vērts, ja esat iesācējs šajā lietā!

Viņš arī to piemin, bet: vispirms parūpējieties par to, lai pielodētu rezistorus un gaismas diodes, pēc tam - pogas un pēc tam - galvenes. Tādā veidā jūs vienmēr varat izmantot galdu, lai piespiestu komponentu no apakšas un lodētu no augšas (PCB apgriezts otrādi).

Pēc visu pielodēšanas varat vienkārši pieslēgt Feather M4 un vienu vai divas antenas, un aparatūra ir gatava! Tā kā mēs nelodējam pie šīm sastāvdaļām, mēs vienmēr varam tās noņemt no tāfeles un izmantot citam lieliskam projektam!

Lūdzu, ņemiet vērā, ka trešajā attēlā man ir parastās, īsās vīriešu galvenes uz spalvas, tāpēc es nevarēju salikt OLED virsū. Man vajadzēja tos atkausēt un pievienot Feather stacking headers. Ja vēlaties izmantot OLED, uzreiz iegūstiet sakraušanas galvenes, godīgi sakot: D Atkausēšana ir tikai sāpes.

3. darbība: programmatūra

Kad aparatūra ir pabeigta, parunāsim par programmatūru.

Kā minēts ievadā, M4 vada Python kodu, taču acīmredzot neviena CC1101 bibliotēka Python valodā nepastāvēja. Tāpēc es darīju to, ko dara DIYers, un uzrakstīju savu. To varat atrast šeit:

Tas neatbalsta visu, ko spēj lielie TI raiduztvērēji, taču pietiek ar to, lai viegli nosūtītu un saņemtu ASK kodētus datus jebkurā frekvencē. Izmantojot šo bibliotēku, es varēju sazināties ar RF vadāmām sienas kontaktligzdām, kā arī ar savas ģimenes automašīnu.

Es droši vien turpināšu strādāt pie tā, un, ja jums ir kādi jautājumi, funkciju pieprasījumi vai vēlaties dot ieguldījumu attīstībā, lūdzu, sazinieties ar mani!

4. darbība. Iespējas un iespējas

Tā kā es izstrādāju šo ierīci, lai izmantotu dubultās antenas un ļoti konfigurējamus TI CC1101 raiduztvērējus, jums ir daudz iespēju, it īpaši laukā, kur nevēlaties, lai būtu nekas cits kā viedtālruņa izmēra ierīce.

Piemēram, varat uztvert sakaru signālus 433 MHz joslā un nosūtīt tos atpakaļ uz savu mājas staciju, izmantojot sekundāro antenu, kas darbojas 868 MHz frekvencē.

Vai arī, ja vēlaties pētīt un eksperimentēt ar reaktīvo traucēšanu, jums var būt klausīšanās un traucēšanas antena, kas nosūta savus signālus, tiklīdz tiek konstatēta pārraide, neveicot “tradicionālo metodi”, mēģinot pārslēgties starp RX un TX kā pēc iespējas ātrāk.

Vēl viena ļoti forša Feather M4 lieta ir tā, ka tai ir iebūvēta LiPo uzlādes ķēde, lai jūs vienkārši pievienotu akumulatoru un būtu gatavs darbam. Manā gadījumā ar vienu antenu pastāvīgā RX režīmā, klausoties pārraidi un ieslēgtu OLED ekrānu, ierīce darbotos gandrīz 20 stundas ar 1000 mAh LiPo.

Izmantojot OLED ekrānu - bet iespējams arī bez tā, piem. izmantojot trīs statusa gaismas diodes - jums var būt vairākas programmas un ar taustiņa apakšā esošajām pogām izvēlēties, kuru vēlaties palaist. Es personīgi pat īstenoju visu izvēlni ar režīmiem, no kuriem izvēlēties, un frekvences iestatījumu skatu utt.

Tas pat varētu noderēt kādai mājas automatizācijai! Kā jau minēju, man ir izdevies veiksmīgi sazināties ar strāvas kontaktligzdām (vienreiz uztvert sākotnējos signālus un atkārtot to atskaņošanu, kad vien tas nepieciešams), un, veicot nelielu izpēti internetā, jūs ātri atradīsit, cik ierīču darbojas šīs frekvences ar nemainīgiem kodiem. Pat daži garāžu kodi varētu tikt ierakstīti un saglabāti ar šo ierīci un pēc tam izmantoti, kad nepieciešams atvērt vai aizvērt savu garāžu. Tātad tas var kļūt par universālu tālvadības pulti visām jūsu RF ierīcēm!

Es personīgi atkārtoju RollJam uzbrukumu arī ar šo ierīci, taču neatbrīvošu kodu, jo traucēšana lielākajā daļā vietu ir nelikumīga, tādēļ, ja mēģināt kaut ko līdzīgu, konsultējieties ar vietējiem likumiem;-)

Tā kā tāfele tiek parādīta kā USB disks, kad to pievienojat, un CircuitPython piedāvā šādu funkciju, jūs varat arī likt ierīcei ierakstīt RF pārraidi un saglabāt demodulētos datus (ak, jā, raiduztvērēji to dara automātiski!) Teksta failā kuru vēlāk varat kopēt savā datorā un analizēt zinātniskiem mērķiem, piemēram, transmisijas reversai inženierijai.

5. solis: gala rezultāts

Gala rezultāts
Gala rezultāts

Jebkādas atsauksmes, ieteikumi un ieguldījumi šajā projektā ir laipni gaidīti, un, ja jums ir kādi jautājumi, nekautrējieties uzdot jautājumus!

Ieteicams: