Mục lục:
- Quân nhu
- Bước 1: Nghiên cứu khả thi (sắp xếp)
- Bước 2: Kiểm tra phần cứng
- Bước 3: Mã Arduino
- Bước 4: Mã Visual Basic
- Bước 5: Triển khai phần cứng cuối cùng
Video: Màn hình phần cứng PC: 6 bước (có hình ảnh)
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:31
Chào mọi người. Tôi bắt đầu dự án này vì hai lý do: Tôi đã xây dựng một vòng lặp tản nhiệt nước trong máy tính của mình gần đây và cần một thứ gì đó để lấp đầy một số không gian trong trường hợp một cách trực quan VÀ tôi muốn có thể kiểm tra nhiệt độ và các số liệu thống kê khác bằng cách xem nhanh mà không có những trò tai quái OSD lấp đầy góc của màn hình. Tất nhiên, có những giải pháp đã sẵn sàng cho điều đó, nhưng hầu hết chúng không phù hợp với phong thủy của tôi. Vì vậy, thay vì đặt màn hình HDMI 7 trong hộp của tôi với một sợi cáp thò ra ngoài và thanh tác vụ windows luôn bật, tôi đã quyết định chế tạo đồ chơi của riêng mình.
Vì tôi không phải là một kỹ sư cũng không phải là một lập trình viên, mà chỉ là một anh chàng có mỏ hàn và một số kiến thức tự học, nên đây sẽ không chỉ là hướng dẫn từng bước, tôi cũng sẽ cố gắng tập trung vào vấn đề giải quyết và nghiên cứu các khía cạnh đã dẫn tôi đến công trình này.
TUYÊN BỐ TỪ CHỐI TRÁCH NHIỆM: TẤT CẢ CÔNG VIỆC CỦA TÔI ĐƯỢC CHIA SẺ LÀ PHÂN PHỐI THÔNG DỤNG SÁNG TẠO-SHAREALIKE 4.0. TÔI QUÁ CẢM XÚC TỪ NHIỀU VÍ DỤ TRÊN INTERNET, NẾU BẠN NHẬN ĐƯỢC MỘT SỐ PHẦN CỦA CÔNG VIỆC NÀY LÀ CỦA BẠN, VUI LÒNG LIÊN HỆ VỚI TÔI ĐỂ ĐƯỢC PHÂN PHỐI. KHÔNG CÓ LẠM PHÁT NÀO ĐƯỢC XIN LỖI, TÔI SẼ HẠNH PHÚC SỬA BẤT KỲ LỖI NÀO. CẢM ƠN
KHUYẾN CÁO THỨ HAI: CÔNG VIỆC CỦA TÔI ĐƯỢC CHIA SẺ NHƯ HIỆN CÓ. TÔI KHÔNG CHỊU TRÁCH NHIỆM VỀ BẤT KỲ THIỆT HẠI NÀO DO VIỆC SỬ DỤNG BẤT KỲ MÃ HOẶC HƯỚNG DẪN NÀO CỦA TÔI
Quân nhu
- Arduino Nano (hoặc UNO nếu bạn muốn)
- Màn hình TFT. Trong trường hợp của tôi, đó là màn hình 3,5 "tương thích ILI9486 / ILI9488L.
- Cảm biến nhiệt độ. Trong trường hợp mu là cảm biến nhiệt độ TMP36 tương tự.
- Cáp, dây điện, đầu nối dupont (sẽ nói thêm về điều đó ở phần sau)
- (tùy chọn) Breadboard để thử nghiệm
- (tùy chọn nhưng được khuyến nghị) một bảng điều khiển nhỏ
Bước 1: Nghiên cứu khả thi (sắp xếp)
Như tôi đã nói, tôi không muốn và màn hình HDMI bị mắc kẹt trong vỏ máy tính của tôi, vì vậy, tôi đã bắt đầu tìm kiếm những ý tưởng tương tự trên internet. Và đây là mẹo số một: Google là bạn của bạn (tốt, bất kỳ công cụ tìm kiếm tốt nào…). Chúng ta đang sống trong một thế giới mà không có gì thực sự là nguyên bản nữa, nhưng thay vì nhìn cụm từ này với ý nghĩa tiêu cực, chúng ta có thể sử dụng điều này để có lợi cho mình: bất cứ thứ gì bạn muốn tạo ra, có thể ai đó ở đâu đó đã làm điều gì đó tương tự, vì vậy nếu bạn không biết cách thực hiện một ý tưởng, rất có thể bạn sẽ tìm thấy những thông tin hữu ích ngoài kia. Khi tìm kiếm trên Internet, bạn nên nhớ đến hai quy tắc:
- đừng bận tâm đến trang 3 hoặc 4 của bất kỳ tìm kiếm nào, hầu như luôn luôn lãng phí thời gian. Thay thế
- thay đổi cụm từ tìm kiếm, chỉ cần diễn đạt lại câu hỏi theo quan điểm khác (ví dụ: "cảm biến nhiệt độ arduino" -> "đọc nhiệt độ bằng arduino").
Trên thực tế, có rất nhiều dự án tốt ngoài kia, và tôi thừa nhận rằng tôi đã dành những ngày đầu tiên để nghiên cứu hầu hết các dự án này. Nhưng không ai trong số họ sẵn sàng đi tìm tôi, vì tôi muốn thứ gì đó phù hợp với nhu cầu của mình.
Vì tôi phải làm một cái gì đó tùy chỉnh, tôi quyết định tập trung vào phần cứng phù hợp để sử dụng và để lại phần mềm cho sau này, bởi vì phần mềm luôn có thể được tạo và điều chỉnh theo nhu cầu, mặt khác, tôi bị ràng buộc phải sẵn sàng sử dụng. và các tính năng.
Tôi muốn thứ gì đó dựa trên Arduino, bởi vì tôi đã có nó, nó được ghi chép đầy đủ và cộng đồng của nó đang phát triển mạnh mẽ. Không có vấn đề gì ở đây, như tôi đã nói trước rất nhiều thông tin.
Tôi muốn một màn hình đủ lớn để có thể nhìn rõ từ cách xa vài mét và phù hợp với giao diện của bản dựng của tôi, điều này đã loại trừ mọi màn hình ký tự nokia và LCD. OLED cũng nằm ngoài câu hỏi, vì chúng nhỏ. Vì vậy, tôi đã chọn màn hình màu TFT. Không cần màn hình cảm ứng, vì nó sẽ nằm bên trong PC. Tôi đã tìm thấy một cái 3,5 , đã được thiết kế cho Arduino, ~ 15 € trên Amazon. Đủ tốt.
Bây giờ, sau khi phần cứng đã được xác định chính xác, tôi tập trung vào phần mềm.
Hầu hết tất cả các dự án, phía Arduino, đều khá giống nhau. Tôi chỉ cần điều chỉnh mã cho màn hình và cho giao thức truyền thông để thu thập dữ liệu từ ứng dụng máy chủ. Về phía máy tính, hầu hết các dự án dựa trên C, C ++, C #, python và hầu hết các dự án chỉ cung cấp giao diện CLI hoặc một máy chủ giống dịch vụ Windows. Thay vào đó, tôi muốn có một GUI. Tôi chưa bao giờ sử dụng bất kỳ ngôn ngữ giống C nào trong Windows, hãy để lại một mình tòa nhà GUI. Nhưng tôi đã học một số Visual Basic 15 năm trước, vì vậy tôi đã dùng thử và tải xuống phiên bản Visual Studio miễn phí từ Microsoft.
Sau khi nghiên cứu rất nhiều dự án tương tự, tôi quyết định sử dụng OpenHardwareMonitor để lấy tất cả thông tin phần cứng và RivaTuner cho FPS, vì chúng miễn phí và có đủ tài liệu.
Bước 2: Kiểm tra phần cứng
Trước khi bật mỏ hàn và cố định vĩnh viễn trong thời gian và không gian bất kỳ linh kiện điện tử nào, bạn nên xây dựng một nguyên mẫu thử nghiệm (mẹo số hai). May mắn thay, nó không phải là năm 1995 nữa. Ngày nay khá dễ dàng để sắp xếp các nguyên mẫu khá phức tạp ngay cả trên các breadboard nhỏ. Trong trường hợp của tôi, màn hình TFT đã bị giảm sơ đồ chân cho Arduino Uno, vì vậy tôi đã thả nó trên Arduino una của mình và bắt đầu chơi với các thư viện ví dụ và đọc hướng dẫn tham khảo để hiểu các nguyên tắc hoạt động và giới hạn của nó.
Tại thời điểm này, tôi đã tìm ra cách vẽ đường thẳng và bitmap và viết văn bản, vì vậy tôi bắt đầu mày mò với mã hóa phần mềm, để lại tất cả những thứ phụ cho sau này, nhưng tôi sẽ đưa vào đây cảm biến nhiệt độ.
Tại một số thời điểm, tôi có một chỗ trống trên màn hình nhưng không có dữ liệu nào từ cảm biến PC thực sự hữu ích, vì vậy tôi quyết định đặt một cảm biến nhiệt độ bên trong vỏ máy để đo nhiệt độ môi trường xung quanh. Màn hình ăn gần như tất cả các chân Arduino, may mắn là chân analog A5 không được sử dụng, vì vậy tôi đã buộc một TMP36. Tôi thậm chí đã thử nghiệm một DHT22 nhưng nó quá mức cần thiết cho ứng dụng này.
Có rất nhiều ví dụ cho TMP36, tôi chỉ sao chép một trong những ví dụ này trong một hàm. TMP35 có 3 chân, Vin vào 5V, GND nối đất và Out vào chân A5. Tôi đã đặt một tụ gốm 0,1uF giữa Vin và GND. Họ nói rằng nó cần thiết. Có lẽ nó vô dụng trong trường hợp này, nhưng… tôi thậm chí đã đặt điện áp tham chiếu tương tự Arduino thành chân 3.3v để đọc nhiệt độ tốt hơn. Vẫn vô dụng trong trường hợp này, nhưng…
Bước 3: Mã Arduino
Vui lòng tải xuống và mở mã Arduino đi kèm để làm theo giải thích trong bước này. Tôi đã cố gắng để lại đủ ý kiến trong mã để rõ ràng mà không làm ngập nó.
Bạn chắc chắn sẽ cần MCUFRIEND_kbv và các thư viện Adafruit GFX. Cả hai đều có thể dễ dàng cài đặt từ Arduino IDE.
Chương trình có thể được chia thành các phần như sau:
- xác định và khai báo tất cả các biến toàn cục và những thứ cần thiết khác
- khởi tạo màn hình, đặt tham chiếu bên ngoài và vẽ giao diện người dùng (tất cả điều này có trong hàm setup (), vì nó chỉ phải chạy một lần)
- đọc dữ liệu từ kết nối nối tiếp và cấp phát nó trong mảng (hàm loop ())
- đọc dữ liệu cảm biến nhiệt độ bên ngoài (hàm readExtTemp ())
- in dữ liệu trên màn hình (hàm printData ())
- quay lại vòng lặp
PHẦN 1: Tuyên bố và định nghĩa
Trong phần đầu tiên của mã, tôi đã sử dụng rất nhiều con trỏ và mảng, vì vậy tôi có thể ép nhiều dòng mã lặp lại trong thời gian ngắn hơn để viết các chu kỳ FOR. Vâng, tôi lười biếng. Như bạn có thể thấy, tôi đã khai báo một mảng con trỏ và điền vào nó với tất cả các hình ảnh từ tệp pics.h. Điều này có thể thực hiện thủ thuật chu kỳ FOR để vẽ tất cả các biểu tượng.
PHẦN 2: setup (), chủ yếu là bản vẽ giao diện người dùng
Tôi đã giải quyết bằng phông chữ mặc định vì nó không có nền trong suốt, vì vậy nó cho phép viết một dòng văn bản mới trên một dòng cũ mà không cần phải xóa nó. Sử dụng một phông chữ khác có nghĩa là phải vẽ một hình vuông màu đen trên văn bản cũ trước khi viết một dòng mới, dẫn đến hiệu ứng nhấp nháy khó chịu.
Sau một số thử nghiệm, tôi đã thỏa hiệp tốt giữa khả năng đọc và thông tin hiển thị. Tôi chia màn hình thành hai cột và 5 hàng. Cột bên trái dành cho dữ liệu CPU và bo mạch chủ, bao gồm từ trên xuống dưới tên CPU, nhiệt độ, tải, mức sử dụng RAM và nhiệt độ bo mạch chủ. Cái phù hợp dành riêng cho GPU và bao gồm tên GPU, nhiệt độ, tải, bộ đếm số khung hình trên giây và cảm biến nhiệt độ bên ngoài.
Như bạn có thể thấy trong mã, tôi quyết định tránh sử dụng hình ảnh trên thẻ SD, vì nó thực sự tải rất chậm. Tôi quyết định đưa tất cả các biểu tượng vào bộ nhớ PROGMEM và vẽ các đường bằng lệnh drawLine () chuyên dụng. điều này cũng hữu ích cho các chỉnh sửa giao diện người dùng nhỏ.
Trong nỗ lực yếu ớt để tạo độ sâu cho giao diện người dùng, tôi đã vẽ hai trong số mọi thứ (đường thẳng, hình chữ nhật, hình ảnh) với các màu sắc khác nhau và với một khoảng cách nhỏ. Đáng buồn thay, nó không phải là kết quả mà tôi hy vọng, nhưng nó sẽ thành công.
Các dòng cuối cùng của hàm này là để in các trình giữ chỗ trên TFT, cho đến khi Arduino nhận được dữ liệu.
PHẦN 3: vòng lặp chính (), tìm nạp và định dạng dữ liệu
Ở đây điều kỳ diệu sẽ xảy ra: dữ liệu được nhận thông qua nối tiếp, được gán cho đúng biến và sau đó được in ra. Để đạt được tất cả những điều này với số dòng ít nhất, tôi đã sử dụng lệnh switch case và for cycle.
Giao thức giao tiếp mà tôi đi kèm được chia thành hai phần: phần thực thi ban đầu sau khi bắt tay và phần dữ liệu thực tế.
Bắt tay là cần thiết để triển khai tính năng tự động kết nối khi chương trình PC khởi động. Nó diễn ra như thế này:
- PC gửi chuỗi bắt tay (trong trường hợp này chỉ là "*****;")
- Arduino gửi lại phản hồi
Dễ như ăn bánh.
Phần dữ liệu có dạng như sau: "i: xxx, yyy, zzz, aaa,;" nghĩa là:
"i" là chỉ mục, tôi gọi nó là componentSelector trong mã. Giá trị "i" là:
- i = 0 - TÊN. Các giá trị sau là tên được hiển thị trong hàng đầu tiên trên màn hình. Điều này sẽ chỉ được gửi và in trên màn hình một lần, kể từ ngày nay, khá khó để hoán đổi CPU và GPU…
- i = 1 - DỮ LIỆU CỘT thứ nhất - các giá trị sau được hiển thị ở nửa bên trái của màn hình từ trên xuống dưới. Trong trường hợp của tôi: nhiệt độ CPU, tải CPU, sử dụng RAM, nhiệt độ bo mạch chủ.
- i = 2 - DỮ LIỆU CỘT thứ 2 - như trên, nhưng cho nửa bên phải của màn hình
- i = 3 - LỆNH IN. Trong trường hợp này, chuỗi nối tiếp thô sẽ chỉ là "3:;" vì dữ liệu khác không cần thiết.
"xxx, yyy, zzz, aaa" là các giá trị thực tế. chúng được đọc dưới dạng chuỗi bởi arduino và toàn bộ định dạng được thực hiện bởi chương trình PC. Đối với i = 0, mỗi giá trị này có 14 ký tự cho tên phần cứng. Đối với i = 1 hoặc 2, mỗi ký tự sẽ chỉ có ba ký tự, đủ để hiển thị nhiệt độ và khung hình trên giây. Tất nhiên là ":", "," và ";" các ký tự bị cấm trong các trường này.
Dấu ":" là dấu phân cách giữa componentSelector và các giá trị, dấu "," là dấu phân tách giá trị và dấu ";" là cuối dòng
Khi nhận dữ liệu, Arduino sẽ lưu nó dưới dạng chuỗi cho đến dấu ";" biểu tượng được nhận, sau đó nó sẽ tìm kiếm biểu tượng ":" và sẽ sử dụng nó để nhận giá trị componentSelecor. Điều này sẽ được sử dụng cho chức năng trường hợp chuyển đổi để chọn quy trình chính xác cần tuân theo. Nó cũng được sử dụng để chọn chỉ mục chính xác trong mảng allData.
Sau đó, Arduino sẽ tìm ký hiệu "," và sẽ tiến hành đặt các giá trị vào mảng allData.
Nếu componentSelector là 0, cờ printName sẽ được đặt thành true. Nếu componentSelector là 3, các hàm readExtTemp () và printData () được gọi.
Phần 4: Hàm readExtTemp ()
Không phải nói nhiều ở đây, nó đọc 32 lần từ chân A5 và xuất ra giá trị nhiệt độ dưới dạng một chuỗi. Tôi ở với quân Nổi dậy, vì vậy tôi sử dụng độ C. Bất kỳ điều gì lớn hơn 100 ° C đều không chính xác nên nó sẽ được hiển thị là "---" trên màn hình. Đối với bất kỳ thứ gì nhỏ hơn 100 ° C sẽ được định dạng để có đủ không gian để bao phủ không gian 3 ký tự trên màn hình. Có thể tháo và lắp lại cảm biến và không có giá trị lạ nào được hiển thị.
Phần 5: Hàm printData ()
Như mọi khi tôi vẫn sử dụng cho các chu kỳ để in tuần tự nội dung trên màn hình. Nếu cờ printNames là true, nó sẽ in tên, đặt cờ thành false và tiếp tục.
Phần 6: trở lại vòng lặp
Tự giải thích đủ rồi, tôi muốn nói…
tệp pics.h
Ở đây tôi đã lưu trữ tất cả các biểu tượng cho giao diện người dùng. Có thể sử dụng đầu đọc thẻ SD có trong màn hình, nhưng tôi còn đủ bộ nhớ trong Arduino cho các biểu tượng đen trắng của mình.
Tôi đã thiết kế chúng bằng Trình chỉnh sửa biểu tượng trẻ em vì nó miễn phí và khá tốt để vẽ pixel cho các biểu tượng nhỏ. Tôi đã phải chuyển đổi các tệp biểu tượng (được lưu dưới dạng PNG) bằng công cụ trực tuyến SKAARHOJ.
Bước 4: Mã Visual Basic
Đây là mã VB
LƯU Ý: đây là lần đầu tiên tôi chia sẻ một dự án Visual Studio. Tôi chỉ cần sao chép các thư mục dự án và nén chúng. Nếu cách này không hiệu quả, vui lòng cho tôi biết cách tốt hơn để chia sẻ loại dự án này. Cảm ơn bạn
Như tôi đã nói trước đó, tôi không thể tạo GUI bằng C # hoặc các ngôn ngữ khác, nhưng tôi đã có một số kinh nghiệm trong Visual Basic từ lâu. Tôi đã tải xuống phiên bản Cộng đồng Visual Studio (tất nhiên là miễn phí) với môi trường Visual Basic. Chà, tôi đã phải tìm ra rất nhiều thứ, như lần cuối cùng tôi sử dụng VB, đó là phiên bản 2005 hoặc tương tự… Nhưng internet có đầy những gợi ý hay, như thường lệ.
Sau khi tìm ra một số thứ về giao diện, phiên bản mới hơn thực sự dễ dàng và linh hoạt hơn phiên bản cũ.
Đối với chương trình này, tôi muốn một cái gì đó có dạng cửa sổ nhưng hoàn toàn có thể quản lý được từ biểu tượng khay hệ thống. Tôi thực sự sử dụng biểu mẫu này hầu như chỉ cho mục đích gỡ lỗi, vì tôi thích đặt các hộp văn bản và danh sách để đọc giá trị đầu ra của các hàm và một số nút lệnh để kiểm tra chúng.
Chương trình "cuối cùng" chỉ là một biểu tượng khay với menu bật lên hiển thị các điều khiển khác nhau và một biểu mẫu chính với hai hộp danh sách hiển thị dữ liệu được gửi đến Arduino.
Tôi đã triển khai chức năng tự động kết nối và chức năng "bắt đầu khi khởi động". Thêm về điều đó sau.
Chương trình chính chỉ là sự điều chỉnh của nhiều ví dụ và đoạn mã khác nhau bằng cách sử dụng thư viện OpenHardwareMonitor và thư viện Bộ nhớ dùng chung RivaTuner.
Chương trình diễn ra như thế này:
- lấy dữ liệu từ thư viện OpenHardwareMonitor và RTSSSm
- chuẩn bị và định dạng tất cả dữ liệu cho giao thức truyền thông
- gửi dữ liệu đến Arduino
- rửa sạch và lặp lại
tất nhiên tên phần cứng được đọc khi bắt đầu và chỉ được gửi một lần.
Bộ đếm FPS chỉ kích hoạt khi ứng dụng tương thích được sử dụng (ví dụ: trò chơi, chương trình tạo mô hình 3D, v.v.), nếu không, trình giữ chỗ "---" sẽ được gửi đến màn hình.
Tôi sẽ không đi sâu giải thích cách lấy các giá trị từ các thư viện, vì nó được ghi lại rất nhiều trên internet và phần nào có thể hiểu được từ mã. Chỉ muốn nói về các vấn đề khi nhiệt độ bo mạch chủ hiển thị qua thư viện OpenHardwareMonitor (từ bây giờ trở đi OHMonitor, vì tuổi thọ quá ngắn). Tôi có Asus Maximus VIII Gene MoBo, được trang bị cảm biến nhiệt độ fu ** tấn trên bo mạch chủ, nhưng OHMonitor đặt tên chúng là Cảm biến nhiệt độ # 1, # 2… #n VÀ không nơi nào được chỉ định vị trí nhiệt độ. Vì vậy, tôi đã phải cài đặt phần mềm Asus AI suite khủng khiếp, trong đó các cảm biến có ít nhất NAMES và so sánh các nhiệt độ khác nhau giữa hai chương trình. Có vẻ như cảm biến nhiệt độ chung trên bo mạch chủ của tôi là # 2 cho OHMonitor, vì vậy bạn có thể thấy trong Timer1_tick phụ bên dưới mục MoBo, tôi đã phải tìm tên cảm biến có chứa chuỗi "# 2" để đọc chính xác.
TL; DR: bạn sẽ phải chăm sóc các cảm biến nhiệt độ chính xác của bo mạch chủ cho chính mình. Phần còn lại có lẽ là tốt để đi.
Tuy nhiên, đây chỉ là Phiên bản 1, tôi đang dự định cài đặt tiện ích này trên PC khác của mình, vì vậy có thể tôi sẽ thực hiện một cách để chọn các cảm biến và thậm chí có thể thiết kế lại giao diện trên Arduino khi đang di chuyển.
Chức năng tự động kết nối
Chức năng này thực sự đơn giản: nếu PC không được kết nối với Arduino, cứ mỗi x mili giây (dựa trên Timer1), chức năng này sẽ được gọi. Nó cố gắng kết nối với mọi cổng COM trên PC, nếu thành công, nó sẽ gửi chuỗi bắt tay "*****;". Nếu câu trả lời là "R", thì thiết bị chính xác đã được kết nối và quy trình bình thường được thực hiện. Nếu không, nó sẽ thử cổng COM tiếp theo.
Như bạn có thể thấy, có rất nhiều ngoại lệ trong chức năng này. Điều này là do tôi muốn nó hoàn toàn cắm và chạy, không có đầu ra lỗi. Xử lý các trường hợp ngoại lệ, tôi đã có thể làm cho nó bỏ qua sự vắng mặt hoàn toàn của thiết bị bên ngoài và tôi thậm chí có thể cắm và cắm nóng thiết bị bất cứ khi nào tôi muốn mà không tạo ra lỗi vi phạm cho chương trình.
Chức năng Start At Boot
Tôi muốn chương trình bắt đầu khi khởi động. Bạn nói khá dễ dàng. Đặt một liên kết vào thư mục thích hợp, bạn nói. Nhưng không. Do thư viện OHMonitor và RTSS, chúng tôi cần cấp thực thi của quản trị viên để thu thập thông tin. Điều này có nghĩa là màn hình UAC cực kỳ khó chịu mỗi khi ứng dụng này được khởi chạy. Không đời nào. Vì vậy, tôi đã chuyển thể kịch bản do Matthew Wai thực hiện (liên kết tại đây) để đạt được một khởi đầu im lặng khi khởi động. Tôi vừa sao chép tập lệnh trong tệp Resources1, được chia thành nhiều phần, sau đó triển khai một chương trình con tạo (hoặc xóa) tệp tác vụ windows, được tùy chỉnh với vị trí thực thi chương trình hiện tại và những thứ tương tự.
Biểu tượng khay hệ thống
Nhờ các đối tượng NotifyIcon và ContextMenu, tôi đã có thể triển khai một cách dễ dàng và hiệu quả để kiểm soát ứng dụng. Chỉ cần nhấp chuột phải vào biểu tượng khay và menu sẽ xuất hiện. Có những loại thuốc này:
- Bắt đầu khi khởi động: bạn có thể chọn và bỏ chọn nó để bật hoặc tắt chức năng bắt đầu lúc khởi động
- Tự động kết nối: tương tự như trên, nhưng xử lý chức năng tự động kết nối
- Connect / Disconnect: nó xử lý kết nối. Không hoạt động với tính năng Tự động kết nối được bật
- Thời gian làm mới: cung cấp menu con thả xuống, bạn có thể chọn thời gian làm mới từ 1 đến 10 giây
- Maximize: mở cửa sổ chính. Tương tự như nhấp đúp vào biểu tượng
- Thoát: tự giải thích
Biên dịch phần mềm
Để biên dịch phần mềm, bạn có thể sẽ cần tải xuống và thêm tham chiếu đến các thư viện không có trong mã.
Bạn có thể tìm thấy thư viện OpenHardwareMonitor tại đây. Bạn phải tải xuống phần mềm, mở tệp zip và sao chép tệp OpenHardwareMonitorLib. DLL trong thư mục dự án.
Đây là liên kết cho thư viện RTSSharedMemoryNET, bạn phải tải xuống và biên dịch cho kiến trúc của mình, sau đó sao chép RTSS [TL; DR] moryNET. DLL trong thư mục dự án yout.
Bây giờ bạn cần thêm tham chiếu trong mã của mình, hướng dẫn tại đây
Chỉ cần đảm bảo biên dịch cả dự án máy chủ RTSS [TL; DR] moryNET và PCHwMon cho cùng một kiến trúc.
Tôi đã bao gồm một chương trình thiết lập được tạo sẵn, vì vậy bạn có thể cài đặt toàn bộ mà không cần loay hoay với Visual Basic. Nó được biên dịch cho x86, sẽ hoạt động trên cả kiến trúc x86 và x64. Nó yêu cầu. NET framework 4.7.2 để chạy.
Trong mọi trường hợp, bạn sẽ cần cài đặt RivaTuner. Bạn có thể tìm thấy nó ở đây như một ứng dụng độc lập hoặc bạn có thể cài đặt Msi Afterburner, bao gồm RTServer.
Bước 5: Triển khai phần cứng cuối cùng
Đề xuất:
Tìm hiểu cách tạo một màn hình chạy bằng pin di động cũng có thể cung cấp năng lượng cho Raspberry Pi: 8 bước (có hình ảnh)
Tìm hiểu cách tạo màn hình chạy bằng pin di động cũng có thể cấp nguồn cho Raspberry Pi: Bạn đã từng muốn viết mã python hoặc có đầu ra hiển thị cho Robot Raspberry Pi của bạn khi đang di chuyển hoặc cần một màn hình phụ di động cho máy tính xách tay của bạn hay máy ảnh? Trong dự án này, chúng tôi sẽ xây dựng một màn hình di động chạy bằng pin và
Cách xây dựng máy đo gió của riêng bạn bằng công tắc sậy, cảm biến hiệu ứng Hall và một số mẩu tin lưu niệm trên Nodemcu. - Phần 1 - Phần cứng: 8 bước (có Hình ảnh)
Cách xây dựng máy đo gió của riêng bạn bằng công tắc sậy, cảm biến hiệu ứng Hall và một số mẩu tin lưu niệm trên Nodemcu. - Phần 1 - Phần cứng: Giới thiệu Kể từ khi bắt đầu nghiên cứu về Arduino và Văn hóa nhà sản xuất, tôi đã thích tạo ra các thiết bị hữu ích bằng cách sử dụng các mảnh vụn và mảnh vụn như nắp chai, mảnh PVC, lon nước uống, v.v. Tôi rất muốn đóng góp ý kiến. cuộc sống cho bất kỳ mảnh hoặc bất kỳ người bạn đời nào
Đồng hồ kỹ thuật số & nhị phân trong 8 chữ số X 7 phân đoạn Màn hình LED: 4 bước (có hình ảnh)
Đồng hồ kỹ thuật số & nhị phân ở 8 chữ số X 7 phân đoạn Màn hình LED: Đây là phiên bản nâng cấp của tôi về Đồng hồ kỹ thuật số & Đồng hồ nhị phân sử dụng Màn hình LED 8 chữ số x 7 đoạn. Tôi muốn cung cấp các tính năng mới cho các thiết bị thông thường, đồng hồ đặc biệt và trong trường hợp này, việc sử dụng màn hình 7 Seg cho Đồng hồ nhị phân là không bình thường và nó
Chụp ảnh toàn cảnh với phần mềm miễn phí và phần cứng giá rẻ: 6 bước
Chụp ảnh toàn cảnh với phần mềm miễn phí và phần cứng giá rẻ: Ảnh toàn cảnh được sử dụng để tạo ra hình ảnh của những cảnh quá lớn để vừa với ống kính máy ảnh thông thường hoặc thậm chí quá lớn để mắt người có thể nhìn thấy cùng một lúc. Hầu hết các ảnh toàn cảnh nổi tiếng là ảnh chụp phong cảnh ngoài trời về các đặc điểm địa chất hoặc bầu trời thành phố
Ổ cứng Xbox 360 cũ + Bộ chuyển ổ cứng = Ổ cứng USB di động !: 4 bước
Ổ cứng Xbox 360 cũ + Bộ chuyển ổ cứng = Ổ cứng USB di động !: Vì vậy, … Bạn đã quyết định mua ổ cứng 120 GB cho Xbox 360 của mình. Bây giờ bạn có một ổ cứng cũ mà có thể bạn sẽ không sử dụng sử dụng nữa, cũng như một cáp vô dụng. Bạn có thể bán nó hoặc cho nó đi … hoặc sử dụng nó tốt