Indholdsfortegnelse:

Python RF Development Kit: 5 trin
Python RF Development Kit: 5 trin

Video: Python RF Development Kit: 5 trin

Video: Python RF Development Kit: 5 trin
Video: Quantum Development Kit updates: support for macOS, Linux, plus Python and Q# interoperability 2024, Juli
Anonim
Python RF Development Kit
Python RF Development Kit

Først og fremmest vil jeg gerne give en lille introduktion til, hvordan jeg kom ind i RF -ting, og hvorfor jeg arbejder på dette projekt.

Som datalogistuderende med tilhørsforhold til hardware begyndte jeg at deltage i nogle kurser, der omhandler trådløse signaler og sikkerhed i trådløs kommunikation i oktober 2018. Jeg begyndte hurtigt at eksperimentere med RTL-SDR- og HackRF-software-definerede radioer og med off-the- hylde Arduino RF -moduler.

Problemet er: SDR'er er ikke bærbare nok til mine formål (skal altid medbringes en bærbar computer, antenner osv.), Og de billige Arduino RF -moduler er ikke i stand nok i forhold til signalstyrke, tilpasning, frekvensområder og automatisering.

CC1101 -antennerne fra Texas Instruments er et godt valg til små, men dygtige RF -transceivere, der også er meget billige. Folk har bygget gode ting med dem, som f.eks. DIY SDR'er og sådan noget.

En anden ting, jeg ville tage fat på med dette emne, var CircuitPython. Det er et nyt programmeringssprog fra mikrokontrollere, som jeg har hørt mange gode ting om, så jeg ville prøve det. Det viste sig, at jeg godt kan lide det, især kombineret med Adafruit's Feather M4 Express board, som jeg også bruger i dette projekt. Det er meget let at fejlsøge, da du ikke behøver at kompilere tilpassede firmwares, hver gang du prøver en lille ændring i din kode, får du en REPL -konsol, og din kode forbliver også på selve mikrokontrolleren, hvilket betyder, at du kan bære den rundt, tilslut den på forskellige computere, og du vil altid kunne foretage ændringer, mens du er på farten.

Trin 1: Hardwarekomponenter

Hardware -komponenter
Hardware -komponenter

Hvad skal du bruge til at replikere dette projekt:

  • Adafruit Feather M4 Express
  • 2x Texas Instruments CC1101 Transceiver + Antenne
  • Adafruit FeatherWing OLED
  • 3,7V LiPo

I det væsentlige er dette alt, hvad du har brug for for at have en temmelig kompakt og dygtig RF -transceiver, men som du kan se på billedet, vil det ikke være særlig pålideligt og ryddeligt med alle disse jumperwires.

Så jeg designede et brugerdefineret printkort ved hjælp af https://easyeda.com/ og bestilte det fra JLCPCB.com (meget billig og god kvalitet!) For at forbinde alt sammen. Dette tillod også let at integrere 3 knapper og lysdioder til brugerindgang og statusoutput.

Og til sidst har jeg 3D printet et lille cover til bagsiden af printkortet, så det ikke kommer til kort og ikke sidder fladt på bordet.

Hvis du er ny inden for elektronik og PCB -design, vil jeg anbefale at tjekke disse instruktioner: Grundlæggende elektronik, printkortdesignklasse!

I vedhæftede filer kan du finde Gerber -filerne til mit printkort. Hvis du beslutter dig for at få det fremstillet, skal du bruge et par ekstra komponenter, som jeg personligt bestilte fra LCSC, da de er tilknyttet JLCPCB, så de tilbyder at sende alt sammen, hvilket sparer lidt forsendelsesomkostninger, og komponenterne er også bare meget billigt der. Se styklisten for en detaljeret liste. Jeg valgte med vilje den store pakkestørrelse på 0805 til SMD-komponenterne, så alle kan lodde dem på PCB!

Trin 2: Opbygning af bestyrelsen

Opbygning af bestyrelsen
Opbygning af bestyrelsen
Opbygning af bestyrelsen
Opbygning af bestyrelsen
Opbygning af bestyrelsen
Opbygning af bestyrelsen

På det første billede kan vi se printkortene uden at der er foretaget "ændringer" - de kommer sådan fra fabrikken. Meget rene snit (ingen v-rille, fuldstændig fræset) og flotte vias på alle THT-hullerne.

Hvis du vil bruge lysdioderne, skal du lodde dem på såvel som SMD -modstandene. Modstandene er normalt skjult under mikrokontrolleren, men synlige på det andet billede, der viser det fuldstændigt lodde bord. Hvis du ikke har stor erfaring med lodning, kan det være lidt svært at lodde SMD, men det er lidt valgfrit, og alle kernekomponenterne er THT. Jeg kan altid lide at anbefale Dave (EEVblog) 's videoer og har faktisk set denne selv: EEVblog #186 - Lodning Tutorial Del 3 - Surface Mount. Det er ret langt, men det er det værd, hvis du er ny inden for disse ting!

Han nævner også dette, men: pas på at lodde modstande og lysdioder først, derefter knapperne andet og overskrifterne til sidst. På denne måde kan du altid bruge bordet til at skubbe mod komponenten nedefra og lodde ovenfra (printkort vendt på hovedet).

Efter at have loddet alt på, kan du bare tilslutte Feather M4 og en eller to antenner, og hardwaren er klar! Da vi ikke lodder på disse komponenter, kan vi altid tage dem af brættet og bruge dem til et andet projekt, hvilket er fantastisk!

Bemærk, at på det tredje billede har jeg de almindelige, korte hanhoveder på fjeren, så jeg ikke kunne stable OLED ovenpå. Jeg var nødt til at aflodde dem og tilføje Feather -stablingshoveder. Hvis du vil bruge OLED'en, skal du få stablingshovederne med det samme, ærligt talt: D Afløsning er bare en smerte.

Trin 3: Software

Med hardware klar, lad os tale om software.

Som nævnt i indledningen kører M4 Python -koden, men der findes naturligvis ikke noget bibliotek til CC1101 på Python -sproget. Så jeg gjorde, hvad DIYere gør og skrev min egen. Du kan finde det her:

Det understøtter ikke alt, hvad de store TI-transceivere er i stand til, men det er nok til nemt at sende og modtage ASK-kodede data på enhver frekvens. Jeg var i stand til at kommunikere med RF-styrede stikkontakter såvel som med min families bil ved hjælp af dette bibliotek.

Jeg vil sandsynligvis fortsætte med at arbejde med det, og hvis du har spørgsmål, funktionsanmodninger eller ønsker at bidrage til udviklingen, er du velkommen til at kontakte mig!

Trin 4: Muligheder og funktioner

Da jeg designede denne enhed til at bruge dobbelte antenner og de meget konfigurerbare TI CC1101-transceivere, har du masser af muligheder, især ude på marken, hvor du ikke ønsker at skulle bære mere end en smartphone i størrelse.

Du kan f.eks. Fange kommunikationssignaler i 433MHz -båndet og sende dem tilbage til din hjemmestation med den sekundære antenne, der fungerer på 868MHz.

Eller hvis du vil studere og eksperimentere med reaktiv jamming, kan du have en lytte- og en jamming -antenne, der sender sine egne signaler, så snart en transmission detekteres, uden at gøre den "traditionelle metode" for at forsøge at skifte mellem RX og TX som hurtig som muligt.

En anden meget cool ting ved Feather M4 er, at den leveres med et indbygget LiPo -opladningskredsløb, så du bare tilslutter dit batteri og er klar til at gå. I mit tilfælde, med en antenne i konstant RX -tilstand, der lytter til transmissioner og OLED -skærmen tændt, kører enheden i næsten 20 timer på en 1000 mAh LiPo.

Brug af OLED -skærmen - men også muligt uden den, f.eks. ved hjælp af de tre status -lysdioder - du kan have flere programmer og vælge det, du vil køre med knapperne i bunden af tavlen. Jeg personligt implementerede endda en hel menu med tilstande at vælge imellem og en frekvensindstillingsvisning osv.

Det kan endda komme i hånden for noget hjemmeautomatisering! Som jeg nævnte, har jeg været i stand til at kommunikere med stikkontakter med succes (fange de originale signaler en gang og afspille dem, når du har brug for det), og hvis du laver en lille smule research på internettet, finder du hurtigt, hvor mange enheder der også fungerer på disse frekvenser med aldrig ændrede koder. Selv nogle garages koder kan registreres og gemmes med denne enhed og derefter bruges, når du har brug for at åbne eller lukke din garage. Så dette kan blive en universel fjernbetjening til alle dine RF -enheder!

Jeg replikerede personligt RollJam-angrebet også med denne enhed, men frigiver ikke koden, da jamming er ulovligt de fleste steder, så kontakt dine lokale love, hvis du prøver noget lignende;-)

Da kortet dukker op som en USB -disk, når du tilslutter det, og CircuitPython tilbyder en sådan funktion, kan du også få enheden til at registrere RF -transmissioner og gemme de demodulerede data (åh ja, transceiverne gør dette automatisk!) Til en tekstfil som du senere kan kopiere til din pc og analysere til videnskabelige formål som reverse engineering af transmissioner.

Trin 5: Endeligt resultat

Endeligt resultat
Endeligt resultat

Eventuel feedback, forslag og bidrag til dette projekt er velkomne, og du er velkommen til at stille spørgsmål, hvis du har nogen!

Anbefalede: