সুচিপত্র:

SSD1306 I2C OLED 128x64 ডিসপ্লেতে গ্রাফিক্স সার্কিটপাইথন একটি ইটিসিবিটি এম 4 এক্সপ্রেস ব্যবহার করে: 13 টি ধাপ (ছবি সহ)
SSD1306 I2C OLED 128x64 ডিসপ্লেতে গ্রাফিক্স সার্কিটপাইথন একটি ইটিসিবিটি এম 4 এক্সপ্রেস ব্যবহার করে: 13 টি ধাপ (ছবি সহ)

ভিডিও: SSD1306 I2C OLED 128x64 ডিসপ্লেতে গ্রাফিক্স সার্কিটপাইথন একটি ইটিসিবিটি এম 4 এক্সপ্রেস ব্যবহার করে: 13 টি ধাপ (ছবি সহ)

ভিডিও: SSD1306 I2C OLED 128x64 ডিসপ্লেতে গ্রাফিক্স সার্কিটপাইথন একটি ইটিসিবিটি এম 4 এক্সপ্রেস ব্যবহার করে: 13 টি ধাপ (ছবি সহ)
ভিডিও: OLED Display Interfacing with Arduino #arduino #arduinoprojects 2024, জুলাই
Anonim
একটি SSD1306 I2C OLED 128x64 ডিসপ্লেতে গ্রাফিকস সার্কিট পাইথন একটি ইটিসিবিটি এম 4 এক্সপ্রেস ব্যবহার করে
একটি SSD1306 I2C OLED 128x64 ডিসপ্লেতে গ্রাফিকস সার্কিট পাইথন একটি ইটিসিবিটি এম 4 এক্সপ্রেস ব্যবহার করে

SSD1306 OLED ডিসপ্লে হল একটি ছোট (0.96 ), সস্তা, ব্যাপকভাবে পাওয়া যায়, I2C, 128x64 পিক্সেল সহ একরঙা গ্রাফিক্যাল ডিসপ্লে, যা সহজেই মাইক্রোপ্রসেসর ডেভেলপমেন্ট বোর্ড যেমন রাস্পবেরি পাই, আরডুইনো বা অ্যাডাফ্রুট ইটিসিবিটি এম 4 এর সাথে সহজেই ইন্টারফেস করা যায় (শুধুমাত্র 4 টি তারের) এক্সপ্রেস, সার্কিটপ্লেগ্রাউন্ড এক্সপ্রেস বা অন্যান্য সার্কিটপাইথন ডিভাইস। ইন্টারনেট থেকে ড্রাইভার ডাউনলোড করা যাবে।

Arduinos- এর জন্য গ্রাফিক্যাল রুটিন কিছু সময়ের জন্য পাওয়া যায় কিন্তু অন্যান্য ডেভেলপমেন্ট সিস্টেমের জন্য নয়।

প্রাথমিক ডিভাইস ড্রাইভার ব্যবহারকারীদের অনুমতি দেয়:

  • কালো বা সাদা পর্দা পরিষ্কার করুন। oled.fill (c)
  • একটি নির্দিষ্ট (x, y) পজিশনে oled.text ("টেক্সট", x, y, c) স্ক্রিনে একটি টেক্সট স্ট্রিং লিখুন
  • একটি নির্দিষ্ট (x, y) অবস্থানে oled.pixel (x, y, c) বিন্দু আঁকুন
  • স্ক্রিনে একটি ছবি ফাইল লোড করুন। (এই প্রকল্পে ব্যবহৃত হয় না)
  • প্রদর্শন oled.show আপডেট করুন ()

এই নির্দেশযোগ্য প্রদর্শন করবে, সহজ পদ্ধতির সাথে, কিভাবে আঁকতে হবে, ইন্টারেক্টিভভাবে:

  • লাইন
  • বৃত্ত
  • ফাঁকা বাক্স
  • কঠিন ব্লক
  • পূর্বনির্ধারিত অক্ষর

আমি পদ্ধতি প্রদর্শন করার জন্য একটি Adafruit Itsybitsy M4 Express ব্যবহার করব কিন্তু পাইথনে কোডটি সহজেই অন্যান্য ডেভেলপমেন্ট সিস্টেমে পোর্ট করা যাবে।

আমি এই প্রদর্শনের জন্য ইটিসিবিটি এম 4 বেছে নিয়েছি কারণ এটি সস্তা, শক্তিশালী, প্রোগ্রাম করা সহজ, এনালগ এবং ডিজিটাল ইনপুট/আউটপুট অন্তর্ভুক্ত, প্রচুর মেমরি রয়েছে, সহজেই ডকুমেন্টেশন রয়েছে এবং ইন্টারনেটে সহায়তা ফোরাম রয়েছে, প্রাথমিকভাবে সেট করা খুব সহজ এবং সার্কিটপাইথনকে সমর্থন করে, যারা কোডিংয়ে নতুন তাদের জন্য পাইথনের আদর্শের একটি সংস্করণ।

একবার আপনি আপনার ইটিসিবিটি এবং এসএসডি 1306 সেট আপ করলে এটি একটি খুব সহজ রুটিবোর্ড তৈরি। কোন টাইপিং নেই, সব ফাইল ডাউনলোড করা যাবে।

এটি নির্মাণের জন্য একটি সস্তা এবং সহজ প্রকল্প কিন্তু কিছু মধ্যবর্তী/উন্নত ধারণা প্রবর্তন করে। আমি আশা করি আপনি এটি চেষ্টা করবেন। আমি এই ছোট ডিসপ্লেতে মুগ্ধ হয়েছি।

ধাপ 1: এই প্রকল্পের জন্য আমাদের কী দরকার

এই প্রকল্পের জন্য আমাদের কী দরকার
এই প্রকল্পের জন্য আমাদের কী দরকার

হার্ডওয়্যার:

  • SSD1306 I2C মোনো ডিসপ্লে 128x64 পিক্সেল
  • ইটিসিবিটি এম 4 এক্সপ্রেস
  • মাইক্রো ইউএসবি থেকে ইউএসবি কেবল - বোর্ড প্রোগ্রাম করার জন্য
  • ব্রেডবোর্ড
  • 1 10K Ohm potentiometer
  • 1 বোতাম সুইচ
  • তারের সংযোগ - বিভিন্ন রং সাহায্য করতে পারে
  • কম্পিউটার (কোড লিখতে এবং আপলোড করতে) - একটি খুব পুরানো ল্যাপটপ করবে।

সফটওয়্যার:

মু সম্পাদক - কোড লেখার জন্য এবং স্ক্রিপ্টটি ইটসিবিটসিতে আপলোড করার জন্য

ইটিসিবিটি সেট আপ করা এখানে ব্যাখ্যা করা হয়েছে:

CircuitPython এর সর্বশেষ সংস্করণ:

সার্কিট পাইথন লাইব্রেরি:

মু সম্পাদক:

ধাপ 2: সার্কিট

সার্কিট
সার্কিট

এটি একটি খুব সহজ সার্কিট সেট আপ করার জন্য। পরবর্তী পৃষ্ঠাটি জিনিসগুলিকে সহজ করার জন্য রঙিন তার দিয়ে সমাপ্ত ব্রেডবোর্ডকে চিত্রিত করে।

ধাপ 3: সার্কিটের ব্রেডবোর্ড সংস্করণ

সার্কিটের ব্রেডবোর্ড সংস্করণ
সার্কিটের ব্রেডবোর্ড সংস্করণ

ব্রেডবোর্ডের উপরে এবং নীচে পাওয়ার রেল রয়েছে। লাল তারের সাথে +ve রেল একসাথে যোগদান করুন। কালো তারের সঙ্গে -ve রেল একসাথে যোগদান।

ইটসিবিটসির 3V পিনকে নিচের +ve রেল - লাল তারের সাথে যুক্ত করুন। (কলাম 12)

ইটসিবিটসির জি (জিএনডি) পিনটি উপরের -রেল -কালো তারে যোগ দিন। (কলাম 12)

33 এবং 34 কলামে, SSD1306 VCC এবং GND পিনগুলিকে উপরের পাওয়ার রেলের সাথে সংযুক্ত করুন।

একটি গোলাপী তারের সাথে এসসিএল পিন একসাথে যোগদান করুন।

একটি ধূসর তারের সাথে এসডিএ পিন একসাথে যোগদান করুন।

লাল এবং কালো তারের সাহায্যে পোটেন্টিওমিটারের বাইরের পিনগুলিকে উপরের পাওয়ার রেলগুলির সাথে এবং সবুজ তারের সাথে ইটিসিবিটসিতে কেন্দ্র (ওয়াইপার) পিনকে A5 এর সাথে সংযুক্ত করুন।

বোতাম সুইচের একপাশে একটি বেগুনি তারের সাথে 2 টি পিন করুন এবং একটি কালো তারের সাথে অন্য দিকটি একটি জিএনডি রেলের সাথে সংযুক্ত করুন।

ধাপ 4: ফন্ট লোড হচ্ছে

ফন্ট লোড হচ্ছে
ফন্ট লোড হচ্ছে

ফন্ট ফাইলটি ডাউনলোড করুন এবং CIRCUITPY ড্রাইভে টেনে আনুন। (এটি ইটিসিবিটি।)

Lib ফোল্ডারে ডাবল ক্লিক করুন এবং আপনি ইতিমধ্যে লোড করা ড্রাইভারগুলির তালিকা দেখুন।

ধাপ 5: অতিরিক্ত ড্রাইভার যোগ করা

অতিরিক্ত ড্রাইভার যোগ করা
অতিরিক্ত ড্রাইভার যোগ করা

Lib ফোল্ডারে আপনার নিম্নলিখিতগুলির প্রয়োজন হবে:

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

যদি তারা অনুপস্থিত থাকে, তাহলে উপলব্ধ সাম্প্রতিক সংস্করণ থেকে তাদের ফোল্ডারে টেনে আনুন।

আপনি এখন স্ক্রিপ্ট ডাউনলোড করার জন্য প্রস্তুত।

একবার Mu এডিটরটিতে লোড হয়ে গেলে আপনি main.py নাম দিয়ে এটি ইটিসিবিটসিতে সংরক্ষণ করতে পারেন।

প্রোগ্রাম লাইন, বৃত্ত, একটি গতিশীল বার গ্রাফ এবং সংজ্ঞায়িত অক্ষর প্রদর্শনের একটি ধারাবাহিকের মধ্য দিয়ে চলে। শুধু পাত্রটি আস্তে আস্তে ঘুরান এবং ডিসপ্লে নিয়ন্ত্রণ করতে বোতাম টিপুন এবং ধরে রাখুন।

নিম্নলিখিত পৃষ্ঠাগুলি প্রোগ্রামটি কীভাবে কাজ করে সে সম্পর্কে আরও তথ্য দেয়।

ধাপ 6: ডিভাইসগুলি সেটআপ করুন

ডিভাইসগুলি সেটআপ করুন
ডিভাইসগুলি সেটআপ করুন

এই প্রথম বিভাগটি সমস্ত লাইব্রেরি লোড করে এবং সঠিক পিনগুলিতে SSD1306, potentiometer এবং বাটন সুইচ সেট করে।

ধাপ 7: অক্ষর সংজ্ঞায়িত করুন এবং অনুভূমিক এবং উল্লম্ব রেখা আঁকুন

অক্ষর সংজ্ঞায়িত করুন এবং অনুভূমিক এবং উল্লম্ব রেখা আঁকুন
অক্ষর সংজ্ঞায়িত করুন এবং অনুভূমিক এবং উল্লম্ব রেখা আঁকুন
অক্ষর সংজ্ঞায়িত করুন এবং অনুভূমিক এবং উল্লম্ব রেখা আঁকুন
অক্ষর সংজ্ঞায়িত করুন এবং অনুভূমিক এবং উল্লম্ব রেখা আঁকুন

এই বিভাগটি পূর্বনির্ধারিত অক্ষর সেট করে। এগুলি 5 টি বিন্দু প্রশস্ত এবং 8 টি বিন্দু উচ্চ। সংজ্ঞাটির প্রতিটি বিন্দু পর্দায় 4 টি বিন্দু আঁকে যাতে সেগুলি আরও ভালভাবে প্রদর্শিত হয়।

অনুভূমিক এবং উল্লম্ব লাইনগুলি একটি লুপ দিয়ে আঁকা সহজ। আপনাকে শুধু মনে রাখতে হবে যে শেষে আপনার অতিরিক্ত ডট দরকার। (0, 7) থেকে (5, 7) পর্যন্ত একটি রেখার জন্য 6 টি বিন্দুর প্রয়োজন হবে: x এর সাথে 0, 1, 2, 3, 4 এবং 5 এর সমান।

বেসিক ডট কমান্ড হল oled.pixel (x, y, color) - 0 কালো এবং 1 সাদা।

মূল (0, 0) পর্দার উপরের বাম দিকে, 0 - 127 পিক্সেল অনুভূমিকভাবে (বাম থেকে ডানে) এবং 0 - 63 উল্লম্বভাবে (উপরে থেকে নীচে)।

ধাপ 8: বাক্স, ব্লক এবং ালু লাইন

বাক্স, ব্লক এবং ালু লাইন
বাক্স, ব্লক এবং ালু লাইন

বাক্সগুলি অনুভূমিক এবং উল্লম্ব রেখা থেকে নির্মিত।

একাধিক অনুভূমিক রেখা থেকে ব্লক তৈরি করা হয়।

Slালু রেখার জন্য আমরা প্রথমে যাচাই করি কো-অর্ডিনেটগুলি প্রথমে বাম দিকে দেওয়া আছে। যদি না হয় আমরা তাদের উপর অদলবদল করি কারণ লাইন বাম থেকে ডানে টানা হবে।

আমরা তারপর opeাল গণনা করি এবং x এর প্রতিটি মানের জন্য y মান নির্ধারণ করতে এটি ব্যবহার করি।

ডিসপ্লে (টি) পদ্ধতি আপডেট করা স্ক্রিনকে দৃশ্যমান করে এবং অল্প বিলম্বের জন্য অপেক্ষা করে, টি সেকেন্ড।

ধাপ 9: ডিগ্রী প্রতীক, আনলগমেন্ট, বার গ্রাফ এবং বৃত্ত

ডিগ্রী প্রতীক, আনলগমেন্ট, বার গ্রাফ এবং বৃত্ত
ডিগ্রী প্রতীক, আনলগমেন্ট, বার গ্রাফ এবং বৃত্ত

ডিগ্রী প্রতীক 4 পিক্সেল থেকে তৈরি করা হয়।

সারিবদ্ধ () রুটিন একটি নির্দিষ্ট স্থানে সংক্ষিপ্ত মানগুলিকে ডান সারিবদ্ধ করতে সংখ্যার সামনে অতিরিক্ত স্থান যুক্ত করে।

গ্রাফ (v) রুটিন একটি অনুভূমিক বার গ্রাফ আঁকা যা নির্বাচিত শতাংশ প্রদান করে। মানটি ডানদিকে লেখা আছে 'T' ব্যবহার করে 100 (টন বা টপ) উপস্থাপন করতে।

বৃত্তের কিছু ত্রিকোণমিতি প্রয়োজন তাই আমাদের স্ক্রিপ্টের শুরুতে গণিত লাইব্রেরি আমদানি করতে হবে। ব্যাসার্ধ 90 ডিগ্রী দিয়ে ঘোরানো হয় বলে কেন্দ্র থেকে x এবং y অফসেট গণনা করার জন্য আমরা sin, cos এবং radians ব্যবহার করি। অফসেটগুলির প্রতিটি গণনার জন্য চারটি চতুর্ভুজের প্রতিটিতে পয়েন্টগুলি প্লট করা হয়।

ধাপ 10: আবর্জনা সংগ্রহ, শিরোনাম এবং বৃত্ত

আবর্জনা সংগ্রহ, শিরোনাম এবং বৃত্ত
আবর্জনা সংগ্রহ, শিরোনাম এবং বৃত্ত

এই নির্দেশগুলি কালো এবং সাদা পর্দা পরিষ্কার করা, পর্দায় পাঠ্য লেখা এবং স্থান খালি করার জন্য gc () 'আবর্জনা সংগ্রহ' রুটিন ব্যবহার করে। মান দেখায় যে অনেক বড় স্ক্রিপ্টের জন্য প্রচুর জায়গা আছে।

প্রোগ্রামটি তখন একটি সাধারণ কেন্দ্র এবং চলমান কেন্দ্রগুলির সাথে বৃত্ত আঁকে। প্রয়োজনীয় গণনার পরিমাণ বিবেচনা করে একটি দ্রুত রুটিন।

লাইন ডেমোর শিরোনামটি পরে লেখা আছে।

ধাপ 11: লাইনস ডেমো

লাইনস ডেমো
লাইনস ডেমো

এই রুটিন সত্যিই লাইন () রুটিন একটি workout দেয়। রেডিয়াল লাইনগুলি ডিসপ্লের চার কোণার প্রতিটি থেকে বিভিন্ন স্পেসিং গঠনের প্যাটার্ন দিয়ে আঁকা হয়।

ধাপ 12: মূল লুপ: বার গ্রাফ এবং সংজ্ঞায়িত অক্ষর

মূল লুপ: বার গ্রাফ এবং সংজ্ঞায়িত অক্ষর
মূল লুপ: বার গ্রাফ এবং সংজ্ঞায়িত অক্ষর

এটি প্রোগ্রামের মূল লুপ। Potentiometer থেকে মান দেখানো মান পরিবর্তন করে এবং বার গ্রাফের দৈর্ঘ্য পরিবর্তন করে।

যদি বোতামটি ধরে রাখা হয় তবে সংজ্ঞায়িত অক্ষরগুলি 1/0 এবং সত্য/মিথ্যা হিসাবে অদলবদল করা হয়। এই লুপটি বেশ ধীর গতিতে চলে কারণ পূর্বনির্ধারিত অক্ষর আঁকা একটি ধীর প্রক্রিয়া। আপনি তাদের কিছু মন্তব্য করে জিনিসগুলিকে দ্রুত করতে পারেন।

এই ডেমোকে সহজ রাখতে কোন তাপমাত্রা সেন্সর লাগানো নেই, তাই '?' 190 লাইনে একটি মানের পরিবর্তে প্রদর্শিত হয়।

প্রস্তাবিত: