از پارسکدرز بیشترین بهره را ببرید و رویای کاری خود را زندگی کنید.
یک ماه پیش منتشر شده
تعداد بازدید: 89
کد پروژه: 582412
شرح پروژه
درود
پروژه ریز پردازنده دارم
🧠 ۱. مفهوم کلی پروژه
بازی 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
هست
تسک های هفتگی هست که هرکدوم بخشی از این پروژه هست که حل شده بیشترش
و خدمتتون ارسال میشه( جزو این پروژه نیست ولی کمک کننده هست)
بعد گرید اسکوپ هست که کد رو شما به اون میدید و همونجا نتیجه رو خدمتتون میگه که چقدرش درسته یا نه
یعنی اتمام کار اونجا مشخص هست
رمز و پسوردش در اختیارتون قرار میگیره
و اینکه فرصت محدوده
تا ۲ ابان ۱ بعد از ظهر وقت هست
که اگه مایل باشه کسی تا دو روز وقت اضافه هم میشه اضافه کرد
یعنی یکشنبه ساعت ۲ با هماهنگی قبلی
بیشترم بخوان باید صحبت کنیم
هزینه هم پیشنهادی خودشون
ولی به کارشون مطئن باشند و وقت شناس
سپاس
این پروژه شامل 1 فایل مهم است، لطفا قبل از ارسال پیشنهاد حتما نسبت به بررسی این فایل اقدام فرمایید.
مهارت ها و تخصص های مورد نیاز
مهلت برای انجام
7روز
وضعیت مناقصه
بسته
درباره کارفرما
عضویت سه سال پیش
نیاز به استخدام فریلنسر یا سفارش پروژه مشابه دارید؟
قادر به انجام این پروژه هستید؟
متأسفانه مهلت ارسال پیشنهاد این پروژه به پایان رسیده و پروژه بسته شده است؛ اما فرصتهای متعددی در سایت موجود میباشد.
به رایگان یک حساب کاربری بسازید
مهارتها و تخصصهای خود را ثبت کنید، رزومه و نمونهکارهای خود را نشان دهید و سوابق کاری خود را شرح دهید.
به شیوهای که دوست دارید کار کنید
برای پروژههای دلخواه در زمان دلخواه پیشنهاد قیمت خود را ثبت کنید و به فرصتهای شغلی منحصر به فرد دسترسی پیدا کنید.
با اطمینان دستمزد دریافت کنید
از زمان شروع کار تا انتهای کار به امنیت مالی شما کمک خواهیم کرد. وجه پروژه را از ابتدای کار به امانت در سایت نگه خواهیم داشت تا تضمین شودکه بعد از تحویل کار دستمزد شما پرداخت خواهد شد.
میخواهید شروع به کار کنید؟
یک حساب کاربری بسازید
بهترین مشاغل فریلنسری را پیدا کنید
رشد شغلی شما به راحتی ایجاد یک حساب کاربری رایگان و یافتن کار (پروژه) متناسب با مهارتهای شما
است.
پیدا کردن کار (پروژه)
تماشای دمو روش کار