Inhoudsopgave:

Python RF-ontwikkelkit: 5 stappen
Python RF-ontwikkelkit: 5 stappen

Video: Python RF-ontwikkelkit: 5 stappen

Video: Python RF-ontwikkelkit: 5 stappen
Video: Python — полный курс для начинающих. Этот навык изменит твою жизнь. 2024, Juli-
Anonim
Python RF-ontwikkelkit
Python RF-ontwikkelkit

Allereerst wil ik een kleine introductie geven over hoe ik in RF-dingen ben beland en waarom ik aan dit project werk.

Als student informatica met affiniteit voor hardware ben ik in oktober 2018 begonnen met het volgen van enkele cursussen over draadloze signalen en beveiliging in draadloze communicatie. Al snel begon ik te experimenteren met RTL-SDR en HackRF softwaregedefinieerde radio's en met off-the- plank Arduino RF-modules.

Het probleem is: SDR's zijn niet draagbaar genoeg voor mijn doeleinden (ik moet altijd een laptop, antennes enz. meenemen) en de goedkope Arduino RF-modules zijn niet capabel genoeg in termen van signaalsterkte, aanpasbaarheid, frequentiebereiken en automatisering.

De CC1101-antennes van Texas Instruments zijn een uitstekende keuze voor kleine maar capabele RF-transceivers die ook erg goedkoop zijn. Mensen hebben er geweldige dingen mee gebouwd, zoals doe-het-zelf SDR's en dat soort dingen.

Een ander ding dat ik met dit onderwerp wilde bespreken, was CircuitPython. Het is een nieuwe programmeertaal van microcontrollers waar ik veel goede dingen over heb gehoord, dus ik wilde het proberen. Het bleek dat ik er erg van geniet, vooral in combinatie met het Feather M4 Express-bord van Adafruit dat ik ook in dit project gebruik. Het is heel gemakkelijk te debuggen, omdat je niet elke keer dat je een kleine wijziging in je code probeert aangepaste firmwares hoeft te compileren, je een REPL-console krijgt en je code ook op de microcontroller zelf blijft, wat betekent dat je hem kunt meenemen, aansluiten in verschillende computers en u kunt altijd onderweg wijzigingen aanbrengen.

Stap 1: Hardwarecomponenten

Hardware onderdelen
Hardware onderdelen

Wat je nodig hebt om dit project te repliceren:

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

In wezen is dit alles wat je nodig hebt om een behoorlijk compacte en capabele RF-transceiver te hebben, maar zoals je op de afbeelding kunt zien, zal het niet erg betrouwbaar en netjes zijn met al die jumperdraden.

Dus ontwierp ik een aangepaste PCB met behulp van https://easyeda.com/ en bestelde deze bij JLCPCB.com (zeer goedkoop en van goede kwaliteit!) om alles met elkaar te verbinden. Dit maakte het ook mogelijk om eenvoudig 3 knoppen en LED's te integreren voor gebruikersinvoer en statusuitgangen.

En tot slot heb ik een kleine hoes voor de achterkant van de print in 3D geprint, zodat deze nergens tegenaan kan kortsluiten en plat op de tafel kan liggen.

Als elektronica en PCB-ontwerp nieuw voor u zijn, raad ik u aan deze Instructables te bekijken: Basic Electronics, Circuit Board Design Class!

In de bijlagen vind je de Gerber-bestanden voor mijn PCB. Als je besluit om het te laten maken, heb je een paar extra componenten nodig die ik persoonlijk bij LCSC heb besteld, omdat ze zijn gekoppeld aan JLCPCB, dus ze bieden aan om alles samen te verzenden, wat een beetje verzendkosten bespaart en de componenten zijn ook gewoon erg goedkoop daar. Zie de stuklijst voor de gedetailleerde lijst. Ik heb bewust gekozen voor de grote verpakking van 0805 voor de SMD-componenten, zodat iedereen ze met de hand op de PCB kan solderen!

Stap 2: Het bord bouwen

Het bord bouwen
Het bord bouwen
Het bord bouwen
Het bord bouwen
Het bord bouwen
Het bord bouwen

In de eerste afbeelding kunnen we de PCB's zien zonder enige "modificaties" - ze komen zo uit de fabriek. Zeer zuivere sneden (geen v-groef, volledig gerouteerd) en mooie via's op alle THT-gaten.

Als u de LED's wilt gebruiken, moet u deze evenals de SMD-weerstanden solderen. De weerstanden zijn meestal verborgen onder de microcontroller, maar zijn zichtbaar op de tweede foto die het volledig gesoldeerde bord laat zien. Als je niet veel ervaring hebt met solderen, kan het een beetje lastig zijn om SMD te solderen, maar het is een beetje optioneel en alle kerncomponenten zijn THT. Ik beveel altijd de video's van Dave (EEVblog) aan en heb deze zelf ook bekeken: EEVblog #186 - Soldering Tutorial Part 3 - Surface Mount. Het is vrij lang, maar de moeite waard als je nieuw bent met dit spul!

Hij vermeldt dit ook, maar: zorg ervoor dat je eerst de weerstanden en LED's soldeert, dan de knoppen als tweede en de headers op het einde. Op deze manier kunt u altijd de tafel gebruiken om vanaf de onderkant tegen het onderdeel te duwen en vanaf de bovenkant te solderen (PCB ondersteboven gedraaid).

Nadat je alles hebt gesoldeerd, kun je gewoon de Feather M4 en een of twee antennes aansluiten en de hardware is klaar! Omdat we deze componenten niet solderen, kunnen we ze altijd van het bord halen en gebruiken voor een ander project, wat geweldig is!

Houd er rekening mee dat ik op de derde foto de gewone, korte mannelijke headers op de Feather heb, dus ik kon de OLED er niet bovenop stapelen. Ik moest ze desolderen en Feather-stapelkoppen toevoegen. Als je de OLED wilt gebruiken, koop dan meteen de stapelkoppen, eerlijk gezegd: D Desolderen is gewoon lastig.

Stap 3: Software

Nu de hardware klaar is, gaan we het hebben over software.

Zoals vermeld in de inleiding, voert de M4 Python-code uit, maar er bestond duidelijk geen bibliotheek voor CC1101 in de Python-taal. Dus ik deed wat doe-het-zelvers doen en schreef mijn eigen. Je kunt het hier vinden:

Het ondersteunt niet alles waartoe de geweldige TI-transceivers in staat zijn, maar het is voldoende om gemakkelijk ASK-gecodeerde gegevens op elke frequentie te verzenden en te ontvangen. Via deze bibliotheek kon ik zowel communiceren met RF-gestuurde wandcontactdozen als met de auto van mijn gezin.

Ik zal er waarschijnlijk aan blijven werken en als je vragen hebt, functieverzoeken hebt of wilt bijdragen aan de ontwikkeling, neem dan gerust contact met me op!

Stap 4: Mogelijkheden en functies

Sinds ik dit apparaat heb ontworpen om dubbele antennes en de zeer configureerbare TI CC1101-transceivers te gebruiken, heb je een heleboel mogelijkheden, vooral in het veld waar je niet meer dan een apparaat ter grootte van een smartphone wilt meenemen.

U kunt bijvoorbeeld communicatiesignalen in de 433MHz-band opvangen en deze terugsturen naar uw huisstation met de secundaire antenne die op 868MHz werkt.

Of als je wilt studeren en experimenteren met reactief jammen, kun je een luister- en een jamming-antenne hebben die zijn eigen signalen verzendt zodra een transmissie wordt gedetecteerd, zonder de "traditionele methode" te gebruiken om te proberen te schakelen tussen RX en TX als snel mogelijk.

Een ander heel cool ding over de Feather M4 is dat hij wordt geleverd met een LiPo-oplaadcircuit aan boord, zodat je gewoon je batterij aansluit en klaar bent om te gaan. In mijn geval, met één antenne in constante RX-modus, luisterend naar uitzendingen en het OLED-scherm aan, zou het apparaat bijna 20 uur werken op een 1000 mAh LiPo.

Het OLED-scherm gebruiken - maar ook mogelijk zonder, b.v. met behulp van de drie status-LED's - u kunt meerdere programma's hebben en selecteren welke u wilt uitvoeren met de knoppen aan de onderkant van het bord. Ik heb persoonlijk zelfs een heel menu geïmplementeerd met modi om uit te kiezen en een weergave van de frequentie-instelling enz.

Het kan zelfs van pas komen voor wat domotica! Zoals ik al zei, heb ik met succes kunnen communiceren met stopcontacten (de originele signalen één keer vastleggen en ze opnieuw afspelen wanneer je het nodig hebt) en als je een beetje onderzoek doet op internet, zul je snel ontdekken hoeveel apparaten ook werken op deze frequenties met nooit veranderende codes. Zelfs de codes van sommige garages kunnen met dit apparaat worden vastgelegd en opgeslagen en vervolgens worden gebruikt wanneer u uw garage moet openen of sluiten. Dit kan dus een universele afstandsbediening worden voor al uw RF-apparaten!

Ik heb persoonlijk de RollJam-aanval ook met dit apparaat gerepliceerd, maar zal de code niet vrijgeven omdat jammen op de meeste plaatsen illegaal is, dus als je zoiets probeert, raadpleeg dan je lokale wetgeving;-)

Aangezien het bord wordt weergegeven als een USB-schijf wanneer u het aansluit en CircuitPython een dergelijke functie biedt, kunt u het apparaat ook RF-uitzendingen laten opnemen en de gedemoduleerde gegevens (oh ja, de transceivers doen dit automatisch!) opslaan in een tekstbestand die u later naar uw pc kunt kopiëren en analyseren voor wetenschappelijke doeleinden, zoals reverse-engineering van transmissies.

Stap 5: Eindresultaat

Eindresultaat
Eindresultaat

Alle feedback, suggesties en bijdragen aan dit project zijn welkom en voel je vrij om vragen te stellen als je die hebt!

Aanbevolen: