این طرح یک کنترل کننده ماشین پین بال را به عنوان یک مثال توسعه یافته از یک کنترل کننده منطقی بلادرنگ با استفاده از درایورهای سخت افزاری شخص ثالث ارائه می دهد. برای استفاده از سخت افزار در برد مدار PinballShield پیکربندی شده است.
![](https://duino4projects.com/wp-content/uploads/2022/01/Arduino-Sketch-PinballGame.jpg)
این طرح فرض میکند که شما قبلاً چندین کتابخانه آردوینو شخص ثالث را در IDE خود نصب کردهاید، همانطور که در بخش کتابخانههای آردوینو توضیح داده شد.
همه فایلهای طرح دیگر را میتوان در یک فایل بایگانی بهعنوان PinballGame.zip دانلود کرد یا بهصورت خام در پوشه منبع مرور کرد.
توابع کلیدی سطح بالا
باطل poll_sensor_inputs
( فاصله طولانی بدون علامت )
بهروزرسانی تمام وضعیت ورودی، از جمله نمونهبرداری دورهای حسگر، باززدایی، و فیلتر کردن. void poll_game_logic
( فاصله طولانی بدون علامت )
بهروزرسانی ماشین حالت بازی، از جمله ارتقای وضعیت و امتیاز بازی و اعمال نگاشتهای ورودی-خروجی مدال. void poll_actuator_outputs
( فاصله طولانی بدون علامت )
تمام وضعیت محرک، از جمله تایمرهای پالس خروجی را به روز کنید.
کلاس های C++
ورودی ها را از یک سنسور پین بال آنالوگ تک کانالی مانند یک جفت بازتاب نور پردازش کنید. کلاس PopBumper
یک محرک شیر برقی پین بال را کنترل کنید. عملکرد اصلی کنترل زمان بندی محرک های ضربه ای است، اما می تواند برای پشتیبانی از کنترل PWM برای کاهش جریان های نگهدارنده گسترش یابد. کلاس ToneSpeaker
آهنگ های موسیقی را روی بلندگو پخش کنید که برای جلوه های بازی صوتی استفاده می شود.
کد منبع اصلی
کد اصلی سطح بالا در PinballGame.ino است .