Trong bài viết này, chúng tôi sẽ xem xét một số hiệu ứng rất hữu ích cho nội thất có thể được tạo bằng dải LED. Chúng ta cũng sẽ nói về các thuật toán, về cách các phép tính toán học cho phép đèn LED tạo ra ảo ảnh về sự ấm áp và thoải mái, cụ thể là ngọn lửa, ngọn lửa kỹ thuật số thực sự.
Tất cả các mã nguồn sẽ được phân tích cú pháp sau này có thể tải về từ trang dự án tác giả (AlexGyver).
Đầu tiên, hãy giải quyết e thành phần. Cho chính mình tự làm làm đẹp như vậy ở nhà Các thành phần sau là bắt buộc:
- Trình điều khiển cho băng RGB;
- Băng RGB;
- Cấp nguồn 12 V cho băng RGB;
- Nano Arduin®.
Bất kỳ ai trong số bạn cũng có thể tải xuống và tải xuống chương trình cơ sở và nhận được lò sưởi kỹ thuật số của bạn. Chúng tôi sẽ điều khiển các dải LED từ vi điều khiển, trong ví dụ này Arduino Nano.
Hãy bắt đầu với thứ nguyên đơn giản nhất, bằng không - một điểm (hoặc toàn bộ băng điểm).
Đây là dải đèn LED RGB thông thường nhất, được cung cấp bởi 12V và có điều khiển ba kênh cho mỗi màu.
Sử dụng tín hiệu PWM (chúng tôi có 8 bit), bạn có thể đặt độ sáng của từng màu và nhờ đó có được 16,7 triệu màu và sắc độ. Nhưng chúng tôi quan tâm đến lửa, hay đúng hơn là bắt chước. Để mô phỏng một ngọn lửa, nó đã được quyết định làm việc trong không gian màu hsv (màu sắc, độ bão hòa, độ sáng).
3 tham số này cho phép bạn có được 255 sắc thái cơ bản, cộng với mỗi sắc thái để tạo ra 255 độ bão hòa, tức là trộn với màu trắng. Chà, thông số thứ ba là độ sáng, trong một ngôn ngữ đơn giản - hỗn hợp màu với màu đen.
Có một số thuật toán để chuyển đổi từ không gian hsv thuận tiện sang RGB, chỉ cần sử dụng một trong số chúng.
Tiếp theo, bạn cần chỉ định hành vi của đám cháy. Giả sử cường độ ngọn lửa là một đại lượng nhất định, trong giá trị tối thiểu sẽ cho đèn LED bão hòa màu đỏ và độ sáng thấp, và trong giá trị tối đa sẽ cho màu trắng vàng và màu sáng tối đa.
Để có được hiệu ứng ngọn lửa, chúng ta cần tạo ra giá trị này để tạo ra các chuyển động dao động ngẫu nhiên, các chuyển động phải ngẫu nhiên, nhưng đồng thời khá trơn tru, đó là một thứ tương tự như một ánh sáng run rẩy. Theo giá trị này, tương ứng, màu sắc và độ sáng của ngọn lửa dọc theo gradient sẽ thay đổi.
Tác giả đề xuất giải quyết vấn đề này như sau: có một thuật toán lọc rất đơn giản, chạy trung bình, biến một thay đổi mạnh về giá trị thành một quy trình trơn tru, chỉ cần một hệ số và một phép tính khá đơn giản.
Ý tưởng là thế này: cần thiết, nói 5 lần mỗi giây, để đặt vị trí ngẫu nhiên mới cho giá trị của ngọn lửa và khoảng 50 lần mỗi giây để lọc giá trị này, dần dần thay đổi nó. Kết quả là một quá trình ngẫu nhiên như vậy được hình thành.
Trong một ví dụ thực tế, mọi thứ hoạt động như dự định.
Bây giờ chúng ta cần dịch giá trị của chúng tôi thành màu của ngọn lửa theo luật đã đề cập ở trên và có được ngọn lửa một chiều.
Dải LED được lập trình theo cách này có thể được ẩn đi, ví dụ, bằng ván chân tường hoặc bằng một số phần nhô ra. Ngoài ra, một dải ruy băng như vậy có thể cung cấp ánh sáng nền, nó trông khá thú vị và bất thường.
Ngoài ra, băng có thể được gửi đến sàn từ một khoảng cách ngắn, và do đó cũng đạt được một hiệu ứng khá thú vị.
Và tất nhiên, một đoạn băng có thể được sử dụng để chiếu sáng lò sưởi hoặc mô phỏng nó. Và nếu bạn loại bỏ màu sáng từ màu vàng sang màu cam, bạn sẽ có được sự bắt chước của than hồng âm ỉ.
Vì chúng tôi có băng RGB, chúng tôi có thể tự tạo bất kỳ màu lửa nào. Bạn muốn màu xanh chết - thật dễ dàng!
Chúng tôi cần một ngọn lửa màu xanh kỳ diệu - không vấn đề gì!
Sau đó cài đặt chương trình và trình điều khiển, như được viết trong hướng dẫn trên trang dự án, tải xuống và chạy phần sụn.
Ngay từ đầu có tất cả các cài đặt cần thiết. Với sự giúp đỡ của họ, bạn hoàn toàn có thể tùy chỉnh ngọn lửa cho mình, cụ thể là: màu sắc, hành vi và những thứ tương tự.
Thật ra, đây là cách dễ nhất để tạo ra dải đèn LED đốt cháy. Bây giờ hãy xem xét các ví dụ thú vị hơn. Đối với công việc tiếp theo, bạn sẽ cần dải dẫn địa chỉ.
Băng này cho phép bạn điều khiển riêng từng đèn LED của nó và mỗi đèn bao gồm một trong 16,7 triệu màu.
Mọi thứ được kết nối rất đơn giản, theo sơ đồ này:
Không cần trình điều khiển, nhưng một điện trở được khuyến khích. Bạn có thể làm mà không có nó, nhưng có khả năng bị cháy của đèn LED đầu tiên, và nếu điều này xảy ra, thì những cái tiếp theo cũng sẽ không hoạt động.
Với chiếu sáng trực tiếp, ví dụ, từ dưới ghế sofa, bạn có được một chiếc ghế sofa địa ngục tuyệt vời với hiệu ứng của than hồng âm ỉ.
Ngoài ra, một băng như vậy có thể được đưa vào một cách thường xuyên hồ sơ ánh sáng và sử dụng như một yếu tố độc lập của nội thất.
Nó trông khá tốt, đồng ý, nhưng chúng ta vẫn cố gắng đạt được ngọn lửa cá nhân.
Chúng tôi sẽ để các thuật toán như nhau. Chúng tôi chia băng thành các vùng có độ rộng khác nhau, mỗi vùng sẽ có quy trình ngẫu nhiên riêng. Để làm cho quá trình này thậm chí giống với một ngọn lửa thực sự, chúng tôi sẽ lấp đầy các khu vực từ các cạnh đến trung tâm, tăng dần giá trị ngẫu nhiên của chúng tôi đến giá trị hiện tại của nó. Ngoài ra, trong quá trình đốt cháy thành công, kích thước của các khu vực cũng sẽ thay đổi ngẫu nhiên.
Đây là vẻ ngoài của nó:
Bây giờ chúng ta hãy xem xét một quá trình ngẫu nhiên thú vị khác gọi là tiếng ồn Perlin, mà Ken Perlin đã đưa ra vào năm 1983.
Tiếng ồn của Perlin cho phép bạn tạo phân phối độ mịn được làm mịn ngẫu nhiên theo bất kỳ số lượng kích thước nào. Bộ lọc đám mây nổi tiếng trong Photoshop là một ví dụ về nhiễu Perlin hai chiều.
Nhưng tiếng ồn ba chiều của Perlin, làm cho nó có thể tạo ra, ví dụ, phong cảnh miền núi và tạo ra nó rất ngẫu nhiên và vô tận, đồng thời thực tế mà không tạo ra tải cho các thành phần máy tính, vì thuật toán này không quá tốn kém về mặt tính toán.
Kế hoạch hành động như sau: đầu tiên, tạo vùng nhiễu Perlin hai chiều và di chuyển dọc theo nó theo một cách nhất định, quét dòng pixel và đưa nó ra đèn LED.
Thuật toán như đã đề cập ở trên không quá phức tạp và Arduino bình tĩnh đối phó với anh.Kết quả là một hiệu ứng rất tuyệt vời, mượt mà nhất có thể, ngẫu nhiên và rất giống với ngọn lửa thực sự với ánh sáng cuối.
Với ánh sáng trực tiếp, nó trông như thế này:
Nhưng tất cả những thứ này là thuật toán lửa cho một cuộn băng. Và những gì về việc dán băng theo hình zíc zắc và cố gắng tạo ra lửa hai chiều trên ma trận?
Ma trận như vậy có thể được mua từ Trung Quốc. Trên ma trận, chúng tôi đặt một bộ khuếch tán và kính được nhuộm bằng phim ô tô, đó là, đây là một màn hình độ phân giải cực thấp amolead thực sự.
Nhân tiện, nó trông khá thực tế. Xem video gốc của tác giả để biết thêm chi tiết:
Đó là tất cả. Cảm ơn bạn đã quan tâm. Hẹn gặp lại