Mục lục:

Điều khiển từ xa IR của máy tính: 4 bước
Điều khiển từ xa IR của máy tính: 4 bước

Video: Điều khiển từ xa IR của máy tính: 4 bước

Video: Điều khiển từ xa IR của máy tính: 4 bước
Video: 🔴 Arduino #10 | Remote Hồng Ngoại Kết Hợp Mắt Thu Hồng Ngoại Bật Tắt Thiết Bị Từ Xa 2024, Tháng sáu
Anonim
Điều khiển từ xa IR trên máy tính
Điều khiển từ xa IR trên máy tính

Bên cạnh rất nhiều mục đích khác, tôi đang sử dụng PC của mình làm trung tâm đa phương tiện. Có những lúc tôi đang thư giãn trên ghế sofa nghe nhạc hoặc xem phim hoặc TV và không muốn đứng dậy để điều chỉnh âm lượng hoặc thay đổi kênh truyền hình mỗi khi quảng cáo ngu ngốc xuất hiện hoặc tôi đang ngủ và ước Im lặng. Vì vậy, tôi đã quyết định làm cho PC của mình được điều khiển từ xa bằng điều khiển từ xa IR tiêu chuẩn để tôi có thể chỉ cần nhấn nút ngay lập tức thay vì lấy chuột hoặc phím tắt tiếng trên bàn phím một cách tức giận.

Dự án bao gồm một số phần:

  1. Điều khiển từ xa
  2. Phần mềm PC
  3. Mô-đun thu hồng ngoại

Bước 1: Điều khiển từ xa

Điều khiển từ xa
Điều khiển từ xa

Mục đầu tiên - điều khiển từ xa - rất nhỏ để hoàn thành. Chỉ cần sử dụng bất kỳ điều khiển IR nào mà bạn thích. Tôi đã sử dụng một cái được bán làm bộ cùng với bộ thu IR - xem hình ảnh. Lý do duy nhất tôi quyết định cho loại hình này là vì tôi đã có nó ở nhà.

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

Tôi đã tạo chương trình cho HĐH GNU / Linux chạy trong một thiết bị đầu cuối. Mã nguồn miễn phí để tải xuống / sử dụng / chia sẻ / sửa đổi. Để biên dịch mã, chỉ cần sử dụng lệnh như gcc -o remotePC remotePC.c trong terminal. Để chạy loại chương trình./remotePC.

Thông tin sau đây trong bước này được gửi đến những người quan tâm đến cách thức hoạt động của mọi thứ.

Mô tả chương trình

Trước tiên, chương trình sẽ kiểm tra xem tệp / dev / ttyACM0 hoặc ttyACM1 có tồn tại hay không. Nếu vậy, ID nhóm của tệp được chọn là khác 0. Điều này có nghĩa là cổng nối tiếp có thể được người dùng thông thường đọc và ghi vào. Hai byte có giá trị 0xAA 0x55 sau đó được ghi vào cổng để báo hiệu rằng chương trình đã sẵn sàng nhận dữ liệu. Dữ liệu đến được so sánh với các giá trị được lưu trữ. Nếu khớp được tìm thấy, hành động được xác định trước sẽ được thực hiện.

Điều khiển âm lượng

Chương trình có thể tắt / mở âm thanh, tăng / giảm mức âm lượng trên mức hệ thống. Điều này đạt được với việc sử dụng chương trình pactl. Các lệnh sau đó trông như thế này:

chuyển đổi pactl set-chìm-mute 0

pactl set-chìm-volume 0 + 10%

pactl set-chìm-volume 0 -10%

Nếu cần, hãy cài đặt các gói yêu cầu.

Điều khiển VLC Media Player

Chương trình cũng có thể bắt đầu / tạm dừng âm thanh / video và thay đổi bài hát thành trước / sau trong danh sách phát của VLC Media Player. Bus máy tính để bàn được sử dụng trong trường hợp này. Các lệnh:

dbus-send --type = method_call --dest = org.mpris. MediaPlayer2.vlc

/ org / mpris / MediaPlayer2 org.mpris. MediaPlayer2. Player. PlayPause

dbus-send --type = method_call --dest = org.mpris. MediaPlayer2.vlc

/ org / mpris / MediaPlayer2 org.mpris. MediaPlayer2. Player. Next

dbus-send --type = method_call --dest = org.mpris. MediaPlayer2.vlc

/ org / mpris / MediaPlayer2 org.mpris. MediaPlayer2. Player. Previous

Bước 3: Mô-đun bộ thu IR

Mô-đun thu IR
Mô-đun thu IR
Mô-đun thu IR
Mô-đun thu IR
Mô-đun thu IR
Mô-đun thu IR

Phần thứ ba của dự án là phần phức tạp nhất nhưng vẫn khá đơn giản. Ý tưởng là bộ thu IR sẽ xuất tín hiệu tới MCU sẽ chuyển tín hiệu đó thành số duy nhất. Số này sau đó sẽ được truyền đến PC qua USB.

Mô-đun này được thiết kế để gắn bên trong vỏ PC và được kết nối với khe cắm USB trên bo mạch chủ bằng cáp. Trong trường hợp bạn thích kết nối bên ngoài với USB, bạn sẽ phải thực hiện các điều chỉnh nhỏ.

MCU

Tôi đã xây dựng mô-đun trên vi điều khiển PIC16F1829. Việc lựa chọn MCU không quan trọng, bạn có thể sử dụng bất kỳ MCU nào khác nếu bạn có thể điều chỉnh mã nguồn. Tôi đã chọn PIC này vì hai lý do. Đầu tiên tôi có sẵn nó và thứ hai là các chân của nó đã bị hỏng một phần do sử dụng nhiều trong các dự án thử nghiệm khác nhau. Vì vậy, tôi muốn sử dụng nó trong dự án vĩnh viễn trước khi nó hoàn toàn không sử dụng được.:-)

Máy thu hồng ngoại

Phần thứ hai mà mô-đun dựa trên là bộ thu IR VS1838B - bộ thu được đề cập ở bước đầu tiên.

Bộ chuyển đổi UART / USB

Phần thứ ba là MCP2221 là bộ chuyển đổi UART / I2C / USB.

Nhiệm vụ là kết hợp 3 phần này để tạo thành mô-đun có thể nhận tín hiệu từ điều khiển từ xa IR và chuyển chúng đến PC.

Hệ thống dây điện

Trong hình đầu tiên có mạch thử nghiệm trên breadboard. Trong cái thứ hai có sơ đồ hệ thống dây điện.

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

1 pc PIC16F1829 (hoặc bất kỳ MCU nào khác)

1 pc VS1838B (hoặc bất kỳ bộ thu IR nào khác)

1 máy tính MCP2221 (hoặc bất kỳ bộ chuyển đổi UART / USB nào khác)

2 chiếc đầu cắm 4 chân

1 đầu cắm 6 chân pc

1 máy tính điện trở 100R

2 chiếc điện trở 10K

2 chiếc điện trở 330R

1 tụ điện cái 470 nF

2 chiếc tụ điện 4,7 uF

1 công tắc máy tính (tùy chọn)

Hội đồng PCB

Đặt mô-đun lại với nhau bằng cách sử dụng giản đồ. Bạn có thể sử dụng bảng phổ thông hoặc tạo PCB tùy chỉnh. Nếu trường hợp sau là trường hợp, tôi đã cung cấp các tệp KiCad trong kho lưu trữ bên dưới.

Phần sụn

Mã nguồn cho PIC được viết bằng việc sử dụng MPLAB X IDE và trình biên dịch XC8 có sẵn để tải xuống bên dưới.

Ghi chú mã nguồn

Đối với những người muốn biết chính xác những gì chương trình đang làm là những dòng sau đây.

Sau khi hoàn tất tất cả các cài đặt, đèn LED màu đỏ sẽ sáng và MCU đang đợi dữ liệu 0x55AA. Sau đó, đèn LED chuyển sang màu xanh lục và MCU bắt đầu phát hiện tín hiệu từ bộ thu IR bằng cách sử dụng các ngắt. Nó đo và ghi lại các khoảng thời gian mà tín hiệu ở mức Cao và Thấp. Thời gian này sau đó được chuyển đổi thành số 32-bit được gửi đến PC.

Mối quan hệ giữa thời gian và con số cuối cùng được đưa ra bởi giao thức NEC.

Bước 4: Cách sử dụng thiết bị

Cách sử dụng thiết bị
Cách sử dụng thiết bị
Cách sử dụng thiết bị
Cách sử dụng thiết bị
Cách sử dụng thiết bị
Cách sử dụng thiết bị

Chương trình cơ sở

Tải phần sụn lên PIC. Tôi sử dụng bộ lập trình PICkit 3.

Phần cứng

Cài đặt mô-đun bộ thu IR như trong hình:

  1. Kết nối đầu cắm USB với khe cắm USB bên trong trên bo mạch chủ bên trong vỏ máy tính bằng cáp 4 dây thích hợp hoặc cắm bên ngoài vào khe cắm USB bằng cáp USB tiêu chuẩn. Trong trường hợp thứ hai, bạn phải tự giúp mình theo một cách nào đó, ví dụ: như đã thấy trong hình thứ 3 để tạo cảm hứng.
  2. Gắn cáp nguồn 5 V tạo thành nguồn điện bên trong vỏ PC vào đầu cắm 4 chân. Hoặc cấp nguồn cho mô-đun theo cách khác trong trường hợp sử dụng bên ngoài.

Tra cứu mô tả chân cắm USB của bo mạch chủ. Tôi không chắc liệu hệ thống dây điện có tuân theo một số loại tiêu chuẩn hay không, vì vậy tốt hơn là nên chắc chắn hơn. Trong trường hợp của tôi, có hai hàng ghim với 5 chân ở hàng trên và 4 chân ở hàng dưới. Từ trái sang phải các chân là + 5 V, D-, D +, Gnd. Chân thứ 5 trong hàng đầu tiên không được kết nối. Tôi đã gắn cáp như đã thấy trong hình thứ hai.

Phần mềm

Chạy chương trình trong thiết bị đầu cuối. Nếu mọi thứ suôn sẻ, thông báo cuối cùng của chương trình là "đang chờ dữ liệu…". Bây giờ khi bạn nhấn nút trên điều khiển từ xa, mã nhận được sẽ xuất hiện trong thiết bị đầu cuối. Bằng cách này, bạn sẽ biết nút nào phát ra mã nào.

Bây giờ một số công cụ lập trình đang chờ bạn nhưng đừng lo lắng. Chỉ cần thay đổi một số thứ trong mã nguồn của chương trình để chương trình đó phản hồi với điều khiển từ xa của bạn. Mở tệp remotePC.c trong trình soạn thảo văn bản hoặc trong IDE nào đó nếu bạn thích và thay thế mã của tôi bằng mã của bạn. Chỉ cần nhấn các nút bạn định sử dụng cho từng hành động một. Chỉ cần sao chép các mã xuất hiện trong thiết bị đầu cuối và dán chúng vào mã nguồn vào nơi có hành động tương ứng.

Khi bạn hoàn tất, hãy kết thúc chương trình và biên dịch lại mã bằng lệnh gcc -o remotePC remotePC.c. Chạy lại chương trình và nó sẽ phản hồi với điều khiển từ xa của bạn kể từ bây giờ.

Tôi sử dụng cách này với các hành động được mã hóa cứng trong chương trình vì tôi thấy thật vô nghĩa khi lãng phí thời gian của mình để phát triển thêm dự án đến trạng thái có thể thêm / thay đổi mã / hành động trong môi trường đồ họa thân thiện với người dùng chẳng hạn. Nhưng nếu bạn muốn làm điều này hoặc thậm chí nhiều hơn bạn có thể.

Đề xuất: