Inhaltsverzeichnis:

Python RF-Entwicklungskit - Gunook
Python RF-Entwicklungskit - Gunook

Video: Python RF-Entwicklungskit - Gunook

Video: Python RF-Entwicklungskit - Gunook
Video: RFID Chip und Frequenzband 2024, November
Anonim
Python-RF-Entwicklungskit
Python-RF-Entwicklungskit

Zunächst möchte ich eine kleine Einführung geben, wie ich zu HF-Sachen gekommen bin und warum ich an diesem Projekt arbeite.

Als Informatikstudent mit Affinität zu Hardware habe ich im Oktober 2018 begonnen, einige Kurse zu besuchen, die sich mit drahtlosen Signalen und Sicherheit in der drahtlosen Kommunikation befassen. Regal Arduino RF-Module.

Das Problem ist: SDRs sind für meine Zwecke nicht tragbar genug (muss immer einen Laptop, Antennen usw. tragen) und die billigen Arduino-HF-Module sind in Bezug auf Signalstärke, Anpassbarkeit, Frequenzbereiche und Automatisierung nicht leistungsfähig genug.

Die CC1101-Antennen von Texas Instruments sind eine gute Wahl für kleine, aber leistungsfähige HF-Transceiver, die zudem sehr günstig sind. Die Leute haben großartige Dinge damit gebaut, wie DIY-SDRs und ähnliches.

Eine andere Sache, die ich mit diesem Thema ansprechen wollte, war CircuitPython. Es ist eine neue Programmiersprache von Mikrocontrollern, über die ich viel Gutes gehört habe, also wollte ich es ausprobieren. Es stellte sich heraus, dass es mir sehr viel Spaß macht, insbesondere in Verbindung mit dem Feather M4 Express-Board von Adafruit, das ich auch in diesem Projekt verwende. Es ist sehr einfach zu debuggen, da Sie nicht jedes Mal, wenn Sie eine kleine Änderung in Ihrem Code versuchen, benutzerdefinierte Firmwares kompilieren müssen, Sie erhalten eine REPL-Konsole und Ihr Code bleibt auch auf dem Mikrocontroller selbst, was bedeutet, dass Sie ihn herumtragen und anschließen können in verschiedene Computer und Sie können jederzeit Änderungen unterwegs vornehmen.

Schritt 1: Hardwarekomponenten

Hardware-Komponenten
Hardware-Komponenten

Was Sie benötigen, um dieses Projekt zu replizieren:

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

Im Wesentlichen ist dies alles, was Sie brauchen, um einen ziemlich kompakten und leistungsfähigen HF-Transceiver zu haben, aber wie Sie im Bild sehen können, wird er mit all diesen Überbrückungsdrähten nicht sehr zuverlässig und ordentlich sein.

Also entwarf ich mit https://easyeda.com/ eine benutzerdefinierte Leiterplatte und bestellte sie bei JLCPCB.com (sehr günstig und von guter Qualität!), um alles miteinander zu verbinden. Dadurch konnten auch 3 Taster und LEDs für Benutzereingaben und Statusausgänge einfach integriert werden.

Und schließlich habe ich in 3D eine kleine Abdeckung für die Rückseite der Platine gedruckt, damit sie nicht kurzgeschlossen wird und flach auf dem Tisch liegt.

Wenn Sie neu in Elektronik und PCB-Design sind, würde ich empfehlen, diese Instructables zu überprüfen: Basic Electronics, Circuit Board Design Class!

In den Anhängen finden Sie die Gerber-Dateien für meine Platine. Wenn Sie sich entscheiden, es herstellen zu lassen, benötigen Sie ein paar zusätzliche Komponenten, die ich persönlich bei LCSC bestellt habe, da sie mit JLCPCB verbunden sind und bieten daher an, alles zusammen zu versenden, was ein wenig Versandkosten spart und die Komponenten sind auch gerecht dort sehr günstig. Eine detaillierte Liste finden Sie in der Stückliste. Ich habe bewusst die große Gehäusegröße von 0805 für die SMD-Komponenten gewählt, damit jeder sie von Hand auf die Leiterplatte löten kann!

Schritt 2: Aufbau des Boards

Aufbau des Boards
Aufbau des Boards
Aufbau des Boards
Aufbau des Boards
Aufbau des Boards
Aufbau des Boards

Im ersten Bild sehen wir die Platinen ohne "Modifikationen" - sie kommen so ab Werk. Sehr saubere Schnitte (keine V-Nut, komplett geroutet) und schöne Vias an allen THT-Löchern.

Wenn Sie die LEDs verwenden möchten, müssen Sie diese sowie die SMD-Widerstände auflöten. Die Widerstände sind normalerweise unter dem Mikrocontroller versteckt, aber im zweiten Bild sichtbar, das die vollständig verlötete Platine zeigt. Wenn Sie nicht viel Erfahrung mit Löten haben, kann es etwas schwierig sein, SMD zu löten, aber es ist irgendwie optional und alle Kernkomponenten sind THT. Ich empfehle immer gerne die Videos von Dave (EEVblog) und habe dieses sogar selbst gesehen: EEVblog #186 - Lötanleitung Teil 3 - Oberflächenmontage. Es ist ziemlich lang, aber es lohnt sich, wenn Sie neu in diesem Zeug sind!

Er erwähnt dies auch, aber: Achten Sie darauf, zuerst die Widerstände und LEDs zu löten, dann die Tasten und zum Schluss die Header. Auf diese Weise können Sie mit dem Tisch immer von unten gegen das Bauteil drücken und von oben löten (Leiterplatte auf den Kopf gestellt).

Nachdem Sie alles angelötet haben, können Sie einfach den Feather M4 und eine oder zwei Antennen anschließen und die Hardware ist fertig! Da wir diese Komponenten nicht anlöten, können wir sie jederzeit von der Platine nehmen und für ein anderes Projekt verwenden, was großartig ist!

Bitte beachten Sie, dass ich im dritten Bild die regulären, kurzen männlichen Header auf der Feder habe, damit ich die OLED nicht darüber stapeln konnte. Ich musste sie entlöten und Feather-Stacking-Header hinzufügen. Wenn Sie das OLED verwenden möchten, besorgen Sie sich sofort die Stacking-Header, ehrlich:D Das Entlöten ist nur ein Schmerz.

Schritt 3: Software

Wenn die Hardware fertig ist, sprechen wir über Software.

Wie in der Einleitung erwähnt, führt der M4 Python-Code aus, aber offensichtlich gab es keine Bibliothek für CC1101 in der Sprache Python. Also habe ich getan, was Heimwerker tun, und selbst geschrieben. Sie finden es hier:

Es unterstützt nicht alles, wozu die großartigen TI-Transceiver in der Lage sind, aber es reicht aus, um problemlos ASK-codierte Daten auf jeder Frequenz zu senden und zu empfangen. Mit dieser Bibliothek konnte ich sowohl mit HF-gesteuerten Steckdosen als auch mit dem Auto meiner Familie kommunizieren.

Ich darf sehr wahrscheinlich weiter daran arbeiten und wenn Sie Fragen haben, Feature-Wünsche haben oder an der Entwicklung mitwirken möchten, können Sie sich gerne an mich wenden!

Schritt 4: Fähigkeiten und Funktionen

Da ich dieses Gerät für die Verwendung von Doppelantennen und den hochkonfigurierbaren TI CC1101 Transceivern entwickelt habe, haben Sie eine Menge Möglichkeiten, insbesondere im Außendienst, wo Sie nur ein Smartphone in der Größe eines Geräts mit sich führen möchten.

Sie können beispielsweise Kommunikationssignale im 433MHz-Band erfassen und mit der auf 868MHz arbeitenden Sekundärantenne an Ihre Heimstation zurücksenden.

Oder wenn Sie reaktives Jamming studieren und experimentieren möchten, können Sie eine Hör- und eine Jamming-Antenne haben, die ihre eigenen Signale sendet, sobald eine Übertragung erkannt wird, ohne die "traditionelle Methode" zu versuchen, zwischen RX und TX umzuschalten, wie schnell wie möglich.

Eine weitere sehr coole Sache am Feather M4 ist, dass er mit einer integrierten LiPo-Ladeschaltung geliefert wird, sodass Sie einfach Ihren Akku anschließen und einsatzbereit sind. In meinem Fall würde das Gerät mit einer Antenne im konstanten RX-Modus, dem Abhören von Übertragungen und dem eingeschalteten OLED-Bildschirm fast 20 Stunden mit einem 1000-mAh-LiPo laufen.

Mit dem OLED-Bildschirm – aber auch ohne ihn möglich, z. B. mit den drei Status-LEDs - Sie können mehrere Programme haben und mit den Tasten auf der Unterseite des Boards auswählen, welches Sie ausführen möchten. Ich persönlich habe sogar ein ganzes Menü mit Modi zur Auswahl und einer Frequenzeinstellungsansicht usw. implementiert.

Es könnte sogar für eine Heimautomatisierung in Frage kommen! Wie bereits erwähnt, konnte ich erfolgreich mit Steckdosen kommunizieren (einmal die Originalsignale erfassen und bei Bedarf wiedergeben) und wenn Sie ein wenig im Internet recherchieren, werden Sie schnell feststellen, an wie vielen Geräten auch gearbeitet wird diese Frequenzen mit sich nie ändernden Codes. Sogar die Codes einiger Garagen könnten mit diesem Gerät aufgezeichnet und gespeichert und dann verwendet werden, wenn Sie Ihre Garage öffnen oder schließen müssen. So kann dies zu einer universellen Fernbedienung für alle Ihre RF-Geräte werden!

Ich persönlich habe den RollJam-Angriff auch mit diesem Gerät repliziert, werde den Code jedoch nicht veröffentlichen, da Jamming an den meisten Orten illegal ist. Wenn Sie also so etwas versuchen, wenden Sie sich an Ihre lokalen Gesetze;-)

Da das Board beim Einstecken als USB-Disk angezeigt wird und CircuitPython eine solche Funktion bietet, können Sie das Gerät auch HF-Übertragungen aufzeichnen und die demodulierten Daten (oh ja, die Transceiver tun dies automatisch!) in einer Textdatei speichern die Sie später auf Ihren PC kopieren und für wissenschaftliche Zwecke wie Reverse Engineering von Übertragungen analysieren können.

Schritt 5: Endergebnis

Endergebnis
Endergebnis

Alle Rückmeldungen, Vorschläge und Beiträge zu diesem Projekt sind willkommen und zögern Sie nicht, Fragen zu stellen, wenn Sie welche haben!

Empfohlen: