Innehållsförteckning:
- Steg 1: Hårdvarukomponenter
- Steg 2: Bygga styrelsen
- Steg 3: Programvara
- Steg 4: Funktioner och funktioner
- Steg 5: Slutresultat
Video: Python RF Development Kit: 5 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:45
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
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
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
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:
DIY ESP32 Development Board - ESPer: 5 steg (med bilder)
DIY ESP32 Development Board - ESPer: Så nyligen hade jag läst om många IoT (Internet of Things) och lita på mig, jag kunde bara inte vänta med att testa en av dessa underbara enheter, med möjlighet att ansluta till internet, mig själv och få tag på jobbet. Lyckligtvis är möjligheten att
Mojo FPGA Development Board Shield: 3 steg
Mojo FPGA Development Board Shield: Anslut ditt Mojo -utvecklingskort till externa ingångar med denna sköld. Brädan är gjord av Alchitry. FPGA är mycket användbara
Spela Flappy Bird -spel med M5stack Esp32 -baserat M5stick C Development Board: 5 steg
Spela Flappy Bird-spel med M5stack Esp32-baserat M5stick C Development Board: Hej killar idag kommer vi att lära oss att ladda upp flappy bird-spelkoden till m5stick c-utvecklingsbräda från m5stack.För detta lilla projekt behöver du följande två saker: m5stick-c utvecklingskort: https://www.utsource.net/itm/p/8663561.h
JALPIC One Development Board: 5 steg (med bilder)
JALPIC One Development Board: Om du följer mina Instructables -projekt vet du att jag är ett stort fan av programmeringsspråket JAL i kombination med PIC Microcontroller. JAL är ett Pascal-liknande programmeringsspråk som utvecklats för 8-bitars PIC-mikrokontroller av Microchip. Mo
Designa en Microcontroller Development Board: 14 steg (med bilder)
Designa en Microcontroller Development Board: Är du en tillverkare, hobbyist eller hacker som är intresserad av att ta steget från perfboard -projekt, DIP IC och hemmagjorda PCB till flerskiktade PCB tillverkade av styrelsehus och SMD -förpackningar redo för massproduktion? Då är det här instruerbart för dig! Den här gui