Ngoài hiển thị chữ viết ra màn hình LED như ở bài học trước chúng ta đã tìm hiểu, chúng ta cũng có thể lập trình cho màn hình LED của Yolo:Bit hiển thị nhiều hình ảnh vui nhộn khác nhau.
MicroPython trên Yolo:Bit đi kèm rất nhiều các hình ảnh có sẵn để sử dụng. Ví dụ để hiện ra khuôn mặt cười, bạn có thể dùng các lệnh sau:
from yolobit import * display.show(Image.HAPPY)
Cùng viết và chạy chương trình trong Thonny rồi quan sát kết quả với Yolo:Bit nhé!
Ngoài Image.HAPPY, thư viện còn hỗ trợ sẵn rất nhiều các hình ảnh khác:
Bạn hãy thử thay Image.HAPPY thành một hình ảnh khác tùy ý rồi chạy chương trình và quan sát xem chúng trông thế nào nhé!
Ngoài các hình ảnh có sẵn, bạn cũng có thể tự vẽ hình ảnh tùy ý của riêng mình. Các bước thực hiện rất đơn giản!
Bạn có thể tạo ra một hình ảnh và lưu nó lại với tên bất kỳ bằng cú pháp như dưới đây:
ten_hinh_anh = Image("xxxxx:" "xxxxx:" "xxxxx:" "xxxxx:" "xxxxx")
Các ký tự x tương ứng với các đèn LED trên Yolo:Bit, 5 dòng ứng với 5 hàng LED, theo đúng thứ tự từ trên xuống dưới, từ trái sang phải. x là 1 con số có giá trị từ 0 đến 8, lần lượt tương ứng với các màu Đen (tắt LED), Đỏ, Cam, Vàng, Xanh lá cây (lục), Xanh dương (lam), Chàm, Tím, Trắng. Cùng tìm hiểu cụ thể hơn qua ví dụ dưới đây:
from yolobit import * boat = Image("04040:" "04040:" "04040:" "11111:" "01110") display.show(boat)
Khi chạy chương trình, bạn sẽ thấy kết quả như bên dưới. Tại các vị trí có giá trị 0, đèn LED tương ứng tắt, giá trị 1 đèn LED sáng màu đỏ, giá trị 4 đèn LED sáng màu lục.
Để chương trình được ngắn gọn hơn, bạn cũng có thể viết rút gọn câu lệnh tạo hình ảnh trên 1 dòng như sau:
boat = ("04040:04040:04040:11111:01110")
Rất dễ dàng, bạn hãy thử sáng tạo thêm nhiều hình ảnh hơn cùng Yolo:Bit nhé! ^_^
Ngoài hiển thị hình ảnh, chúng ta còn có thể mở rộng để tạo ra hiệu ứng ảnh động như phim hoạt hình bằng cách hiển thị nhiều hình ảnh khác nhau liên tục, thay vì chỉ một hình.
Đầu tiên chúng ta cần tạo sẵn một danh sách (list) các hình ảnh cần hiển thị ra màn hình, mỗi hình ảnh (một thành phần của danh sách) được gọi là một phần tử của danh sách đó. Trong MicroPython, để tạo một danh sách, ta viết câu lệnh theo cú pháp:
ten_danh_sach = [phan_tu1, phan_tu2, phan_tu3,...]
Lưu ý:
shopping = ["Eggs", "Shoes", "Tomatoes"]
odds = [1, 3, 5, 7, 9, 11, 13, 15]
mixed_list = ["hello!", 10, Image.HAPPY]
Với câu lệnh display.show, ngoài việc hiện ra 1 hình ảnh như đã tìm hiểu ở phần trước, chúng ta còn có thể truyền vào 1 danh sách các hình ảnh để hiện ra lần lượt, mỗi hình cách nhau 1 khoảng thời gian được khai báo trong tham số delay là 300 milli giây (tức là 0.3 giây).
Bạn hãy thử chiếu một danh sách các hình theo ý mình, ví dụ như dưới đây:
from yolobit import * boat1 = Image("04040:04040:04040:11111:01110") boat2 = Image("00000:04040:04040:04040:11111") boat3 = Image("00000:00000:04040:04040:04040") boat4 = Image("00000:00000:00000:04040:04040") boat5 = Image("00000:00000:00000:00000:04040") boat6 = Image("00000:00000:00000:00000:00000") boats = [boat1, boat2, boat3, boat4, boat5, boat6] display.show(boats, delay = 300)
Chạy chương trình và quan sát kết quả với yolobit, bạn sẽ thấy hình ảnh hiện thị như dưới đây:
Làm hoạt hình MicroPython thật dễ phải không nào? Bạn hãy thử tạo ra các hình ảnh hoạt họa sáng tạo khác nhé.