سلام دوستان! امیدواریم حال همگی تون عالی باشه. در این مقاله، در مورد ماژول آردوینو لئوناردو بطور مفصل صحبت خواهیم کرد. این یک برد میکروکنترلر مبتنی بر ATmega32U4 است که شامل 23 پین ورودی/خروجی دیجیتال است. این ماژول توسط Arduino.cc و با هدف ارائه رابط کاربری آسان با توانایی انجام تعدادی وظیفه بر روی یک تراشه توسعه یافته است، این ماژول موارد مورد نیاز برای راهبری اتوماسیون در پروژه مربوطه را در بر می گیرد. به سادگی می توانید این برد را با کابل USB تغذیه کنید و یا با استفاده از آداپتور DC آن را روشن کنید و شروع به کار با آن کنید. در این پست، سعی می کنیم همه موارد مربوط به آردوینو لئوناردو را پوشش دهیم. 

برای آشنایی با برنامه نویسی میکروکنترلرهای AVR به دو لینک زیر مراجعه کنید:

http://smartcomp.ir/product-4

http://smartcomp.ir/product-6

آشنایی با آردوینو لئوناردو

Arduino Leonardo یک برد میکروکنترلر است که توسط Arduino.cc توسعه یافته است. این برد مبتنی بر تراشه میکروکنترلر خانواده AVR به شماره ATmega32U4 است که دارای 23 پین ورودی/خروجی دیجیتال است و برای اتصال به دستگاه های خارجی و پیاده سازی ایده های نوآورانه شما و تبدیل آن ها به واقعیت کافی است.

میکروکنترلر روی ماژول دارای یک ارتباط USB داخلی است که شما را از استفاده از یک پردازنده ثانویه خلاص می کند. 

این ماژول از نوسان ساز کریستالی با فرکانس تا 16 مگاهرتز پشتیبانی می کند که برای تولید پالس های ساعت با سرعت مناسب مورد نیاز برای همگام سازی تمام عملیات داخلی کافی است.

هدر برنامه ریزی درون مدار به دستگاه اضافه شده است که به شما این امکان را می دهد تا کدهای از قبل نوشته شده را پس از نصب در پروژه مربوطه تغییر دهید.

این برد از پروتکل های ارتباطی رایج مانند UART، SPI و I2C پشتیبانی می کند. UART یک پروتکل ارتباطی سریال است که عمدتاً برای انتقال و دریافت داده های سریال با استفاده از دو پین به نام های TX و RX استفاده می شود.

در حالی که I2Cیک رابط دو سیمه است که شامل دو خط اصلی به نام SDA و SCL می شود که اولی خط داده سریال است که داده ها را حمل می کند و دومی خط مربوط به کلاک سریال است که برای همگام سازی تمام انتقال داده ها از طریق گذرگاه I2C استفاده می شود.

رابط جانبی سریال (SPI) سومین پروتکل ارتباطی است که بر روی برد اضافه شده است که معمولاً برای ارسال داده بین میکروکنترلرها و تجهیزات جانبی کوچک مانند سنسورها، رجیسترهای شیفت و کارت‌های SD با استفاده از خطوط کلاک و داده جداگانه، لایه‌بندی شده با یک خط انتخابی استفاده می‌شود. 

1. ویژگی های آردوینو لئوناردو

اگر قصد دارید روی پروژه مورد نظر خود کار کنید، باید ویژگی های مرسوم این ماژول را بدانید تا از هر گونه دردسری در آینده جلوگیری کنید و به شما ایده شفافی در خصوص اینکه آیا رتبه بندی ماژول کاملاً مطابق با نیازهای پروژه شما است؛ بدهد. جدول زیر ویژگی های اصلی آردوینو لئوناردو را نشان می دهد.

میکروکنترلرATmega32U4
CPU8بیتی
پایه   های دیجیتال I/O23
خروجی   PWM7
ورودی آنالوگ12
حافظه فلش (حافظه برنامه)32KB (Out of which 4 KB is used by bootloader)
SRAM2.5KB
EEPROM1KB
ولتاژ ورودی7-12v
ولتاژ کاری5v
نوسان سازحداکثر   16MHz
نرم افزار مورد استفادهArduino   Software (IDE)
دکمه ریستبلی
ICSP   هدربلی
USB   پورت1
UART   (ارتباط سریال)بلی

2. پایه های آردوینو لئوناردو

شکل زیر پایه بندی آردوینو لئوناردو را نشان می‌دهد.

جک USB، جک پاور و دکمه ریست کاملاً در یک راستا هستند و در یک طرف برد قرار گرفته اند. با این وجود، تمام اجزا و پین‌های روی برد با یک الگوی منظم طراحی شده‌اند تا یک رابط فشرده و متقارن ایجاد ‌کنند.

3. توضیحات پایه های لئوناردو آردوینو

پایه های آنالوگ

12 پین آنالوگ روی برد اضافه شده است. با توجه به ماهیت این پین ها، آنها می توانند در رنج وسیعی از مقادیر در بازه 0 تا 5 ولت استفاده شوند، در حالیکه پایه های دیجیتالی فقط برای تولید یا پذیرش مقادیر HIGH و LOW باینری طراحی شده اند. شکل زیر محل قرارگیری این پین های آنالوگ را روی برد نشان می دهد.

خروجی PWM

هفت پین PWM روی برد موجود است. اگر برد را با توجه به موقعیت جک پاور رو به بالا در نظر بگیرید، این پین ها در سمت راست برد دیده می شوند. PWM فرآیندی برای بدست آوردن نتایج آنالوگ با ابزارهای دیجیتال است. این پین ها را در شکل زیر مشاهده می کنید.

پروتکل های ارتباطی

سه پروتکل ارتباطی شامل SPI، UART و I2C روی برد تعبیه شده است. می توانید آنها را در شکل زیر مشاهده کنید. توجه به این نکته مهم است که ارتباط SPI روی پین های ورودی/خروجی دیجیتال مانند سایر بردها در دسترس نیست، بلکه در هدر ICSP همانطور که در شکل زیر نشان داده شده است قرار می گیرد.

منبع تغذیه

منابع تغذیه متفاوت برای اهداف مختلفی در دسترس هستند. به طور عمده، برد با 5 ولت کار می کند در حالی که 3.3 ولت ولتاژ کاری هر پایه است. Vin ولتاژ ورودی است که بین +7 تا +12 ولت متغیر است. این ولتاژ از منبع تغذیه بیون از ماژول می تواند تغذیه شود. دو پایه زمین GND روی برد وجود دارد. AREFیک ولتاژ مرجع آنالوگ است که عمدتاً برای پین های آنالوگ استفاده می شود. IOREF برای تامین انرژی و ایجاد سازگاری بین این برد و شیلد آردوینو Shield مفید است. هنگامی که شیلد به این پین متصل می شود، ولتاژ ورودی/خروجی ارائه شده توسط برد را نادیده می گیرد. شیلد با استفاده از پایه IOREF با هر دو ولتاژ 3 و 5 ولت سازگار خواهد بود. منبع تغذیه را در شکل زیر مشاهده می کنید.

هدر ICSP

ICPS مخفف In-Circuit Serial Programming – قابلیتی است که برای برنامه نویسی آردوینو با آردوینوهای دیگری استفاده می شود. بر روی این ماژول به این دلیل هدر ICSP اضافه شده است تا به اتصال برد به کامپیوتر برای آپلود برنامه کامپایل شده در صورت در دسترس نبودن پورت USB کمک کند.

4. برنامه نویسی

Arduino.cc نرم افزار رسمی خود را با نام Arduino IDE برای برنامه نویسی ماژول آردوینو معرفی کرده است. این نرم افزار از سیستم عامل های رایج مانند ویندوز، لینوکس یا مک پشتیبانی می کند. قبل از دانلود این نرم افزار، مطمئن شوید که نسخه نرم افزار مورد نیاز با سیستم شما سازگار است، یعنی اگر قصد دانلود نسخه App را دارید، باید حداقل ویندوز 10 را در سیستم خود نصب کرده باشید زیرا نسخه برنامه با ویندوز 7 یا 8.1 سازگار نیست.

برای انتقال کد اجرایی برنامه به داخل ماژول به پروگرامر خارجی نیاز نیست زیرا حافظه برنامه ماژول دارای بوت لودر داخلی است. با این حال، اگر قصد دارید یک کنترلر جدید را روی ماژول قرار دهید، باید بوت لودر را دوباره با استفاده از نرم افزار IDE نصب کنید.

مانیتور سریال در نرم‌افزار آردوینو اضافه شده است، که به شما کمک می‌کند تا هنگام تأیید و آپلود کد، کد را در زمان واقعی مشاهده کنید.

Arduino IDE دارای یک گزینه کامپایل است که به شما امکان می دهد هنگام آپلود کد، کامپایل کد را در پایین صفحه مشاهده کنید. فایل هگز کد را تولید می کند و سپس به برد منتقل می شود.

5. تفاوت بین آردوینو لئوناردو Leonardo و آردوینو یونو UNO

تفاوت جزئی بین این دو برد از نظر میکروکنترلر استفاده شده، تعداد پین های دیجیتال، پین های PWM و پین های رزرو شده برای ارتباط SPI وجود دارد.

Arduino Uno شامل میکروکنترلر ATmega328 است در حالی که Arduino Leonardo با ATmega32U4 عرضه می شود.

به طور مشابه، Uno دارای 20 پایه ورودی / خروجی دیجیتال است که از این تعداد 6 پایه ورودی آنالوگ هستند و Leo دارای 23 پایه ورودی / خروجی دیجیتال است که از این تعداد 12 پایه ورودی آنالوگ هستند.

7 پین خروجی PWM در لئوناردو موجود است و 6 پایه بر روی برد Uno اضافه شده است.

Uno با پروتکل SPI روی پین های ورودی/خروجی دیجیتال ارائه می شود در حالی که لئوناردو حاوی ارتباطات SPI روی پین های هدر ICSP است.

6. پروژه ها و برنامه های کاربردی آردوینو لئوناردو

اگر روی پروژه ای اتوماسیونی کار می کنید که دارای ارتباط از راه دور است، نمی توانید اهمیت ماژول های آردوینو را نادیده بگیرید. آردوینو لئوناردو با طیف گسترده ای از کاربردها عرضه می شود و برخی از تجهیزات جانبی را در خود جای داده است که شما را از دردسر صرف هزینه های زیاد برای خرید قطعات خارجی رها می کند. در زیر برخی از کاربردهای اصلی آردوینو لیست شده است:

اتوماسیون صنعتی

سیستم های بهداشت و امنیت

ساخت صفحه کلید بی سیم

دستگاه توزیع اتومات قرص

سیستم های امبدد

پروژه های دانشجویی

سطح سنج مایعات