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