Cách thực hiện: Bộ thu điều khiển từ xa USB

Bây giờ chúng ta nghe MP3, cũng như xem Xvids hoặc x264s, máy tính là trung tâm thưởng thức trong ít nhất một không gian của nhiều ngôi nhà. Tuy nhiên, trừ khi bạn có một HTPC đặc biệt, rất có thể bạn rất có thể bị mắc kẹt bằng cách sử dụng bàn phím để tạm dừng, sửa đổi âm lượng, cũng như chuyển tiếp nhanh chóng thông qua các cuộc thảo luận phiền phức. Máy thu điều khiển từ xa PC đa dạng từ các thiết kế cổng nối tiếp cổ đại (Ai có một?) Để thiết bị USB không được hỗ trợ bởi phần mềm nổi bật. Trong cách chúng tôi tạo kiểu cho bộ thu hồng ngoại USB bắt chước một giao thức điển hình được hỗ trợ bởi phần mềm cho Windows, Linux, cũng như Mac. Chúng tôi đã có một hướng dẫn đầy đủ về các sơ đồ giao thức cộng với một danh sách các bộ phận.

Tổng quan thiết kế

Điều khiển từ xa truyền dữ liệu trên chùm hồng ngoại điều biến. IC thu hồng ngoại phân tách chùm tia điều chế thành một luồng sạch của 0 cũng như 1s. Luồng dữ liệu được giải mã bởi một vi điều khiển cũng như được gửi đến máy tính qua kết nối USB. Phần mềm xử lý các mã cũng như kích hoạt các hành động trên máy tính.

Tiểu sử

Máy thu hồng ngoại

Kiểu máy thu hồng ngoại PC lâu đời nhất sử dụng IC thu để chuyển đổi mã PIN cổng nối tiếp, thường là DCD. Phong cách này rất có thể bắt nguồn từ Usenet, cũng như nó vẫn còn nổi bật nhất trên web: Engadget, hướng dẫn, v.v. Chúng không phải là thiết bị nối tiếp thực sự vì họ không gửi dữ liệu đến PC. Thay vào đó, một chương trình máy tính lần tăng xung trên cổng nối tiếp cũng như giải quyết tín hiệu. Đây là một thiết kế rất dễ dàng, tuy nhiên nó phụ thuộc vào quyền truy cập khuếch đại ngắt trực tiếp cũng như độ chính xác thời gian không còn được cung cấp trong Windows. Người dùng Linux hoặc Mac có thể thử bộ thu này, nếu bạn vẫn còn một cổng nối tiếp. Chúng tôi không thể có được loại máy thu này hoạt động với cổng nối tiếp trên PC Windows XP hiện đại, cũng như không mong đợi thời gian chính xác để chuyển qua bộ chuyển đổi nối tiếp USB->.

Một số máy thu hồng ngoại tiên tiến hơn rất nhiều là các thiết bị cổng nối tiếp thực sự xác định hoặc giải mã các tín hiệu hồng ngoại trước khi gửi dữ liệu đến máy tính. UIR / Irman cũng như UIR2 tích hợp một hình ảnh truyền thống 16F84, tuy nhiên không cung cấp phần mềm và / hoặc mã nguồn. Những thiết bị này phải hoạt động trên một máy tính hiện đại, thông qua bộ chuyển đổi nối tiếp USB-> nếu cần thiết. USBTiny cũng như USBIRBOY là các thiết bị USB gốc, tuy nhiên thiếu hỗ trợ rộng.

Phần mềm nhận

Bất kể loại người nhận, máy tính cần một chương trình để nghe các lệnh từ xa đến cũng như chuyển đổi chúng thành các hành động trên máy tính. Linux cũng như người dùng Mac có LIRC, hỗ trợ rất nhiều loại người nhận khác nhau. Người dùng Windows kém may mắn hơn một chút. WinLirc là một cổng Windows bị bỏ rơi Lirc để dễ dàng các máy thu cổng nối tiếp dựa trên ngắt dễ dàng; Winlirc được phát triển lần cuối vào năm 2003. Giơ dang ban đầu là một tiện ích tự động hóa PC miễn phí, tuy nhiên đã kết thúc là Bloatware tốn kém với phiên tòa 30 ngày. May mắn thay, phiên bản phần mềm miễn phí cuối cùng của drder (3.2.9b) vẫn được cung cấp để tải xuống.

Làm việc với các giao thức từ xa IR

Giải mã tín hiệu IR.

Điều khiển từ xa Mã hóa các lệnh trong khoảng cách hoặc thời gian của một nhà cung cấp 38kHz xung, [San Bergmans] có một lời giải thích về các hiệu trưởng liên quan. IC thu hồng ngoại tách luồng dữ liệu khỏi sóng mang. Nhiệm vụ của chúng tôi là giải mã luồng dữ liệu bằng vi điều khiển. Có hàng tá giao thức điều khiển từ xa, tuy nhiên RC5 của Phillips đang lan rộng cũng như thường được sử dụng bởi những người có sở thích.

RC5 là dòng 14 bit có độ dài bằng nhau 1,778ms mỗi lần bit. Một xung trong nửa đầu của thời gian bit đại diện cho 0, một xung trong nửa thứ hai đại diện 1. Kế hoạch này được gọi là mã hóa Manchester.

Chúng tôi đã sử dụng một máy phân tích logic để xem đầu ra của điều khiển từ xa Wintv Happauge, một điều khiển RC5 đã biết. Sơ đồ hiển thị hai lần nhấn của nút 1, cũng như hai lần nhấn của nút 2; Lưu ý rằng đầu ra được đáp ứng cũng như mã hóa Manchester đang ngược từ các mô tả trên.

Thời gian hai bit đầu tiên là Bits bắt đầu, theo sau là một bit chuyển đổi. Bit chuyển đổi nghịch đảo mỗi lần nhấn nút để máy thu có thể cho biết sự khác biệt giữa giữ cũng như một lần nhấn lặp đi lặp lại. 5 bit tiếp theo là địa chỉ (0b11110 = 0x1e), theo sau là lệnh (0B000001 = 0x01, 0b000010 = 0x02). Một phần mở rộng tương thích ngược với RC5 sử dụng bit bắt đầu thứ hai dưới dạng bit lệnh 7.

Đại diện cho mã từ xa với máy tính

Nhìn vào các thiết kế trước đây, chúng tôi đã thấy ba phương pháp chung để giao tiếp các lệnh từ xa cho máy tính:

Các máy thu cụ thể giao thức giải mã một giao thức, cũng như gửi các lệnh được giải mã thực tế vào PC

Một loại máy thu chung nhiều hơn các bước thời gian cũng như khoảng cách của mỗi xung cũng như gửi dạng sóng đầy đủ vào PC để phân tích.

Một số máy thu tạo ra một hàm băm riêng biệt cho tín hiệu, tuy nhiên không thực sự bao gồm đủ dữ liệu để tạo lại hoàn toàn dạng sóng.

Trong khi ưu tiên của chúng tôi là hướng tới phương pháp băm chung, điều khiển từ xa duy nhất của chúng tôi sử dụng RC5 nhưcũng như nó hấp dẫn hơn rất nhiều để phát triển một bộ giải mã cụ thể RC5. Chúng tôi giải thích các sửa đổi cho một phiên bản chung nhiều hơn trong phần Phần sụn.

Giao thức giao diện máy tính

Chúng tôi không muốn viết phần mềm nhận hoặc tài xế của chúng tôi, vì vậy chúng tôi đã tìm kiếm một giao thức truyền thông hiện có, được công nhận để bắt chước. Bộ thu loại UIR / IRAN / IRA / CTINFRA / Hollywood + Hollywood được hỗ trợ bởi drder cũng như LIRC, cũng như sử dụng một giao thức nối tiếp dễ dàng với bắt tay:

Tiện ích được khởi tạo bởi các chân DTS cũng như DTR của cổng nối tiếp. Chúng tôi không có những thứ này cũng như không quan tâm.

Máy tính sẽ gửi “IR”, với độ trễ tùy chọn. Tiện ích trả lời “OK”. Chúng tôi sẽ chỉ gửi “OK” trên mỗi “r”

Mã điều khiển từ xa được gửi dưới dạng hàm băm sáu byte riêng biệt. Chúng tôi sẽ giải mã tín hiệu RC5 cũng như gửi các giá trị thực tế, tuy nhiên hàm băm chung có thể được sử dụng thay thế.

Giao thức này dành cho thiết bị cổng nối tiếp, tuy nhiên bộ thu USB của chúng tôi sẽ xuất hiện dưới dạng cổng nối tiếp ảo cũng như chương trình sẽ không hiểu được sự khác biệt.

Phần cứng

Nhấp vào ngay tại đây để có sơ đồ kích thước đầy đủ (PNG). Bộ thu của chúng tôi dựa trên bộ vi điều khiển 18F2455 được bật USB, phiên bản nhỏ hơn, ít tốn kém hơn của 18F2550. Các hộ gia đình 18F được lập trình với các lập trình viên theo phong cách JDM ưa thích nếu một diode được sử dụng để giảm VPP đến mức không có rủi ro. Hình ảnh được một tụ điện tách (C1), cũng như một diode (D1) cũng như điện trở (R1) trên tiêu đề lập trình ICSP. Chúng tôi đã tiếp xúc với cổng nối tiếp trên tiêu đề pin để gỡ lỗi hoặc phiên bản cổng USB / nối tiếp hỗn hợp bằng IC thu phát Max RS232.

Ngoại vi USB yêu cầu đồng hồ 20 MHz bên ngoài (Q1, C5,6), cũng như một tụ điện .220UF. Chúng tôi giả mạo tụ điện bằng cách sử dụng tụ tách rời 2 x .1uf (C2,3). Đèn LED 3 mm (LED1) cũng như điện trở giới hạn giới hạn 330OHM (R2) hiển thị trạng thái kết nối USB.

Chúng tôi đã sử dụng IC máy thu hồng ngoại TSOP-1738, kêu gọi tụ điện tách rời 4,7uF (C4). Nếu bạn không thể khám phá IC cụ thể này, bất kỳ loại người nhận nào được ghi nhận ngay tại đây để làm việc. Đầu ra TSOP-1738 là nghịch đảo của tín hiệu nhận được, nó kéo xuống đất khi phát hiện xung, do đó, một điện trở kéo lên (R3) giữ pin cao khi không có tín hiệu nào. Kiểm tra xem bạn có sử dụng một máy thu khác nhau không, bạn có thể yêu cầu sử dụng điện trở kéo xuống cũng như đảo ngược thói quen giải mã Manchester trong phần sụn.

Mạch rút nguồn từ bus USB, vì vậy chúng tôi không yêu cầu nguồn cung cấp thêm.

Danh sách các bộ phận

Nhấp vào ngay tại đây để biết sơ đồ vị trí kích thước đầy đủ (PNG). Phong cách PCB là 100% thông qua lỗ cũng như một mặt. Sơ đồ cũng như PCB được tạo bằng Cadsoft Eagle, các phiên bản phần mềm miễn phí được cung cấp cho nhiều nền tảng. Tất cả các tệp được bao gồm trong kho lưu trữ công việc (ZIP).

Phần

Sự miêu tả

IC1.

Pic 18f2455.

28 pin .300 Ổ cắm

C1,2,3.

Tụ điện 0,1uf

C4.

Tụ điện 4.7uf

C5,6.

Tụ điện 27pf (15pf có thể tốt hơn)

D1.

1N4181 Diode.

Q1.

Pha lê 20 MHz

R1,3.

Điện trở 10k ohm.

R2.

Điện trở 330 ohm

Tsop.

TSOP1738 (lỗi thời, hãy thử TSOP1138)

USB

Cắm USB ‘B’, nữ

Ser.

.1 “Pin Header

ICSP.

.1 “Pin Header

Firmware.

Phần sụn được viết bằng C sử dụng trình biên dịch C18 thuyết trình miễn phí của Microchip. Phần sụn cũng như nguồn được bao gồm trong kho lưu trữ công việc (ZIP).

Chúng tôi đã sử dụng phiên bản 2.3 của ngăn xếp USB của Microchip để tạo một cổng nối tiếp USB bằng cách sử dụng các chiffeurs mặc định đã được cung cấp trên nhiều hệ thống. Ngăn xếp USB có các chức năng dễ dàng để liệt kê tiện ích USB cũng như truyền dữ liệu giữa tiện ích cũng như máy chủ lưu trữ. Chỉ mất một vài thay đổi mã PIN để nhận bản trình bày CDC hoạt động trên phần cứng tùy chỉnh của chúng tôi.

Việc chúng tôi thực hiện giao thức UIR / IRAN / IRA / CTINFRA / CTINFRA / Hollywood + chỉ đơn giản là đáp ứng với chữ ‘R’ với ‘OK’. Điều này nên đáp ứng các yêu cầu bắt tay của bất kỳ loại thực hiện nào của Nghị định thư này.

Chúng tôi đã chọn cụ thể giải mã RC5 (và RC5X) vì đó là một giao thức được sử dụng rộng rãi, cũng như loại điều khiển từ xa duy nhất chúng tôi phải làm việc với. Nhiều phần giải mã được thực hiện trong trình xử lý ngắt:

Việc sửa đổi tín hiệu đầu tiên kích hoạt một ngắt bắt đầu bộ hẹn giờ 889us (khoảng thời gian một nửa bit).

Trên mỗi ngắt hẹn giờ, một nửa bit mã hóa Manchester được lấy mẫu.

Mọi sự gián đoạn khác Các phép đo được so sánh, cũng như giá trị bit được tính là 0, 1 hoặc lỗi. Lỗi đặt lại định tuyến giải mã.

Ở cuối mỗi lần truyền địa chỉ cũng như các byte lệnh được giải mã, cũng như được gửi đến máy chủ với 4 byte boader (0). Chúng tôi loại bỏ bit toggle vì nó sẽ gây nhầm lẫn phần mềm PC để suy nghĩ mỗi lần nhấn khác là một mã riêng biệt. Chúng tôi nối bit bắt đầu thứ hai vào bit lệnh để tuân thủ RC5X; Điều này chỉ cần thêm 0x40 vào các mã từ xa không RC5X.

Một phiên bản chung nhiều hơn có thể được thực hiện bằng cách loại bỏ bước mã hóa Manchester (3), cũng như gửi 48 bit mẫu (tất cả 6 byte) vào máy tính.

Cài đặt bộ thu hồng ngoại USB

Hầu hết các hệ điều hành đã có tài xế hỗ trợ mộtTiện ích cổng nối tiếp ảo như người nhận. Windows XP có trình điều khiển cần thiết, tuy nhiên cần hỗ trợ từ một dữ liệu .inf để liên kết phù hợp với chúng với thiết bị của chúng tôi.

Windows sẽ hiển thị hộp thoại phần cứng mới, lần đầu tiên bạn cắm vào máy thu. Chọn để sử dụng một người lái xe tùy chỉnh cũng như hướng nó vào dữ liệu .inf có trong kho lưu trữ công việc (ZIP). Điều này liên kết tiện ích cho một người lái xe đã có trong Windows, cũng như thêm máy thu dưới dạng cổng COM. Bạn có thể kiểm tra số cổng COM trong bảng điều khiển.

Mac cũng như người dùng Linux có thể sử dụng máy thu với LIRC, tuy nhiên người dùng Windows sẽ phải đối mặt với tùy chọn Giơ dầm cũ, Phần mềm miễn phí hoặc phiên bản Phần mềm dùng thử mới, 30 ngày. Chúng tôi đã sử dụng phiên bản phần mềm miễn phí của dầm, tuy nhiên hy vọng bạn có thể đề xuất một nguồn khác, nguồn mở mà chúng tôi đã bỏ qua.

Bất kể phần mềm điều khiển phía máy tính bạn sử dụng, định cấu hình nó cho bộ thu theo kiểu UIR / IRMAN / IRA / CTINFRA / Hollywood + cũng như đi vào cổng COM hoặc địa chỉ nối tiếp được gán cho nó. Bộ thu của chúng tôi tương thích tương thích với bất kỳ loại tùy chọn giao thức nào giống như ‘ir init ir init’ cũng như ‘bỏ qua ir init in in in in in in in in in in in in in in in in in in in in in in in in IR IR IR -> ok ok. Bây giờ hãy kiểm tra máy thu cũng như thêm một từ xa theo tài liệu cho phần mềm của bạn.

Giao diện thiết bị đầu cuối thủ công cũng như gỡ lỗi

Nếu bạn gặp vấn đề với người nhận hoặc bạn chỉ tò mò, hãy thử giao tiếp nó từ một thiết bị đầu cuối nối tiếp. Chúng tôi thực sự thích thiết bị đầu cuối nối tiếp trên Hercules. Đặt cổng COM phù hợp, tuy nhiên tốc độ cũng như cài đặt cấu hình bị bỏ qua bởi trình điều khiển cổng nối tiếp USB.

Một tài trợ ‘R’ sẽ kịp thời người nhận để trả lời ‘OK’. Mã RC5 được trả về dưới dạng byte thô, vì vậy hãy chắc chắn đặt thiết bị đầu cuối của bạn hiển thị các giá trị hex thay vì dịch nó dưới dạng văn bản ASCII. Byte đầu tiên là byte địa chỉ RC5 (0x1e), theo sau là byte lệnh (0x41), cũng như sau đó bốn bộ đệm 0 để tuân thủ giao thức UIR / IRAN. Hình ảnh cho thấy cái bắt tay, cũng như đầu ra của một lần nhấn ngắn trên 1.2, cũng như 3 nút.

Một tiện ích miễn phí gọi là Portmon Logs Hoạt động Cổng COM để xem xét. Điều này rất hữu ích để gián điệp các giao thức người nhận hiện có, cũng như gỡ lỗi sự tương tác của phần cứng tùy chỉnh của chúng tôi cũng như phần mềm đóng / độc quyền. Hình ảnh cho thấy dầm gửi chuỗi khởi tạo ‘IR’ (0x49,0x52), cũng như người nhận trả lời ‘OK’ (0x4f, 0x4b).

Lấy thêm nữa

Bộ thu tuân thủ RC5X của chúng tôi theo một giao thức giao diện được sử dụng rộng rãi. Có rất nhiều khả năng cho các tính năng bổ sung trong một bộ thu hồng ngoại nguồn mở:

Hỗ trợ tất cả các điều khiển từ xa thông qua một máy phát huy hiệu chung, giống như phần cứng UIR / IRAN gốc.

Thêm bộ giải mã giao thức từ xa Extra, như RC6.

Hỗ trợ nhiều giao thức giao diện có cấu hình.

Thực hiện cổng nối tiếp I / O.

Lưu trữ các tùy chọn cấu hình trong EEPROM, bao gồm giao thức, chế độ giao diện, tùy chọn thời gian, cổng nối tiếp, v.v.

Leave a Reply

Your email address will not be published. Required fields are marked *

Related Post