فهرست مطالب:

گرافیک روی صفحه نمایش SSD1306 I2C OLED 128x64 با مدار Python با استفاده از Itsybitsy M4 Express: 13 مرحله (همراه با تصاویر)
گرافیک روی صفحه نمایش SSD1306 I2C OLED 128x64 با مدار Python با استفاده از Itsybitsy M4 Express: 13 مرحله (همراه با تصاویر)

تصویری: گرافیک روی صفحه نمایش SSD1306 I2C OLED 128x64 با مدار Python با استفاده از Itsybitsy M4 Express: 13 مرحله (همراه با تصاویر)

تصویری: گرافیک روی صفحه نمایش SSD1306 I2C OLED 128x64 با مدار Python با استفاده از Itsybitsy M4 Express: 13 مرحله (همراه با تصاویر)
تصویری: How to use SSD1306 128x64 OLED Display I2C with Arduino code 2024, جولای
Anonim
گرافیک در صفحه نمایش SSD1306 I2C OLED 128x64 با مدار با Python با استفاده از Itsybitsy M4 Express
گرافیک در صفحه نمایش SSD1306 I2C OLED 128x64 با مدار با Python با استفاده از Itsybitsy M4 Express

صفحه نمایش SSD1306 OLED کوچک (0.96 اینچی) ، ارزان ، به طور گسترده در دسترس ، I2C ، گرافیکی تک رنگ با رزولوشن 128x64 پیکسل است که به راحتی (فقط 4 سیم) به تخته های توسعه ریزپردازنده مانند Raspberry Pi ، Arduino یا Adafruit Itsybitsy M4 متصل می شود. Express ، CircuitPlayground Express یا سایر دستگاههای CircuitPython. درایورها را می توان از اینترنت بارگیری کرد.

روالهای گرافیکی برای Arduinos مدتی است که در دسترس است اما برای سایر سیستم های توسعه ای وجود ندارد.

درایورهای اصلی دستگاه به کاربران امکان می دهد:

  • صفحه را سیاه یا سفید کنید. oled.pill (c)
  • نوشتن یک رشته متنی روی صفحه در موقعیت مشخص (x، y) oled.text ("Text"، x، y، c)
  • نقطه را در موقعیت مشخص (x ، y) oled بکشید. پیکسل (x ، y ، c)
  • یک فایل تصویری را روی صفحه بارگذاری کنید. (در این پروژه استفاده نشده است)
  • به روز رسانی صفحه نمایش oled.show ()

این دستورالعمل با روشهای ساده نحوه ترسیم به صورت تعاملی را نشان می دهد:

  • خطوط
  • حلقه ها
  • جعبه های توخالی
  • بلوک های جامد
  • شخصیت های از پیش تعریف شده

من از Adafruit Itsybitsy M4 Express برای نشان دادن روش ها استفاده می کنم ، اما کد ، در پایتون ، به راحتی می تواند به سایر سیستم های توسعه منتقل شود.

من Itsybitsy M4 را برای این تظاهرات انتخاب کردم زیرا ارزان ، قدرتمند ، آسان برای برنامه ریزی ، شامل ورودی/خروجی آنالوگ و دیجیتال است ، حافظه زیادی دارد ، اسناد و تالارهای گفتمان را به راحتی در اینترنت قرار می دهد ، در ابتدا بسیار آسان تنظیم می شود و از CircuitPython پشتیبانی می کند ، نسخه ای از پایتون که برای کسانی که تازه وارد برنامه نویسی شده اند ایده آل است.

هنگامی که Itsybitsy و SSD1306 خود را راه اندازی کردید ، این یک تخته نان بسیار ساده است. هیچ گونه تایپی وجود ندارد ، همه فایل ها قابل بارگیری هستند.

این یک پروژه ارزان و آسان برای ساخت است اما برخی از ایده های متوسط/پیشرفته را معرفی می کند. امیدوارم امتحان کنید. من تحت تأثیر این صفحه نمایش کوچک قرار گرفتم.

مرحله 1: آنچه برای این پروژه نیاز داریم

آنچه برای این پروژه نیاز داریم
آنچه برای این پروژه نیاز داریم

سخت افزار:

  • صفحه نمایش SSD1306 I2C مونو 128x64 پیکسل
  • Itsybitsy M4 Express
  • کابل microUSB به USB - برای برنامه ریزی برد
  • تخته نان
  • 1 پتانسیومتر 10 کیلو اهم
  • سوئیچ 1 دکمه
  • سیم اتصال - رنگ های مختلف می تواند کمک کند
  • کامپیوتر (برای نوشتن کد و بارگذاری آن) - یک لپ تاپ بسیار قدیمی این کار را انجام می دهد.

نرم افزار:

ویرایشگر Mu - برای نوشتن کد و بارگذاری اسکریپت در Itsybitsy

راه اندازی Itsybitsy در اینجا توضیح داده شده است:

آخرین نسخه CircuitPython:

کتابخانه های CircuitPython:

ویرایشگر Mu:

مرحله 2: مدار

مدار
مدار

این یک مدار بسیار ساده برای راه اندازی است. صفحه بعدی تخته نان را با سیم های رنگی نشان می دهد تا کارها آسان شود.

مرحله 3: نسخه Breadboard از مدار

Breadboard نسخه مدار
Breadboard نسخه مدار

در بالا و پایین تخته نان ریل های برق وجود دارد. با سیم قرمز ریلهای +ve را به هم وصل کنید. با سیم سیاه ریل های -ve را به هم وصل کنید.

پین 3 ولت Itsybitsy را به خط پایین +ve - سیم قرمز بپیوندید. (ستون 12)

به پین G (GND) Itsybitsy به ریل بالا - سیم سیاه بپیوندید. (ستون 12)

در ستون های 33 و 34 ، پایه های SSD1306 VCC و GND را به ریل های برق بالا متصل کنید.

با یک سیم صورتی ، پین های SCL را به هم وصل کنید.

با یک سیم خاکستری ، پین های SDA را به هم وصل کنید.

با سیمهای قرمز و سیاه ، پینهای بیرونی پتانسیومتر را به ریلهای قدرت بالا و با سیم سبز پین وسط (برف پاک کن) را به A5 در Itsybitsy وصل کنید.

یک طرف کلید دکمه را با سیم بنفش به پین 2 وصل کنید و با سیم سیاه طرف دیگر را به ریل GND وصل کنید.

مرحله 4: بارگذاری فونت

بارگیری فونت
بارگیری فونت

فایل فونت را بارگیری کرده و آن را به درایو CIRCUITPY بکشید. (این Itsybitsy است.)

روی پوشه lib دوبار کلیک کنید و لیست درایورهایی را که قبلاً بارگیری کرده اید ، مشاهده کنید.

مرحله 5: افزودن درایورهای اضافی

افزودن درایورهای اضافی
افزودن درایورهای اضافی

موارد زیر را در پوشه lib نیاز دارید:

  • simpleio.mpy
  • adafruit_bus_device
  • adafruit_framebuf.mpy
  • adafruit_ssd1306.mpy

اگر آنها گم شده اند ، آنها را از آخرین نسخه موجود به پوشه بکشید.

اکنون آماده بارگیری اسکریپت هستید.

پس از بارگیری در ویرایشگر Mu ، می توانید آن را در Itsybitsy با نام main.py ذخیره کنید.

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

صفحات زیر اطلاعات بیشتری در مورد نحوه عملکرد برنامه ارائه می دهد.

مرحله 6: راه اندازی دستگاه ها

دستگاه ها را راه اندازی کنید
دستگاه ها را راه اندازی کنید

این بخش اول همه کتابخانه ها را بارگذاری می کند و SSD1306 ، پتانسیومتر و کلید دکمه را روی پین های صحیح تنظیم می کند.

مرحله 7: تعریف کاراکترها و کشیدن خطوط افقی و عمودی

تعریف کاراکترها و رسم خطوط افقی و عمودی
تعریف کاراکترها و رسم خطوط افقی و عمودی
تعریف کاراکترها و رسم خطوط افقی و عمودی
تعریف کاراکترها و رسم خطوط افقی و عمودی

این بخش کاراکترهای از پیش تعریف شده را تنظیم می کند. عرض آنها 5 نقطه و ارتفاع آن 8 نقطه است. هر نقطه در تعریف 4 نقطه روی صفحه ترسیم می کند تا بهتر نمایان شوند.

خطوط افقی و عمودی به راحتی با یک حلقه ترسیم می شوند. فقط باید به خاطر داشته باشید که در انتها به نقطه اضافی احتیاج دارید. یک خط از (0 ، 7) تا (5 ، 7) به 6 نقطه نیاز دارد: با x برابر 0 ، 1 ، 2 ، 3 ، 4 و 5 به نوبه خود.

دستور نقطه اصلی oled است. پیکسل (x ، y ، رنگ) - 0 سیاه و 1 سفید است.

مبدأ (0 ، 0) در بالا سمت چپ صفحه ، 0 - 127 پیکسل به صورت افقی (از چپ به راست) و 0 - 63 عمودی (از بالا به پایین) است.

مرحله 8: جعبه ها ، بلوک ها و خطوط شیب دار

جعبه ها ، بلوک ها و خطوط شیب دار
جعبه ها ، بلوک ها و خطوط شیب دار

جعبه ها از خطوط افقی و عمودی ساخته شده اند.

بلوک ها از خطوط افقی متعددی ساخته می شوند.

برای خطوط شیبدار ابتدا ابتدا مختصات را در سمت چپ بررسی می کنیم. در غیر اینصورت آنها را عوض می کنیم زیرا خط از چپ به راست ترسیم می شود.

سپس شیب را محاسبه کرده و از آن برای تعیین مقدار y برای هر مقدار x استفاده می کنیم.

رویه نمایش (t) باعث می شود صفحه به روز شده قابل مشاهده باشد و برای یک تاخیر کوتاه ، t ثانیه منتظر بماند.

مرحله 9: نماد درجه ، افزایش ، نمودار نوار و دایره

نماد درجه ، افزایش ، نمودار و دایره
نماد درجه ، افزایش ، نمودار و دایره

نماد درجه از 4 پیکسل ایجاد می شود.

روال تراز () فضاهای اضافی را در مقابل عدد اضافه می کند تا مقادیر کوتاه را در یک فضای ثابت راست تراز کند.

نمودار معمولی (v) یک نمودار میله ای افقی ترسیم می کند که درصد انتخاب شده را نشان می دهد. مقدار در انتهای سمت راست با استفاده از 'T' برای نشان دادن 100 (تن یا بالا) نوشته شده است.

حلقه ها به مثلثات نیاز دارند بنابراین باید کتابخانه ریاضی را در ابتدای اسکریپت وارد کنیم. ما از sin ، cos و شعاع برای محاسبه جبران x و y از مرکز استفاده می کنیم زیرا شعاع آن 90 درجه می چرخد. برای هر محاسبه جبران ، نقاط در هر چهار چهارم رسم می شود.

مرحله 10: جمع آوری زباله ، عنوانها و حلقه ها

مجموعه زباله ، عناوین و حلقه ها
مجموعه زباله ، عناوین و حلقه ها

این دستورالعمل ها روشن شدن صفحه را به صورت سیاه و سفید ، نوشتن متن روی صفحه و استفاده از روال gc () 'جمع آوری زباله' برای خالی کردن فضا نشان می دهد. مقدار نشان می دهد که فضای زیادی برای یک اسکریپت بزرگتر وجود دارد.

سپس برنامه دایره هایی با مرکز مشترک و با مراکز متحرک ترسیم می کند. با توجه به میزان محاسبه مورد نیاز ، یک روال کاملاً سریع است.

عنوان نسخه ی نمایشی خطوط بعدی نوشته می شود.

مرحله 11: نسخه نمایشی خطوط

خطوط نمایشی
خطوط نمایشی

این روال واقعاً تمرین روتین خط () را می دهد. خطوط شعاعی از هر چهار گوشه نمایشگر با فاصله های مختلف الگوهای تشکیل شده است.

مرحله 12: حلقه اصلی: نمودار میله و شخصیت های مشخص شده

حلقه اصلی: نمودار میله و شخصیت های تعریف شده
حلقه اصلی: نمودار میله و شخصیت های تعریف شده

این حلقه اصلی برنامه است. مقادیر پتانسیومتر مقادیر نشان داده شده را تغییر داده و طول نمودار میله ای را تغییر می دهد.

اگر دکمه پایین نگه داشته شود ، نویسه های تعریف شده 1/0 و True/False عوض می شوند. این حلقه بسیار آهسته اجرا می شود زیرا ترسیم کاراکترهای از پیش تعریف شده یک فرایند کند است. می توانید با اظهارنظر در مورد برخی موارد سرعت بخشید.

هیچ سنسور دما برای ساده نگه داشتن این نسخه ی نمایشی وجود ندارد ، بنابراین "؟" به جای مقدار در خط 190 نمایش داده می شود.

توصیه شده: