فهرست پروژه ها
101787 پروژه میکروپروسسور/ میکرو کنترلر
کمک آموزشی
درود پروژه ریز پردازنده دارم 🧠 ۱. مفهوم کلی پروژه بازی Simon یک بازی حافظهای است که دستگاه یک دنبالهای از صداها و چراغها را پخش میکند و بازیکن باید همان دنباله را تکرار کند. با هر مرحله جدید، طول دنباله یک مرحله بیشتر میشود و بازی سختتر میشود. روی برد QUTy: • چهار دکمهی فشاری (S1 تا S4) نقش چهار دکمه رنگی Simon را دارند. • هر دکمه با بخش خاصی از نمایشگر ۷Segment و یک فرکانس صدا مرتبط است. 🕹 ۲. عملکرد اصلی بازی (Gameplay) • وقتی برد ریست میشود یا بازی شروع میشود، طول دنباله برابر ۱ است. • Simon یک دنباله از صدا و نور پخش میکند. (هر مرحله یک قدم اضافهتر نسبت به مرحله قبل دارد.) • بازیکن باید همان دنباله را با فشار دادن دکمههای S1 تا S4 تکرار کند. • اگر بازیکن درست بزند: • الگوی موفقیت (SUCCESS) نمایش داده میشود. • طول دنباله +۱ میشود و مرحله بعد شروع میشود. • اگر بازیکن اشتباه بزند: • الگوی خطا (FAIL) نمایش داده میشود. • امتیاز (score) بازیکن نمایش داده میشود. • بازی از ابتدا شروع میشود. • امتیاز همان طول دنباله در لحظه خطا است. مثلاً اگر در مرحله ۵ اشتباه کند، امتیاز ۵ است. 📟 نمایشگر: • امتیاز از ۱ تا ۹۹ نشان داده میشود. • SUCCESS یعنی همه ۷ بخش هر دو ۷Segment روشن شود. • FAIL یعنی فقط بخش G روشن شود. 🔢 ۳. تولید دنباله (Sequence Generation) • دنباله با استفاده از یک LFSR (Linear Feedback Shift Register) و ماسک 0xE2025CAB تولید میشود. • seed اولیه این LFSR باید شماره دانشجویی شما باشد (به صورت Hex). • مثال: n11936819 → 0x11936819 • برای هر مرحله: • با استفاده از الگوریتم مشخص، یک STEP بین ۰ تا ۳ ساخته میشود. • STEP=0 → دکمه S1 (E(high)) STEP=1 → S2 (C♯) STEP=2 → S3 (A) STEP=3 → S4 (E(low)) ❌ نکته: ذخیره کردن کل دنباله در آرایه ممنوع است. شما باید با تابع next() مقدار بعدی را در لحظه تولید کنید. ⏳ ۴. تاخیر پخش (Playback Delay) • زمان بین هر مرحله توسط پتانسیومتر تعیین میشود. • بازه زمانی بین ۰٫۲۵ تا ۲ ثانیه است. • با چرخاندن پتانسیومتر، بازی سریعتر یا کندتر میشود. • این مقدار باید هر بار در ابتدای پخش صدا محاسبه شود. 🎧 ۵. فرکانس صداها (Playback Frequency) • ۴ صدای مختلف از روی ۲ رقم آخر شماره دانشجویی محاسبه میشوند. • فرمولها در جدول داده شدهاند (در فایل). • مثال: اگر xy = 40 باشد: • E(high) = 330 Hz • C♯ = 277 Hz • A = 440 Hz • E(low) = 165 Hz • با ارسال دستورات UART میتوان فرکانسها را یک اکتاو بالا یا پایین برد: • INC FREQ (زیاد کردن) • DEC FREQ (کم کردن ) • اگر امتیاز بازیکن بین ۵ امتیاز برتر بود: • از او خواسته میشود نام خود را وارد کند. • این اطلاعات در حافظه SRAM ذخیره میشود (بعد از RESET پاک میشود). • نام بازیکن حداکثر ۲۰ کاراکتر است. • جدول امتیاز باید مرتبشده ارسال شود Alice 20 Bob 18 David 9 Charlie 9 م • استفاده از bit banging ممنوع است. • نباید از کتابخانههای آماده QUTy I/O یا QUTy Serial استفاده کنید. • در نسخه نهایی هیچ متن Debug نباید چاپ شود. • همه ارتباطها باید طبق مشخصات بخش UART باشد. • زمان تحویل: 11:59 شب - 24 اکتبر 📦 ۹. خروجی و تحویل • تنها چیزی که باید تحویل دهید: • کد منبع (Source Code) روی Gradescope • کل پروژه ۳۰٪ نمره کل درس است. ✅ جمعبندی کاری که باید انجام دهید: 1. راهاندازی دکمهها، ۷Segment و buzzer روی برد QUTy 2. پیادهسازی الگوریتم تولید دنباله با LFSR و seed شماره دانشجویی 3. پخش صدا و نمایش LED برای هر مرحله 4. دریافت ورودی بازیکن و بررسی صحت دنباله 5. مدیریت SUCCESS و FAIL 6. کنترل تاخیر با پتانسیومتر 7. محاسبه فرکانسها بر اساس شماره دانشجویی 8. (اختیاری برای نمره بیشتر) اضافه کردن کنترل UART و جدول امتیازا عرضم به حضورتون که: پروژه microprocessors , microcontrollers هست تسک های هفتگی هست که هرکدوم بخشی از این پروژه هست که حل شده بیشترش و خدمتتون ارسال میشه( جزو این پروژه نیست ولی کمک کننده هست) بعد گرید اسکوپ هست که کد رو شما به اون میدید و همونجا نتیجه رو خدمتتون میگه که چقدرش درسته یا نه یعنی اتمام کار اونجا مشخص هست رمز و پسوردش در اختیارتون قرار میگیره و اینکه فرصت محدوده تا ۲ ابان ۱ بعد از ظهر وقت هست که اگه مایل باشه کسی تا دو روز وقت اضافه هم میشه اضافه کرد یعنی یکشنبه ساعت ۲ با هماهنگی قبلی بیشترم بخوان باید صحبت کنیم هزینه هم پیشنهادی خودشون ولی به کارشون مطئن باشند و وقت شناس سپاس
0 پیشنهاد 300,000 تومان 15 ساعت پیش
مهارت ها