اگر مطالب گفته شده در سلسله پستهای “دوره رایگان آموزش مقدماتی میکروکنترلر STM32” را به خوبی دنبال کرده باشید، به حدی رسیدهاید که آستینها را بالا بزنید و شروع به پیاده سازی پروژه این دوره کنید. اما قبل از اینکه دست به کار شوید لازم است که توضیحاتی در خصوص سخت افزار مورد نیازمان بدهم.
سخت افزار پروژه شامل چه چیزهایی است؟
از آنجا که هدفم این بود که تمرکز شما بیشتر بر روی برنامهنویسی میکروکنترلر باشد، سعی کردم تا حداقل درگیری با سختافزار داشته باشید. به همین دلیل مناسبترین گزینهای که پیدا کردم استفاده از ماژول دات ماتریکس -در کنار برد STM32F030F4P6- بود. این ماژول که به راحتی در بازار قابل تهیه است، حاوی یک آی سی DS7219 برای درایو دات ماتریکس است.
DS7219 علاوه بر اینکه باعث میشود تا با تنها 3 پایه -به جای اتصال 16 پایه از میکروکنترلر به دات ماتریکس- بتوانیم بر روی دات ماتریکس خودمان کنترل داشته باشیم، عدم توانایی میکروکنترلر در تامین جریان روشن نمودن LEDهای داتماتریکس را نیز جبران میکند. همچنین، نیازی نیست که رفرش کردن دات ماتریکس را با میکروکنترلر به انجام برسانید. این آیسی خود این وظیفه را انجام میدهد و این کار شما را در نوشتن برنامه سادهتر میکند. توضیحات بیشتر در خصوص این آیسی نمیدهم. بهتر است با خواندن دیتاشیت این آیسی موارد موردنیازتان را از آن در بیاورید و آن را راه بیندازید. با اینحال اگر جایی به مشکل برخوردید و نتوانستید با کمک دیتاشیت آن را حل کنید در زیر این مطلب آن را مطرح کنید تا در حد توانم شما را راهنمایی کنم تا خودتان بتوانید آن را راه بیندازید.
علاوه بر این ماژول به 4 تک سوییچ برای حرکت دادن مار به 4 جهت اصلی نیز نیازمندیم. با اضافه کردن این 4 کلید به مدار پروژه تعداد GPIO مورد نیاز ما به 7 عدد خواهد رسید. -4 ورودی برای تک سوییچ و 3 خروجی برای ماژول دات ماتریکس-
من خیلی کار با میکروکنترلر بلد نیستم، آیا میتوانم این پروژه را انجام دهم؟
خیلی یعنی چقدر؟ اگر زبان سی را تا حد خوبی بلد هستید، خواندن چند پست قبلی دوره کفایت میکند. شما با دانستن نحوه ورودی و خروجی کردن GPIO و همچنین ایجاد تاخیر به کمک کتابخانه HAL باید بتوانید این بازی را در فاز نخست بنویسید.
توصیه میکنم قبل از انجام این پروژه به سراغ پستهای بعدی نروید و ابتدا این چالش را برای خودتان حل کنید. نگران معطل شدنتان در این مرحله نباشید، یادگیری یک فرایند زمانبر است که نیاز به صبر و پشتکار دارد.
من پروژه را انجام دادم، آیا کار من در یادگیری میکروکنترلر به اتمام رسیده است؟
قطعاً خیر. درست است که با حداقل موارد ضروری برای پیاده سازی بازی snake این پروژه را به اتمام رساندید، اما هنوز موارد مهم زیادی مانده که باید یاد بگیرید. در پستها بعدی به همراه تکمیل این آموختهها، خواهید دید که چگونه میتوان کد این بازی را بهبود داد و یا حتی ویژگیهای بیشتری به آن اضافه کرد.