جستجو
برای جستجو متن مورد نظر وارد کنید و Enter بزنید برای بستن Esc بزنید.
در ابتدا می خواهیم به معرفی stm32duino بپردازیم , اگر تا الان با اردوینو کار کرده باشید متوجه شده اید که اردوینو فقط مختص به میکروکنترلرهای AVR نیست و علاوه بر ان طیف وسیعی از تراشه های مختلف را ساپورت می کند که می توان به تراشه های 32 ESP8266 -ESP , میکروکنترلر رسبری پای پیکو , میکروکنترلرهای شرکت Renesas , Atmel ARM سری SAM و … اشاره نمود.
اما میکروکنترلرهای فوق در کنار مزیتهای خود معایبی را نیز دارند برای مثال تراشه های ESP مصرف برق بالایی دارند و پایه های IO ان کم است و رسبری پای پیکو تنوع Peripheral کمی دارد, میکروکنترلرهای Renesas بردهای متنوع کمی دارد و پشتیبانی محدودی از طرف اردوینو می شود و یا میکروکنترلرهای اتمل سری SAM که برای مثال در برد اردوینو Due استفاده شده است قیمت بسیار بالایی دارد.
از طرفی میکروکنترلرهای AVR نیز مشکل کم بودن حافظه رم و برنامه را بهمراه دارند.راه حل استفاده از پکیج stm32duino در اردوینو و ترکیب قدرت (32 بیتی بودن و فرکانس بالای پردازنده در کنار حافظه زیاد) , قیمت مناسب , کارایی بالا و تنوع بسیار زیاد میکروکنترلرهای ARM شرکت STM در کنار قدرت و راحتی برنامه نویسی در اردوینو می باشد.
انبوهی از کتابخانه های مورد نیاز کاربر به راحتی قابل استفاده در محیط اردوینو می باشد که با کلی مثال و توضیح راه اندازی در سایت های مختلف قابل یادگیری می باشد این مزیت مهم در کنار قدرت و تنوع میکروکنترلرهای STM که در بازار ایران به راحتی بسیاری از مدل های ان در دسترس هستند یک گزینه عالی برای کاربران تازه کار می باشد تا بتوانند به سرعت پروژه های خود را بسازند. stm32duino پشتیبانی خوبی از هدربردهای معروف STM و همچنین میکروکنترلرهای STM (استفاده از ای سی خام بجای هدر برد یا برد اموزشی) دارد.
برای اینکه بتوانیم عملکرد پکیج stm32duino را بررسی کنیم می خواهیم برای تست یک نمایشگر را با ان راه اندازی نماییم, شرایط تست بصورت زیر می باشد:
| نوع IDE | Arduino |
| نوع پکیج استفاده شده برای ساپورت میکروکنترلر | Stm32Duino |
| نوع میکروکنترلر | Stm32F407VGT6 |
| نوع نمایشگر تست | ILI9341 |
برای کار با stm32duino باید ابتدا پکیج ان را نصب نماییم برای این منظور باید در داخل برنامه اردوینو از گزینه File گزینه
Preferences را انتخاب نمایید:

و در بخش URL ادرس زیر را وارد نمایید :
https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json

نکته : قبل و بعد از ادرس خود از , (کارکتر کاما) استفاده نمایید تا در صورت داشتن ادرس دیگر تداخل پیش نیاید.
سپس بعد از اطمینان از متصل بودن اینترنت خود از مسیر
Tools -> Board -> Boards Manager
را انتخاب کنید.

و در کادر مشخص شده عبارت stm32 را جستجو نمایید :

و گزینه Install را بزنید.(چون ما از قبل ان را نصب کرده ایم گزینه Install غیر فعال است) نصب ممکن است بخاطر حجیم بودن پکیج چند دقیقه زمان ببرد.
ما از نمایشگر 2.4 اینچ با درایور ILI9341 می خواهیم استفاده نماییم بنابراین باید کتابخانه مناسب ان را نیز نصب نماییم برای این منظور از مسیر
Sketch -> Include Library – > Manage Libraries
را انتخاب می نماییم:

در کادر باز شده عبارت Adafruit_ILI9341 را نوشته و کتابخانه ان را بهمراه پیش نیازهای ان Install all می کنیم.
بعد از نصب پروژه را در مکان مورد نظر خود ذخیره می کنیم و از منوی
Tools -> Board
نوع میکروکنترلر خود را انتخاب می نماییم :
نوع میکروکنترلر ما Stm32F407VGT6 می باشد بنابراین از مسیر مشخص شده نوع Generic سری F4 را انتخاب می کنیم.در صورتی که از برد اموزشی یا هدر برد استفاده می کنید و مدل ان در لیست وجود دارد می توانید گزینه ان را انتخاب نمایید.

و سپس باید از Board Part Number مدل دقیق میکروکنترلر خود را انتخاب نماییم:

توضیح برنامه تست نمایشگر:
#include "SPI.h"
#include "Adafruit_GFX.h"
#include "Adafruit_ILI9341.h"
کتابخانه های مورد نیاز را فراخوانی می کنیم.
Adafruit_ILI9341 tft = Adafruit_ILI9341(PE9, PE7, PC3, PB10,PE8, PC2);
باید یک شئی از کلاس نمایشگر ایجاد نماییم تا بتوانیم به توابع ان دسترسی داشته باشیم.
به نام گذاری پایه ها دقت شود که با حرف اول P مشخص می شوند.برای مثال PC2 یعنی پایه سوم پورت C
ترتیب پایه های میکروکنترلر متصل به نمایشگر در تابع بالا بصورت زیر می باشد:
Adafruit_ILI9341(cs, dc, mosi,sclk, rst, miso)
Rst , Dc و Cs پایه های کنترلی نمایشگر می باشند که می توانید به هر پایه دلخواه میکروکنترلر متصل نمایید و پایه های Mosi , Miso و Sck پایه های Spi می باشند که باید به درستی به پایه های spi میکروکنترلر خود متصل نمایید.(ممکن است میکروکنترلر شما چند واحد spi داشته باشد و در صورت استفاده از هر واحدی پایه های ان را از دیتاشیت می توانید پیدا نمایید.)
همچنین ممکن است نمایشگر شما پایه بک لایت نیز داشته باشد و چناچه بعد از اتصال تغذیه 3.3 ولت به پایه vcc نمایشگر خود نور بک لایت سفید را مشاهده نکرده اید باید پایه بک لایت خود را نیز به ولتاژ 3.3 ولت متصل نمایید.
void setup() {
tft.begin();
نمایشگر را راه اندازی می نماییم.
tft.setRotation(1);
جهت نمایش را مشخص می نماییم .شما می توانید با دادن عدد از 0 تا 3 بسته به نیاز خود جهت را تنظیم نمایید.
tft.fillScreen(ILI9341_BLACK);
پاک کردن نمایشگر با رنگ دلخواه خود.ما در اینجا نمایشگر را با رنگ سیاه پاک می نماییم.
tft.setTextSize(3);
مشخص کردن اندازه متن
tft.setTextColor(ILI9341_YELLOW);
تنظیم رنگ متن مورد نظر ما.
tft.setCursor(50,50);
تنظیم مکان نمای نمایش متن در نمایشگر
tft.print("Stm 32 Duino");
و در اخر پرینت متن دلخواه خود.
}
void loop() {
}
همینطور که مشاهده می کنید با چند خط کد نمایشگر ما به راحتی راه اندازی شد و بودن اینکه کاربر درگیر تنظیمات و پیچیدگی اولیه شود و تنها کاری که کاربر باید دقت کند تنظیم درست پایه های اتصالی نمایشگر به میکروکنترلر می باشد.
با توجه به نحوه هدر برد یا میکروکنترلر ارم خود ان را در حالت برنامه ریزی قرار می دهید (تنظیم پایه های بوت) و با اتصال ان به کامپیوتر باید بتوانید همانند بردهای اردوینو از گزینه Tools و تنظیم پورت Com اتصالی از منوی Port و سپس زدن گزینه upload میکروکنترلر را برنامه ریزی نمایید.
اگر به هر دلیلی گزینه port بخاطر ناسازگاری غیر فعال شد نگران نباشید شما می توانید میکروکنترلر خود را توسط برنامه STM32CubeProgrammer پروگرام نمایید (با جستجوی نام برنامه در اینترنت به راحتی می توانید ان را پیدا و نصب نمایید.).باید ابتدا در اردوینو از منوی sketch گزینه Export Compiled Binary را انتخاب نمایید تا فایل تولیدی با پسوند Bin را در پوشه ذخیره پروژه خود مشاهده نمایید.
بعد از نصب برنامه STM32CubeProgrammer ان را باز می نماییم:

علامت رفرش مشخص شده را می زنیم تا پورت کام میکروکنترلر ما شناسایی شود و ان را انتخاب می کنیم و گزینه Connect را می زنیم و منتظر می مانیم تا اتصال برقرار شود (در صورت عدم اتصال صحیح باید دوباره میکروکنترلر را ریست و ان را در حالت برنامه ریزی قرار دهیم) در صورتی که برنامه به میکروکنترلر متصل شد سپس گزینه اپلود را انتخاب می کنیم:

در صفحه جدید باید مسیر فایل Bin تولیدی اردوینو خود را بدهیم بنابراین گزینه Browse را می زنیم و سپس فایل خود را انتخاب می کنیم.
نکته : برای اینکه بوت لودر میکروکنترلر پاک نشود باید ادرس شروع برنامه را در کادر مشخص شده برابر با عبارت مشخص شده قرار دهیم.

و سپس گزینه start programming را می زنیم و بعد از اتمام کار میکروکنترلر را ریست می کنیم.
نکته : در صورتی که پورت com دیگر بردهای اردوینو در پروژه های دیگر خود شناسایی نمی شود و با مشکل مواجه هستید کافی است در قسمت url لینک پکیج stm32duino را پاک نمایید و برنامه اردوینو را یکبار بسته و سپس باز نمایید.
در کنار راحتی و برنامه نویسی سریعی که این روش دارد معایبی نیز بهمراه دارد که به مهمترین انها اشاره می کنیم:
با این حال این روش یک راه میانبر برای انجام سریع پروژه ها در سطح Easy و متوسط با قیمت مناسب میکروکنترلرهای STM می باشد و به اجبار مابقی روشهای برنامه نویسی میکروکنترلر STM همانند توابع LL , HAL و CMSIS کاربران خصوصا تازه کار را درگیر اشنایی با واحدهای جانبی و جزییات می کند.

در ادامه می توانید برنامه تست را دانلود نمایید: