Talaan ng mga Nilalaman:

Python RF Development Kit: 5 Hakbang
Python RF Development Kit: 5 Hakbang

Video: Python RF Development Kit: 5 Hakbang

Video: Python RF Development Kit: 5 Hakbang
Video: How To Do Stable Diffusion XL (SDXL) DreamBooth Training For Free - Utilizing Kaggle - Easy Tutorial 2024, Hulyo
Anonim
Python RF Development Kit
Python RF Development Kit

Una sa lahat, nais kong magbigay ng kaunting pagpapakilala sa kung paano ako napunta sa mga bagay-bagay sa RF at kung bakit ako nagtatrabaho sa proyektong ito.

Bilang isang mag-aaral sa agham ng computer na may kaakibat sa hardware, nagsimula akong dumalo sa ilang mga kurso na nakikipag-usap sa mga wireless signal at seguridad sa mga wireless na komunikasyon noong Oktubre 2018. Mabilis akong nagsimulang mag-eksperimento sa mga radio na tinukoy ng RTL-SDR at HackRF na tinukoy ng software at may off-the- mga istante ng Arduino RF module.

Ang isyu ay: Ang mga SDR ay hindi sapat na portable para sa aking mga hangarin (laging kailangang magdala ng isang laptop, antennas atbp.) At ang murang Arduino RF modules ay hindi sapat na may kakayahan sa mga tuntunin ng lakas ng signal, napapasadyang, mga saklaw ng dalas at awtomatiko.

Ang CC1101 antennas mula sa Texas Instruments ay isang mahusay na pagpipilian para sa maliit ngunit may kakayahang mga transceiver ng RF na napakamura din. Ang mga tao ay nagtayo ng mga magagaling na bagay sa kanila, tulad ng DIY SDRs at mga katulad nito.

Ang isa pang bagay na nais kong tugunan sa paksang ito ay ang CircuitPython. Ito ay isang bagong wika ng programa mula sa mga microcontroller na narinig ko ng maraming magagandang bagay tungkol sa kaya nais kong subukan ito. Ito ay naka-waho na nasisiyahan ako nang husto, lalo na isinama sa board ng Feather M4 Express ng Adafruit na ginagamit ko rin sa proyektong ito. Napakadali upang i-debug dahil hindi mo kailangang mag-compile ng mga pasadyang firmwares sa tuwing susubukan mo ang isang maliit na pagbabago sa iyong code, nakakakuha ka ng isang REPL console at ang iyong code ay mananatili din sa mismong microcontroller na nangangahulugang maaari mong dalhin ito sa paligid, i-plug ito sa iba't ibang mga computer at palagi mong makakagawa ng mga pagbabago on the go.

Hakbang 1: Mga Bahagi ng Hardware

Mga Bahagi ng Hardware
Mga Bahagi ng Hardware

Ano ang kakailanganin mo upang makopya ang proyektong ito:

  • Adafruit Feather M4 Express
  • 2x Mga Instrumentong Texas CC1101 Transceiver + Antenna
  • Adafruit FeatherWing OLED
  • 3.7V LiPo

Mahalaga na ito lang ang kailangan mo upang magkaroon ng isang medyo siksik at may kakayahang RF transceiver, ngunit tulad ng nakikita mo sa imahe ay hindi ito magiging napaka maaasahan at malinis sa lahat ng mga wire ng jumper.

Kaya't dinisenyo ko ang isang pasadyang PCB gamit ang https://easyeda.com/ at iniutos ito mula sa JLCPCB.com (napaka-murang at mahusay na kalidad!) Upang ikonekta ang lahat nang magkasama. Pinapayagan din itong madaling isama ang 3 mga pindutan at LED para sa input ng gumagamit at mga output na katayuan.

At sa wakas, nag-print ako ng 3D ng isang maliit na takip para sa likod ng PCB upang hindi ito maikontra laban sa anumang bagay at umupo nang patag sa mesa.

Kung bago ka sa disenyo ng Electronics at PCB, inirerekumenda kong suriin ang mga Instructionable na ito: Pangunahing Electronics, Class ng Disenyo ng Circuit Board!

Sa mga kalakip maaari mong makita ang mga Gerber file para sa aking PCB. Kung magpasya kang gawin ito, kakailanganin mo ng ilang labis na mga sangkap na personal kong iniutos mula sa LCSC, dahil nauugnay sila sa JLCPCB kaya't inaalok nilang ipadala ang lahat nang magkakasama na nakakatipid ng kaunting gastos sa pagpapadala at ang mga sangkap ay makatarungan napakamura dyan. Tingnan ang BOM para sa detalyadong listahan. Sinadya kong piliin ang malaking laki ng package na 0805 para sa mga bahagi ng SMD upang ang lahat ay maaaring mag-solder sa kanila papunta sa PCB!

Hakbang 2: Pagbuo ng Lupon

Pagbuo ng Lupon
Pagbuo ng Lupon
Pagbuo ng Lupon
Pagbuo ng Lupon
Pagbuo ng Lupon
Pagbuo ng Lupon

Sa unang imahe maaari nating makita ang mga PCB nang walang anumang "pagbabago" na ginawa - nagmula ito mula sa pabrika. Napakalinis na pagbawas (walang v-uka, ganap na na-redirect) at magandang vias sa lahat ng mga butas ng THT.

Kung nais mong gamitin ang mga LED kailangan mong maghinang ang mga ito pati na rin ang mga resistensya ng SMD. Ang mga resistor ay karaniwang nakatago sa ilalim ng microcontroller ngunit nakikita sa pangalawang larawan na nagpapakita ng buong soldered board. Kung wala kang maraming karanasan sa paghihinang, maaaring maging medyo nakakalito sa paghihinang ng SMD, ngunit ito ay isang uri ng opsyonal at lahat ng mga pangunahing sangkap ay THT. Palagi kong inirerekumenda ang mga video ni Dave (EEVblog) at talagang napanood ko ang isang ito: EEVblog # 186 - Soldering Tutorial Bahagi 3 - Ibabaw ng Bundok. Medyo mahaba ngunit sulit kung bago ka sa bagay na ito!

Nabanggit din niya ito, ngunit: mag-ingat na maghinang muna ng mga resistors at LED, pagkatapos ay pangalawa ang mga pindutan at ang mga header sa huli. Sa ganitong paraan maaari mong palaging gamitin ang talahanayan upang itulak laban sa sangkap mula sa ilalim at panghinang mula sa itaas (Binaligtad ng PCB).

Matapos ang paghihinang sa lahat, maaari mo lamang i-plug ang Feather M4 at isa o dalawang mga antena at handa na ang hardware! Dahil hindi kami maghinang sa mga sangkap na ito, maaari naming palaging alisin ang mga ito sa board at gamitin ang mga ito para sa isa pang proyekto na mahusay!

Mangyaring tandaan na sa pangatlong larawan mayroon akong regular, maikling mga header ng lalaki sa Feather kaya hindi ko ma-stack ang OLED sa itaas. Kinailangan kong bastusin ang mga ito at magdagdag ng mga header ng stacking ng Feather. Kung nais mong gamitin ang OLED, kunin kaagad ang mga naka-stack na header, matapat: Ang D Desoldering ay isang sakit lamang.

Hakbang 3: Software

Sa tapos na ang hardware, pag-usapan natin ang tungkol sa software.

Tulad ng nabanggit sa panimula, ang M4 ay nagpapatakbo ng Python code, ngunit malinaw na walang aklatan para sa CC1101 ang mayroon sa wikang Python. Kaya't ginawa ko ang ginagawa ng mga DIYer at nagsulat ng sarili ko. Mahahanap mo ito dito:

Hindi nito sinusuportahan ang lahat na may kakayahang ang magagaling na mga transceiver ng TI ngunit sapat na upang magpadala at makatanggap ng naka-encode na ASK na data sa anumang dalas ng madali. Nakipag-usap ako sa mga socket ng dingding na kinokontrol ng RF pati na rin sa kotse ng aking pamilya sa pamamagitan ng paggamit ng library na ito.

Maaari kong marahil magpatuloy sa pagtatrabaho dito at kung mayroon kang anumang mga katanungan, tampok na mga kahilingan o nais na magbigay ng kontribusyon sa pag-unlad, huwag mag-atubiling makipag-ugnay sa akin!

Hakbang 4: Mga Kakayahan at Tampok

Dahil dinisenyo ko ang aparatong ito upang magamit ang dobleng mga antena at ang lubos na mai-configure na mga transceiver ng TI CC1101, mayroon kang isang tonelada ng mga posibilidad, lalo na sa larangan kung saan hindi mo nais na magdala ng anumang higit pa sa isang aparatong kasing laki ng smartphone.

Maaari mong halimbawa ang pagkuha ng mga signal ng mga komunikasyon sa 433MHz band at ipadala ang mga ito pabalik sa iyong home station na may pangalawang antena na tumatakbo sa 868MHz.

O kung nais mong mag-aral at mag-eksperimento sa reaktibong jamming, maaari kang magkaroon ng pakikinig at isang jamming antena na nagpapadala ng sarili nitong mga signal sa sandaling napansin ang isang paghahatid, nang hindi ginagawa ang "tradisyunal na pamamaraan" ng pagsubok na lumipat sa pagitan ng RX at TX bilang mabilis hangga't maaari

Ang isa pang napaka-cool na bagay tungkol sa Feather M4 ay na may kasamang isang onboard LiPo singil na circuit upang ikaw ay plug lamang sa iyong baterya at handa nang umalis. Sa aking kaso, na may isang antena na pare-pareho sa RX mode, nakikinig ng mga transmisyon at naka-on ang OLED screen, tatakbo ang aparato nang halos 20 oras sa isang 1000 mAh LiPo.

Paggamit ng OLED screen - ngunit posible rin nang wala ito, hal. gamit ang tatlong status LEDs - maaari kang magkaroon ng maraming mga programa at piliin kung alin ang nais mong patakbuhin gamit ang mga pindutan sa ilalim ng board. Personal kong ipinatupad ang isang buong menu na may mga mode na mapagpipilian at isang view ng setting ng dalas atbp.

Maaari itong makuha kahit para sa ilang automation sa bahay! Tulad ng nabanggit ko, nagawa kong makipag-usap sa mga outlet ng kuryente (matagumpay na makuha ang mga orihinal na signal at i-replay ang mga ito kahit kailan mo kailangan ito) at kung gumawa ka ng kaunting pagsasaliksik sa Internet malalaman mo nang mabilis kung gaano karaming mga aparato ang nagpapatakbo din ang mga frequency na ito na may hindi nababago na mga code. Kahit na ang ilang mga code ng garahe ay maaaring maitala at mai-save gamit ang aparatong ito at pagkatapos ay gamitin tuwing kailangan mong buksan o isara ang iyong garahe. Kaya't ito ay maaaring maging isang unibersal na remote para sa lahat ng iyong mga aparato sa RF!

Personal kong kinopya ang pag-atake ng RollJam sa aparatong ito rin, ngunit hindi ilalabas ang code dahil ang jamming ay iligal sa karamihan sa mga lugar kaya kung susubukan mo ang anumang katulad nito, kumunsulta sa iyong mga lokal na batas;-)

Dahil ang board ay nagpapakita bilang isang USB disk kapag na-plug mo ito at nag-aalok ang CircuitPython ng gayong tampok, maaari mo ring i-record ang aparato sa mga RF transmisyon at i-save ang na-demodulate na data (oh oo, awtomatikong ginagawa ito ng mga transceiver!) Sa isang text file na maaari mong kopyahin sa paglaon sa iyong PC at pag-aralan para sa mga hangarin sa agham tulad ng baligtad na engineering ng mga pagpapadala.

Hakbang 5: Pangwakas na Resulta

Pangwakas na Resulta
Pangwakas na Resulta

Anumang puna, mungkahi at kontribusyon sa proyektong ito ay maligayang pagdating at huwag mag-atubiling magtanong kung mayroon kang anumang!

Inirerekumendang: