Spisu treści:

Zestaw rozwojowy Python RF: 5 kroków
Zestaw rozwojowy Python RF: 5 kroków

Wideo: Zestaw rozwojowy Python RF: 5 kroków

Wideo: Zestaw rozwojowy Python RF: 5 kroków
Wideo: #9 Moduł RFID MF RC522 - obsługa i przykład użycia z Arduino 2024, Lipiec
Anonim
Zestaw rozwojowy Python RF
Zestaw rozwojowy Python RF

Przede wszystkim chciałbym trochę przedstawić, jak wszedłem w sprawy RF i dlaczego pracuję nad tym projektem.

Jako student informatyki związany ze sprzętem zacząłem uczęszczać na kursy dotyczące sygnałów bezprzewodowych i bezpieczeństwa w komunikacji bezprzewodowej w październiku 2018 roku. Szybko zacząłem eksperymentować z radiotelefonami definiowanymi programowo RTL-SDR i HackRF oraz z off-the- półka na moduły Arduino RF.

Problem polega na tym, że SDR-y nie są wystarczająco przenośne do moich celów (zawsze muszą nosić laptopa, anteny itp.), a tanie moduły Arduino RF nie są wystarczająco wydajne pod względem siły sygnału, możliwości dostosowania, zakresów częstotliwości i automatyzacji.

Anteny CC1101 firmy Texas Instruments to doskonały wybór dla małych, ale wydajnych transceiverów RF, które są również bardzo tanie. Ludzie zbudowali z nimi wspaniałe rzeczy, takie jak DIY SDR i tym podobne.

Kolejną rzeczą, którą chciałem poruszyć w tym temacie, był CircuitPython. Jest to nowy język programowania od mikrokontrolerów, o którym słyszałem wiele dobrych rzeczy, więc chciałem go wypróbować. Okazało się, że bardzo mi się to podoba, szczególnie w połączeniu z płytką Adafruit Feather M4 Express, której również używam w tym projekcie. Jest bardzo łatwy do debugowania, ponieważ nie trzeba kompilować niestandardowego oprogramowania układowego za każdym razem, gdy próbujesz małą zmianę w kodzie, otrzymujesz konsolę REPL, a twój kod również pozostaje na samym mikrokontrolerze, co oznacza, że możesz go nosić ze sobą, podłączać na różne komputery i zawsze będziesz mógł dokonywać zmian w podróży.

Krok 1: Komponenty sprzętowe

Komponenty sprzętowe
Komponenty sprzętowe

Czego potrzebujesz, aby zreplikować ten projekt:

  • Pióro Adafruit M4 Express
  • 2x nadajnik-odbiornik Texas Instruments CC1101 + antena
  • Pióro Adafruit Skrzydło OLED
  • LiPo 3,7 V

Zasadniczo to wszystko, czego potrzebujesz, aby mieć całkiem kompaktowy i sprawny transceiver RF, ale jak widać na obrazku, nie będzie to bardzo niezawodne i uporządkowane z tymi wszystkimi zworami.

Zaprojektowałem więc niestandardową płytkę drukowaną za pomocą https://easyeda.com/ i zamówiłem ją na JLCPCB.com (bardzo tania i świetna jakość!), aby połączyć wszystko razem. Pozwoliło to również na łatwą integrację 3 przycisków i diod LED do wprowadzania danych przez użytkownika i wyjść statusowych.

I na koniec wydrukowałem w 3D małą okładkę z tyłu płytki PCB, aby nie zwarła się z niczym i nie leżała płasko na stole.

Jeśli jesteś nowy w projektowaniu elektroniki i PCB, polecam zapoznać się z tymi instrukcjami: podstawowa elektronika, klasa projektowania płytek drukowanych!

W załącznikach znajdują się pliki Gerber dla mojej płytki drukowanej. Jeśli zdecydujesz się go wyprodukować, będziesz potrzebować kilku dodatkowych komponentów, które osobiście zamówiłem w LCSC, ponieważ są one powiązane z JLCPCB, więc oferują wysyłkę wszystkiego razem, co oszczędza trochę kosztów wysyłki, a komponenty są również po prostu bardzo tanio. Szczegółową listę można znaleźć w zestawieniu komponentów. Celowo wybrałem duży rozmiar pakietu 0805 dla komponentów SMD, aby każdy mógł je ręcznie przylutować do PCB!

Krok 2: Budowanie tablicy

Budowanie zarządu
Budowanie zarządu
Budowanie zarządu
Budowanie zarządu
Budowanie zarządu
Budowanie zarządu

Na pierwszym zdjęciu widzimy płytki drukowane bez żadnych „przeróbek” – tak pochodzą z fabryki. Bardzo czyste cięcia (bez v-fug, całkowicie frezowane) i ładne przelotki na wszystkich otworach THT.

Jeśli chcesz użyć diod LED, będziesz musiał je przylutować tak samo jak rezystory SMD. Rezystory są zwykle schowane pod mikrokontrolerem, ale widoczne na drugim zdjęciu, które pokazuje całkowicie wlutowaną płytkę. Jeśli nie masz dużego doświadczenia w lutowaniu, lutowanie SMD może być nieco trudne, ale jest to trochę opcjonalne, a wszystkie podstawowe komponenty to THT. Zawsze lubię polecać filmy Dave'a (EEVblog) i sam obejrzałem ten: EEVblog #186 - Samouczek lutowania, część 3 - Montaż powierzchniowy. To dość długo, ale warto, jeśli jesteś nowy w tym temacie!

Wspomina o tym również, ale: najpierw zadbaj o przylutowanie rezystorów i diod LED, potem przyciski, a na końcu nagłówki. W ten sposób zawsze możesz użyć stołu do dociskania elementu od dołu i lutować od góry (płytka odwrócona do góry nogami).

Po przylutowaniu wszystkiego wystarczy podłączyć Feather M4 i jedną lub dwie anteny i sprzęt jest gotowy! Ponieważ nie lutujemy tych elementów, zawsze możemy je zdjąć z płyty i wykorzystać w innym projekcie, co jest świetne!

Zwróć uwagę, że na trzecim zdjęciu mam regularne, krótkie męskie nagłówki na Feather, więc nie mogłem umieścić OLED na górze. Musiałem je wylutować i dodać nagłówki do układania piór. Jeśli chcesz korzystać z OLED, od razu zdobądź nagłówki stackujące, szczerze:D Wylutowywanie to tylko ból.

Krok 3: Oprogramowanie

Po wykonaniu sprzętu porozmawiajmy o oprogramowaniu.

Jak wspomniano we wstępie, M4 uruchamia kod Pythona, ale oczywiście żadna biblioteka dla CC1101 nie istniała w języku Python. Więc zrobiłem to, co robią majsterkowicze i napisałem własne. Możesz go znaleźć tutaj:

Nie obsługuje wszystkiego, do czego zdolne są świetne transceivery TI, ale wystarczy, aby łatwo wysyłać i odbierać dane zakodowane ASK na dowolnej częstotliwości. Korzystając z tej biblioteki, mogłem komunikować się z gniazdkami ściennymi sterowanymi falami radiowymi, a także z samochodem mojej rodziny.

Prawdopodobnie nadal będę nad tym pracował, a jeśli masz jakieś pytania, prośby o nowe funkcje lub chcesz przyczynić się do rozwoju, skontaktuj się ze mną!

Krok 4: Możliwości i funkcje

Ponieważ zaprojektowałem to urządzenie do używania podwójnych anten i wysoce konfigurowalnych transceiverów TI CC1101, masz mnóstwo możliwości, szczególnie w terenie, gdzie nie chcesz nosić ze sobą niczego poza urządzeniem wielkości smartfona.

Możesz na przykład przechwytywać sygnały komunikacji w paśmie 433MHz i wysyłać je z powrotem do swojej stacji domowej z anteną dodatkową pracującą na 868MHz.

Lub jeśli chcesz uczyć się i eksperymentować z zagłuszaniem reaktywnym, możesz mieć antenę nasłuchową i zagłuszającą, która wysyła własne sygnały natychmiast po wykryciu transmisji, bez wykonywania „tradycyjnej metody” prób przełączania między RX i TX, ponieważ tak szybko, jak to możliwe.

Kolejną bardzo fajną rzeczą w Feather M4 jest to, że ma wbudowany obwód ładowania LiPo, więc wystarczy podłączyć baterię i jesteś gotowy do pracy. W moim przypadku z jedną anteną w trybie stałego RX, nasłuchiwaniem transmisji i włączonym ekranem OLED, urządzenie działałoby prawie 20 godzin na LiPo 1000 mAh.

Korzystanie z ekranu OLED - ale możliwe i bez niego, m.in. za pomocą trzech diod LED statusu - możesz mieć wiele programów i wybrać, który chcesz uruchomić za pomocą przycisków na dole tablicy. Osobiście zaimplementowałem nawet całe menu z trybami do wyboru i widokiem ustawień częstotliwości itp.

Może nawet przydać się w przypadku automatyki domowej! Jak wspomniałem, udało mi się skutecznie komunikować z gniazdkami elektrycznymi (przechwytywanie oryginalnych sygnałów raz i odtwarzanie ich, kiedy tylko tego potrzebujesz), a jeśli przeprowadzisz trochę badań w Internecie, szybko zobaczysz, na ile urządzeń działa również te częstotliwości z niezmiennymi kodami. Nawet kody niektórych warsztatów mogą być rejestrowane i zapisywane za pomocą tego urządzenia, a następnie używane, gdy trzeba otworzyć lub zamknąć garaż. Dzięki temu może stać się uniwersalnym pilotem do wszystkich Twoich urządzeń RF!

Osobiście zreplikowałem atak RollJam również za pomocą tego urządzenia, ale nie uwolnię kodu, ponieważ zacinanie jest nielegalne w większości miejsc, więc jeśli spróbujesz czegoś takiego, zapoznaj się z lokalnymi przepisami;-)

Ponieważ po podłączeniu płyta pokazuje się jako dysk USB, a CircuitPython oferuje taką funkcję, możesz również nakazać urządzeniu rejestrowanie transmisji RF i zapisywanie zdemodulowanych danych (o tak, transceivery robią to automatycznie!) do pliku tekstowego które można później skopiować na komputer i przeanalizować w celach naukowych, takich jak inżynieria wsteczna transmisji.

Krok 5: Wynik końcowy

Ostateczny wynik
Ostateczny wynik

Wszelkie opinie, sugestie i wkład do tego projektu są mile widziane i nie wahaj się zadawać pytań, jeśli masz jakieś!

Zalecana: