پروژه ساخت تاس دیجیتال با رزبری پای پیکو

چگونه با رزبری پای پیکو تاس دیجیتال بسازیم؟

تاس دیجیتال با رزبری پای پیکو
تاس های قدیمی خود را با تکنولوژی پیشرفته تر جایگزین کنید!

معمولا تعطیلات زمان بسیار خوبی برای پاک کردن گرد و غبار بازی های رومیزی برای تفریحات خانوادگی است. اما معمولا همین مواقع تاس های بازی گم میشوند! در این آموزش یاد خواهیم گرفت چگونه از طریق رابط I2C  و نمایشگر OLED و رزبری پای پیکو تاس دیجیتالی بسازیم. به راحتی میتوانیم با فشار دادن یک دکمه، تاس پرتاب کنیم و پس از انیمیشن کوتاهی، تاس روی صفحه نمایش داده می شود! برای انجام این کار، یکی از کتابخانه های MicroPython را از طریق ویرایشگر Thonny نصب می کنیم و یاد می گیریم که چگونه از آن برای نوشتن متن روی نمایشگر استفاده کنیم. صفحه نمایش OLED از پروتکل I2C برای ارتباط با رزبری استفاده می کند.

 

ادوات مورد نیاز

  • رزبری پای Pico برای اجرای MicroPython
  • ۶ عدد سیم جامپر نر به ماده
  • یک عدد نمایشگر I2C, SSD1306 OLED با ابعاد 128 x 32
  • یک عدد سوییچ شستی
  • برد بورد

 

 اتصال صفحه نمایش و کلید به رزبری پای

از نحوه سیم کشی شکل زیر برای اتصال صفحه نمایش و کلید به رزبری پای استفاده کنید.

سیم کشی ساخت تاس دیجیتال با ربری پای پیکو
(Image credit: Tom’s Hardware)

مراحل ساخت مدار تاس دیجیتال با رزبری پای پیکو

  • پایه GND صفحه نمایش را به پین GND روی Pico (سیم سیاه) وصل کنید.
  • پین VCC صفحه نمایش را به پین تغذیه 3 ولت روی رزبری متصل کنید (سیم قرمز).
  • پین SCK / SCL را به I2C0 SCL (GP1، پین شماره ۲، سیم زرد) وصل کنید.
  • پین SDA را به I2C0 SDA (GP0، پین شماره 1، سیم نارنجی) وصل کنید.
  • شستی را مطابق شکل روی برد برد وصل کنید. باید یکی از پایه ها به GND (سیم سیاه)، و سپس پایه مقابل به GP28 (Physical Pin 34, Purple Wire) وصل باشد.
  • بورد رزبری پای را به کامپیوتر متصل کرده و برنامه Thony را اجرا کنید. در این مرحله با اتصال سخت افزار و باز بودن Thonny، باید کتابخانه ای را که از طریق آن پایتون با صفحه نمایش ارتباط برقرار میکند، نصب کنیم.
  • روی Tools > Manage Packages کلیک کنید تا تنظیمات Thonny برای کتابخانه های Python باز شود.
  • عبارت “ssd1306” را در نوار جستجو تایپ کنید و روی “Search on PyPI” کلیک کنید.
(Image credit: Tom’s Hardware)
  • در نتایج جستجو، بر روی “micropython-ssd1306” کلیک کنید و سپس Install را بزنید. به این ترتیب این کتابخانه در پوشه، lib روی رزبری کپی می شود.
(Image credit: Tom’s Hardware)

 

  • برای بازگشت به رابط اصلی روی Close کلیک کنید.

 

برنامه نویسی صفحه نمایش

برای نوشتن یک خط متن روی صفحه نمایش OLED فقط به شش خط کد میکرو پایتون نیاز داریم.

  • از کتابخانه ماشین، کلاس های Pin و I2C را وارد کنید که برای ارتباط با صفحه نمایش OLED متصل به GPIO Pico استفاده می شوند.
from machine import Pin, I2C
  • کتابخانه صفحه نمایش OLED را وارد کنید.
from ssd1306 import SSD1306_I2C
  • randint را از کتابخانه اعداد تصادفی وارد کنید. Randint برای تولید اعداد صحیح تصادفی استفاده می شود که برای تاس استفاده خواهد شد.
from random import randint
  • وارد کردن کتابخانه زمان
import time
  • یک شی بسازید، دستور i2c، که کانال I2C در حال استفاده (کانال صفر) را ذخیره می کند، به همراه پین های SDA و SCL متصل شده و در نهایت فرکانس اتصال به صفحه OLED را نیز ذخیره می کند.
i2c=I2C(0,sda=Pin(0), scl=Pin(1), freq=400000)
  • یک شی به نام oled ایجاد کنید که برای ارتباط با صفحه نمایش OLED استفاده می شود و دارای سه آرگومان است: عرض و ارتفاع صفحه (32×128 پیکسل) و جزئیات اتصال I2C. ارتفاع و عرض صفحه را مطابق با نمایشگر خود تغییر دهید، در اینجا از صفحه نمایش 96/0 اینچی با ابعاد 128 در 32 استفاده شده است.
oled = SSD1306_I2C(128, 32, i2c)
  • یک شی، برای تعریف شستی ایجاد کنید که آنرا به کد متصل کند. در اینجا اتصال از طریق پین ورودی GP28 برقرار شده است. باید پین را به صورت Pull up تعریف کنیم، به طوری که وقتی شستی را فشار می‌دهیم، پین به GND متصل شده و به طور موثر باعث تغییر حالت آن شود.
button = Pin(28, Pin.IN, Pin.PULL_UP)
  • برای اجرای مداوم کد حلقه ایجاد کنید.
while True:
  • برای بررسی وضعیت فعلی شستی که تاس می اندازد، آزمایش مشروطی اضافه کنید. به این صورت که اگر شستی فشار داده شود، وضعیت از 1 (درست) به صفر (نادرست) تغییر میکند.
   if button.value() == 0:
  • صفحه نمایشگر را پاک کنید.

oled.fill(0)

oled.show()

  • حلقه for با ده بار تکرار ایجاد کنید. این حلقه ده عدد انتخاب شده به صورت تصادفی را نمایش می دهد و آنها را در موقعیت های تصادفی قرار می دهد.
       for i in range(10):
  • حال میخواهیم یک عدد انتخابی تصادفی بین 1 تا 100 در موقعیتی تصادفی روی صفحه بنویسیم. با استفاده از موقعیت x (عرض) انتخاب شده به طور تصادفی (بین صفر تا 126) و موقعیت تصادفی y (ارتفاع) (بین صفر تا 24) مجموعه متحرکی از اعداد را ایجاد می کنیم که کاربر را فریب دهیم و این تصور را ایجاد کنیم که Pico به اعداد زیادی فکر می کند!

oled.text(str(randint(1,100)),randint(0,126),randint(0,24))

oled.show()

  • بعد از تاخیر کوتاهی، صفحه را پاک کنید. بدون تاخیر، انیمیشن تصوری از اعداد درهم ریخته در سراسر صفحه نمایش خواهد داد. اگر صفحه را پاک نکنیم هم، این احتمال وجود دارد که تاس انداختن را به وضوح نبینیم.

time.sleep(0.2)

oled.fill(0)

oled.show()

  • متغیری به نام roll ایجاد کنید و عدد تصادفی انتخاب شده بین 1 و 6 را در آن ذخیره کنید. اگر در حال انجام بازی خاصی هستید که به مقادیر بالاتری نیاز دارد، میتوانید عدد 6 را به مقدار دلخواه خود تغییر دهید.
       roll = randint(1,6)
  • متغیر roll را روی صفحه نمایشگر بنویسید. باید عدد صحیح را به رشته تبدیل کنیم تا بتوان آن را روی صفحه نمایش داد. دو عدد 64 و 16 نشان دهنده موقعیت (x, y) روی صفحه هستند که آنها را به عنوان مرکز صفحه نمایش 128 در 32 تنظیم کرده ایم. برای صفحه نمایش سایز 128 در 64، این اعداد را به 64 و 32 تغییر دهید.

oled.text(str(roll), 64, 16)

oled.show()

  • مقدار متغیر roll را در shell پایتون چاپ کنید. البته این مرحله ضروری نیست، اما برای رفع مشکلات اتصال با صفحه نمایش مفید است.
print(roll)
  • مکث 10 ثانیه ای اضافه کنید تا مقدار پرتاب تاس روی صفحه بماند. سپس صفحه را پاک کنید تا برای پرتاب بعدی آماده شود.

time.sleep(0.2)

oled.fill(0)

oled.show()

  • در قسمت else دستور شرطی، خطوطی را برای نوشتن دستورالعملی برای کاربر بر روی صفحه نمایش اضافه کنید. مثلا در کد زیر دو خط داریم که اولی از بالا سمت چپ شروع می شود (0,0)، اما دومی باید 16 خط به پایین حرکت کند تا خوانا بماند.

else:

oled.text(“Press to”, 0, 0)

oled.text(“roll dice”,0, 16)

oled.show()

کد نوشته شده را به صورت dice.py روی رزبری پای ذخیره کنید و برای اجرای آن روی Run کلیک کنید.

 

کد کامل پروژه به زبان پایتون:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

هر سه شنبه با مقالات رزبری پای همراه توسکانیک باشید

منبع: www.tomshardware.com

 

خرید کتاب راهنمای رسمی شروع کار با رزبری پای

آخرین مقالات

مقالات مرتبط