[Arduino] Control a small LCD display using hand gestures with Python and Arduino

DIY!

Chuyện là hồi trước lướt shopee thấy có cái decor bàn làm việc trông hay hay, nên order về ngắm cho vui.

  • Nó cũng có mấy tính năng cơ bản như xem giờ, thời tiết, nhiệt độ, độ ẩm
  • Nó lại có thêm cả chức năng upload mấy ảnh gif hoặc làm thành cái slideshow ảnh mini trông cũng vui mắt
  • Và lại có cả giao diện web để cấu hình mấy cái liên quan đến hiển thị
  • Xong lại update được cả phiên bản qua cổng typeC

Nói chung giá hạt rẻ mà làm đc nhiều thứ nên tò mò “đập vỏ” nó ra xem bên trong là cái gì, thì wow!

  • Cổng nạp qua CH3340C
  • Wifi ESP8266
  • Màn hình LCD nhưng chưa xác định được chân kết nối
  • Có cả chip nhớ 4Mb luôn

Vậy là chơi arduino để nạp code mới được rồi

Lý thuyết thì ổn rồi, giờ quan trọng là đi tìm chân kết nối màn hình

Hỏi han đủ kiểu trên các group và diễn đàn, thì thấy con này là con pha kè của 1 bản xịn khác. Nhưng cũng có rất nhiều con khác pha kè y hệt, nên gần như không có source chuẩn hay là datasheet chuẩn. Cũng không có keyword gì để tìm trên github

Soi đủ chỗ cũng không tìm nổi cái mã của màn hình để xem sơ đồ chân

Dựa theo kiến thức Cấu trúc dữ liệu & Giải thuật học hồi sinh viên đó là… VÉT CẠN =)). Tôi đã thử config và vét cạn 10 chân của cái màn hình LCD để tìm các chân kết nối của nó.

Sau 1 vòng vét cạn thì thấy có cửa sáng vì tìm được chân đèn nền <3. Tưởng ngon ăn, cơ mà sau cả ngày chạy thì ko tìm nổi các chân tín hiệu còn lại

Bắt đầu chuyển sang lục lọi trên mấy trang tàu kh** thì tìm được 1 số manh mối với keyword là tên viết tắt của nó, và cũng là mã version nó hiển thị trên màn hình “SDD v2.x.x

Khá may mắn, sau 1 hồi dò thì tìm được 1 link source TQ,  đọc code thấy có vẻ giống, nhưng thiếu thư viện nên không chạy nổi

Nhưng không sao, có thêm keyword rồi, quay lại github để tìm. (Thực ra ban đầu đã tìm ra đúng tên trên github rồi nhưng tưởng nó là của bản xịn mới public nên bỏ qua 🙁 )

https://github.com/SmallDesktopDisplay-team

Dựa theo mô tả trong code và config lại chân kết nối trong Arduino thì… ơ, lên hình luôn =)) Driver màn hình: ST7789

Công việc tiếp theo thì đơn giản quá, ngồi code thôi… Và kết quả 🙂

  • Sử dụng Python để ghi nhận hành động bàn tay từ camera và phát sinh thành lệnh
  • Gửi lệnh qua websocket
  • Arduino kết nối và nhận lệnh qua websocket để chuyển trạng thái hiển thị thông tin trên màn hình

Tính ứng dụng:

  • Decor thông tin khác theo ý muốn trên bàn làm việc
  • Màn hình hiển thị nhanh thông tin giao dịch chuyển khoản
  • Màn hình hiển thị QR code động cho thanh toán theo từng giao dịch
  • Màn hình hiển thị thông tin theo dõi hệ thống/tòa nhà/…

Thực ra với nhu cầu thực tế thì có rất nhiều kit hoặc mua linh kiện về để lắp ráp. Tuy nhiên đối với mình thì cái này nó rẻ (có khi rẻ hơn cả mua rời), có case đẹp. Và quan trọng nhất là nó kích thích khám phá 🙂

Ref:

Bình luận