شاید تا کنون در انجام پروژه هایتان، لازم بوده تا مدار شما به نحوی صدا تولید کند. برای مثال خواسته باشید یک هشدار به کاربر بدید، یا یک پیام خاص مثل پایان عملیات، یا عملیات موفق و… رو به اطلاع کاربر برسانید. شاید هم گاهی خواسته باشید تا یک موزیک ساده را در حین عملیات پخش کنید. در این قسمت از پروژه های آردوینو قصد داریم تا ابتدا بر روی روش های مختلف و معمول تولید صدا در مدار مروری داشته باشیم، سپس از بین آن ها یک روش ساده و مقرون به صرفه را انتخاب می کنیم و پروژه اجرای ملودی موسیقی سوپر ماریو و چند آهنگ نوستالوژی دیگر را بوسیله آردوینو و بازر انجام میدهیم.
با این آموزش از سیسوگ همراه باشید.
روش های متداول
روش های مختلفی برای تولید صدا در مدار وجود دارد.
اولین روش این است که از ماژول های پخش کننده موسیقی استفاده کنید. مثل Df player، انواع mp3 player ها و…
این روش برای خیلی از پروژه های کوچک و ساده ارزش نداشته و هزینه زیادی به مدار اضافه میکند. مگر آنکه پخش صدا یکی از ارکان مهم کارکرد مدار شما باشد. مثل دستگاه های نوبت دهی سخنگو و …
باز اگر به دنبال روشی اقتصادیتر هستید، میتوانید از روش اتصال مستقیم SD CARD به میکرو و پخش فایل های WAV از روی آن استفاده کنید تا به آی سی دیکدر MP3 هم نیازی نداشته باشید. این روش نیز قبلا در سیسوگ آموزش داده شده است.
همین طور دیکد نرم افزاری فایل های MP3 توسط میکروکنترلر های Arm نیز قبلا در سیسوگ منتشر شده است. در این روش هم شما می بایست یک SD CARD را به مدارتان اضافه کنید.
شاید برای شما مفید باشد: همه چیز درباره دیکد نرمافزاری MP3 به کمک میکروکنترلر
اما اگر هدف شما تنها پخش یک هشدار یا اخطار ساده است و به دنبال راه حلی سادهتر و ارزانتری برای این کار بوده اید، ممکن است این مشکل را با افزودن مدارهای جانبی ساده حل کرده باشید. مثل اسیلاتورها، مدارات آی سی 555، تراشه های صوتی و …
خلاصه راههای تولید صدا در مدار بسیار زیاد هستند. اما شما باید بسته به نیازتان بهترین راه را انتخاب کنید. ما معمولا دنبال راهی هستیم که حجم مدار و هزینه نهایی آن تا حد ممکن کاهش یابد.
استفاده از بازر
شاید یکی از ساده ترین روش هایی که استفاده میشود، اضافه کردن بازر به مدار باشد. زیرا هزینه اضافه کردن مدار های جانبی را ندارد، همچنین بازر حجم زیادی را هم اشغال نمی کند. در مقایسه با بلندگو، هم حجم کمتری می گیرد و هم هزینه کمتری دارد.
ولی این روش هم معایب خاص خودش را دارد.
اگر زیاد از بازر استفاده کنید آن هم با شدت صدای بلند و ریتمی یکنواخت، ممکن است کم کم صدای جیغ بازر رو اعصاب کاربرتان برود!
شاید فکر کنید که بازر پیزوالکتریک تنها هنر ایجاد صدای بیپ را دارد و نهایت انتظاری که میتوان از آن داشت این است که برای عملیات های مختلف، ریتم خاصی را همانند کد های مورس اجرا نماید. مثل دستگاه های کارت خوان مترو و اتوبوس. اگر کارت شما به اندازه کافی شارژ داشته باشد و عملیات پرداخت با موفقیت انجام شود، ریتمی که بازر اجرا میکند، با ریتم هنگامی که کارت شما فاقد اعتبار است متفاوت می باشد.
اما بازر تنها برای جیغ کشیدن ساخته نشده و توانایی پخش محدودهی خاصی از فرکانس ها رو هم دارد. از آنجایی جایی که محدوده شنوایی انسان از 20 تا 20 کیلو هرتز می باشد، برای تست این موضوع شما میتوانید یک بازر را به آردوینو متصل کرده و با استفاده از متد tone فرکانس های مختلف را بر روی آن اجرا نمایید. نحوه عملکرد تابع tone قبلا در سایت سیسوگ آموزش داده شده است. دقت داشته باشید که بازر ها در دو نوع اکتیو و پسیو موجود هستند. تنها بازر های نوع پسیو قابلیت ایجاد صدا از خودشان دارند.
یعنی شما میتوانید بسته به نیازتان در مدار، حتی بجای بلندگو از بازر هم استفاده کنین. اما مسئلهی دیگر این است که چطور میتوان یک موزیک یا نت خاص را هم بدون اضافه کردن قطعهای مجزا اجرا کرد؟ اگر قرار باشد نت ها روی SD کارت ذخیره شوند، بهتر است از همان روش اجرای آهنگ های فرمت WAV استفاده کنید.
در پروژه ای که امروز قصد داریم آن را به شما آموزش دهیم، خوشبختانه ملودی موسیقی ها حجم زیادی نیاز ندارند و در حافظه کم میکرو بدون استفاده از اس دی کارت به راحتی جا می شوند. نت ها نیز توسط میکرو و بهوسیله تابع tone اجرا می شوند. بدینصورت شما می توانید بدون اضافه کردن هیچ مدار جانبی، قابلیت اجرا و تولید صدا را به مدارتان اضافه کنید.
نوستالوژی بازی های قدیمی
در زمان کنسولهای بازی قدیمی، مثل آتاری و میکرو، بازی ها تنها در حد چند بایت و نهایتا چند کیلو بایت بیشتر نبودند! اما در عین حال هر بازی برای خودش موزیک، داستان، مرحله، شخصیت داستانی و … داشت.
خیلی از این بازی ها در زمان خودشان غوغایی به پا کرده بودند. بعضی از آن ها هنوز هم زنده اند! مثل شخصیت محبوب و دوست داشتنی “سوپر ماریو” یا “قارچ خور” شرکت نینتندو که همچنان نسخه های مختلف آن برای موبایل، کامپیوتر و پلتفرم های مختلف عرضه می شود. شاید یکی از عوامل محبوبیت این بازی موسیقی خاص و منحصر به فرد آن باشد. واقعا شرکت های سازنده این دستگاه ها در آن زمان با استفاده از امکانات محدودشان کولاک کرده بودند! مهم ترین درسی که این بازیهای نوستالوژی به ما میدهند سادگی است! اینکه شما میتوانید تنها با چند بایت، این همه کار انجام دهید!
بازی سوپر ماریو محصول شرکت نینتندو
حتی آتاری دستی که تنها با دو باتری قلمی 1.5 ولتی کار میکرد، تم موسیقی مختص به خودش را داشت:
آتاری دستی یا Brick game
معرفی آی سی پوکی
آتاری هم یکی از کنسول های بازی مطرح دهه 1980 بود. در این دستگاه وظیفه تولید صداهای بازی به دوش آی سی به نام پوکی بود. پوکی Pot Keyboard Circuit (POKEY) یک تراشه I/O دیجیتالی است که در خانواده 8 تراشه های بیتی قرار میگیرد. صدای خیلی از بازی ها مثل Centipede ،Missile Command ،Asteroids ،Deluxe و Gauntlet توسط این تراشه تولید میشدند. پوکی علاوه بر تولید صدا، وظیفه اسکن صفحه کلیدهای ماتریسی و گیم پدها را نیز داشت.
Atari Pokey sound chip C012294B-01 IC AMI XL XE Arcade
ویژگی خیلی خوب دیگر این صداها این است که به راحتی توسط یک بازر پسیو هم قابل پخش هستند و شما مجبور به استفاده از بلندگو نیستید.
برای تولید این صدا ها، لازم نیست برید و داخل قطعات اوراقی دنبال آی سی پوکی بگردید! میتونید با استفاده از تایمرکانتر داخلی میکروکنترلر ها و pwm آنها را تولید کنید. در این پروژه قصد داریم آهنگ سوپر ماریوی نینتندو و چند ملودی خاطره انگیز دیگر را با استفاده از آردوینو برای شما تولید کنیم.
توضیحات مربوط به برنامه
در فایل pitches.h با استفاده از دستور define# فرکانس نت های موسیقی برای آردوینو تعریف شده است. 89 نت در این فایل تعریف شده اند.
برای نمونه:
1 2 3 4 | #define NOTE_B0 31 #define NOTE_C1 33 #define NOTE_CS1 35 #define NOTE_D1 37 |
فایل بعدی برنامه مربوط به تم های موسیقی است.
درون فایل themes.h پنج آهنگ ذخیره شده است. برای هر آهنگ، یک ملودی یا نت به همراه تمپو یا مدت زمان آن بصورت آرایه ذخیره شده است.
ملودی های موجود در این فایل:
1- ‘Super Mario Main Theme’
2- ‘Super Mario underworld’
3- ‘Pirates Theme’
4- ‘CrazyFrog Theme’
5- ‘Titanic Theme’
اسامی ملودی ها به فارسی:
1- سوپر ماریو – تم اصلی
2- سوپر ماریو – زیرزمین
3- تم دزدان دریایی کاراییب
4- کریزی فراگ یا قورباغه احمق
5- ملودی کشتی تایتانیک
در فایل اصلی برنامه با نام music_player.ino متدی با امضای void sing(int s) تعریف شده است که ورودی آن از 1 تا 5 است و اگر شما آن را در برنامه اصلی صدا بزنید، یکی از پنج ملودی نام برده شده در بالا را برای شما پخش می کند. میتوانید یک ال ای دی به پایه شماره 13 آردونو متصل کنید. هنگام اجرای نت ها، این ال ای دی روشن می شود و حالت رقص نور به خود میگیرد. البته این پایه به ال ای دی داخلی خود آردوینو نیز متصل هست.
پایه های 2 تا 6 آردوینو بصورت ورودی تعریف شده اند و هر کدام اگر برای لحظه ای به زمین متصل شوند، یکی از پنج ملودی اجرا می شود. شما تنها کافیست پس از بستن مدار، فایل برنامه را با توجه به مدل آردوینو خود کامپایل کرده و روی آن آپلود کنید.
خروجی صدا پایهی شماره 8 آردوینو است که با استفاده از pwm صوت را تولید می کند. شما میتوانید خروجی را به یک بازر پسیو بدید. اما بلندگو 8 اهم و هر بلندگوی با امپدانس کم را هیچ وقت مستقیما به پایه خروجی متصل نکنید. چون امپدانس کم باعث می شود جریان زیادی از میکروکنترلر کشیده شود و به آن آسیب برساند. برای اتصال بلندگو به میکرو از یک مدار آمپلی فایر با امپدانس ورودی بالا استفاده کنید.
مدار آمپلی فایر صوتی با آی سی tda2822
TDA2822 یک تقویت کننده دوکاناله (استریو) است که در پروژه های کوچکی مثل واکمن و سمعک بکار رفته است. این تقویت کننده میتواند تا۲۵۰ میلی وات در خروجی توان دهد. برای این پروژه، ما این آمپلی فایر را به شما توصیه می کنیم:
کارکرد این مدار تست شده است. تغذیه مدار از 3 تا 9 ولت با جریان ماکسیمم 500 میلی آمپر است. بلندگوی شماره یک مربوط به ورودی Rin و بلندگو شماره دو مربوط به ورودی Lin می باشد. در این پروژه شما تنها به یک کانال احتیاج دارید.
شماتیک مدار اجرای ملودی بوسیله پیزوالکتریک (بازر) و آردوینو
کدها و فایل آردوینو پروژه بصورت رایگان در انتهای مطلب قابل دانلود می باشد.
درون IDE آردوینو نیز مثال خیلی ساده ای از تولید صدا قرار داده شده که از مسیر زیر می توانید آن را اجرا کنید:
File->Examples->Digital->toneMelody
در این اسکچ خروجی پایه 8 آردوینو است. هرچند، در توضیح های این اسکچ نوشته شده که یک بلندگو 8 اهم را به این پایه متصل کنید، اما همانند مدار بالا خروجی را نباید با امپدانس پایین به زمین متصل کرد.
خب شاید بپرسید که اجرای اینگونه ملودی ها دیگر امروزه به چه درد پروژه های مهم و بزرگ ما میخورند؟
این یک مثال عملی از نحوه ایجاد آهنگ های دیجیتالی با استفاده از یک کنترلر 8 بیتی بود که شامل نت و تمپو برای هر آهنگ بود. شما با ساختن نت ها و تمپو های مختلف میتونید بی نهایت افکت صوتی بسازید.
در خیلی از دستگاه های پرکاربرد امروزی مثل بعضی از دستگاههای پوز بانکی، تلفن ها، فکس ها، دستگاه های پزشکی و … از همین ایده خلاقانه برای تولید افکت های صوتی استفاده شده و کلی در هزینه ساختشان صرفه جویی شده است. صداهای تولید شده هم متناسب با عملیات انجام شده جالب هستند.
نت های لازم برای پخش
اگر نت نویسی بلند نباشم، نت های لازم برای پخش را از کجا بیاوریم؟
کد هایی که در این مدار اجرا کردید، از شیت پیانو (piano sheet music) تبدیل شده اند. با جستجو در اینترنت میتوانید نت موسیقی های مختلف را پیدا کنید.
اگر علم نت خوانی ندارید و فرصت یادگیری آنرا هم ندارید، از یک دوست و یا همکاری که نت خوانی میداند، کمک بگیرید.
نرم افزار هایی وجود دارند که شما با استفاده از آن میتوانید برخی از آهنگها را به نت تبدیل کنید.
از افکت بازی های کنسولی قدیمی، مثل آتاری و نینتندو ایده بگیرید. با جستجو در اینترنت میتوانید این صداهای نستالوژی را پیدا کنید. همینطور شبیه ساز های آتاری، آتاری دستی (RETRO)، سگا و میکرو برای کامپیوتر و موبایل در اینترنت موجود هستند. مراحل مختلف بازی های معروفی مثل سوپرماریو، دانکی کونگ و… افکت های جالبی دارند.
در خیلی از تلفن ها، فکس ها، دستگاه های پوزبانکی، دستگاه های پزشکی و … این صدا ها بکار رفته اند. میتوانید از آنها هم ایده بگیرید.
در سایت ها و فروم های قدیمی نت هایی برای گوشی نوکیا وجود دارد. می توانید با توجه به نحوه کد گذاری آنها، برای کار خودتان تبدیل کنید.
نت های مختلف درون فایل pitches.h ذخیره شدهاند. آنها را با آردوینو اجرا کنید. با شنیدن و کنار هم قرار دادن آن ها ممکن است ایدهای برای تم موسیقی اختصاصیتان کشف کنید!
مقاله بالا صرفا تجارب شخصی در فرآیند انتخاب روش های ایجاد صدا در یک پروژه الکترونیکی بود که مطمئنا با ذکر نظرات و تجربه بقیه دوستان این مطلب میتواند کاملتر و بهتر شود.
لینکهای دانلود
اسم فایل
- arduino_music_player.zip
سلام من توی سایت های مختلف رفتم الان میخوام صدای کلیک کردن یا یکسری افکت های خاص با بازر توی پروژه ام بزارم ولی سرچ کردم tone generator چیزی که موزیک آپلود کنم و فرکانس بهم بده پیدا نکردم چجوری میتونم این کار بکنم ؟
سلام من پروژه راه اندازی کردم فقط میخواستم به جای button از adc پتانسیومتر استفاده کنم و مقادیر مختلف ترک عوض بشه این کار تونستم انجام بدم اما باز بدون چزخش پتانسیومتر هم برنامه کار میکنه و نمیخوام اینجوری باشه و اینکه چجوری کاری کنم که هر وقت کاربر pot چرخوند بشه ترک عوض بشه به زمان توجه نکنه ؟!
با یه مقابسه ساده بین مقدار قبلی و مقدار جدید می تونید انجامش بدید
با سلام . تشکر بابت اموزشتون
پخش ملودی به چه صورته
با pwm و فرکانس ثابت و دیوتی سایکل متغیر؟
یا
فرکانس متغیر با دیوتی سایکل پنجاه درصد ؟
فرکانس مهمه اون اون داره عوض میشه دوست عزیز
اجراش کردم چقدر باحاله اهنگ های هشت بیت کلا نستالوژی ان و خیلی حس خاصی داره سیسوگ رو به خاطر همین دست مطالبش خیلی دوست دارم ? خروجی رو وصل کنید به یه اسپیکر که باش و ساب ووفر قوی داره قشنگ میشه مث خود همون آتاری!
بله، با اسپیکر های قویتر کیفیت بیشتری داره و خیلی باحالتر میشه!
خواهش میکنم، شما محبت دارید!
سلام وقت بخیر و خسته نباشید
من چطور میتونم شدت صدا (منظورم بلندی صدا) رو کنترل کنم؟ فرکانس های مختلف و ملودی خودم رو تولید کردم ولی صداش خیلی زیاد است. از مدل 5 ولت استفاده میکنم و 5 ولت هم به بازر وصل کرده ام.
درود بر شما.
در کد آردوینو که قرار داده شده، کد توسط تایمر ساخته نشده و با صفر و یک کردن پایه GPIO فرکانس صوتی تشکیل میشود. میتوانید از راههای مختلفی امتحان کنید. برای مثال تابع analogWrite() آردوینو، با استفاده از PWM ولتاژ آنالوگ تولید میکند، میتوانید با کمی خلاقیت ترکیب آن و کد فعلی را تست کنید. (البته تست نکردهام. در صورت لزوم از قطعات دیگری مثل خازن، مقاومت و دیود نیز استفاده کنید.)
سلام من چطوری میتونم کتابخانه هارا اضافه کنم
درود بر شما.
موقعی که فایل آردوینو پروژه ما را باز میکنید، احتمالاً آردوینو شما یک پیام میدهد و پروژه را به فولدر جدیدی درون همان فولدر منتقل میکند.
هر جا که فایل آردوینو شما قرار داشت، دو فایل دیگر را نیز کنار آن منتقل کنید، اگر باز هم شناسایی نشد، در نرم افزار آردوینو، منوی sketch گزینه add file… را بزنید و هر دو فایل را نیز به پروژه اضافه کنید.
سلام وقت بخیر
اگر بخواهیم یک سنسور پخش موزیک به صندلی کودک وصل کنیم که وقتی کودک میشینه موزیک پخش شود وقتی پا میشه موزیک قطع بشه آیا امکانش هست و از چه روشی باید استفاده کنم؟
درود بر شما.
بله، کار نشد نداره!
سنسور ها و کلید های مختلفی هم براش وجود داره، بسته به نوع پروژه میتونید از انواع سوئیچ ها (مثلا میکرو سوئیچ بادی و…) استفاده کنید.
اینکه تو چه حالتی پخش کنه، قطع بشه و… همگی حالات منطقی هستند که هم با برنامه نویسی، هم با مدارات منطقی به راحتی قابل پیاده سازی هستند.
اما خوب دیگه جزئیات دیگش رو خودتون باید با توجه به نیازتون تحقیق کنید و بهترین رو انتخاب کنید.
سلام
لطفا کتابخانه های مورد نیاز این پروژه رو به مطلب اضافه کنید هرچی گشتم پیدا نمیکنم
سلام دوست عزیز – من الان فایل ها رو چک کردم کتابخانه های لازم همراه پروژه هست
سلام ممنون خیلی عالی بود
سلام. خدا قوت.
اگر خیلی فنی نبود ولی قطعا خیلی خاطره انگیز و یادآوری آن خیلی لذت بخش بود.
دو مسئله برای من بود:
1- این پروژه را چطور می تونم در خود avr مثلا مگا 8 اجرا کنم؟
2- این آی سی که گفتید رو من خیلی بررسی کردم. ولی در بردهای آتاری ندیدم. چون من در حال تحقیق و شبیه سازی دستگاه آتاری هستم. در برد یک قطعه c011903 TIA می باشد. که کار تبدیل خروجی تصویر را انجام می دهد. دو قطعه دیگر هم یکی پردازنده زد 80 و دیگری هم که رم است. رام هم که داخل کارتیج قرار دارد. می خواستم اگه ممکن است نقشه شما را هم ببینم.
با تشکر. اگر در این پروژه شبیه سازی معماری کامپیوتر با آتاری (ساخت سخت افزاری آتاری) می تونید کمکی بکنید سپاسگذار خواهم بود
سلام.
ممنون.
میدانید که در این برنامه برای هر ملودی، دو آرایه وجود دارد. یکی برای نت (فرکانس) و یکی برای مدت زمان (تمپو) هر نت. نتها توسط تابع tone اجرا میشوند. این تابع درواقع با استفاده از PWM صوت را ایجاد می کند. شما می بایست برای دیگر میکرو ها تابع tone را بگونه پیاده سازی کنید تا فرکانس مورد نظر شما را با PWM اجرا کند. در متن لینکی به نحوه عملکرد تابع tone داده ام، لطفا آن را نیز مطالعه بفرمایید. در مورد مدت زمان اجرای هر فرکانس هم دقت داشته باشید که هنگام اجرا عدد 1000 تقسیم بر تمپو شده است. مثال خود آردوینو را از مسیری که دادم اجرا کنید، کد سادهتری نسبت به این پروژه دارد. همین طور روش های مختلفی وجود دارد که شما از همان کد آردوینو برای میکروکنترلر های مختلف خروجی hex بگیرید و روی آنها بریزید.
اما در مورد سوال دومتون، این آی سی داخل آتاری 7800 وجود دارد. معمولا اکثر آی سی های این آتاری ها مختص همین کار ساخته شدهاند و قابل برنامه ریزی مجدد نیستند. این هم از نقشههای آتاری 7800:
bit.ly/2rA6pta
bit.ly/32KTmC6
قبلا هم یک نرم افزار برای اجرای آتاری در ویندوز دیدم، جالب اینجا بود که این نرم افزار شبیه ساز (سیمولاتور) نبود، در واقع تقلید کننده (امولاتور) بود و همان فایل های آتاری را اجرا میکرد.
امیدوارم موفق باشید.
تشکر از پاسخ شما.
در زمینه طراحی سخت افزاری کامپیوتر پایه مانند آتاری هم اگر اطلاعات بیشتری داشتید اگر مکاتبه کنید سپاسگذار خواهم بود.
سلام.
فکر میکنم این مقاله از سیسوگ برای شما بتونه مفید باشه:
https://sisoog.com/2020/01/%d8%b3%d8%a7%d8%ae%d8%aa-%da%a9%d9%86%d8%b3%d9%88%d9%84-%d8%a8%d8%a7%d8%b2%db%8c-%d8%a8%d9%87-%d9%88%d8%b3%db%8c%d9%84%d9%87-%d8%a2%d8%b1%d8%af%d9%88%db%8c%d9%86%d9%88-%d9%88-%d8%ae%d8%b1%d9%88%d8%ac/
برادر پروژهگذاشتن بااردیوینو برای بچه های الکترونیک هیچ فایده نداره شما باید سعی کنید همه ءروژه ها را با میکروهای شرکت st و کامپایلرهای استاندارد انجام بدهید
دوست عزیز، همان طور که در متن هم اشاره شد، این یک مثال عملی از نحوه ایجاد آهنگ های دیجیتالی با استفاده از یک کنترلر 8 بیتی بود. از آردوینو برای سادگی مطلب استفاده شده است. کدهای آردوینو قابلیت تعمیم برای میکروکنترلر های دیگر را نیز دارند. ضمن اینکه اگر شما لطفا مطلب “آردوینو خوب، بد، زشت ! همه چیز درباره آردوینو” را از سیسوگ مطالعه بفرمایید، متوجه می شوید که آردوینو هم وسیله ای غیر الکترونیک نیست!
https://sisoog.com/2019/08/29/%d8%a2%d8%b1%d8%af%d9%88%db%8c%d9%86%d9%88-%d8%ae%d9%88%d8%a8-%d8%a8%d8%af-%d8%b2%d8%b4%d8%aa-%d9%87%d9%85%d9%87-%da%86%db%8c%d8%b2-%d8%af%d8%b1%d8%a8%d8%a7%d8%b1%d9%87-%d8%a2%d8%b1%d8%af%d9%88%db%8c/
اتفاقا خیلی خوب بود
مسیر اجرا پروژه برای من مشخص شد
حالا میتونم برای هر نوع میکرویی پیاده سازی کنم
سلام.
آقا مهدی فرمودید کامپایر استاندارد، اتفاقا آردوینو از کامپایلر استاندارد و متن باز GCC استفاده میکنه.
خط های آخر این مطلب رو بخونید:
https://sisoog.com/2017/05/%da%a9%d8%a7%d9%85%d9%be%d8%a7%db%8c%d9%84%d8%b1-codevisionavr-%d8%af%d8%b1-%d9%85%d9%82%d8%a7%d8%a8%d9%84-gcc/
بله دقیقا درست میگید :))
ممنون برای توضیحتون – آردوینو از GCC استفاده میکنه