Mục lục:

Công nghệ cho ông của bạn: 13 bước (có hình ảnh)
Công nghệ cho ông của bạn: 13 bước (có hình ảnh)

Video: Công nghệ cho ông của bạn: 13 bước (có hình ảnh)

Video: Công nghệ cho ông của bạn: 13 bước (có hình ảnh)
Video: Xây dần ước mơ "Bảo Tàng Tiền Tệ" 🏛 2024, Tháng mười một
Anonim
Image
Image

Đã bao nhiêu lần bạn đến nhà ông bà để nhờ giải quyết một “vấn đề công nghệ” mà cuối cùng là cáp nguồn không được cắm vào, điều khiển từ xa hết pin hoặc không thể chuyển nguồn trên TV của họ? Tôi biết rằng đối với tôi, điều này xảy ra khá thường xuyên. Mặc dù hầu hết các vấn đề của họ có thể được giải quyết bằng cách đơn giản là chạy đến cửa hàng để mua một số AA mới, nhưng đôi khi họ có thể hưởng lợi từ một giải pháp tùy chỉnh hơn.

Ví dụ: ông của bạn gái tôi có một chiếc tivi mới và chúng tôi đã cố gắng dạy ông ấy cách thay đổi nguồn để ông ấy có thể chuyển đổi giữa DVD và TV - nhưng ông ấy không thể tìm ra. Anh ấy cũng đang phải đối mặt với việc thị lực kém và không quá quan tâm đến việc cố gắng ghi nhớ các quy trình phức tạp, anh ấy chỉ muốn xem các chương trình của mình khi anh ấy muốn. Sau khi cố gắng bình tĩnh giải thích các bước trong chuyến thăm cuối cùng của chúng tôi mà không đạt được nhiều thành công, tôi quyết định sẽ chỉ làm cho anh ấy điều khiển từ xa hai nút đơn giản của riêng anh ấy. Điều này sẽ cho phép anh ấy thay đổi nguồn đầu vào trên TV của mình một cách dễ dàng, dễ dàng chuyển đổi giữa các đĩa DVD Matlock yêu thích của anh ấy và Price is Right.

Bước 1: Vật liệu

  • PhidgetIR
  • PhidgetSBC4 (hoặc bất kỳ máy tính bảng đơn nào như Raspberry Pi)
  • Sắt hàn
  • Máy cắt bên
  • Dụng cụ cắt dây
  • Dây nhảy
  • Cáp USB
  • Cáp Phidget
  • Bao vây
  • Tiêu đề xuyên lỗ
  • Ống co nhiệt

Bước 2: Lập kế hoạch

In 3D
In 3D

Để tạo ra điều khiển từ xa, tôi cần khả năng gửi lệnh hồng ngoại (CIR) của người tiêu dùng tới TV. Tôi quyết định sử dụng PhigetIR cho nhiệm vụ này. PhidgetIR là một thiết bị được điều khiển bằng USB có khả năng gửi và nhận các lệnh CIR. Tôi chọn cái này vì một vài lý do:

  • Tôi muốn hoàn thành dự án này càng sớm càng tốt và đưa nó vào sử dụng, vì vậy ý nghĩ phá bỏ máy hiện sóng và breadboard của tôi không hấp dẫn. Ngoài ra, khả năng mạch hàn tay của tôi vẫn hoạt động trong một hoặc hai năm là bao nhiêu?
  • PhidgetIR có khả năng “học” các lệnh CIR làm cho việc phát triển trở nên cực kỳ đơn giản.
  • Bạn có thể sử dụng hầu hết mọi ngôn ngữ lập trình chính thống với PhidgetIR. Điều này có nghĩa là tôi có thể sử dụng Java và hoàn thành mọi việc nhanh chóng.
  • Cuối cùng, tôi làm việc cho Phidgets, vì vậy tôi cảm thấy thoải mái với API và luôn có các thiết bị dự phòng đặt xung quanh.

Bởi vì tôi đã chọn sử dụng PhidgetIR, tôi cần một máy tính để chạy nó. Tôi muốn dự án này trở thành một ứng dụng độc lập, giống như một chiếc điều khiển từ xa thông thường, vì vậy máy tính để bàn hoặc máy tính xách tay đã ra đời. Tôi chọn sử dụng PhidgetSBC4 (máy tính một bo mạch chạy Debian Linux), vì nó cho phép tôi giao tiếp với cả hai nút nhấn mà không cần bất kỳ phần cứng bổ sung nào. Đơn giản là chúng có thể được kết nối trực tiếp với VINT Hub tích hợp sẵn. Lưu ý: bạn cũng có thể sử dụng Raspberry Pi cho dự án này. Cuối cùng, ngoài âm thanh về mặt chức năng, tôi muốn dự án này trông tuyệt vời, vì vậy tôi quyết định rằng cần phải có một bao vây in 3D.

Bước 3: In 3D

In 3D
In 3D
In 3D
In 3D

Đối với dự án này, Geomagic đã được sử dụng để tạo mô hình cho bao vây. Có các tệp bước 3D có sẵn cho cả PhidgetIR và PhidgetSBC4 giúp đơn giản hóa quy trình. Một số quyết định đã được đưa ra trong bước này liên quan đến kích thước và chức năng của bao vây:

  • PhidgetIR có hai đèn LED hồng ngoại cần hướng về phía TV để gửi lệnh. Thay vì thiết kế vỏ bọc xung quanh bảng PhidgetIR, các đèn LED hồng ngoại có thể được khử nước và dán vào các lỗ ở mặt bên của vỏ bọc. Sau đó, bảng PhidgetIR có thể được gắn cách xa đèn LED, tận dụng không gian trống.
  • Các đầu nối VINT Hub trên PhidgetSBC4 có thể được uốn cong lên trên, điều này vẫn cho phép truy cập vào các kết nối nút bấm và cũng sẽ tránh phải tạo một vỏ bọc lớn hơn.

Tôi cũng quyết định thêm nhãn cho các nút và nhãn cho biết hướng mà nó phải đối mặt để các đèn LED hồng ngoại được hướng đúng hướng. Tôi đã in cục bộ vỏ ngoài bằng nhựa ABS màu đen.

Bước 4: Lắp ráp - Tháo các đèn LED

Lắp ráp - Loại bỏ các đèn LED
Lắp ráp - Loại bỏ các đèn LED
Lắp ráp - Loại bỏ các đèn LED
Lắp ráp - Loại bỏ các đèn LED
Lắp ráp - Loại bỏ các đèn LED
Lắp ráp - Loại bỏ các đèn LED

Các đèn LED hồng ngoại cuối cùng sẽ được dán vào các lỗ ở mặt bên của vỏ máy. Điều này có nghĩa là trước tiên chúng cần được giải mã.

Bước 5: Lắp ráp - Thêm thông qua lỗ tiêu đề

Assembly - Thêm thông qua lỗ tiêu đề
Assembly - Thêm thông qua lỗ tiêu đề
Assembly - Thêm thông qua lỗ tiêu đề
Assembly - Thêm thông qua lỗ tiêu đề

Tiếp theo, các tiêu đề xuyên lỗ đã được thêm vào vị trí của đèn LED, giúp chúng dễ dàng kết nối với dây nhảy 4 chân. Sử dụng ống co nhiệt để tránh tiếp xúc ngẫu nhiên.

Bước 6: Lắp ráp - Gắn đèn LED

Lắp ráp - Gắn đèn LED
Lắp ráp - Gắn đèn LED
Lắp ráp - Gắn đèn LED
Lắp ráp - Gắn đèn LED

Dán các đèn LED vào mặt bên của vỏ máy.

Bước 7: Lắp ráp - Đính kèm PhidgetIR

Assembly - Đính kèm PhidgetIR
Assembly - Đính kèm PhidgetIR
Assembly - Đính kèm PhidgetIR
Assembly - Đính kèm PhidgetIR
Assembly - Đính kèm PhidgetIR
Assembly - Đính kèm PhidgetIR

Gắn PhidgetIR vào vỏ và kết nối các đèn LED.

Bước 8: Lắp ráp - Thêm các nút

Assembly - Thêm các nút
Assembly - Thêm các nút
Assembly - Thêm các nút
Assembly - Thêm các nút
Assembly - Thêm các nút
Assembly - Thêm các nút

Các nút nhấn cần được kết nối với VINT Hub tích hợp trên PhidgetSBC, vì vậy tôi đã cắt một nửa Cáp Phidget và hàn các đầu vào các nút. Lưu ý rằng chỉ yêu cầu dây trắng (tín hiệu) và đen (nối đất).

Bước 9: Lắp ráp - Kết hợp mọi thứ lại với nhau

Assembly - Kết hợp mọi thứ lại với nhau
Assembly - Kết hợp mọi thứ lại với nhau
Assembly - Kết hợp mọi thứ lại với nhau
Assembly - Kết hợp mọi thứ lại với nhau

Một số quản lý cáp được yêu cầu để kết hợp mọi thứ với nhau, tuy nhiên, vỏ bọc hoạt động tốt.

Bước 10: Phần mềm - Mã

Chỉ có một tệp Java duy nhất được yêu cầu cho dự án này mà bạn có thể tìm thấy tại đây. Chương trình sử dụng một đối tượng PhidgetIR và hai đối tượng DigitalInput. Bạn có thể tạo các đối tượng này như thế này:

PhidgetIR ir = new PhidgetIR ();

DigitalInput tvButton = new DigitalInput (); DigitalInput otherButton = new DigitalInput ();

Các đối tượng Đầu vào kỹ thuật số được ánh xạ tới một nút bấm vật lý trên VINT Hub. Các sự kiện đính kèm, tách, lỗi và thay đổi trạng thái cũng được đăng ký với:

tv.setIsHubPortDevice (true);

tvButton.setHubPort (4); tvButton.addAttachListener (onAttachListener); tvButton.addDetachListener (onDetachListener); tvButton.addErrorListener (onErrorListener); tvButton.addStateChangeListener (onStateChangeListener); tvButton.open (); otherButton.setIsHubPortDevice (true); otherButton.setHubPort (5); otherButton.addAttachListener (onAttachListener); otherButton.addDetachListener (onDetachListener); otherButton.addErrorListener (onErrorListener); otherButton.addStateChangeListener (onStateChangeListener); otherButton.open ();

Trình nghe thay đổi trạng thái được đề cập ở trên trông giống như sau:

privatestatic DigitalInputStateChangeListener onStateChangeListener = new DigitalInputStateChangeListener () {@ OverridepublicvoidonStateChange (DigitalInputStateChangeEvent disce) {

DigitalInput ch = (DigitalInput) disce.getSource (); hãy thử {if (ch.getHubPort () == 4 && disce.getState () == true) {tvButtonActiised = true;} if (ch.getHubPort () == 5 && disce.getState () == true) {otherButtonActiised = true;}} catch (PhidgetException ex) {System.out.println ("Lỗi:" + ex.getDescription ());}}};

Khi một nút được kích hoạt, mã sự kiện sẽ thực thi và thiết lập một cờ. Các cờ này sẽ được tham chiếu và đặt lại trong vòng lặp chính. Vòng lặp chính chỉ đơn giản là đợi sự thay đổi trong trạng thái nút và sau đó gửi các lệnh IR bằng cách sử dụng hàm truyền có sẵn từ API PhidgetIR.

while (true) {if (tvButtonActiised) {

tvButtonActiised = false; Log.log (LogLevel. INFO, "THAY ĐỔI NGUỒN - TV"); ir.transmit (sourceButtonString, codeInfo); Thread.sleep (500); ir.transmit (rightButtonString, codeInfo); Thread.sleep (500); ir.transmit (enterButtonString, codeInfo);} if (otherButtonActiised) {otherButtonActiised = false; Log.log (LogLevel. INFO, "THAY ĐỔI NGUỒN - DVD"); ir.transmit (sourceButtonString, codeInfo); Thread.sleep (500); ir.transmit (leftButtonString, codeInfo); Thread.sleep (500); ir.transmit (enterButtonString, codeInfo);} Thread.sleep (250);}

Bước 11: Phần mềm - Lệnh CIR

Phần mềm - Lệnh CIR
Phần mềm - Lệnh CIR

Dưới đây là một ví dụ về cách tạo một lệnh (lệnh tăng âm lượng trong trường hợp này):

// Mã IR

IRCodeInfo sourceButtonCI = new IRCodeInfo (); String volumeUp = "77e1d0f0"; // Thiết lập nút nguồn sourceButtonCI.bitCount = 32; sourceButtonCI.encoding = IRCodeEncoding. SPACE; sourceButtonCI.gap = 108921; sourceButtonCI.trail = 549; sourceButtonCI.zero = newint [2]; sourceButtonCI.zero [0] = 549; sourceButtonCI.zero [1] = 627; sourceButtonCI.one = newint [2]; sourceButtonCI.one [0] = 549; sourceButtonCI.one [1] = 1755; sourceButtonCI.header = newint [2]; sourceButtonCI.header [0] = 9084; sourceButtonCI.header [1] = 4600; sourceButtonCI.repeat = newint [3]; sourceButtonCI.repeat [0] = 9084; sourceButtonCI.repeat [1] = 2308; sourceButtonCI.repeat [2] = 549; sourceButtonCI.length = IRCodeLength. CONSTANT;

Để lấy thông tin cho lệnh này, tôi chỉ cần sử dụng ví dụ PhidgetIR đi kèm với các thư viện Phidget. Sau khi hướng điều khiển từ xa về phía PhidgetIR và giữ nút tăng âm lượng, IR “học” mã và điền vào ví dụ. Thông tin này sau đó có thể được sao chép vào mã một cách đơn giản.

Bước 12: Chạy chương trình

Tệp Java có thể được viết và biên dịch trên một máy tính bên ngoài. Đặt PhidgetRemote.java và phidget22.jar trong cùng một thư mục và chạy lệnh sau:

Windowsjavac -classpath.; Phidget22.jar PhidgetRemote.java

macOS / Linuxjavac -classpath.: phidget22.jar PhidgetRemote.java

Sau khi biên dịch, hãy sao chép các tệp lớp đã tạo vào PhidgetSBC4 và định cấu hình nó để chạy khi khởi động.

Bước 13: Kết quả

Khi tôi đưa điều khiển từ xa cho ông của bạn gái và chỉ cho ông ấy cách sử dụng nó, ông ấy đã rất ngạc nhiên về sự đơn giản của nó. Hãy xem video để xem nó hoạt động như thế nào!

Cuộc thi điều khiển từ xa 2017
Cuộc thi điều khiển từ xa 2017
Cuộc thi điều khiển từ xa 2017
Cuộc thi điều khiển từ xa 2017

Giải Ba cuộc thi Điều khiển từ xa năm 2017

Đề xuất: