Trong dự án xBot này, chúng ta sẽ cùng lập trình để điều khiển đèn bằng remote hồng ngoại. Cho những ai chưa biết, trên mạch điều khiển của robot xBot có tích hợp sẵn một mắt nhận tín hiệu hồng ngoại, giúp xBot có thể đọc được tín hiệu từ remote đi kèm xBot.
Hình minh họa remote hồng ngoại đi kèm xBot:
Để xBot đọc được tín hiệu, bạn cần sử dụng câu lệnh sau:
ir_rx.get_code() == IR_REMOTE_A
Câu lệnh trên trả về chuỗi tương ứng với phím được nhấn trên IR remote. Trên remote có các nút nhấn là A|B|C|D|E|F|lên|xuống|trái|phải|setup|0|1|2|3|4|5|6|7|8|9, tương ứng với các giá trị đã được khai báo sẵn trong thư viện như sau: IR_REMOTE_A, IR_REMOTE_B … IR_REMOTE_F .. IR_REMOTE_0 .. IR_REMOTE_9, IR_REMOTE_SETUP.
Các bạn có thể tìm hiểu thêm cách dùng các câu lệnh về micropython tại đây.
Trong dự án xBot này, chúng ta sẽ lập trình remote xBot để đổi màu đèn LED:
if ir_rx.get_code() == IR_REMOTE_A: led_onboard.show(1, hex_to_rgb('#ff0000')) led_onboard.show(2, hex_to_rgb('#ff0000'))
if ir_rx.get_code() == IR_REMOTE_B: led_onboard.show(1, hex_to_rgb('#00ff00')) led_onboard.show(2, hex_to_rgb('#00ff00'))
Chương trình hoàn chỉnh sẽ như sau:
from ir_receiver import *; ir_rx.start(); while True: if ir_rx.get_code() == IR_REMOTE_A: led_onboard.show(1, hex_to_rgb('#ff0000')) led_onboard.show(2, hex_to_rgb('#ff0000')) if ir_rx.get_code() == IR_REMOTE_B: led_onboard.show(1, hex_to_rgb('#00ff00')) led_onboard.show(2, hex_to_rgb('#00ff00')) ir_rx.clear_code() time.sleep(0.1)
Ta sử dụng thêm câu lệnh ir_rx.clear_code() để xóa các tín hiệu cũ khi đã nhận từ remote, tránh trùng lặp với các tín hiệu mới.
Đồng thời thêm câu lệnh time.sleep(0.1) để có khoảng thời gian delay giữa các lần lặp lại.
Sau khi chạy chương trình, bạn thử nhấn nút A và B trên remote để xem kết quả.