Sadržaj:

Python RF razvojni komplet: 5 koraka
Python RF razvojni komplet: 5 koraka

Video: Python RF razvojni komplet: 5 koraka

Video: Python RF razvojni komplet: 5 koraka
Video: Contain Yourself: введение в Docker и контейнеры Николы Кабара и Мано Маркса 2024, Novembar
Anonim
Python RF razvojni komplet
Python RF razvojni komplet

Prije svega, želio bih dati mali uvod o tome kako sam ušao u RF stvari i zašto radim na ovom projektu.

Kao student računarstva sa afinitetom prema hardveru, počeo sam pohađati neke kurseve koji se bave bežičnim signalima i sigurnošću u bežičnim komunikacijama u oktobru 2018. Brzo sam počeo eksperimentirati sa RTL-SDR i HackRF softverski definiranim radio prijemnicima i sa off-the- polica Arduino RF moduli.

Problem je u tome što SDR -ovi nisu dovoljno prenosivi za moje potrebe (uvijek je potrebno nositi prijenosno računalo, antene itd.), A jeftini Arduino RF moduli nisu dovoljno sposobni u smislu jačine signala, prilagodljivosti, frekvencijskih raspona i automatizacije.

Antene CC1101 iz kompanije Texas Instruments odličan su izbor za male, ali sposobne RF primopredajnike koji su također vrlo jeftini. Ljudi su sa njima izgradili velike stvari, poput DIY SDR -a i sličnih stvari.

Još jedna stvar koju sam htio riješiti ovom temom je CircuitPython. To je novi programski jezik iz mikrokontrolera o kojem sam čuo mnogo dobrih stvari pa sam htio isprobati. Ispostavilo se da zaista uživam, posebno u kombinaciji s Adafruit -ovom Feather M4 Express pločom koju također koristim u ovom projektu. Otklanjanje grešaka je vrlo jednostavno jer ne morate sastavljati prilagođene firmware -e svaki put kada pokušate napraviti malu promjenu u kodu, dobivate REPL konzolu, a vaš kôd ostaje i na samom mikrokontroleru, što znači da ga možete nositi, priključiti na razne računare i uvijek ćete moći mijenjati stvari u pokretu.

Korak 1: Hardverske komponente

Hardverske komponente
Hardverske komponente

Šta vam je potrebno da ponovite ovaj projekat:

  • Adafruit pero M4 Express
  • 2x primopredajnik Texas Instruments CC1101 + antena
  • Adafruit FeatherWing OLED
  • 3.7V LiPo

U suštini ovo je sve što vam je potrebno da imate prilično kompaktan i sposoban RF primopredajnik, ali kao što vidite na slici neće biti baš pouzdan i uredan sa svim tim kratkospojnicima.

Zato sam dizajnirao prilagođenu PCB ploču koristeći https://easyeda.com/ i naručio je sa JLCPCB.com (vrlo jeftino i odlične kvalitete!) Da povežem sve zajedno. Ovo je takođe omogućilo laku integraciju 3 dugmeta i LED dioda za korisnički ulaz i izlaz statusa.

I na kraju, 3D sam odštampao mali omot za stražnju stranu PCB -a tako da neće ništa nestati i sjediti ravno na stolu.

Ako ste tek počeli s dizajnom elektronike i PCB -a, preporučio bih vam da provjerite ove upute: Osnovna elektronika, Klasa dizajna pločica!

U prilozima možete pronaći Gerber datoteke za moju PCB. Ako se odlučite za njegovu proizvodnju, trebat će vam nekoliko dodatnih komponenti koje sam osobno naručio od LCSC -a, budući da su povezane s JLCPCB -om, pa nude sve zajedno, čime se štedi malo troškova dostave, a komponente su također samo tamo veoma jeftino. Za detaljnu listu pogledajte BOM. Namjerno sam odabrao veliko pakiranje veličine 0805 za SMD komponente kako bi ih svi mogli ručno lemiti na PCB!

Korak 2: Izgradnja odbora

Izgradnja odbora
Izgradnja odbora
Izgradnja odbora
Izgradnja odbora
Izgradnja odbora
Izgradnja odbora

Na prvoj slici možemo vidjeti PCB -e bez ikakvih "modifikacija" - dolaze ovako iz tvornice. Vrlo čisti rezovi (bez v-utora, potpuno usmjereni) i lijepi vijasi na svim THT rupama.

Ako želite koristiti LED diode, morat ćete ih lemiti kao i SMD otpornike. Otpornici su obično skriveni ispod mikrokontrolera, ali su vidljivi na drugoj slici koja prikazuje potpuno lemljenu ploču. Ako nemate puno iskustva sa lemljenjem, lemljenje SMD -a moglo bi biti malo nezgodno, ali to je nekako neobavezno i sve jezgrene komponente su THT. Uvijek volim preporučiti Daveove (EEVblog) videozapise i zapravo sam pogledao ovaj: EEVblog #186 - Vodič za lemljenje, dio 3 - Površinska montaža. Prilično je dugo, ali vrijedi ako ste tek počeli s ovim stvarima!

On spominje i ovo, ali: pazite da prvo zalemite otpornike i LED diode, zatim dugmad, a zatim i zaglavlja. Na ovaj način uvijek možete koristiti stol za pritiskanje komponente odozdo i lemljenje odozgo (PCB je okrenut naopako).

Nakon što sve zalemite, možete samo priključiti Feather M4 i jednu ili dvije antene i hardver je spreman! Budući da ne lemimo ove komponente, uvijek ih možemo skinuti s ploče i upotrijebiti za neki drugi projekt, što je odlično!

Imajte na umu da na trećoj slici imam redovna, kratka muška zaglavlja na Perju tako da nisam mogao složiti OLED na vrhu. Morao sam ih odlemiti i dodati zaglavlja za slaganje perja. Ako želite koristiti OLED, odmah nabavite naslove za slaganje, iskreno: D Raspakiranje je samo bol.

Korak 3: Softver

S gotovim hardverom, razgovarajmo o softveru.

Kao što je spomenuto u uvodu, M4 pokreće Python kod, ali očigledno nije postojala biblioteka za CC1101 u jeziku Python. Učinio sam ono što rade DIYers i napisao sam svoj. Možete ga pronaći ovdje:

Ne podržava sve ono što veliki TI primopredajnici sposobni, ali dovoljno je jednostavno slati i primati ASK-kodirane podatke na bilo kojoj frekvenciji. Pomoću ove biblioteke mogao sam komunicirati sa zidnim utičnicama koje kontroliše RF, kao i sa automobilom moje porodice.

Vjerojatno ću nastaviti raditi na tome, a ako imate pitanja, zahtjeve za značajke ili želite pridonijeti razvoju, slobodno me kontaktirajte!

Korak 4: Sposobnosti i karakteristike

Budući da sam ovaj uređaj dizajnirao za korištenje dvostrukih antena i visoko konfigurabilnih primopredajnika TI CC1101, imate gomilu mogućnosti, posebno na terenu gdje ne želite nositi ništa više od uređaja veličine pametnog telefona.

Na primjer, možete snimiti komunikacijske signale u opsegu 433MHz i poslati ih natrag na svoju kućnu stanicu sa sekundarnom antenom koja radi na 868MHz.

Ili, ako želite proučavati i eksperimentirati s reaktivnim ometanjem, možete imati antenu za slušanje i ometanje koja šalje vlastite signale čim se prijenos otkrije, a da ne radite "tradicionalnu metodu" pokušaja prebacivanja između RX i TX kao što je brže moguće.

Još jedna super stvar kod Feather M4 je to što dolazi s ugrađenim LiPo krugom za punjenje pa samo priključite bateriju i spremni ste za rad. U mom slučaju, s jednom antenom u stalnom RX načinu rada, osluškivanjem prijenosa i uključenim OLED ekranom, uređaj bi radio gotovo 20 sati na LiPo 1000 mAh.

Korištenje OLED ekrana - ali i bez njega, npr. pomoću tri LED diode statusa - možete imati više programa i odabrati koji želite pokrenuti pomoću gumba na dnu ploče. Lično sam čak implementirao čitav meni sa režimima za izbor i prikazom podešavanja frekvencije itd.

To bi čak moglo doći u obzir za kućnu automatizaciju! Kao što sam spomenuo, uspio sam uspješno komunicirati s utičnicama (jednom uhvatiti izvorne signale i reproducirati ih kad god vam zatreba), a ako malo istražite na Internetu, brzo ćete otkriti koliko uređaja također radi ove frekvencije sa kodovima koji se ne mijenjaju. Čak se i neki kodovi garaža mogu snimiti i spremiti s ovim uređajem, a zatim koristiti kad god trebate otvoriti ili zatvoriti garažu. Dakle, ovo može postati univerzalni daljinski upravljač za sve vaše RF uređaje!

Osobno sam replicirao napad RollJam-a i s ovim uređajem, ali neću objaviti kôd jer je ometanje na većini mjesta nezakonito, pa ako pokušate ovako nešto, obratite se lokalnim zakonima;-)

Budući da se ploča prikazuje kao USB disk kada je priključite, a CircuitPython nudi takvu funkciju, možete također zatražiti da uređaj snima RF prijenose i spremi demodulirane podatke (o da, primopredajnici to rade automatski!) U tekstualnu datoteku koje kasnije možete kopirati na svoj računar i analizirati u naučne svrhe, poput obrnutog inženjeringa prenosa.

Korak 5: Konačni rezultat

Final Result
Final Result

Sve povratne informacije, prijedlozi i doprinosi ovom projektu su dobrodošli i slobodno postavljajte pitanja ako ih imate!

Preporučuje se: