Innholdsfortegnelse:

Python RF Development Kit: 5 trinn
Python RF Development Kit: 5 trinn

Video: Python RF Development Kit: 5 trinn

Video: Python RF Development Kit: 5 trinn
Video: AI Video Generator : Create Realistic Avatar Video with ChatGPT 2024, Juli
Anonim
Python RF Development Kit
Python RF Development Kit

Først og fremst vil jeg gi en liten introduksjon til hvordan jeg kom inn i RF -ting og hvorfor jeg jobber med dette prosjektet.

Som informatikkstudent med tilhørighet til maskinvare begynte jeg å delta på noen kurs som omhandler trådløse signaler og sikkerhet i trådløs kommunikasjon i oktober 2018. Jeg begynte raskt å eksperimentere med RTL-SDR og HackRF programvaredefinerte radioer og med off-the- hylle Arduino RF -moduler.

Problemet er: SDR -er er ikke bærbare nok til mine formål (må alltid ha med en bærbar datamaskin, antenner osv.), Og de billige Arduino RF -modulene er ikke i stand nok når det gjelder signalstyrke, tilpassbarhet, frekvensområder og automatisering.

CC1101 -antennene fra Texas Instruments er et godt valg for små, men dyktige RF -mottakere som også er veldig billige. Folk har bygget flotte ting med dem, som DIY SDR -er og sånt.

En annen ting jeg ønsket å ta opp med dette emnet var CircuitPython. Det er et nytt programmeringsspråk fra mikrokontrollere som jeg har hørt mye bra om, så jeg ville prøve det. Det viste seg at jeg liker det veldig godt, spesielt kombinert med Adafruit's Feather M4 Express -brett som jeg også bruker i dette prosjektet. Det er veldig enkelt å feilsøke ettersom du ikke trenger å kompilere tilpassede firmwares hver gang du prøver en liten endring i koden din, du får en REPL -konsoll, og koden forblir også på selve mikrokontrolleren, noe som betyr at du kan bære den rundt, koble den til på forskjellige datamaskiner, og du vil alltid kunne gjøre endringer mens du er på farten.

Trinn 1: Maskinvarekomponenter

Maskinvarekomponenter
Maskinvarekomponenter

Hva du trenger for å replikere dette prosjektet:

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

I hovedsak er dette alt du trenger for å ha en ganske kompakt og dyktig RF -mottaker, men som du kan se på bildet, kommer det ikke til å være veldig pålitelig og ryddig med alle de hoppertrådene.

Så jeg designet en tilpasset PCB ved hjelp av https://easyeda.com/ og bestilte den fra JLCPCB.com (veldig billig og god kvalitet!) For å koble alt sammen. Dette tillot også å enkelt integrere 3 knapper og lysdioder for brukerinngang og statusutganger.

Og til slutt trykket jeg 3D et lite omslag på baksiden av kretskortet, slik at det ikke kommer til kort mot noe og sitter flatt på bordet.

Hvis du er ny på elektronikk og PCB -design, vil jeg anbefale å sjekke ut disse instruksjonene: grunnleggende elektronikk, kretskortdesignklasse!

I vedleggene finner du Gerber -filene for PCB -en min. Hvis du bestemmer deg for å få den produsert, trenger du et par ekstra komponenter som jeg personlig bestilte fra LCSC, siden de er tilknyttet JLCPCB, så de tilbyr å sende alt sammen, noe som sparer litt fraktkostnader og komponentene er også bare veldig billig der. Se styklisten for detaljert liste. Jeg valgte med vilje den store pakkestørrelsen 0805 for SMD-komponentene, slik at alle kan lodde dem på PCB!

Trinn 2: Bygg styret

Å bygge styret
Å bygge styret
Å bygge styret
Å bygge styret
Å bygge styret
Å bygge styret

I det første bildet kan vi se kretskortene uten noen "modifikasjoner" gjort - de kommer slik fra fabrikken. Veldig rene kutt (ingen v-rille, fullstendig ført) og fine vias på alle THT-hullene.

Hvis du vil bruke lysdiodene, må du lodde dem på så vel som SMD -motstandene. Motstandene er vanligvis skjult under mikrokontrolleren, men synlige på det andre bildet som viser det helt loddede brettet. Hvis du ikke har mye erfaring med lodding, kan det være litt vanskelig å lodde SMD, men det er litt valgfritt og alle kjernekomponentene er THT. Jeg liker alltid å anbefale Dave (EEVblog) sine videoer og så faktisk denne selv: EEVblog #186 - Loddeopplæring Del 3 - Surface Mount. Det er ganske langt, men verdt det hvis du er ny på dette!

Han nevner dette også, men: pass på å lodde motstandene og lysdiodene først, deretter knappene andre og topptekstene til slutt. På denne måten kan du alltid bruke bordet til å skyve mot komponenten fra bunnen og loddetinn ovenfra (PCB vendt opp ned).

Etter å ha loddet alt på, kan du bare koble til Feather M4 og en eller to antenner, og maskinvaren er klar! Siden vi ikke lodder på disse komponentene, kan vi alltid ta dem av brettet og bruke dem til et annet prosjekt som er flott!

Vær oppmerksom på at på det tredje bildet har jeg de vanlige, korte hannhodene på fjæren, så jeg kunne ikke stable OLED -en på toppen. Jeg måtte desolde dem og legge til Feather -stablingshoder. Hvis du vil bruke OLED, får du stablingshodene med en gang, ærlig talt: D Desoldering er bare en smerte.

Trinn 3: Programvare

Med maskinvaren ferdig, la oss snakke om programvare.

Som nevnt i innledningen kjører M4 Python -koden, men åpenbart fantes ikke noe bibliotek for CC1101 på Python -språket. Så jeg gjorde det DIYere gjør og skrev mitt eget. Du finner den her:

Den støtter ikke alt de store TI-mottakerne er i stand til, men det er nok å enkelt sende og motta ASK-kodede data på hvilken som helst frekvens. Jeg var i stand til å kommunisere med RF-kontrollerte veggkontakter så vel som med familiens bil ved å bruke dette biblioteket.

Jeg kan nok fortsette å jobbe med det, og hvis du har spørsmål, funksjonsforespørsler eller ønsker å bidra til utviklingen, er du velkommen til å kontakte meg!

Trinn 4: Egenskaper og funksjoner

Siden jeg designet denne enheten til å bruke doble antenner og de svært konfigurerbare TI CC1101-mottakerne, har du massevis av muligheter, spesielt ute i feltet der du ikke vil behøve å bære noe mer enn en smarttelefonstørrelse.

Du kan for eksempel fange kommunikasjonssignaler i 433MHz -båndet og sende dem tilbake til hjemmestasjonen din med den sekundære antennen på 868MHz.

Eller hvis du vil studere og eksperimentere med reaktiv jamming, kan du ha en lytte- og jamming -antenne som sender sine egne signaler så snart en overføring blir oppdaget, uten å gjøre den "tradisjonelle metoden" for å prøve å bytte mellom RX og TX som fort som mulig.

En annen veldig kul ting med Feather M4 er at den kommer med en innebygd LiPo -ladekrets, slik at du bare kobler til batteriet og er klar til bruk. I mitt tilfelle, med en antenne i konstant RX -modus, lytting etter overføringer og OLED -skjermen på, ville enheten kjøre i nesten 20 timer på en 1000 mAh LiPo.

Bruke OLED -skjermen - men også mulig uten den, f.eks. ved hjelp av de tre status -lysdiodene - du kan ha flere programmer og velge hvilket du vil kjøre med knappene nederst på brettet. Jeg personlig implementerte til og med en hel meny med moduser å velge mellom og en frekvensinnstillingsvisning etc.

Det kan til og med komme i hånden for litt hjemmeautomatisering! Som jeg nevnte, har jeg lykkes med å kommunisere med stikkontakter (fange de originale signalene en gang og spille dem av når du trenger det), og hvis du gjør en liten undersøkelse på Internett, finner du raskt hvor mange enheter som også opererer på disse frekvensene med aldri endrede koder. Selv noen garasjekoder kan registreres og lagres med denne enheten og deretter brukes når du trenger å åpne eller lukke garasjen. Så dette kan bli en universell fjernkontroll for alle RF -enhetene dine!

Jeg personlig replikerte RollJam-angrepet med denne enheten også, men vil ikke frigjøre koden siden jamming er ulovlig de fleste steder, så hvis du prøver noe lignende, kontakt lokale lover;-)

Siden kortet dukker opp som en USB -disk når du kobler den til og CircuitPython tilbyr en slik funksjon, kan du også få enheten til å registrere RF -overføringer og lagre demodulerte data (oh ja, mottakerne gjør dette automatisk!) Til en tekstfil som du senere kan kopiere til PCen og analysere for vitenskapelige formål som reverse engineering av overføringer.

Trinn 5: Sluttresultat

Endelig resultat
Endelig resultat

Eventuelle tilbakemeldinger, forslag og bidrag til dette prosjektet er velkomne. Still gjerne spørsmål hvis du har noen!

Anbefalt: