Sommario:

Kit di sviluppo RF Python: 5 passaggi
Kit di sviluppo RF Python: 5 passaggi

Video: Kit di sviluppo RF Python: 5 passaggi

Video: Kit di sviluppo RF Python: 5 passaggi
Video: Symfony + Docker, dall'ambiente di sviluppo alla produzione - Alessandro Lai - symfonyday 2018 2024, Luglio
Anonim
Kit di sviluppo RF Python
Kit di sviluppo RF Python

Prima di tutto, vorrei fare una piccola introduzione su come mi sono avvicinato alle cose RF e perché sto lavorando a questo progetto.

Come studente di informatica con un'affinità con l'hardware, ho iniziato a frequentare alcuni corsi che si occupano di segnali wireless e sicurezza nelle comunicazioni wireless nell'ottobre 2018. Ho iniziato rapidamente a sperimentare con le radio definite dal software RTL-SDR e HackRF e con off-the- scaffale moduli RF Arduino.

Il problema è: gli SDR non sono abbastanza portatili per i miei scopi (devo sempre trasportare un laptop, antenne, ecc.) e i moduli RF Arduino economici non sono abbastanza capaci in termini di potenza del segnale, personalizzazione, gamme di frequenza e automazione.

Le antenne CC1101 di Texas Instruments sono un'ottima scelta per ricetrasmettitori RF piccoli ma capaci che sono anche molto economici. Le persone hanno costruito grandi cose con loro, come SDR fai-da-te e cose del genere.

Un'altra cosa che volevo affrontare con questo argomento era CircuitPython. È un nuovo linguaggio di programmazione dei microcontrollori di cui ho sentito parlare molto bene, quindi ho voluto provarlo. Si è scoperto che mi piace molto, specialmente in combinazione con la scheda Feather M4 Express di Adafruit che uso anche in questo progetto. È molto facile eseguire il debug in quanto non è necessario compilare firmware personalizzati ogni volta che si tenta una piccola modifica nel codice, si ottiene una console REPL e il codice rimane anche sul microcontrollore stesso, il che significa che è possibile portarlo in giro, collegarlo in vari computer e sarai sempre in grado di apportare modifiche in movimento.

Passaggio 1: componenti hardware

Componenti hardware
Componenti hardware

Di cosa avrai bisogno per replicare questo progetto:

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

Essenzialmente questo è tutto ciò che serve per avere un ricetrasmettitore RF abbastanza compatto e capace, ma come puoi vedere nell'immagine non sarà molto affidabile e ordinato con tutti quei cavi di collegamento.

Quindi ho progettato un PCB personalizzato usando https://easyeda.com/ e l'ho ordinato da JLCPCB.com (molto economico e di ottima qualità!) Per collegare tutto insieme. Ciò ha anche permesso di integrare facilmente 3 pulsanti e LED per l'ingresso dell'utente e le uscite di stato.

E infine, ho stampato in 3D una piccola copertura per il retro del PCB in modo che non vada in cortocircuito contro nulla e rimanga piatto sul tavolo.

Se non conosci l'elettronica e il design PCB, ti consiglio di dare un'occhiata a questi Instructables: Basic Electronics, Circuit Board Design Class!

Negli allegati potete trovare i file Gerber per il mio PCB. Se decidi di farlo fabbricare, avrai bisogno di un paio di componenti extra che ho ordinato personalmente da LCSC, poiché sono associati a JLCPCB quindi offrono di spedire tutto insieme, risparmiando un po' sui costi di spedizione e anche i componenti sono solo molto economico lì. Vedere la distinta base per l'elenco dettagliato. Ho scelto intenzionalmente la grande dimensione del pacchetto di 0805 per i componenti SMD in modo che tutti possano saldarli a mano sul PCB!

Passaggio 2: costruire il tabellone

Costruire il consiglio
Costruire il consiglio
Costruire il consiglio
Costruire il consiglio
Costruire il consiglio
Costruire il consiglio

Nella prima immagine possiamo vedere i PCB senza alcuna "modifica" fatta - vengono così dalla fabbrica. Tagli molto puliti (nessuna scanalatura a V, completamente fresati) e belle vie su tutti i fori THT.

Se vuoi usare i LED dovrai saldarli così come i resistori SMD. I resistori sono solitamente nascosti sotto il microcontrollore ma visibili nella seconda immagine che mostra la scheda completamente saldata. Se non hai molta esperienza con la saldatura, potrebbe essere un po' complicato saldare SMD, ma è un po' opzionale e tutti i componenti principali sono THT. Mi piace sempre consigliare i video di Dave (EEVblog) e in realtà ho guardato questo da solo: EEVblog #186 - Tutorial sulla saldatura, parte 3 - Montaggio superficiale. È piuttosto lungo ma ne vale la pena se sei nuovo in queste cose!

Menziona anche questo, ma: abbi cura di saldare prima i resistori e i LED, poi i pulsanti per secondo e le intestazioni alla fine. In questo modo puoi sempre usare il tavolo per spingere contro il componente dal basso e saldare dall'alto (il PCB capovolto).

Dopo aver saldato tutto, puoi semplicemente collegare il Feather M4 e una o due antenne e l'hardware è pronto! Dato che non saldiamo questi componenti, possiamo sempre rimuoverli dalla scheda e usarli per un altro progetto, il che è fantastico!

Si prega di notare che nella terza immagine ho le normali e corte intestazioni maschili sulla piuma, quindi non ho potuto impilare l'OLED sopra. Ho dovuto dissaldare e aggiungere intestazioni impilabili Feather. Se vuoi usare l'OLED, prendi subito le intestazioni impilabili, onestamente:D La dissaldatura è solo una seccatura.

Passaggio 3: software

Fatto l'hardware, parliamo di software.

Come menzionato nell'introduzione, l'M4 esegue il codice Python, ma ovviamente non esisteva alcuna libreria per CC1101 nel linguaggio Python. Quindi ho fatto quello che fanno i fai-da-te e ho scritto il mio. Puoi trovarlo qui:

Non supporta tutto ciò di cui sono capaci i grandi ricetrasmettitori TI, ma è sufficiente per inviare e ricevere facilmente dati codificati ASK su qualsiasi frequenza. Sono stato in grado di comunicare con prese a muro controllate da RF e con l'auto della mia famiglia utilizzando questa libreria.

Probabilmente potrei continuare a lavorarci e se hai domande, richieste di funzionalità o vuoi contribuire allo sviluppo, non esitare a contattarmi!

Passaggio 4: capacità e caratteristiche

Dato che ho progettato questo dispositivo per utilizzare doppie antenne e i ricetrasmettitori TI CC1101 altamente configurabili, hai un sacco di possibilità, specialmente sul campo in cui non vuoi dover trasportare nient'altro che un dispositivo delle dimensioni di uno smartphone.

Puoi ad esempio catturare segnali di comunicazione nella banda 433MHz e rimandarli alla tua stazione di casa con l'antenna secondaria operante su 868MHz.

Oppure se vuoi studiare e sperimentare il jamming reattivo, puoi avere un'antenna di ascolto e jamming che invia i propri segnali non appena viene rilevata una trasmissione, senza fare il "metodo tradizionale" di provare a commutare tra RX e TX come veloce possibile.

Un'altra cosa molto interessante del Feather M4 è che viene fornito con un circuito di ricarica LiPo integrato, quindi basta collegare la batteria e sei pronto per partire. Nel mio caso, con un'antenna in modalità RX costante, in ascolto delle trasmissioni e lo schermo OLED acceso, il dispositivo funzionerebbe per quasi 20 ore su una LiPo da 1000 mAh.

Utilizzando lo schermo OLED - ma possibile anche senza di esso, ad es. utilizzando i tre LED di stato - puoi avere più programmi e selezionare quale vuoi eseguire con i pulsanti nella parte inferiore della scheda. Personalmente ho persino implementato un intero menu con modalità tra cui scegliere e una visualizzazione dell'impostazione della frequenza, ecc.

Potrebbe anche venire in mano per un po' di domotica! Come ho detto, sono stato in grado di comunicare con successo con le prese di corrente (catturare i segnali originali una volta e riprodurli ogni volta che ne hai bisogno) e se fai un po' di ricerche su Internet scoprirai rapidamente quanti dispositivi funzionano anche su queste frequenze con codici immutabili. Anche i codici di alcune officine possono essere registrati e salvati con questo dispositivo e quindi utilizzati ogni volta che è necessario aprire o chiudere il garage. Quindi questo può diventare un telecomando universale per tutti i tuoi dispositivi RF!

Ho replicato personalmente anche l'attacco RollJam con questo dispositivo, ma non rilascerò il codice poiché il jamming è illegale nella maggior parte dei luoghi, quindi se provi qualcosa del genere, consulta le leggi locali;-)

Poiché la scheda si presenta come un disco USB quando la si collega e CircuitPython offre tale funzionalità, è anche possibile fare in modo che il dispositivo registri le trasmissioni RF e salvi i dati demodulati (oh sì, i ricetrasmettitori lo fanno automaticamente!) in un file di testo che puoi successivamente copiare sul tuo PC e analizzare per scopi scientifici come il reverse engineering delle trasmissioni.

Passaggio 5: risultato finale

Risultato finale
Risultato finale

Qualsiasi feedback, suggerimento e contributo a questo progetto è il benvenuto e sentiti libero di fare domande se ne hai!

Consigliato: