INHOUDSOPGAWE:

Python RF -ontwikkelingsstel: 5 stappe
Python RF -ontwikkelingsstel: 5 stappe

Video: Python RF -ontwikkelingsstel: 5 stappe

Video: Python RF -ontwikkelingsstel: 5 stappe
Video: Python для начинающих. Урок 5: Списки (list). 2024, November
Anonim
Python RF -ontwikkelingsstel
Python RF -ontwikkelingsstel

Eerstens wil ek 'n bietjie inleiding gee oor hoe ek met RF -dinge beland het en waarom ek aan hierdie projek werk.

As 'n rekenaarwetenskapstudent met 'n liefde vir hardeware, het ek 'n paar kursusse bygewoon wat handel oor draadlose seine en sekuriteit in draadlose kommunikasie in Oktober 2018. Ek het vinnig begin eksperimenteer met RTL-SDR- en HackRF-sagteware-gedefinieerde radio's en met off-the- rak Arduino RF -modules.

Die probleem is: SDR's is nie draagbaar genoeg vir my doeleindes nie (moet altyd 'n skootrekenaar, antennas, ens.) Dra, en die goedkoop Arduino RF -modules is nie voldoende in staat ten opsigte van seinsterkte, aanpasbaarheid, frekwensiebereik en outomatisering nie.

Die CC1101 -antennas van Texas Instruments is 'n uitstekende keuse vir klein maar bekwame RF -ontvangers wat ook baie goedkoop is. Mense het wonderlike dinge saam met hulle gebou, soos DIY SDR's en sulke goed.

Nog 'n ding wat ek met hierdie onderwerp wou aanspreek, was CircuitPython. Dit is 'n nuwe programmeertaal van mikrobeheerders waaroor ek baie goeie dinge gehoor het, so ek wou dit probeer. Dit blyk dat ek dit baie geniet, veral gekoppel aan Adafruit se Feather M4 Express -bord wat ek ook in hierdie projek gebruik. Dit is baie maklik om te ontfout, want u hoef nie persoonlike firmwares op te stel elke keer as u 'n klein verandering in u kode probeer nie, u kry 'n REPL -konsole en u kode bly ook op die mikrobeheerder self, wat beteken dat u dit kan dra en dit kan inprop op verskillende rekenaars, en u kan altyd onderweg veranderings aanbring.

Stap 1: Hardeware -komponente

Hardeware komponente
Hardeware komponente

Wat u nodig het om hierdie projek te herhaal:

  • Adafruit Feather M4 Express
  • 2x Texas Instruments CC1101 -ontvanger + antenne
  • Adafruit FeatherWing OLED
  • 3.7V LiPo

In wese is dit alles wat u nodig het om 'n redelik kompakte en bekwame RF -ontvanger te hê, maar soos u op die prent kan sien, sal dit nie baie betroubaar en netjies wees met al die springdrade nie.

Ek het dus 'n pasgemaakte PCB ontwerp met behulp van https://easyeda.com/ en dit bestel by JLCPCB.com (baie goedkoop en van uitstekende gehalte!) Om alles aan mekaar te koppel. Dit het dit ook moontlik gemaak om maklik drie knoppies en LED's vir gebruikersinvoer en statusuitsette te integreer.

En laastens het ek 'n klein omslag aan die agterkant van die PCB gedruk, sodat dit niks kortkom nie en plat op die tafel sit.

As u nuut is in die ontwerp van elektronika en PCB's, sou ek aanbeveel om hierdie instruksies na te gaan: Basiese elektronika, stroombaan -ontwerpklas!

In die aanhangsels kan u die Gerber -lêers vir my PCB vind. As u besluit om dit te laat vervaardig, benodig u 'n paar ekstra komponente wat ek persoonlik by LCSC bestel het, aangesien dit aan JLCPCB gekoppel is, sodat hulle aanbied om alles saam te stuur, wat 'n bietjie gestuurkoste bespaar, en die komponente is ook net baie goedkoop daar. Sien die BOM vir die gedetailleerde lys. Ek het doelbewus die groot pakketgrootte van 0805 vir die SMD-komponente gekies, sodat almal dit op die PCB kan soldeer!

Stap 2: Bou die bord

Die bou van die raad
Die bou van die raad
Die bou van die raad
Die bou van die raad
Die bou van die raad
Die bou van die raad

In die eerste prentjie kan ons die PCB's sien sonder dat daar 'veranderinge' aangebring is - dit kom so uit die fabriek. Baie skoon snitte (geen v-groef, heeltemal getrek) en mooi vias op al die THT-gate.

As u die LED's wil gebruik, moet u dit sowel as die SMD -weerstande soldeer. Die weerstande word gewoonlik onder die mikrobeheerder versteek, maar is sigbaar in die tweede prentjie wat die volledig gesoldeerde bord toon. As u nie veel ervaring met soldeer het nie, kan dit 'n bietjie moeilik wees om SMD te soldeer, maar dit is opsioneel en al die kernkomponente is THT. Ek hou altyd daarvan om die video's van Dave (EEVblog) aan te beveel en het eintlik self hierdie video gekyk: EEVblog #186 - Soldering Tutorial Part 3 - Surface Mount. Dit is redelik lank, maar die moeite werd as u nuut is in hierdie dinge!

Hy noem dit ook, maar: sorg dat u eers die weerstande en LED's soldeer, dan die knoppies tweede en die kopstukke uiteindelik. Op hierdie manier kan u altyd die tafel gebruik om van onder af teen die komponent en soldeer van bo af te druk (PCB onderstebo).

Nadat u alles aanmekaar gesoldeer het, kan u net die Feather M4 en een of twee antennas aansluit en die hardeware is gereed! Aangesien ons nie aan hierdie komponente soldeer nie, kan ons dit altyd van die bord afhaal en dit vir 'n ander projek gebruik, wat wonderlik is!

Let asseblief daarop dat ek op die derde prentjie die gewone, kort mannetjie -opskrifte op die veer het, sodat ek nie die OLED bo -op kon stapel nie. Ek moes hulle desolder en Feather -stapelkopstukke byvoeg. As u die OLED wil gebruik, moet u die opskrifhoofde dadelik kry: D Desoldering is net 'n pyn.

Stap 3: sagteware

Met die hardeware klaar, laat ons praat oor sagteware.

Soos in die inleiding genoem, voer die M4 Python -kode uit, maar daar was natuurlik geen biblioteek vir CC1101 in die Python -taal nie. Ek het dus gedoen wat selfdoeners doen en my eie geskryf. U kan dit hier vind:

Dit ondersteun nie alles waartoe die groot TI-ontvangers kan nie, maar dit is genoeg om maklik ASK-gekodeerde data op enige frekwensie te stuur en te ontvang. Met hierdie biblioteek kon ek met RF-beheerde muurkaste en met my gesin se motor kommunikeer.

Ek sal waarskynlik daaraan kan werk, en as u vrae het, versoeke oor funksies het of u wil bydra tot die ontwikkeling, kontak my gerus!

Stap 4: vermoëns en funksies

Aangesien ek hierdie toestel ontwerp het om dubbele antennes en die baie konfigureerbare TI CC1101-ontvangers te gebruik, het u baie moontlikhede, veral in die veld waar u niks meer as 'n slimfoon-grootte hoef te dra nie.

U kan byvoorbeeld seine van kommunikasie in die 433MHz -band opneem en dit terugstuur na u tuisstasie met die sekondêre antenna wat op 868MHz werk.

Of as u wil reageer, of met reaktiewe storing wil eksperimenteer, kan u 'n luister- en steekantenne hê wat sy eie seine stuur sodra 'n transmissie opgespoor word, sonder om die 'tradisionele metode' te probeer om tussen RX en TX te skakel as vinnig as moontlik.

Nog 'n baie aangename ding met die Feather M4 is dat dit 'n ingeboude LiPo -laaikring het, sodat u net u battery kan aansluit en gereed is om te begin. In my geval, met een antenna in 'n konstante RX -modus, luister na uitsendings en die OLED -skerm aan, werk die toestel byna 20 uur op 'n 1000 mAh LiPo.

Die gebruik van die OLED -skerm - maar ook sonder dit moontlik, bv. deur die drie status -LED's te gebruik - u kan verskeie programme hê en kies watter u met die knoppies onderaan die bord wil laat loop. Ek het persoonlik selfs 'n hele spyskaart geïmplementeer met modusse om uit te kies en 'n frekwensie -instellingsaansig, ens.

Dit kan selfs in die hand kom vir 'n bietjie outomatisering van die huis! Soos ek genoem het, kon ek suksesvol met die kragpunte kommunikeer (neem die oorspronklike seine een keer op en speel dit weer wanneer u dit nodig het) en as u 'n bietjie navorsing op die internet doen, sal u vinnig agterkom hoeveel toestelle ook werk hierdie frekwensies met kodes wat nooit verander nie. Selfs sommige kodes van die motorhuise kan met hierdie toestel aangeteken en gestoor word en dan gebruik word wanneer u u motorhuis moet oop- of toemaak. Dit kan dus 'n universele afstandsbediening vir al u RF -toestelle word!

Ek het die RollJam-aanval persoonlik ook met hierdie toestel herhaal, maar ek sal nie die kode bekendmaak nie, aangesien vaslegging op die meeste plekke onwettig is, raadpleeg u plaaslike wette as u so iets probeer;-)

Aangesien die bord as 'n USB -skyf verskyn as u dit aansluit en CircuitPython so 'n funksie bied, kan u ook die toestel RF -uitsendings laat opneem en die gedemoduleerde data stoor (ja, die ontvangers doen dit outomaties!) In 'n tekslêer wat u later na u rekenaar kan kopieer en vir wetenskaplike doeleindes kan analiseer, soos omgekeerde ontwerp van transmissies.

Stap 5: Finale resultaat

Finale Uitslag
Finale Uitslag

Enige terugvoer, voorstelle en bydraes tot hierdie projek is welkom en stel gerus vrae as u enige het!

Aanbeveel: