Giáng sinh đang tới gần, tại sao không mày mò một chút với Raspberry Pi Pico và tạo ra thứ gì đó khiến bạn bè của bạn phải trầm trồ nhỉ. Bạn sẽ thấy thật tự hào khi tự tay lắp ráp phần cứng, rồi kết hợp cùng với phần mềm để tạo ra một kiệt tác. Cảm giác đó thật tuyệt vời!
Hãy cùng tận hưởng niềm vui tuyệt vời mà bạn sẽ đạt được khi tự động hóa đèn Giáng sinh bằng cách sử dụng Raspberry Pi Pico, code MicroPython và một vài rơle.
Những thứ cần chuẩn bị
Hãy chắc chắn rằng bạn có một vài thành phần trước khi bắt đầu:
- Raspberry Pi Pico
- Máy để viết code (Raspberry Pi hoặc PC)
- Rơle 5V (Relay Module Board là một lựa chọn tốt nhờ tính đơn giản)
- Dây điện (dây điện và dây breadboard)
- Đèn Giáng sinh
- Ổ cắm điện
- Gỗ
Lắp ráp phần cứng
Trước tiên, hãy tập trung vào các kết nối giữa Relay Module Board và Raspberry Pi Pico:
- GND (rơle) kết nối với GND (Raspberry Pi Pico)
- IN1 (rơle) kết nối với GP5 (Raspberry Pi Pico)
- IN2 (rơle) kết nối với GP6 (Raspberry Pi Pico)
- IN3 (rơle) kết nối với GP14 (Raspberry Pi Pico)
- VCC (rơle) kết nối với 3V3 OUT (Raspberry Pi Pico)
Nếu không có kiến thức về điện, bạn nên nhờ bạn bè giúp đỡ. Bạn cần đấu dây rơle 5V tương tự như trong hình trên. Thiết bị đầu cuối (bên trái) đầu tiên không được sử dụng trên rơle 5V. Ngoài ra, rơle cuối cùng và ổ cắm không được kết nối với nhau.
Mỗi rơle sẽ có thể ngăn dòng điện chạy đến từng phích cắm nơi mỗi dây đèn được kết nối. Raspberry Pi Pico, thông qua code MicroPython, sẽ hướng dẫn các rơle khi bật và tắt.
Tạo code
Đầu tiên, vào kho lưu trữ GitHub để tải xuống code. Bạn có thể tải xuống file lights.py hoặc sao chép và dán code trực tiếp từ cửa sổ GitHub vào Thonny IDE của mình.
Hãy xem lại một vài đoạn code quan trọng để hiểu điều gì đang xảy ra. Khả năng nhập hàm random, machine và time/sleep làm cho dự án lập trình này thực sự đơn giản. Sau đó, tất cả những gì bạn cần làm là ánh xạ từng rơle tới chân nào đang được sử dụng:
relay1 = Pin(6, Pin.OUT) #GP6
Việc lặp lại ánh xạ này sẽ cần tiếp tục cho từng rơle mà bạn đang gán cho hàm Pin.Out (tương ứng với chân GPIO trên Raspberry Pi Pico của bạn).
Tạo một danh sách các rơle sẽ cung cấp cho bạn khả năng chọn ngẫu nhiên dải đèn nào sẽ bật và tắt:
lights_list = [relay1, relay2, relay3]
Hãy sử dụng một vòng lặp. Bạn có thể chọn phạm vi 50 (như trong code ví dụ) hoặc thoải mái tăng số lượng. Điều này sẽ hướng dẫn Raspberry Pi Pico chạy qua quy trình này suốt khoảng thời gian được xác định trong phạm vi đã đặt.
Trong vòng lặp này, bạn sẽ sử dụng random.choice, cùng với các hàm danh sách để hệ thống chọn và chọn một rơle để bật và tắt theo ý muốn.
Code ví dụ in đầu ra của (lights); tuy nhiên, điều này là không bắt buộc. Mặt khác, bạn có thể muốn giữ nó trong code cho đến khi khắc phục sự cố xong.
lights.value sẽ có hậu tố là (1) hoặc (0) tùy thuộc vào việc rơle được đặt thành mở (on) hay đóng (off). Trạng thái mở và đóng cũng có thể phụ thuộc vào cách bạn đã chọn để đấu dây các ổ cắm và rơ le.
GPI0.cleanup() sẽ xóa Raspberry Pi GPIO để đèn Giáng sinh của bạn không ở vị trí "bật" khi code Python kết thúc. Như đã nói, nhìn chung có nhiều hơn một cách để thực hiện một nhiệm vụ.
Bây giờ, đây là kết quả cuối cùng. Bạn sẽ nhận thấy tiếng tách của rơle bật và tắt ổ cắm khi vòng lặp chạy qua chức năng ngẫu nhiên hóa.
Tham khảo video sau: