Innehållsförteckning:

Python RF Development Kit: 5 steg
Python RF Development Kit: 5 steg

Video: Python RF Development Kit: 5 steg

Video: Python RF Development Kit: 5 steg
Video: nRF Connect for VS Code, part 5: Debugging 2024, Juli
Anonim
Python RF Development Kit
Python RF Development Kit

Först och främst skulle jag vilja ge en liten introduktion om hur jag kom in på RF -saker och varför jag arbetar med det här projektet.

Som datavetenskapstudent med anknytning till hårdvara började jag gå några kurser som handlar om trådlösa signaler och säkerhet inom trådlös kommunikation i oktober 2018. Jag började snabbt experimentera med RTL-SDR och HackRF-programvarudefinierade radioapparater och med off-the- hylla Arduino RF -moduler.

Frågan är: SDR är inte tillräckligt bärbara för mina ändamål (behöver alltid bära en bärbar dator, antenner etc.) och de billiga Arduino RF -modulerna är inte tillräckligt kapabla när det gäller signalstyrka, anpassningsbarhet, frekvensområden och automatisering.

CC1101 -antennerna från Texas Instruments är ett bra val för små men kapabla RF -mottagare som också är mycket billiga. Människor har byggt bra saker med dem, som DIY SDR och sånt.

En annan sak som jag ville ta upp med detta ämne var CircuitPython. Det är ett nytt programmeringsspråk från mikrokontroller som jag har hört många bra saker om så jag ville prova det. Det visade sig att jag tycker mycket om det, särskilt tillsammans med Adafruits Feather M4 Express -bräda som jag också använder i detta projekt. Det är väldigt enkelt att felsöka eftersom du inte behöver kompilera anpassade firmwares varje gång du försöker göra en liten ändring av din kod, du får en REPL -konsol och din kod finns också kvar på själva mikrokontrollern vilket innebär att du kan bära den, anslut den på olika datorer och du kommer alltid att kunna göra ändringar när du är på språng.

Steg 1: Hårdvarukomponenter

Hårdvarukomponenter
Hårdvarukomponenter

Vad du behöver för att replikera det här projektet:

  • Adafruit Feather M4 Express
  • 2x Texas Instruments CC1101 Sändtagare + Antenn
  • Adafruit FeatherWing OLED
  • 3,7V LiPo

I huvudsak är detta allt du behöver för att ha en ganska kompakt och kapabel RF -sändtagare, men som du kan se på bilden kommer det inte att vara särskilt tillförlitligt och snyggt med alla dessa hopparkablar.

Så jag designade en anpassad PCB med https://easyeda.com/ och beställde den från JLCPCB.com (mycket billig och bra kvalitet!) För att ansluta allt tillsammans. Detta gjorde det också möjligt att enkelt integrera 3 knappar och lysdioder för användarinmatning och statusutgångar.

Och slutligen, jag 3D -tryckt ett litet omslag på baksidan av kretskortet så att det inte blir kort mot någonting och sitter platt på bordet.

Om du är ny på elektronik och PCB -design, skulle jag rekommendera att kolla in dessa instruktioner: Grundläggande elektronik, kretskortets designklass!

I bilagorna hittar du Gerber -filerna för mitt kretskort. Om du bestämmer dig för att få den tillverkad behöver du ett par extra komponenter som jag personligen beställde från LCSC, eftersom de är kopplade till JLCPCB så de erbjuder att skicka allt tillsammans vilket sparar lite fraktkostnader och komponenterna är också bara väldigt billigt där. Se BOM för detaljerad lista. Jag valde avsiktligt den stora förpackningsstorleken 0805 för SMD-komponenterna så att alla kan lödda dem på kretskortet!

Steg 2: Bygga styrelsen

Bygga styrelsen
Bygga styrelsen
Bygga styrelsen
Bygga styrelsen
Bygga styrelsen
Bygga styrelsen

I den första bilden kan vi se kretskort utan några "modifieringar" gjorda - de kommer så här från fabriken. Mycket rena snitt (inget v-spår, helt dirigerat) och fina vias på alla THT-hålen.

Om du vill använda lysdioderna måste du lödda dem såväl som SMD -motstånden. Motstånden är vanligtvis dolda under mikrokontrollen men synliga på den andra bilden som visar det helt lödda kortet. Om du inte har mycket erfarenhet av lödning kan det vara lite knepigt att lödda SMD, men det är lite valfritt och alla kärnkomponenter är THT. Jag gillar alltid att rekommendera Dave (EEVblog) s videor och såg faktiskt den här själv: EEVblog #186 - Lödningshandledning Del 3 - Ytmontering. Det är ganska långt men värt det om du är ny på det här!

Han nämner detta också, men: var noga med att löda motstånden och lysdioderna först, sedan knapparna andra och rubrikerna i slutet. På så sätt kan du alltid använda bordet för att trycka mot komponenten från botten och lödning uppifrån (kretskortet vänds upp och ner).

Efter att ha lödt på allt kan du bara ansluta Feather M4 och en eller två antenner och hårdvaran är klar! Eftersom vi inte löder på dessa komponenter kan vi alltid ta av dem från brädet och använda dem för ett annat projekt vilket är fantastiskt!

Observera att på den tredje bilden har jag de vanliga, korta manliga rubrikerna på fjädern så att jag inte kunde stapla OLED ovanpå. Jag var tvungen att avlödda dem och lägga till Feather -staplingshuvuden. Om du vill använda OLED, skaffa stapelhuvuden direkt, ärligt talat: D Avlödning är bara en smärta.

Steg 3: Programvara

Med hårdvaran klar, låt oss prata om programvara.

Som nämnts i inledningen kör M4 Python -koden, men uppenbarligen fanns inget bibliotek för CC1101 på Python -språket. Så jag gjorde vad DIYers gör och skrev mitt eget. Du hittar den här:

Det stöder inte allt som de stora TI-sändtagarna kan men det räcker med att enkelt skicka och ta emot ASK-kodad data på vilken frekvens som helst. Jag kunde kommunicera med såväl RF-styrda vägguttag som med min familjs bil med hjälp av detta bibliotek.

Jag kan förmodligen fortsätta arbeta med det och om du har några frågor, önskemål om funktioner eller vill bidra till utvecklingen, kontakta mig gärna!

Steg 4: Funktioner och funktioner

Eftersom jag utformade den här enheten för att använda dubbla antenner och de mycket konfigurerbara TI CC1101-sändtagarna har du massor av möjligheter, särskilt ute på fältet där du inte vill behöva bära mer än en smartphone i storlek.

Du kan till exempel fånga upp kommunikationssignaler i 433MHz -bandet och skicka dem tillbaka till din hemstation med den sekundära antennen på 868MHz.

Eller om du vill studera och experimentera med reaktiv störning kan du ha en lyssnande och en jammande antenn som skickar sina egna signaler så snart en överföring detekteras, utan att göra den "traditionella metoden" för att försöka växla mellan RX och TX som snabbt som möjligt.

En annan mycket cool sak med Feather M4 är att den levereras med en inbyggd LiPo -laddningskrets så att du bara kopplar in ditt batteri och är redo att gå. I mitt fall, med en antenn i konstant RX -läge, lyssnar på sändningar och OLED -skärmen på, skulle enheten köra i nästan 20 timmar på en 1000 mAh LiPo.

Använda OLED -skärmen - men också möjligt utan den, t.ex. med hjälp av de tre status -lysdioderna - du kan ha flera program och välja vilket du vill köra med knapparna på undersidan av kortet. Jag personligen implementerade till och med en hel meny med lägen att välja mellan och en frekvensinställningsvy etc.

Det kan till och med komma i handen för lite hemautomatisering! Som jag nämnde har jag lyckats kommunicera med eluttag (fånga de ursprungliga signalerna en gång och spela upp dem när du behöver det) och om du gör lite research på Internet hittar du snabbt hur många enheter som också fungerar på dessa frekvenser med aldrig förändrade koder. Även vissa garage -koder kan spelas in och sparas med den här enheten och sedan användas när du behöver för att öppna eller stänga ditt garage. Så det här kan bli en universell fjärrkontroll för alla dina RF -enheter!

Jag personligen replikerade RollJam-attacken med den här enheten också, men kommer inte att släppa koden eftersom störning är olaglig på de flesta ställen, så kontakta dina lokala lagar om du försöker något liknande;-)

Eftersom kortet visas som en USB -disk när du ansluter det och CircuitPython erbjuder en sådan funktion kan du också låta enheten spela in RF -sändningar och spara demodulerade data (åh ja, sändtagarna gör detta automatiskt!) I en textfil som du senare kan kopiera till din dator och analysera för vetenskapliga ändamål som reverse engineering av överföringar.

Steg 5: Slutresultat

Slutresultat
Slutresultat

Alla synpunkter, förslag och bidrag till detta projekt är välkomna och ställ gärna frågor om du har några!

Rekommenderad: