فهرست مطالب:
- مرحله 1: سیم کشی
- مرحله 2: نویز صاف
- مرحله 3: جلوه های استفاده از نویز صاف
- مرحله 4: جلوه های شیب تصادفی
- مرحله 5: نتیجه نهایی
![Arduino TFT Rainbow Noise Display: 5 مرحله Arduino TFT Rainbow Noise Display: 5 مرحله](https://i.howwhatproduce.com/images/002/image-5791-17-j.webp)
تصویری: Arduino TFT Rainbow Noise Display: 5 مرحله
![تصویری: Arduino TFT Rainbow Noise Display: 5 مرحله تصویری: Arduino TFT Rainbow Noise Display: 5 مرحله](https://i.ytimg.com/vi/_JVoRhuBCfM/hqdefault.jpg)
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:55
![Image Image](https://i.howwhatproduce.com/images/002/image-5791-19-j.webp)
![](https://i.ytimg.com/vi/i3QHqFayM3w/hqdefault.jpg)
![اثرات با استفاده از صدای صاف اثرات با استفاده از صدای صاف](https://i.howwhatproduce.com/images/002/image-5791-20-j.webp)
ما این پروژه رنگین کمان را با استفاده از تکنیک های مختلف "سر و صدا" ایجاد کردیم که جلوه های تصادفی کنترل شده را ایجاد می کند. با افزودن مقداری رنگ می توان جلوه رنگین کمان ایجاد کرد. از آردوینو نانو و صفحه نمایش 128x128 OLED استفاده می کند. ما جلوه ها را با استفاده از کتابخانه TFT نمایش دادیم. ما همچنین از برخی اجزای متفرقه مانند تخته نان و چند سیم استفاده کردیم.
مرحله 1: سیم کشی
اساسی ترین کار سیم کشی OLED به آردوینو بود. ما GND و VCC را به اتوبوس های مربوطه روی تخته نان متصل کردیم. SCL به پین دیجیتال 13 ؛ SDA به پین دیجیتال 11 ؛ RES به پین دیجیتال 8 ؛ DC به پین دیجیتال 9 ؛ CS به پین دیجیتال 10 و در نهایت BL تا 3.3V در آردوینو. با استفاده از پین های 5v و GND از آردوینو ، توانستیم تمام تخته نان را تغذیه کنیم.
مرحله 2: نویز صاف
پس از آماده سازی الزامات برای صفحه نمایش TFT. برای ایجاد جلوه صاف صاف ، ابتدا به یک تابع نویز اساسی نیاز داشتیم. این مقدار نسبتاً تصادفی بین 0 و 1 را بر اساس مقادیر x و y ارسال می کند. توجه به این نکته ضروری است که رایانه هرگز نمی تواند یک نتیجه واقعی تصادفی ایجاد کند ، و این تصادفی بودن فقط با تغییر تعداد تا آنجا که ممکن است به دست می آید. ، از این رو اعداد بسیار بزرگ در معادله.
نویز شناور (int x ، int y) {int n؛ n = x + y * 57 ؛ n += (n << 13] ^ n ؛ بازگشت (1.0 - ((n * ((n * n * 15731) + 789221) + 1376312589) & 0x7fffffff) / 1073741824.0) ؛ }
سپس نویز را با عملکرد دیگر "صاف" می کنیم. این امر با تولید مقداری نه تنها بر اساس حاصل از مختصات منتقل شده به تابع ، بلکه مختصات اطراف نیز حاصل می شود. در نتیجه ، مختصات نزدیک به یکدیگر مقدار مشابهی را تولید می کنند.
float smoothNoise (float x، float y) {float fractX = x - (int) x؛ Float fractY = y - (int) y ؛ int x1 = ((int) (x) + noiseWidth)٪ noiseWidth؛ int y1 = ((int) (y) + noiseHeight)٪ noiseHeight؛ int x2 = (x1 + noiseWidth - 1)٪ noiseWidth؛ int y2 = (y1 + noiseHeight - 1)٪ noiseHeight؛ مقدار شناور = 0.0f ؛ مقدار += فراتکس * فراکتي * سر و صدا (x1 ، y1) ؛ مقدار += (1 - فراتکس) * سر و صدا فراکتی * (x2 ، y1) ؛ مقدار += fractX * (1 - fractY) * سر و صدا (x1 ، y2) ؛ مقدار += (1 - fractX) * (1 - فراکتای) * سر و صدا (x2 ، y2) ؛ ارزش بازگشتی ؛ }
مرحله 3: جلوه های استفاده از نویز صاف
![اثرات با استفاده از صدای صاف اثرات با استفاده از صدای صاف](https://i.howwhatproduce.com/images/002/image-5791-21-j.webp)
با این کار ما دو جلوه ایجاد کردیم. برای انجام این کار ، ما هر پیکسل را در OLED حلقه کردیم و بر اساس مختصات x و y این پیکسل ها ، مقدار نویز تصادفی گرفتیم. اولین اثر ما با استفاده از مقدار تولید شده برای انتخاب رنگ ، و پیکسل را با رنگ فوق الذکر رنگ آمیزی کردیم. اثر دوم به روش مشابهی تولید شد ، اما ما همچنین رنگ را در مقدار نویز ایجاد شده ضرب کردیم. این به الگو جلوه ای سایه دار تر داد. کد مورد استفاده در زیر نشان داده شده است:
void Noise2n3 (bool Noisy) {for (int y = 0؛ y <noiseHeight؛ y ++) {for (int x = 0؛ x 8) absNoise = 8؛ if (Noisy) setNoisyColour (رنگها [absNoise] ، سر و صدا) ؛ else setBlockColour (رنگها [absNoise]) ؛ TFTscreen.point (x ، y) ؛ }}} void setNoisyColour (رنگ رنگ ، نویز شناور) {TFTscreen.stroke (colour.red * noise، colour.green * noise، colour.blue * noise) ؛ } void setBlockColour (رنگ رنگ) {TFTscreen.stroke (colour.red ، colour.green ، colour.blue) ؛ }
مرحله 4: جلوه های شیب تصادفی
![جلوه های شیب تصادفی جلوه های شیب تصادفی](https://i.howwhatproduce.com/images/002/image-5791-22-j.webp)
![جلوه های شیب تصادفی جلوه های شیب تصادفی](https://i.howwhatproduce.com/images/002/image-5791-23-j.webp)
![جلوه های شیب تصادفی جلوه های شیب تصادفی](https://i.howwhatproduce.com/images/002/image-5791-24-j.webp)
دو اثر وجود دارد که یک شیب تصادفی تولید می کند. اولین اثر پیکسل ها را در ارتباط با رنگ rgb آنها قرار می دهد و به آرامی یک الگوی گرادیان را به صفحه نمایش می دهد. دومی از پیکسل های رنگی مشابه اول استفاده می کند ، اما آنها را در یک ترتیب ثابت قرار می دهد و یک شیب مورب در امتداد صفحه ایجاد می کند.
در اینجا اولین مورد (بر اساس رنگ ها) آمده است:
void Noise1 () {for (int z = 0؛ z <3؛ z ++) {TFTscreen.background (0، 0، 0)؛ int CurrentColour [3] [3] = {{64 ، 35 ، 26} ، {24 ، 64 ، 34} ، {20 ، 18 ، 64}} ؛ R = CurrentColour [z] [0] ؛ G = CurrentColour [z] [1] ؛ B = CurrentColour [z] [2] ؛ برای (int x = 0 ؛ x <128؛ x ++) {برای (int y = 0 ؛ y <128؛ y ++) {int R_Lower = R - ((x+y) / 4) ؛ اگر (R_Lower = 255) {R_Higher = 254 ؛ } int R_Offset = تصادفی (R_Lower ، R_Higher) ؛ int G_Lower = G - ((x + y) / 4) ؛ اگر (G_Lower = 255) {G_Higher = 254 ؛ } int G_Offset = تصادفی (G_Lower ، G_Higher) ؛ int B_Lower = B - ((x + y) / 4) ؛ if (B_Lower <1) {B_Lower = 0؛ } int B_Higher = B + ((x + y) / 4) ؛ if (B_Higher> = 255) {B_Higher = 254 ؛ } int B_Offset = تصادفی (B_Lower ، B_Higher) ؛ int mult = 2؛ اگر (z == 1) mult = 1 ؛ TFTscreen.stroke (R_Offset * mult ، G_Offset * mult ، B_Offset * mult) ؛ TFTscreen.point ((R_Offset * (B_Offset / 32)) ، (G_Offset * (B_Offset / 32))) ؛ TFTscreen.point ((G_Offset * (B_Offset / 32)) ، (R_Offset * (B_Offset / 32))) ؛ TFTscreen.point ((B_Offset * (G_Offset / 32)) ، (R_Offset * (G_Offset / 32))) ؛ }}}}
و دوم (اثر منظم تر):
void Noise4 () {for (int z = 0؛ z <3؛ z ++) {TFTscreen.background (0، 0، 0)؛ int CurrentColour [3] [3] = {{64 ، 35 ، 26} ، {24 ، 64 ، 34} ، {20 ، 18 ، 64}} ؛ R = CurrentColour [z] [0] ؛ G = CurrentColour [z] [1] ؛ B = CurrentColour [z] [2] ؛ برای (int x = 0 ؛ x <128؛ x ++) {برای (int y = 0 ؛ y <128؛ y ++) {int R_Lower = R - ((x+y) / 4) ؛ اگر (R_Lower = 255) {R_Higher = 254 ؛ } int R_Offset = تصادفی (R_Lower ، R_Higher) ؛ int G_Lower = G - ((x + y) / 4) ؛ اگر (G_Lower = 255) {G_Higher = 254 ؛ } int G_Offset = تصادفی (G_Lower ، G_Higher) ؛ int B_Lower = B - ((x + y) / 4) ؛ if (B_Lower <1) {B_Lower = 0؛ } int B_Higher = B + ((x + y) / 4) ؛ if (B_Higher> = 255) {B_Higher = 254 ؛ } int B_Offset = تصادفی (B_Lower ، B_Higher) ؛ int mult = 2؛ اگر (z == 1) mult = 1 ؛ TFTscreen.stroke (R_Offset * mult ، G_Offset * mult ، B_Offset * mult) ؛ TFTscreen.point (x ، y) ؛ }}}}
مرحله 5: نتیجه نهایی
در پایان ، ما این جلوه ها را به نوعی "نمایش اسلاید" رنگین کمان ترکیب کردیم. برای دستیابی به این هدف ، ما به سادگی هر تابع را پس از دیگری در حلقه while فراخوانی می کنیم:
در حالی که (درست) {Noise2n3 (false) ؛ Noise2n3 (درست) ؛ TFTscreen.background (0 ، 0 ، 0) ؛ سر و صدا 1 ()؛ سر و صدا 4 ()؛ }
توصیه شده:
Noise ~ Rompler / Cicada ~: 6 مرحله
![Noise ~ Rompler / Cicada ~: 6 مرحله Noise ~ Rompler / Cicada ~: 6 مرحله](https://i.howwhatproduce.com/images/005/image-14069-j.webp)
Noise ~ Rompler / Cicada ~:
Usare Un Display Grande a 4 Cifre 8886 Display Con Wemos ESP8266 Arduino NodeMCU: 6 مرحله
![Usare Un Display Grande a 4 Cifre 8886 Display Con Wemos ESP8266 Arduino NodeMCU: 6 مرحله Usare Un Display Grande a 4 Cifre 8886 Display Con Wemos ESP8266 Arduino NodeMCU: 6 مرحله](https://i.howwhatproduce.com/images/007/image-18100-j.webp)
Usare Un Display Grande a 4 Cifre 8886 Display Con Wemos ESP8266 Arduino NodeMCU: Questo progetto è un semplice esempio che mostra come kolegare un display del tipo 8886 -Display e، per comodità nostra، un Wemos D1 - ma potrebbe essere un Arduino o un N o qualsiasi altro microcontrollore che state usando per un progetto.Esi
Noise Traffic Light - DIY 3D Printed: 8 Step (with Pictures)
![Noise Traffic Light - DIY 3D Printed: 8 Step (with Pictures) Noise Traffic Light - DIY 3D Printed: 8 Step (with Pictures)](https://i.howwhatproduce.com/images/011/image-32570-j.webp)
چراغ راهنمای نویز - چاپ سه بعدی DIY: همه مردم می خواهند در سکوت کار کنند و داشتن محیط کاری خوب مهم است. سکوت منجر به یک کار کارآمد می شود. ما این پروژه را برای رسیدن به این پیشنهاد انجام دادیم. چراغ راهنمایی سر و صدا شامل یک "چراغ راهنمایی" است که dB را کنترل می کند
Neopixel Ws2812 Rainbow LED Glow With M5stick-C - اجرای Rainbow در Neopixel Ws2812 با استفاده از M5stack M5stick C با استفاده از Arduino IDE: 5 مرحله
![Neopixel Ws2812 Rainbow LED Glow With M5stick-C - اجرای Rainbow در Neopixel Ws2812 با استفاده از M5stack M5stick C با استفاده از Arduino IDE: 5 مرحله Neopixel Ws2812 Rainbow LED Glow With M5stick-C - اجرای Rainbow در Neopixel Ws2812 با استفاده از M5stack M5stick C با استفاده از Arduino IDE: 5 مرحله](https://i.howwhatproduce.com/images/001/image-2825-28-j.webp)
Neopixel Ws2812 Rainbow LED Glow With M5stick-C | Running Rainbow on Neopixel Ws2812 با استفاده از M5stack M5stick C با استفاده از Arduino IDE: سلام بچه ها در این دستورالعمل نحوه استفاده از LED های نئوپیکسل ws2812 یا نوار led یا ماتریس led یا حلقه led با برد توسعه m5stack m5stick-C با Arduino IDE را یاد خواهیم گرفت. یک الگوی رنگین کمان با آن
نحوه ساخت ساعت بیدرنگ با استفاده از صفحه نمایش Arduino و TFT - Arduino Mega RTC با صفحه نمایش TFT 3.5 اینچی: 4 مرحله
![نحوه ساخت ساعت بیدرنگ با استفاده از صفحه نمایش Arduino و TFT - Arduino Mega RTC با صفحه نمایش TFT 3.5 اینچی: 4 مرحله نحوه ساخت ساعت بیدرنگ با استفاده از صفحه نمایش Arduino و TFT - Arduino Mega RTC با صفحه نمایش TFT 3.5 اینچی: 4 مرحله](https://i.howwhatproduce.com/images/006/image-16956-9-j.webp)
نحوه ساختن ساعت بیدرنگ با استفاده از صفحه نمایش Arduino و TFT | Arduino Mega RTC با صفحه نمایش TFT 3.5 اینچی: از کانال یوتیوب من دیدن کنید. مقدمه:- در این پست قصد دارم "ساعت واقعی" را با استفاده از LCD لمسی 3.5 اینچی TFT ، Arduino Mega بسازم. ماژول 2560 و DS3231 RTC…. قبل از شروع… ویدیو را از کانال YouTube من بررسی کنید .. توجه:- اگر از Arduin استفاده می کنید