Mục lục:

Bộ phát triển Python RF: 5 bước
Bộ phát triển Python RF: 5 bước

Video: Bộ phát triển Python RF: 5 bước

Video: Bộ phát triển Python RF: 5 bước
Video: Lập trình một App đơn giản với Python (Tkinter) 2024, Tháng mười một
Anonim
Bộ phát triển Python RF
Bộ phát triển Python RF

Trước hết, tôi muốn giới thiệu một chút về cách tôi tiếp cận với công cụ RF và lý do tôi làm việc trong dự án này.

Là một sinh viên khoa học máy tính có niềm yêu thích với phần cứng, tôi bắt đầu tham gia một số khóa học về tín hiệu không dây và bảo mật trong truyền thông không dây vào tháng 10 năm 2018. Tôi nhanh chóng bắt đầu thử nghiệm với đài phát thanh được xác định bằng phần mềm RTL-SDR và HackRF và với kệ mô-đun Arduino RF.

Vấn đề là: SDR không đủ di động cho mục đích của tôi (luôn cần mang theo máy tính xách tay, ăng-ten, v.v.) và các mô-đun Arduino RF giá rẻ không đủ khả năng về cường độ tín hiệu, khả năng tùy chỉnh, dải tần số và tự động hóa.

Ăng-ten CC1101 của Texas Instruments là một lựa chọn tuyệt vời cho các bộ thu phát RF nhỏ nhưng có khả năng thu phát sóng mà giá thành cũng rất rẻ. Mọi người đã tạo ra những thứ tuyệt vời với chúng, như SDR tự làm và những thứ tương tự.

Một điều khác mà tôi muốn đề cập với chủ đề này là CircuitPython. Đó là một ngôn ngữ lập trình mới từ bộ vi điều khiển mà tôi đã nghe rất nhiều điều hay về nó nên tôi muốn thử nó. Hóa ra là tôi rất thích nó, đặc biệt là khi kết hợp với bảng Feather M4 Express của Adafruit mà tôi cũng sử dụng trong dự án này. Rất dễ gỡ lỗi vì bạn không cần phải biên dịch phần sụn tùy chỉnh mỗi khi thử một thay đổi nhỏ trong mã của mình, bạn sẽ nhận được bảng điều khiển REPL và mã của bạn cũng nằm trên chính bộ vi điều khiển, có nghĩa là bạn có thể mang theo và cắm nó vào các máy tính khác nhau và bạn sẽ luôn có thể thực hiện các thay đổi khi đang di chuyển.

Bước 1: Thành phần phần cứng

Các thành phần phần cứng
Các thành phần phần cứng

Những gì bạn cần để tái tạo dự án này:

  • Adafruit Feather M4 Express
  • 2x Bộ thu phát CC1101 của Texas Instruments + Ăng-ten
  • Adafruit FeatherWing OLED
  • 3.7V LiPo

Về cơ bản, đây là tất cả những gì bạn cần để có một bộ thu phát RF khá nhỏ gọn và có khả năng, nhưng như bạn có thể thấy trong hình ảnh, nó sẽ không đáng tin cậy và gọn gàng với tất cả các dây nhảy đó.

Vì vậy, tôi đã thiết kế một PCB tùy chỉnh bằng cách sử dụng https://easyeda.com/ và đặt hàng từ JLCPCB.com (rất rẻ và chất lượng tuyệt vời!) Để kết nối mọi thứ với nhau. Điều này cũng cho phép dễ dàng tích hợp 3 nút và đèn LED cho đầu vào và đầu ra trạng thái của người dùng.

Và cuối cùng, tôi đã in 3D một tấm bìa nhỏ cho mặt sau của PCB để nó không bị thiếu hụt so với bất cứ thứ gì và nằm thẳng trên bàn.

Nếu bạn chưa quen với thiết kế Điện tử và PCB, tôi khuyên bạn nên xem các Tài liệu hướng dẫn sau: Điện tử cơ bản, Lớp thiết kế bảng mạch!

Trong phần đính kèm, bạn có thể tìm thấy các tệp Gerber cho PCB của tôi. Nếu bạn quyết định sản xuất nó, bạn sẽ cần một vài thành phần bổ sung mà tôi đã đặt hàng cá nhân từ LCSC, vì chúng được liên kết với JLCPCB nên họ đề nghị vận chuyển mọi thứ cùng nhau giúp tiết kiệm một chút chi phí vận chuyển và các thành phần cũng vừa rất rẻ ở đó. Xem BOM để biết danh sách chi tiết. Tôi đã cố ý chọn kích thước gói lớn 0805 cho các thành phần SMD để mọi người có thể hàn tay chúng vào PCB!

Bước 2: Xây dựng bảng

Xây dựng hội đồng quản trị
Xây dựng hội đồng quản trị
Xây dựng hội đồng quản trị
Xây dựng hội đồng quản trị
Xây dựng hội đồng quản trị
Xây dựng hội đồng quản trị

Trong hình ảnh đầu tiên, chúng ta có thể thấy PCB mà không có bất kỳ "sửa đổi" nào được thực hiện - chúng giống như thế này từ nhà máy. Các vết cắt rất sạch (không có rãnh chữ v, được định tuyến hoàn toàn) và hình ảnh đẹp trên tất cả các lỗ THT.

Nếu bạn muốn sử dụng đèn LED, bạn sẽ phải hàn chúng cũng như các điện trở SMD. Các điện trở thường được giấu dưới bộ vi điều khiển nhưng có thể nhìn thấy trong hình thứ hai cho thấy bảng được hàn hoàn toàn. Nếu bạn không có nhiều kinh nghiệm về hàn, có thể hơi phức tạp để hàn SMD, nhưng đó là loại tùy chọn và tất cả các thành phần cốt lõi đều là THT. Tôi luôn muốn giới thiệu video của Dave (EEVblog) và thực sự đã tự mình xem video này: EEVblog # 186 - Hướng dẫn hàn Phần 3 - Gắn bề mặt. Nó khá dài nhưng đáng giá nếu bạn chưa quen với công cụ này!

Anh ấy cũng đề cập đến điều này, nhưng: hãy cẩn thận hàn các điện trở và đèn LED trước, sau đó đến các nút thứ hai và cuối cùng là các tiêu đề. Bằng cách này, bạn luôn có thể sử dụng bàn để đẩy linh kiện từ dưới lên và hàn từ trên (PCB lộn ngược).

Sau khi hàn mọi thứ vào, bạn có thể chỉ cần cắm Feather M4 và một hoặc hai ăng-ten và phần cứng đã sẵn sàng! Vì chúng tôi không hàn trên các thành phần này, chúng tôi luôn có thể tháo chúng ra khỏi bảng và sử dụng chúng cho một dự án khác, điều đó thật tuyệt!

Xin lưu ý rằng trong hình thứ ba, tôi có các tiêu đề nam ngắn, thông thường trên Feather nên tôi không thể xếp chồng OLED lên trên. Tôi đã phải phá bỏ chúng và thêm các tiêu đề xếp chồng Feather vào. Nếu bạn muốn sử dụng OLED, hãy lấy ngay các tiêu đề xếp chồng lên nhau, thành thật mà nói: D Sự tàn phá chỉ là một nỗi đau.

Bước 3: Phần mềm

Với phần cứng đã xong, hãy nói về phần mềm.

Như đã đề cập trong phần giới thiệu, M4 chạy mã Python, nhưng rõ ràng là không có thư viện nào cho CC1101 tồn tại bằng ngôn ngữ Python. Vì vậy, tôi đã làm những gì DIYers làm và viết của riêng tôi. Bạn có thể tìm thấy nó ở đây:

Nó không hỗ trợ mọi thứ mà các bộ thu phát TI tuyệt vời có khả năng nhưng nó đủ để gửi và nhận dữ liệu được mã hóa ASK trên bất kỳ tần số nào một cách dễ dàng. Tôi đã có thể giao tiếp với các ổ cắm trên tường được điều khiển bằng sóng RF cũng như với ô tô của gia đình tôi bằng cách sử dụng thư viện này.

Tôi có thể tiếp tục làm việc với nó và nếu bạn có bất kỳ câu hỏi, yêu cầu tính năng hoặc muốn đóng góp cho sự phát triển, vui lòng liên hệ với tôi!

Bước 4: Khả năng và tính năng

Vì tôi thiết kế thiết bị này để sử dụng ăng-ten đôi và bộ thu phát TI CC1101 có cấu hình cao, bạn có rất nhiều khả năng, đặc biệt là trong lĩnh vực mà bạn không muốn phải mang theo bất cứ thứ gì nhiều hơn một thiết bị có kích thước bằng điện thoại thông minh.

Ví dụ, bạn có thể nắm bắt các tín hiệu liên lạc trong băng tần 433MHz và gửi chúng trở lại trạm chủ của bạn bằng ăng-ten phụ hoạt động trên 868MHz.

Hoặc nếu bạn muốn nghiên cứu và thử nghiệm với phương pháp gây nhiễu phản ứng, bạn có thể có một ăng-ten lắng nghe và một ăng-ten gây nhiễu sẽ gửi tín hiệu riêng của nó ngay khi phát hiện thấy đường truyền mà không cần thực hiện "phương pháp truyền thống" là cố gắng chuyển đổi giữa RX và TX như nhanh nhất có thể.

Một điều rất thú vị khác về Feather M4 là nó đi kèm với mạch sạc LiPo tích hợp sẵn để bạn chỉ cần cắm pin vào và sẵn sàng sử dụng. Trong trường hợp của tôi, với một ăng-ten ở chế độ RX không đổi, lắng nghe đường truyền và bật màn hình OLED, thiết bị sẽ chạy trong gần 20 giờ trên LiPo 1000 mAh.

Sử dụng màn hình OLED - nhưng cũng có thể nếu không có nó, ví dụ: sử dụng ba đèn LED trạng thái - bạn có thể có nhiều chương trình và chọn chương trình nào bạn muốn chạy bằng các nút ở cuối bảng. Cá nhân tôi thậm chí đã triển khai toàn bộ menu với các chế độ để lựa chọn và chế độ xem cài đặt tần suất, v.v.

Nó thậm chí có thể phù hợp với một số nhà tự động hóa! Giống như tôi đã đề cập, tôi đã có thể giao tiếp thành công với các ổ cắm điện (ghi lại các tín hiệu gốc một lần và phát lại chúng bất cứ khi nào bạn cần) và nếu bạn thực hiện một chút nghiên cứu trên Internet, bạn sẽ nhanh chóng tìm thấy có bao nhiêu thiết bị cũng hoạt động những tần số này với mã không bao giờ thay đổi. Thậm chí, một số mã của nhà để xe có thể được ghi lại và lưu bằng thiết bị này và sau đó được sử dụng bất cứ khi nào bạn cần mở hoặc đóng nhà để xe của mình. Vì vậy, điều này có thể trở thành một điều khiển từ xa chung cho tất cả các thiết bị RF của bạn!

Cá nhân tôi cũng đã sao chép cuộc tấn công RollJam với thiết bị này, nhưng sẽ không phát hành mã vì gây nhiễu là bất hợp pháp ở hầu hết các nơi, vì vậy nếu bạn cố gắng bất cứ điều gì như vậy, hãy tham khảo luật địa phương của bạn;-)

Vì bo mạch hiển thị dưới dạng đĩa USB khi bạn cắm nó vào và CircuitPython cung cấp tính năng như vậy, bạn cũng có thể yêu cầu thiết bị ghi lại quá trình truyền RF và lưu dữ liệu đã được giải điều chế (ồ vâng, các bộ thu phát tự động thực hiện việc này!) Vào tệp văn bản mà sau này bạn có thể sao chép vào PC của mình và phân tích cho các mục đích khoa học như thiết kế ngược đường truyền.

Bước 5: Kết quả cuối cùng

Kết quả cuối cùng
Kết quả cuối cùng

Mọi phản hồi, đề xuất và đóng góp cho dự án này đều được hoan nghênh và hãy đặt câu hỏi nếu bạn có!

Đề xuất: