Xin chào mọi người, tôi muốn chia sẻ câu chuyện nhỏ này về việc tôi tình cờ sử dụng màn hình UART cho các thiết bị cầm tay và bạn ơi, nó đã thay đổi trò chơi đối với tôi. Vài ngày trước, tôi thấy trực tuyến dự án hội chợ khoa học dành cho trẻ em này: một chiếc ESP8266 được kết nối với màn hình UART, cùng với RFID và một số ứng dụng được tạo bằng Mixly. Nó trông rất đơn giản và mát mẻ. Tôi đã truy cập vào Taobao (giống như eBay của Trung Quốc) và tìm kiếm "màn hình UART", và ồ, những thứ này bây giờ rẻ quá so với vài năm trước. Về cơ bản, chúng có cùng mức giá với những màn hình LCD điều khiển SPI cơ bản. Tôi không thể cưỡng lại – gọi ngay một cái để quậy phá.
Màn hình hiển thị UART và màn hình LCD
Hãy để tôi quay lại một chút và giải thích ý tôi khi nói màn hình UART so với màn hình LCD trần, bởi vì nếu bạn là người mới làm quen với điều này giống như tôi lúc đầu, nó có thể không nhấp chuột ngay lập tức. Màn hình hiển thị UART về cơ bản là một mô-đun LCD được đóng gói sẵn-với tất cả trình điều khiển cấp thấp-được tích hợp sẵn. Màn hình này đi kèm với phần mềm chỉnh sửa giao diện người dùng riêng của nhà sản xuất. Bạn chỉ cần kéo và thả các thành phần như hộp văn bản, nút, bộ hẹn giờ và nhãn, sau đó viết một số logic sự kiện đơn giản. Toàn bộ hoạt động với bộ vi điều khiển (MCU) của bạn qua kết nối UART nối tiếp - do đó có tên hiển thị màn hình UART. Bạn xác định một giao thức tùy chỉnh để trao đổi dữ liệu và bùng nổ, bạn đã có một giao diện lạ mắt mà không cần bỏ qua các chi tiết. Nhiều thiết bị trong số này thậm chí còn được tích hợp sẵn màn hình cảm ứng-, điều này thật tuyệt vời đối với thiết bị cầm tay.
Mặt khác, màn hình trần là màn hình LCD tiêu chuẩn của bạn – hãy nghĩ đến những màn hình cần I2C, SPI hoặc thậm chí là giao diện 8080 song song 20{6}}pin đầy đủ hoặc thiết lập RGB. Bạn phải tự mình xử lý mọi việc: làm theo giao thức của IC điều khiển để kiểm soát các pixel, thiết kế giao diện người dùng từ đầu bằng mã và quản lý tất cả thời gian cũng như làm mới với MCU của bạn. Đó là rất nhiều công việc, đòi hỏi kỹ năng lập trình vững chắc và kéo dài thời gian phát triển. Tôi đã ở đó, chỉnh sửa lại các sắp xếp hoàn hảo đến từng pixel và các hạn chế về bộ nhớ.

Để cho bạn-ví dụ thực tế, gần đây tôi đã xây dựng thiết bị đầu cuối cầm tay này bằng cách sử dụng MCU và màn hình LCD trần. Phải mất rất nhiều thời gian - chúng ta đang nói về việc điều chỉnh hàng tuần. Đoạn mã cuối cùng có hơn 800 dòng và thậm chí nó không làm được điều gì quá đặc biệt. Về cơ bản, tiện ích này là một bộ điều khiển từ xa cho đèn giao thông ở khoảng cách xa: bạn có thể đặt thời lượng màu đỏ/xanh, khoảng thời gian nhấp nháy, thời gian đèn vàng, khoảng thời gian đèn nháy màu vàng, hiển thị trạng thái thời gian thực, cài đặt đồng hồ và tất cả những thứ nhạc jazz đó. Giao tiếp được thực hiện thông qua một-mô-đun LoRa tầm xa, điều này khiến chính nó phải đau đầu hơn.
Hãy tưởng tượng thế này: tôi cúi xuống bàn, nối màn hình trần với MCU, viết trình điều khiển tùy chỉnh để vẽ các nút và văn bản. Tôi phải xử lý các thao tác nhấn phím để điều hướng, gỡ lỗi trong phần mềm và đảm bảo màn hình không nhấp nháy trong khi cập nhật. Bộ nhớ là một cơn ác mộng – đặc biệt là với phông chữ tiếng Trung, vì MCU 51 tôi đang sử dụng có RAM rất nhỏ. Cuối cùng thì nó cũng thành công, nhưng có cảm giác như mỗi bước đi đều phải phát minh lại bánh xe. Tôi thậm chí còn phải thiết kế lại bố cục PCB sau đó để làm cho nó nhỏ gọn hơn khi sử dụng trên thiết bị cầm tay. Đừng hiểu sai ý tôi, thật thỏa mãn khi nó sáng lên, nhưng anh bạn ơi, thời gian trôi đi là có thật.
Đang thử HIỂN THỊ UART
Chuyển nhanh đến ngày hôm nay – màn hình UART mới của tôi đã xuất hiện! Đó là màn hình LCD cảm ứng 2,8 inch của công ty Thâm Quyến có tên làMINH HOA.Tôi đã tải xuống phần mềm chỉnh sửa giao diện người dùng của họ, đọc lướt hướng dẫn sử dụng và bắt đầu ngay. Nó làm tôi nhớ lại những ngày xưa loay hoay với Visual Basic hoặc Delphi cho các ứng dụng trên máy tính để bàn – kéo, thả, kết nối các sự kiện, xong.
Tôi có lẽ đã dành nửa ngày để xây dựng giao diện: các nút cài đặt, trường văn bản để hiển thị trạng thái, bộ hẹn giờ cho chuỗi ánh sáng. Đã tải nó qua nối tiếp lên màn hình hiển thị UART, và trời ơi, nó đã sao chép những gì khiến tôi mất nhiều thời gian với màn hình trần. Không còn phải lo lắng về việc đẩy pixel cấp độ-thấp; màn hình xử lý tất cả những điều đó trong nội bộ. Và vì nó dựa trên UART{4}}nên việc tích hợp với MCU của tôi rất dễ dàng – chỉ cần gửi các lệnh như "cập nhật hộp văn bản có giá trị X" và nhận phản hồi. Đầu vào cảm ứng? Liền mạch. Tôi đã thử nghiệm nó với thiết lập LoRa của mình và mọi thứ đều được đồng bộ hóa mà không gặp trở ngại nào.
Hãy để tôi giải thích lý do tại sao phương pháp hiển thị màn hình UART này lại là một thành công cho việc phát triển thiết bị đầu cuối cầm tay. Trước hết, tiết kiệm thời gian: Thay vì mã hóa mọi thành phần giao diện người dùng ngay từ đầu, bạn đang sử dụng các tiện ích-được tạo sẵn. Bạn muốn có một thanh trượt để điều chỉnh thời lượng ánh sáng? Kéo nó vào, liên kết nó với một biến và xác định điều gì xảy ra khi thay đổi – như gửi gói UART đến MCU. Đôi khi phần mềm thậm chí còn tạo ra các sơ khai giao thức cho bạn.

Thứ hai, tính ổn định: Các màn hình hiển thị UART này là các mô-đun đã được-thử nghiệm tại nhà máy. Không còn phải theo đuổi các lỗi trình điều khiển khó hiểu hoặc xử lý tiếng ồn EMI làm rối loạn đường SPI của bạn. Các giao tiếp nối tiếp rất mạnh mẽ, đặc biệt nếu bạn thêm một số kiểm tra lỗi cơ bản như tổng kiểm tra. Trong dự án màn hình trần của mình, tôi thỉnh thoảng gặp trục trặc do nguồn điện dao động; với màn hình hiển thị UART thì tất cả đều được gói gọn nên đỡ đau đầu hơn.
Thứ ba, tính đơn giản của phần cứng: Ít chân hơn! UART chỉ là TX, RX và mặt đất (rõ ràng là cộng với nguồn điện). Điều đó giải phóng các chân MCU cho những thứ khác như cảm biến hoặc đài LoRa. Trong các thiết bị cầm tay, nơi không gian chật hẹp, điều này là rất lớn. Nguyên mẫu cũ của tôi có rất nhiều dây điện; cái mới với màn hình hiển thị UART sạch sẽ và nhỏ gọn.
Về mặt chi phí, như tôi đã nói, những màn hình UART này hiện ngang bằng với màn hình trần. Một vài năm trước, họ có thể phải trả giá gấp đôi hoặc hơn, nhưng việc sản xuất hàng loạt đã khiến giá thành giảm xuống. Chắc chắn, bạn bị ràng buộc trong hệ sinh thái của nhà sản xuất đối với phần mềm và thành phần giao diện người dùng, điều này có thể hạn chế việc mặc cả
Nghĩ lại dự án khoa học của đứa trẻ đó, nó hoàn toàn có ý nghĩa. Ghép nối màn hình UART với thứ gì đó như ESP8266 có nghĩa là bạn có thể tập trung vào các phần thú vị: logic, giao tiếp không dây, tích hợp ứng dụng. Không cần phải là một thuật sĩ đồ họa. Tôi đã lên ý tưởng cho thiết bị cầm tay tiếp theo của mình – có thể là một thiết bị giám sát môi trường di động có cảm biến cung cấp dữ liệu cho màn hình UART theo thời gian thực.
năng lượng nếu bạn đang mở rộng quy mô sản xuất. Nhưng đối với các nguyên mẫu, dự án theo sở thích hoặc các hoạt động nhỏ thì đó là điều-không cần phải đắn đo.
Nghĩ lại dự án khoa học của đứa trẻ đó, nó hoàn toàn có ý nghĩa. Ghép nối màn hình UART với thứ gì đó như ESP8266 có nghĩa là bạn có thể tập trung vào các phần thú vị: logic, giao tiếp không dây, tích hợp ứng dụng. Không cần phải là một thuật sĩ đồ họa. Tôi đã lên ý tưởng cho thiết bị cầm tay tiếp theo của mình – có thể là một thiết bị giám sát môi trường di động có cảm biến cung cấp dữ liệu cho màn hình UART theo thời gian thực.
Làm thế nào để chọn đúng
Nếu bạn đang cân nhắc giữa màn hình trần và màn hình UART, tôi khuyên bạn nên sử dụng UART trừ khi bạn có những yêu cầu siêu cụ thể yêu cầu toàn quyền kiểm soát. Nó biến những gì từng là khó khăn thành một thứ gì đó gần như thú vị. Thời gian phát triển? Bị chém. Sự ổn định? Đã lên. Rắc rối tổng thể? Đường xuống.
Một điều tôi nên đề cập: khi bạn lần đầu tiên bắt đầu với màn hình UART, hãy đọc kỹ tài liệu. Mỗi nhà sản xuất đều có những đặc điểm riêng – như tốc độ truyền cụ thể (tôi đặt tốc độ của tôi là 115200), định dạng lệnh hoặc cách xử lý các sự kiện chạm. Nhưng một khi bạn đã vào, mọi việc sẽ diễn ra suôn sẻ.
Trong quá trình làm lại bộ điều khiển đèn giao thông, tôi đã thêm các yếu tố thú vị hơn: thanh tiến trình cho bộ hẹn giờ, biểu tượng cho trạng thái, thậm chí là một biểu đồ đơn giản cho lịch sử tín hiệu – những thứ có thể gây khó chịu nếu hiển thị trên màn hình trần. Hỗ trợ phông chữ-có sẵn của màn hình UART giúp văn bản tiếng Trung trở nên dễ dàng, không còn phải hack phông chữ bitmap nữa.
Tóm lại, nếu bạn quan tâm đến nội dung nhúng hoặc chỉ mày mò với thiết bị cầm tay, hãy thử hiển thị màn hình UART. Nó khiến cuộc sống của tôi dễ dàng hơn và tôi cá rằng nó cũng sẽ làm điều tương tự với bạn. Hãy liên hệ với tôi trong phần nhận xét nếu bạn có thắc mắc – bạn muốn-thiết lập màn hình hiển thị UART như thế nào?
