Phyllotaxis: یک صفحه نمایش LED واکنش پذیر صوتی
آدرس مقاله: https://jagi.studio/posts/phyllotaxis/ آدرس نظرات: https://news.ycombinator.com/item?id=49880411 امتیاز: 244 # نظرات: 41
من مجذوب درک الگوهایی شدهام که از طریق کد در طبیعت ظاهر میشوند. ارتباط با الگوهای نوظهور ذاتی که در جهان وجود دارد.
فیلوتاکسی یکی از این الگوها است، شکل دوتایی مارپیچی در حال گسترش که در مرکز آفتابگردان ها، ساکولنت ها و سایر گیاهان ظاهر می شود. این کد به طرز شگفت انگیزی ساده است:
تعدادی نقطه خطی روی یک خط شعاعی یک دایره بگیرید و هر یک را با مضربی افزایشی نسبت طلایی بچرخانید.
از این یک ابر نقطهای تمیز بهوجود میآید که از قبل بسیار شبیه گل آفتابگردان است. ورونوی که آن را تسریع می کند بسیار جالب و شبیه غلاف بذر به نظر می رسد:
پس از مدتی آزمایش با این موضوع، به این فکر افتادم: اگر آن را به یک جسم فیزیکی تبدیل کنم و یک LED آدرس پذیر RGB در هر سلول قرار دهم، چه؟ نوعی ماتریس LED سلولی. من در دبیرستان یک ماتریس نئوپیکسلی مستطیل شکل ساخته بودم، اما منتظر بودم شکل جالب تری برای بعدی پیدا کنم.
من دادههای لبه سلول را از طرح پردازشی خود صادر کردم و با استفاده از کتابخانه CadQuery آن را به یک طرح پایتون وارد کردم.
کدی برای ساخت هندسه فیزیکی از داده ها نوشت:
این قطعه، پس از ساخت حجم کل تمام سلولهای voronoi ادغام شده، حجم کوچک شده هر سلول جداگانه را از کل کم میکند و سپس یک سوراخ به اندازه LED در هر کدام حک میکند. با انجام این کار برای همه سلول ها، شکل زرد زیر به دست می آید. من همچنین در این مرحله هندسه را به چهار ربع تقریبا مساوی تقسیم کردم که هر کدام روی تخت چاپگر سه بعدی من قرار می گیرند.
من فایل های STEP را صادر کردم و مقداری پردازش پست را در FreeCAD انجام دادم، سوراخ های پیچ را اضافه کردم، و یک نسخه نازک از آن ساختم که به عنوان یک صفحه با کاغذ زیر آن عمل می کرد. من کاغذ را به پایین نسخه نازک برش دادم و چسباندم و از سوراخ های پیچ برای پیچیدن آن به دیواره سلول استفاده کردم.
من اشکال را پرینت سه بعدی کردم و مقداری کاغذ شفاف پیدا کردم که نور را به خوبی پخش می کند و با نوری که از درون آن می تابد ارگانیک و بازیگوش به نظر می رسد. من عاشق ظاهر این کاغذ توت هستم، با چنین الیاف ارگانیک زیبایی.
لحیم کاری 89 ال ای دی تا حدی خسته کننده است. اما راه خود را به حالت جریان یافتم و آرامش بخش شد. من آن را به تخته قرص سیاه STM32 یدکی که در اطرافم گذاشته بودم وصل کردم و با استفاده از SPI یک درایور نئوپیکسلی نوشتم. قبلا با برخی از الگوهای آزمایش اولیه جالب بود.
من یک چارچوب طرح ساده ساختم که به من اجازه میدهد کد سایهزن به سبک پردازش برای LEDها بنویسم. با استفاده از یک جدول جستجو با موقعیت ممیز شناور برای هر LED که گویی روی دایره واحد قرار دارد، میتوانم به راحتی کدی مانند این بنویسم که شبیه یک سایهزن قطعه است:
من خیلی سریع این الگوی شعاعی را کشف کردم که بیشتر از همه از آن لذت بردم، یک موج سینوسی ضربانی که روشنایی را از مرکز به بیرون تعدیل می کند. این همان چیزی بود که من برای ویژگی اصلی طرح واکنشی صوتی که بعدا انجام دادم استفاده کردم.
آیا جالب نیست اگر بتواند بهجای نمایش الگوهای از پیش تعریفشده، بهصورت پویا به صداهای موجود در اتاق واکنش نشان دهد؟ می خواستم احساس زنده بودن و پویایی داشته باشم.
برد STM32 که آن را هدایت میکرد دارای پشتیبانی از نقطه شناور و دستورالعملهای ARM DSP بود، بنابراین من میتوانم تبدیل فوری را اجرا کنم و آنالیز صدا را انجام دهم. من یک میکروفون دیجیتال I2S به نام INMP441 را به مدار برد بردم اضافه کردم که آن را هدایت می کند.
از آنجایی که سیگنال دیجیتالی را خروجی می کند، سیم کشی آن آسان است و خطر نویز آنالوگ وجود ندارد. کتابخانه ARM CMSIS برای پردازش سیگنال صوتی و انجام برخی تجزیه و تحلیل مفید است. با مقداری کنترل افزایش خودکار و تقسیم چند باند برای تجزیه و تحلیل انرژی در فرکانسهای مختلف، پایه خوبی برای نوشتن کدهایی داشتم که به روشهای پویا به صدا واکنش نشان میدادند.
تنظیم زیاد و یک طرح بسیار آشفته با تعداد زیادی تایمر جهانی و وضعیت نامرتب این برنامه واکنشی صوتی را تولید کرد که هنوز اساس چیزی است که تا به امروز روی برد اجرا می شود. با گوش دادن به درام نئون الگوی جان هاپکینز زنده شد.
فقط چند جزئیات باقی مانده است. برای نصب به سطح محکم تری نیاز دارد. یک تخته برش بامبو پیدا کردم و آن را به صورت دایره ای درآوردم. دانه طبیعی چوب بامبو به خوبی کاغذ ارگانیک را تکمیل می کند.
من کنترلر MCU و میکروفون را در یک تخته پرف مونتاژ کرده بودم و آن را در جعبه چاپ سه بعدی با یک سوئیچ پدال گیتار روی آن قرار داده بودم. اما لوازم الکترونیکی ضعیف بودند و مستعد نویز بودند که باعث می شد LED ها هنگام حرکت جعبه سوسو بزنند. تصمیم گرفتم نحوه ساخت PCB را یاد بگیرم و به یک PCB مناسب روی برد بلکپیل و میکروفون و یک دکمه و یک مکان مناسب برای یک شیفتر سطح منطقی برای دریافت سیگنال 5 ولتی خوب از میکروکنترلر روی آوردم. به خوبی کار کرد و ساخت PCB ها کمی ساده تر از آنچه انتظار داشتم، حداقل برای این سطح از پیچیدگی بود.
من آن را در یک جشن سال نو در سال 2026 به نمایش گذاشتم و به نظر می رسید که مردم آن را دوست داشتند. حتی برخی از دوستان به من گفتند که آنها می خواهند. من برای ساختن نسخه دوم الهام گرفتم که امیدواریم مونتاژ آن آسان تر و محکم تر باشد. از آنجایی که من به تازگی طراحی PCB را یاد گرفته بودم، تصمیم گرفتم از صفحه چاپ سه بعدی برای نصب LED ها به استفاده از PCB به عنوان صفحه پشتی استفاده کنم. من شکل را کمی تغییر دادم و تقارن 5 برابری اضافه کردم، زیرا PCB ها در دسته های 5 تایی سفارش داده می شوند. به جای چهار قطعه منحصر به فرد که من آنها را به صورت سه بعدی پرینت کنم، پنج عدد از PCB یکسان را سفارش می دهم و آنها را در یک حلقه جمع می کنم.
به نظر می رسد که لحیم کاری دستی LED های نئوپیکسل با آهن لحیم کاری حتی بیشتر از یک کابوس است، زیرا لنت های نئوپیکسل های جداگانه زیر آنها قرار دارند. آنها قرار است با استفاده از روشی که PCB را گرم می کند به جای اتو لحیم شوند. این پروژه برای مدتی متوقف شد.
وقتی در تابستان 2026 در یک نشست برنامهنویسی در Recurse Center شرکت کردم، بخشهای پروژه را با خودم آوردم و دوستی که در آنجا دیدم خیلی راحتتر از من با یک ایستگاه لحیم کاری هوای گرم کار میکرد. ما موفق شدیم تمام لحیم کاری را به پایان برسانیم، و من دیواره های سلولی جدید را طراحی و پرینت سه بعدی کردم تا روی PCB ها چسبیده و آنها را به هم بچسبانم.
پس از اتمام نسخه جدید در طول گروه Recurse، تصمیم گرفتم آن را به عنوان نصب در Recurse Center بگذارم. من به ESP32 تغییر دادم، بنابراین می تواند در شبکه وای فای آنجا باشد و سیستم عامل را در Rust بازنویسی کرد. این کنترلر یک وب سایت محلی را ارائه می دهد که در آن شرکت کنندگان RC می توانند طرح ها و بازی ها را با استفاده از یک backend وب اسمبلی کوچک و حداقل API در آن آپلود کنند.
من هنوز به طور کامل از این پروژه راضی نیستم.
افراد زیادی از این موضوع ابراز خوشحالی کرده اند که من دوست دارم بتوانم تعداد بیشتری از آنها بسازم، حداقل به دوستان هدیه بدهم، اگر نه به طور گسترده تر بفروشم. اما این روند ایده آل نبوده است. لحیم کاری هر دو بار به دلایل مختلف خسته کننده بوده است. فرآیند چسباندن کاغذ دشوار است و خود کاغذ شکننده است و در صورت شکستن آن به سختی قابل تعمیر است.
من ایده هایی برای پیشرفت هایی دارم که ارزش آزمایش را دارد: انواع مختلف LED که لحیم کاری با دست آسان تر است، استفاده از مونتاژ PCB، آزمایش یک لایه اکریلیک شفاف برای محافظت از کاغذ، وصل کردن صفحات صفحه کاغذ با آهنربا. موارد بسیار زیادی که در آینده باید آزمایش شوند.
در حال حاضر، پروژه مستحق استراحت است، اما زمانی که زمان مناسب باشد، به نسخه 3 خواهد رسید!
متن اصلی (انگلیسی)
Phyllotaxis: An audio-reactive LED display
Article URL: https://jagi.studio/posts/phyllotaxis/ Comments URL: https://news.ycombinator.com/item?id=49880411 Points: 244 # Comments: 41