সুচিপত্র:

ই-পেপার ডিসপ্লে সহ ফেস মাস্ক: 9 টি ধাপ (ছবি সহ)
ই-পেপার ডিসপ্লে সহ ফেস মাস্ক: 9 টি ধাপ (ছবি সহ)

ভিডিও: ই-পেপার ডিসপ্লে সহ ফেস মাস্ক: 9 টি ধাপ (ছবি সহ)

ভিডিও: ই-পেপার ডিসপ্লে সহ ফেস মাস্ক: 9 টি ধাপ (ছবি সহ)
ভিডিও: ফোনে Front ক্যামেরা থাকলে | এই কাজটি শিখেনিন সবাই বস বলবে | Shohag Khandokar !! 2024, নভেম্বর
Anonim
ই-পেপার ডিসপ্লে সহ ফেস মাস্ক
ই-পেপার ডিসপ্লে সহ ফেস মাস্ক
ই-পেপার ডিসপ্লে সহ ফেস মাস্ক
ই-পেপার ডিসপ্লে সহ ফেস মাস্ক
ই-পেপার ডিসপ্লে সহ ফেস মাস্ক
ই-পেপার ডিসপ্লে সহ ফেস মাস্ক
ই-পেপার ডিসপ্লে সহ ফেস মাস্ক
ই-পেপার ডিসপ্লে সহ ফেস মাস্ক

করোনা ভাইরাসের প্রাদুর্ভাব পশ্চিমা বিশ্বে একটি নতুন ফ্যাশন নিয়ে এসেছে: মুখোশ। লেখার সময়, তারা জার্মানি এবং ইউরোপের অন্যান্য অংশে গণপরিবহনে দৈনন্দিন ব্যবহারের জন্য, কেনাকাটা এবং অন্যান্য বিভিন্ন অনুষ্ঠানে বাধ্যতামূলক হয়ে ওঠে। আমার মেয়ে, প্রশিক্ষণে একজন ধাত্রী, তার পরিবার এবং সহকর্মীদের জন্য অনেক মুখোশ বানিয়েছে, এবং আমাকে এই প্রকল্পের জন্য ধারণা দিয়েছে, যা আমাকে নিচের দিকে নির্দেশ করছে:

যদিও মুখের মুখোশ ভাইরাসের বিস্তারকে সীমাবদ্ধ করতে সহায়ক হতে পারে, এবং স্ব-তৈরি সম্প্রদায় মুখোশগুলি এখন বিভিন্ন আকারের আকার এবং প্যাটার্নে আসে এবং এমনকি আলোকসজ্জা সহ, তাদের একটি সাধারণ সমস্যা রয়েছে: তারা তাদের পরিধানকারীদের মুখহীন করে তোলে। অন্তত একটি নির্দিষ্ট মাত্রায়, যেমন মুখ এবং নাক coveredাকা থাকবে। যা অ-মৌখিক যোগাযোগকে কঠিন করে তোলে এবং এই সমস্ত মুখহীন মুখগুলি কেবল ছোট বাচ্চাদের ভয় দেখায় না।

নীচে আমি এই সমস্যার একটি অভিনব সমাধান বর্ণনা করতে চাই: একটি সমন্বিত প্রদর্শন সহ একটি মুখোশ। আপনার মুখ কোথায় থাকা উচিত সে সম্পর্কে এটি আপনাকে আপনার মেজাজের সাধারণ অবস্থা প্রকাশ করতে দেয় - খুশি হাসি, স্বাভাবিক, উত্তেজিত, রাগান্বিত, বিরক্ত, … পাঠ্য বার্তা, প্রতীক বা এমনকি একটি অ্যানিমেশন।

আমি বাদ দেবো না যে ধারণাটি অনুশীলনে কিছুটা ব্যবহার করতে পারে, তবে পার্টিগুলিতে পরতে অন্তত মজা হতে পারে। এবং আপনাকে আপনার প্রিয় সেলিব্রিটি, ভ্যাম্পায়ার, ওআরসি, হাঙ্গর, বিড়াল, কুকুরের হাসি পরার সুযোগ দিতে পারে।

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

অনুগ্রহ করে আমাদের আপনার সংস্করণ, বিন্যাস, উন্নতির জন্য ধারণা এবং ডিভাইসে প্রদর্শনের চিত্রগুলি দেখান।

সরবরাহ

  • ওয়েভশেয়ার নমনীয় 2.9 "ই-পেপার ডিসপ্লে ড্রাইভার HAT সহ (€ 33 Amazon.de এর মাধ্যমে)
  • আমি আলাদাভাবে উপাদানগুলি কিনেছি: ওয়েভশেয়ার নমনীয় 2.9 ইঞ্চি ই-পেপার ডিসপ্লে (একস্টাইনের মাধ্যমে, € 19), 296x128 পিক্সেল বি/ওয়াট।

    উইকি

    ওয়েভশেয়ার eInk ডিসপ্লে ড্রাইভার HAT (Amazon.de এর মাধ্যমে, € 9)

  • রাস্পবেরি পাই জিরো, আমি একটি সংস্করণ 1.3 মডেল ব্যবহার করেছি, আপনি একটি রাস্পবেরি পাই জিরো ডব্লিউ ব্যবহার করতে পারেন (Pimoroni.com, € 10.51)
  • Pimoroni Button shim (Pimoroni.co.uk এ € 8.55)
  • ডিসপ্লের জন্য ব্যাকিং হিসেবে একটি পাতলা, অনমনীয় কিন্তু নমনীয় প্লাস্টিকের প্লেট (আমি আইফোন 5 এর জন্য একটি অব্যবহৃত ডিসপ্লে সুরক্ষা শীট ব্যবহার করেছি)
  • ইউএসবি পাওয়ার ব্যাংক এবং লম্বা মাইক্রো ইউএসবি কেবল
  • বাণিজ্যিক বা কাস্টম তৈরি মুখোশ (ফ্ল্যাট টাইপ)
  • Alচ্ছিক: একটি দীর্ঘ ফিতা কেবল (FFC 24 পিন 0.5 মিমি পিচ) সহায়ক হবে, যেমন 60 সেমি-SAMTEC FJH-20-D-24.00-4 Digi-Key (দীর্ঘতম ফিটিং-দ্য-শেলফ ক্যাবল আমি খুঁজে পেতে পারি) অথবা অ্যাডাপ্টার ব্যবহার করে 20 সেমি FFC টুকরা (এখানে যেমন করা হয়েছে)

    মে ২০২০ এর শেষ পর্যন্ত অ্যাডাফ্রুট ২৫ সেমি ২ pin পিন এক্সটেনশন ক্যাবল এবং এক্সটেন্ডার কানেক্টর অফার করছে: (কেবল: https://www.adafruit.com/product/4230, 1.5 US $), সংযোগকারী: (https:// www.adafruit.com/পণ্য/4524)

  • Ptionচ্ছিক: পেটেন্ট ফাস্টেনার বা সেলাইযোগ্য ভেলক্রো স্ট্রিপ ডিসপ্লেতে ফেইস মাস্ক বা কাপড়ের খাম, রাবার ব্যান্ড (ব্রা মেরামতের কিট থেকে কিছু ব্যবহার করা হয়েছে) ঠিক করতে
  • খামে প্রদর্শনের অবস্থান ঠিক করতে ডবল পার্শ্বযুক্ত টেপ (অথবা আপনি এটি ঠিক করতে সেলাই করতে পারেন)
  • RPi জিরোর জন্য ল্যানিয়ার্ড স্ট্রিপ

ধাপ 1: প্রযুক্তিগত বিন্যাস এবং ধারণা

প্রযুক্তিগত বিন্যাস এবং ধারণা
প্রযুক্তিগত বিন্যাস এবং ধারণা
প্রযুক্তিগত বিন্যাস এবং ধারণা
প্রযুক্তিগত বিন্যাস এবং ধারণা
প্রযুক্তিগত বিন্যাস এবং ধারণা
প্রযুক্তিগত বিন্যাস এবং ধারণা

ওয়েভশেয়ার 9. x x ২. cm সেন্টিমিটার আকারের একটি নমনীয় 2.9 ইঞ্চি ই-পেপার ডিসপ্লে এবং 296 x 128 পিক্সেলের রেজোলিউশন এবং তাদের ই-ইঙ্ক ডিসপ্লেগুলির নিয়ন্ত্রণকে সহজ করার জন্য একটি রাস্পবেরি পাই এইচএটি অফার করছে। 2.9 ডিসপ্লের আকার এবং রেজোলিউশনের মাধ্যমে মুখটি সম্পূর্ণ আকারে প্রদর্শিত হতে পারে এবং নমনীয় হওয়ায় এটি বাঁকা উপরিভাগে স্থাপন করা যায়। ডিসপ্লের সাথে একটি ছোট কানেক্টর সংযুক্ত করতে হবে যা তারপর 24 পিন ফ্ল্যাট ব্যান্ড ক্যাবল দিয়ে RPi HAT এর সাথে সংযুক্ত করতে হবে।

মাইক্রোকন্ট্রোলার হিসাবে রাস্পবেরি পাই জিরো ব্যবহার করে ডিসপ্লে নিয়ন্ত্রণের জন্য বিস্তৃত সুযোগ দেওয়া হয়। অন্যান্য HATs/pHATs এবং অধিকাংশ উদ্দেশ্যে যথেষ্ট নিয়ন্ত্রণ বিকল্প প্রদান করতে পারে। অপ্টিমাইজড প্রোগ্রামিং (যেকোন সাহায্য স্বাগত!) সিস্টেমের বিদ্যুৎ খরচ কমিয়ে আনতে পারে।

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

বর্তমান বিন্যাসের একটি সীমাবদ্ধতা অপেক্ষাকৃত সংক্ষিপ্ত তারের ফলে RPi এবং প্রদর্শনকে সংযুক্ত করে। HAT এর সাথে আসা তারের দৈর্ঘ্য 20 সেমি লম্বা, আমি যে দীর্ঘতম অনুরূপ তারের সন্ধান করতে পারি তা ছিল 60 সেমি লম্বা (কিন্তু মে 2020 এ উপলব্ধ নয়)। আপনার হাতের পরিসরে রাস্পবেরি থাকা, যেমন একটি কব্জি ব্যান্ডে, কেউ এইগুলির মধ্যে কয়েকটি সংযোগকারীকে তার মধ্যে সংযুক্ত করতে পারে। এই মুহুর্তে আমি আরপিআই জিরোকে একটি ল্যানার্ড হিসাবে পরার বিকল্পটি অবলম্বন করেছি (চিত্রগুলি দেখুন)।

আপনি RPi ছাড়া ডিসপ্লে মাস্ক পরতে পারেন, কারণ ই-পেপার ডিসপ্লেতে শুধু বাহ্যিক শক্তির প্রয়োজন হয় পরিবর্তনের জন্য কিন্তু ছবি প্রদর্শনের জন্য নয়। সুতরাং আপনি কেবল আপনার "দিনের উপমা" বেছে নিতে পারেন, ডিসপ্লের সাথে RPi সংযুক্ত করতে পারেন, ডিসপ্লেতে সেই অনুযায়ী ছবি লোড করতে পারেন এবং তারপর RPi সংযোগ বিচ্ছিন্ন করতে পারেন।

বাচ্চাদের সংস্করণের জন্য আপনি ওয়েভশেয়ারের দেওয়া নমনীয় 2.13 '' ডিসপ্লে ব্যবহার করতে পারেন। যেহেতু এটির রেজোলিউশন 212x104 পিক্সেল, আপনাকে অবশ্যই এই আকারে bmp ফাইল তৈরি করতে হবে। এই ডিসপ্লের জন্য স্ক্রিপ্ট অ্যাডাপ্ট করা খুবই সহজ।

অ্যাডাফ্রুট অনুরূপ নমনীয় ডিসপ্লে এবং তাদের ফেদার বোর্ড পরিবারের জন্য একটি ড্রাইভার বোর্ড ফিটিং অফার করছে। এটি একটি মাইক্রোকন্ট্রোলারের সাথে এই ধারণাটি ব্যবহার করার অনুমতি দেবে। আরো বিস্তারিত জানার জন্য ধাপ 9 দেখুন।

ধাপ 2: কালো এবং সাদা ছবি তৈরি করুন

কালো এবং সাদা ছবি তৈরি করুন
কালো এবং সাদা ছবি তৈরি করুন
কালো এবং সাদা ছবি তৈরি করুন
কালো এবং সাদা ছবি তৈরি করুন
কালো এবং সাদা ছবি তৈরি করুন
কালো এবং সাদা ছবি তৈরি করুন

আপনি ভেক্টর গ্রাফিক্স (যেমন ইঙ্কস্কেপ) বা পিক্সেল গ্রাফিক্স (যেমন জিআইএমপি) প্রোগ্রাম ব্যবহার করে প্রদর্শনের জন্য ছবি তৈরি করতে পারেন, কিন্তু চূড়ান্ত আউটপুট অবশ্যই 296 x 128 পিক্সেল কালো এবং সাদা বিএমপি-ফাইল হতে হবে।

সুতরাং, ই-পেপার ডিসপ্লেতে একটি রঙিন ইমেজ দেখানোর জন্য এটিকে একটি কালো এবং সাদা ছবিতে রূপান্তরিত করতে হবে।

আপনি হয় সংগ্রহ থেকে bmp ছবি ব্যবহার করতে পারেন (শেষ ধাপ), অথবা আপনি আপনার নিজের কিছু তৈরি। নিম্নলিখিত বর্ণিত হিসাবে। লক্ষ্যে পৌঁছানোর বিভিন্ন উপায় থাকতে পারে, কিন্তু আমি GIMP ব্যবহার করে একটি খুব সহজ এবং সহজ পদ্ধতি ব্যবহার করেছি:

  1. শুধু মুখের অংশের সাথে একটি ছবি-ফাইল পান যার আকার সর্বনিম্ন 296 পিক্সেল প্রশস্ত 128 পিক্সেল উচ্চ। এর জন্য একটি হাই-রেস ফ্রন্টাল পোর্ট্রেটের প্রয়োজন হতে পারে।
  2. প্রায় 2.32 থেকে 1 এর প্রস্থ থেকে উচ্চতার অনুপাত সহ একটি এলাকা নির্বাচন করুন এবং চিত্রটি ব্যবহার করুন - নির্বাচন থেকে সঙ্কুচিত করুন*
  3. তারপর, ইমেজ - স্কেল ইমেজ* ব্যবহার করে 296 পিক্সেল চওড়া (বা 128 পিক্সেল উচ্চ) সঙ্কুচিত করুন।
  4. পরবর্তী হিসাবে, একটি 296 x 128 পিক্সেল বৃহৎ এলাকা নির্বাচন করুন এবং উপরের মত ছবিটি ছাঁটাই করুন।
  5. আকার ঠিক 296x128 পিক্সেল হতে হবে, প্রয়োজন হলে ইমেজ-অ্যাডজাস্ট ক্যানভাস সাইজ* ব্যবহার করুন
  6. এখন ইমেজ - মোড - গ্রেস্কেল ব্যবহার করে ছবিটিকে গ্রেস্কেলে রূপান্তর করুন। এই পদক্ষেপটি কঠোরভাবে প্রয়োজনীয় নয়, তবে সমন্বয় এবং অপ্টিমাইজেশনের জন্য বেশ কার্যকর হতে পারে (ধাপ 9 দেখুন)।
  7. তারপর "1 বিট" এবং "ফ্লয়েড -স্টেইনবার্গ" ডাইথারিং বিকল্প সহ ইমেজ - মোড - ইনডেক্সড* ব্যবহার করে একটি b & w বিটম্যাপে রূপান্তর করুন
  8. অবশেষে, একটি উপযুক্ত ফোল্ডারে BMP হিসাবে বিটম্যাপ রপ্তানি করুন
  9. আপনি ধূসর-স্কেল চিত্রের বিপরীতে বা উজ্জ্বলতা হিসাবে পরামিতিগুলি পরিবর্তন করে ফলাফলগুলি অনুকূল করার চেষ্টা করতে পারেন। রঙ- উপাদান- উপাদানগুলি এক্সট্র্যাক্ট করুন- RGB সবুজ চ্যানেল ছবিগুলি উন্নত করতে এবং মুখের মতো লাল উপাদানগুলি উন্নত করার একটি সহজ বিকল্প। ধাপ 7 এ ফিরে যান।
  10. একটি "অ্যানিমেটেড জিআইএফ" -এর মতো মুভির জন্য, আপনি উপরের মত পরপর কয়েকটি ছবি প্রস্তুত করতে পারেন এবং বিএমপিগুলিকে যৌক্তিক উপায়ে নাম এবং সংখ্যা দিতে পারেন। তারপরে আপনি ডিসপ্লেতে তাদের একের পর এক প্রদর্শন করতে পারেন।
  11. ফাইলগুলিকে ই-পেপার উদাহরণ ফোল্ডার থেকে পিক-সাবফোল্ডারে রাখুন, যদি প্রয়োজন হয় তবে তাদের নাম পরিবর্তন করুন (উদা image image_1.bmp, …)
  12. উদাহরণ স্ক্রিপ্টে দেওয়া bmp- ফাইলের নামগুলি আপনার ফাইলগুলির সাথে প্রতিস্থাপন করুন।

মন্তব্য:

  • আমি নিশ্চিত নই যে আমি সমস্ত জিআইএমপি কমান্ডের ইংরেজি নাম পেয়েছি কিনা, কারণ আমি একটি জার্মান সংস্করণ ব্যবহার করছি।
  • কিছু উদাহরণের জন্য ইন্টারনেট থেকে তোলা ছবিগুলির ছবি ব্যবহার করা হয়েছিল, তাই এগুলি প্রকাশনায় বা কোনও বাণিজ্যিক উদ্দেশ্যে ব্যবহার নাও হতে পারে।

ধাপ 3: ইলেকট্রনিক্স এবং সমাবেশ

ইলেকট্রনিক্স এবং সমাবেশ
ইলেকট্রনিক্স এবং সমাবেশ
ইলেকট্রনিক্স এবং সমাবেশ
ইলেকট্রনিক্স এবং সমাবেশ
ইলেকট্রনিক্স এবং সমাবেশ
ইলেকট্রনিক্স এবং সমাবেশ

ইলেকট্রনিক যন্ত্রাংশ সমাবেশ তুলনামূলকভাবে সহজ। বোতাম শিম, যদি সরাসরি RPi এর সাথে সংযুক্ত থাকে, প্রস্তুতকারকের নির্দেশে নির্দেশিত RPi এর GPIO- এর কাছে বিক্রি করতে হয়। যেহেতু শিমটি খুব পাতলা, তাই জিপিও -তে শিম সংযুক্ত করে একটি HAT স্থাপন করা যেতে পারে। যতটা সম্ভব কম ঝাল ব্যবহার করুন এবং শিম এলাকার উপরে জিপিআইও পিনগুলি দূষিত না করার চেষ্টা করুন, প্রয়োজনে desolder। ওয়েভশেয়ার ই-পেপার HAT এর সংমিশ্রণে আপনি বাটন শিমের পাশাপাশি GPIO- তে একটি Pimoroni ZeroLiPo shim যোগ করতে পারেন, যা একটি ছোট লিপোকে পাওয়ার সোর্স হিসেবে ব্যবহার করতে পারে। তারপর HAT দিয়ে আসা স্ট্যান্ড-অফ ব্যবহার করে GPIO- এর কাছে ই-পেপার HAT রাখুন।

ই-পেপার ডিসপ্লে এবং ফ্ল্যাট কানেকশন ক্যাবলকে ই-পেপার অ্যাডাপ্টারের সাথে সংযুক্ত করুন এবং তারপর ই-পেপার এইচএটি-তে নির্মাতার (এফএফসি ক্যাবলের শেষ প্রান্তে নীল নির্মাতারা) বর্ণিত হিসাবে সংযুক্ত করুন। নমনীয় 2.9 '' ডিসপ্লে "A" এবং "0" এর জন্য ব্যবহৃত ডিসপ্লে এর প্রয়োজনীয়তা অনুযায়ী HAT- এ দুটি সুইচ সেট করুন।

নিশ্চিত করুন যে আপনি সমস্ত প্রয়োজনীয় সফ্টওয়্যার এবং লাইব্রেরি ইনস্টল করেছেন।

আপনি প্রথমে উপাদানগুলির কার্যকারিতা পরীক্ষা করতে পিমোরোনি এবং ওয়েভশেয়ারের দেওয়া উদাহরণ স্ক্রিপ্টগুলি ব্যবহার করতে পারেন, তারপরে প্রকল্প-নির্দিষ্ট কোডটি পরীক্ষা করুন (পরবর্তী ধাপে দেখানো হয়েছে)।

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

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

প্রোটোটাইপের জন্য আমি পকেটের মতো প্লাস্টিকের টিস্যু (20x9.5 সেমি) ব্যবহার করেছি, আসলে কিছু প্যাকেজিং উপাদান যা হাতে ছিল। আমি তখন ডিসপ্লের জন্য একটি গর্ত কেটে সেখানে ডিসপ্লে / ব্যাকিং প্লেট ঠিক করেছি। আমি তখন কোণে চারটি প্লাস্টিকের ল্যাচ সংযুক্ত করেছি, ছবিগুলি দেখুন। মুখের উপর পুরো জিনিসটি ধরে রাখার জন্য আমি ব্রা মেরামতের কিট থেকে হুক সহ দুটি স্বচ্ছ রাবার ব্যান্ড ব্যবহার করেছি। তাই তারা আপনার মাথার চারপাশে যায় এবং দৈর্ঘ্য সমন্বয় খুব সহজ।

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

উদাহরণ স্ক্রিপ্টটি প্রদর্শন HAT এর জন্য ওয়েভশেয়ার দ্বারা প্রদত্ত ডেমো স্ক্রিপ্টগুলির একত্রীকরণ (এখানে Github দেখুন) এবং বোতাম শিমের জন্য Pimoroni দ্বারা (এখানে দেখুন)। যে কোনও প্রশংসা তাদের কাছে যায়, আমি যে কোনও দোষ নেব। অপ্টিমাইজেশনের জন্য কোন মন্তব্য এবং পরামর্শ স্বাগত।

গিটহাবের ডকুমেন্টেশনে নির্দেশিত ওয়েভশেয়ার স্ক্রিপ্টের জন্য বেশ কয়েকটি লাইব্রেরি ইনস্টল করা প্রয়োজন। পিমোরোনি স্ক্রিপ্টও তাই, কিন্তু এখানে আপনার জন্য কাজটি করার একটি সরঞ্জাম রয়েছে।

রাস্পিয়ানের সাথে একটি তাজা ঝলসানো এসডি কার্ড ব্যবহার করা ভাল, তারপরে পিমোরোনি সরঞ্জামটি ব্যবহার করুন

sudo apt-get pimoroni ইনস্টল করুন

এবং বোতাম শিম কোডগুলি ("অন্যদের" অধীনে পাওয়া যায়) এবং নির্ভরতাগুলি ইনস্টল করতে এটি ব্যবহার করুন।

WaveShare অংশের জন্য, GitHub পৃষ্ঠা থেকে তাদের ড্রাইভার এবং উদাহরণ প্যাকেজটি অনুলিপি করুন এবং সেখানে বর্ণিত (এবং) যেকোনো নির্ভরতা ইনস্টল করুন। বেশিরভাগ নির্ভরতা ইতিমধ্যে পূরণ করা যেতে পারে।

ওয়েভশেয়ার ডিসপ্লে সফটওয়্যারের পাইথন উদাহরণ ফোল্ডারে স্ক্রিপ্টটি রাখুন এবং পিক সাবফোল্ডারে bmp-files কপি করুন।

স্ক্রিপ্ট ব্যবহার করা তুলনামূলকভাবে সহজ। ক্ষেত্রে, BMP- এর তালিকাগুলির BMP- ফাইলের নামগুলি আপনি যেগুলি প্রদর্শন করতে চান তাতে পরিবর্তন করুন। আপনি ব্যাকআপ তালিকা প্রস্তুত করতে পারেন এবং কপি করে সক্রিয় তালিকায় কাঙ্ক্ষিত তালিকাটি প্রতিস্থাপন করতে পারেন।

স্ক্রিপ্ট চালান। জিনিসগুলি ভাল চলছে কিনা তা পরীক্ষা করুন। তারপরে আপনি HDMI এবং USB অ্যাডাপ্টারগুলি সরিয়ে ফেলতে পারেন (কিছু ইউএসবি-হাব সহ, অপসারণ আরপিআই বন্ধ করতে পারে) এবং আপনার মুখের উপর ডিসপ্লে মাস্ক এবং আপনার গলায় ল্যানার্ড রাখুন। সবকিছু ভালভাবে কাজ করছে কিনা তা পরীক্ষা করতে আয়নার দিকে তাকান এবং খেলুন।

বোতামগুলি পড়ার জন্য এবং bmps প্রদর্শন করার জন্য স্ক্রিপ্টটি ন্যূনতম প্রয়োজনীয় হয়ে গেছে। সুতরাং যদি আপনি পাঠ্য, লাইন বা জ্যামিতিক পরিসংখ্যান প্রদর্শন করতে চান, দয়া করে 2in9d উদাহরণ স্ক্রিপ্ট থেকে প্রয়োজনীয় উপাদানগুলি যোগ করুন।

ছবিগুলি, যা অবশ্যই "পিক" ফোল্ডারে অবস্থিত, "বিএমপি" তালিকায় তালিকাভুক্ত করা হয়েছে, যার মধ্যে 5 টি সাবলিস্ট রয়েছে যার প্রত্যেকটিতে 5 টি বা মোট 25 টি ছবির নাম রয়েছে। প্রতিটি সাবলিস্টে প্রথম ছবিটি বোতাম A এর সাথে সংযুক্ত, দ্বিতীয়টি বোতাম B এর সাথে সংযুক্ত। A থেকে E বোতামের একটি দীর্ঘ টিপে উপ -তালিকা নির্বাচন করা যায়, অর্থাৎ প্যানেল 1 বাটন A, প্যানেল 2 দ্বারা বোতাম B ইত্যাদি ব্যবহার করে নির্বাচিত করা হয়। খুব শীঘ্রই বা 2 সেকেন্ডেরও বেশি সময় ধরে রাখা, যার ফলে পতাকার ভেরিয়েবল পরিবর্তিত হয়। মূল প্রোগ্রামের লুপ ঠিকই শনাক্ত করে যদি একটি বোতাম চাপানো হয়/পড়ার পতাকা বোতাম_ওয়াস_হেল্ড এবং বোতাম_ওয়াস_প্রেসড, এবং কোন পতাকাগুলি (প্যানেল_ফ্লাগ, বোতাম_ফ্লাগ) উত্থাপিত হয়েছে। তারপর এটি অনুসারে সংশ্লিষ্ট ভেরিয়েবল (প্যানেল বা চিত্র) সেট করে। অবশেষে "BMPs [প্যানেল] [চিত্র]" এর সাথে সম্পর্কিত ছবিটি তালিকা থেকে নির্বাচন করা হয় এবং প্রদর্শনের জন্য লেখা হয়। তারপরে পতাকাগুলি তাদের স্থল অবস্থানে পুনরায় সেট করা হয় "শূন্য" বা "মিথ্যা"।

বাকি স্ক্রিপ্ট বেশিরভাগই ভেরিয়েবল সেট করা, ডিসপ্লের সূচনা এবং কিছু ত্রুটি হ্যান্ডলিং সম্পর্কে। আপনি আইডিই থেকে স্ক্রিপ্টটি চালাতে পারেন, অথবা "python3 Button_shim_2in9_1.py" ব্যবহার করে কনসোল থেকে। বিকল্পভাবে আপনার বুট করার পরে স্ক্রিপ্টটি সরাসরি চলতে পারে।

স্ক্রিপ্টটি এখনও অপ্টিমাইজেশান চলছে, তাই দয়া করে আপডেটগুলি পরীক্ষা করুন।

সর্বশেষ সংস্করণ (২০২০-মে -১০) তালিকায় BMPs, display_gallery (), এবং collection_x তালিকা, display_collections () প্রদর্শনের জন্য ছবি প্রদর্শন করার জন্য একটি ফাংশন রয়েছে। নীচের তালিকায় অন্তর্ভুক্ত নয়, সংযুক্ত ফাইল দেখুন।

অনুগ্রহ করে সচেতন থাকুন যে, "ভুতুড়ে" এড়াতে, ডিসপ্লেটি বেশ কয়েক দিন ব্যবহার না করলে যেকোনো ছবি মুছে দিন।

#!/usr/bin/env পাইথন

# Pimoroni বাটন থেকে শিম স্ক্রিপ্ট আমদানি সময় আমদানি সংকেত আমদানি buttonShim # আমদানি এবং প্রদর্শন শুরু # ওয়েভশেয়ার-কাগজ স্ক্রিপ্ট #-*-কোডিং: utf-8-*-আমদানি sys আমদানি os picdir = os.path.join (os.path.dirname (os.path.dirname (os.path.realpath (_ file_))), 'pic') libdir = os.path.join (os.path.dirname (os.path.dirname) (os.path.realpath (_file_))), 'lib') যদি os.path.exists (libdir): sys.path.append (libdir) আমদানি লগিং থেকে waveshare_epd আমদানি epd2in9d আমদানি সময় PIL আমদানি ইমেজ, ImageDraw, ImageFont আমদানি ট্রেসব্যাক #সেট আউটপুট লগ স্তর logging.basicConfig (লেভেল = logging. DEBUG) '' যোগ দিন (picdir, 'Font.ttc'), 24) ''.bmp "], [" Katze_1.bmp "," Hai_1.bmp "," Hai_4.bmp "," Hund_1.bmp "," Corona_1.bmp "], [" TheQueen_2.bmp "," TheQueen_1.bmp ", "C_Darwin.bmp", "Vampire_1.bmp", "Mouth_22.bmp"], ["Mouth_17.bmp", "Mouth_12.bmp", "Mouth_16.bmp", "Mouth_18.bmp", "Orc_1.bmp"], ["White.bmp", "কালো। bmp "," Dirt_1.bmp "," Dark_sparks_1.bmp "," Bricks.bmp "] # প্রতিস্থাপন তালিকা # BMP -list_1 - [" "," "," ",", ""] 'ব্যাকআপ তালিকা তৈরি করে আপনার পছন্দের সংমিশ্রণের # BMP- তালিকা_2 - ["", "", "", "", ""] default_image = "Corona_1.bmp" # ছবিটি স্টার্টআপে দেখানো হবে def display_image (image): # ফাংশন ইমেজ লিখতে ই-পেপার ডিসপ্লেতে Himage = Image.open (os.path.join (picdir, image)) epd.display (epd.getbuffer (Himage)) time.sleep (.5) def display_gallery (): #ব্যবহার করা যাবে সমস্ত চিত্র তালিকা এবং প্রদর্শন করুন epd = epd2in9d. EPD () epd.init () epd. Clear (0xFF) i in range (5): j in range (5): print (i, "", j) to_display = BMPs [j] print (to_display) display_image (to_display) time.sleep (1) #অপেক্ষা করুন 1 সেকেন্ড পরের #দীর্ঘ প্রেস ডিটেকশন @buttonshim.on_hold (buttonshim. BUTTON_A, hold_time = 2) def hold_handler_a (button): গ্লোবাল বোতাম_ওয়াস_হেল্ড, প্যানেল_ফ্লাগ বোতাম_ওয়াস_হেল্ড = সত্য মুদ্রণ ("লং প্রেস বোতাম A সনাক্ত!") panel_flag = "panel_1" @buttonshim.on_hold (buttonshim. BUTTON_B, hold_time = 2) def hold_handler_b (button): global button_was_held, panel_flag button_was_held = True print ("Long press button B সনাক্ত ! ") panel_flag =" panel_2 " @buttonshim.on_hold (buttonshim. BUTTON_C, hold_time = 2) def hold_handler_c (button): global button_was_held, panel_flag button_was_held = true print (" লং প্রেস বাটন সি সনাক্ত! ") panel_flag =" panel_3 " @buttonshim.on_hold (buttonshim. BUTTON_D, hold_time = 2) def hold_handler_d (button): global button_was_held, panel_flag button_was_held = true print ("লং প্রেস বাটন ডি সনাক্ত!") panel_flag = "panel_4" @buttonshim.on_hold (buttonshim. B_TE_B, hold_time = 2) def hold_handler_e (button): global button_was_held, panel_flag button_was_held = true print ("Long press button E সনাক্ত!") panel_flag = "panel_5" #short press detection @buttonshim.on_release (buttonshim. BUTTON_A) def button_a (বোতাম, চাপা): বিশ্বব্যাপী বোতাম_ চাপানো, খ utton_flag button_was_pressed = ট্রু প্রিন্ট ("শর্ট প্রেস বাটন A সনাক্ত!") button_flag = "button_1" @buttonshim.on_release (buttonshim. BUTTON_B) def button_b (button, pressed): global button_was_pressed, button_flag button_was_pressed = true print ("short press button" B শনাক্ত হয়েছে! @buttonshim.on_release (buttonshim. BUTTON_D) def button_d (button, pressed): global button_was_pressed, button_flag button_was_pressed = true print ("Short press button D detect!") button_flag = "button_4" @buttonshim.on_release (buttonshim. BUTTON) button_e (button, pressed): global button_was_pressed, button_flag button_was_pressed = true print ("সংক্ষিপ্ত প্রেস বোতাম E সনাক্ত!") button_flag = "button_5" #পতাকার বেসিক অবস্থা এবং কাজের ভেরিয়েবল button_flag = "null" panel_flag = "নাল" ইমেজ = 0 # ইমেজ ইন্ডিকেটর প্যানেল = 0 # প্যানেল নির্দেশক: প্যানেল 1 কে বেস প্যানেল বাটন_was_held = মিথ্যা বোতাম_ওয়াস_প্রেসড = মিথ্যা টু_ডিসপ্লে = "xxx.bmp" চেষ্টা করুন: logging.info ("epd2in9d w/ button shim") epd = epd2in9d।.py, 2in9d প্রদর্শনের জন্য অভিযোজিত। LED টিকে একটি ভিন্ন রঙের রংধনুর আলো জ্বালান এবং প্রতিটি বোতাম টিপে ডিসপ্লেতে একটি নির্দিষ্ট ছবি প্রদর্শন করুন।সত্য যখন: time.sleep (.5) # চেক বৃত্তের মধ্যে বিরতি দিন (button_was_held == True): #print (panel_flag, button_flag) if panel_flag == "panel_1": panel = 0 elif panel_flag == " panel_2 ": panel = 1 elif panel_flag ==" panel_3 ": panel = 2 elif panel_flag ==" panel_4 ": panel = 3 elif panel_flag ==" panel_5 ": panel = 4 panel_flag =" null "button_was_held = false false buttonshim.set_pixel (0x94, 0x94, 0x94) # সাদা, যেমন প্যানেল পরিবর্তন সূচক button_was_pressed = মিথ্যা logging.info ("ক্লিয়ার ডিসপ্লে") epd. Clear (0xFF) # সাদা লিখুন - clearচ্ছিক পরিষ্কার ডিসপ্লে স্টেপ এলিফ (button_was_pressed == সত্য): if button_flag == "button_1": buttonshim.set_pixel (0x94, 0x00, 0xd3) #violet image = 0 elif button_flag == "button_2": buttonshim.set_pixel (0x00, 0x00, 0xff) #blue image = 1 elif button_flag == "button_3 ": buttonshim.set_pixel (0x00, 0xff, 0x00) #green image = 2 elif button_flag ==" button_4 ": buttonshim.set_pixel (0xff, 0xff, 0x00) #yellow image = 3 elif button_flag ==" button_5 ": buttonshim। set_pixel (0xff, 0x00, 0x00) #red image = 4 to_display = BMPs [panel] [image] print (button_flag, ":", to_display) display_image (to_display) button_was_pressed = false logging.info ("Clear …") epd. Clear (0xFF) logging.info ("Goto Sleep …") epd.sleep () IOError বাদে e: logging.info (e) ছাড়া KeyboardInterrupt: logging.info ("ctrl + c:") epd2in9d.epdconfig.module_exit () exit ()

ধাপ 5: একটি কাপড় মাস্ক সংস্করণ এবং আরও অ্যাপ্লিকেশন ধারণা

একটি কাপড় মাস্ক সংস্করণ এবং আরও অ্যাপ্লিকেশন ধারণা
একটি কাপড় মাস্ক সংস্করণ এবং আরও অ্যাপ্লিকেশন ধারণা

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

আমি এখন পর্যন্ত যা করেছি তা হল একটি স্থানীয় দর্জি দোকানে কেনা একটি মুখোশ ব্যবহার করা ("Schneiderei Schmargendorf") কিছু মোটা কাপড় দিয়ে তৈরি, ডিসপ্লেটি যে জায়গায় রাখা উচিত তা চিহ্নিত করে তারপর বাইরের স্তরে একটি ছিদ্র কাটা মুখোশ ডিসপ্লে ক্যাবলের জন্য একটি যথাযথ অবস্থানে ভেতরের দিকে একটি চেরা কাটা হয়েছিল। ব্যাকিং প্লেটটি ন্যূনতম প্রয়োজনীয় আকারে কাটা হয়েছিল এবং সেলাইয়ের অনুমতি দেওয়ার জন্য বেশ কয়েকটি ছোট গর্ত করা হয়েছিল। তারপরে ডবল পার্শ্বযুক্ত টেপ ব্যবহার করে ডিসপ্লেটি ব্যাকিং প্লেটে স্থির করা হয়েছিল, প্লেট ঠিক করতে এবং কাপড়ের স্তরে প্রদর্শনের জন্য প্রান্তগুলিতেও প্রয়োগ করা হয়েছিল। তারপরে ডিসপ্লেটি মাস্কের মধ্যে রাখা হয়েছিল, তারটি স্লিটের দিকে সরানো হয়েছিল এবং কাপড়টি ব্যাকিং প্লেটে লাগানো হয়েছিল। কাটা প্রান্তগুলিকে শক্তিশালী করার জন্য এটি সহায়ক হতে পারে এর আগে কাপড়, যেমন অল্প পরিমাণে সুপার আঠা দিয়ে। সবকিছু ঠিকঠাক আছে কিনা তা যাচাই করার পরে সেলাই করে ব্যাকিং প্লেট ঠিক করুন। ক্যাবলটিকে HAT এর সাথে সংযুক্ত করুন এবং Pi শুরু করুন।

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

পরবর্তীতে, উন্নত সংস্করণগুলি আরও পেশাদার চেহারা পেতে একটি ডেডিকেটেড ডিসপ্লে হোল্ডারকে সংহত করতে পারে।

---------------------------- যদিও মূল ধারণাটি ডিসপ্লে সহ একটি মুখোশ ছিল, একটি খুব অনুরূপ বিন্যাস নাম ট্যাগের জন্যও ব্যবহার করা যেতে পারে, অথবা জামাকাপড় বা কব্জি ব্যান্ডের মধ্যে সমন্বিত একটি প্রদর্শন।

অথবা ইন্টিগ্রেটেড ডিসপ্লে সহ হেডব্যান্ড সহ "আমি কে" সংস্করণ সম্পর্কে চিন্তা করুন, ছবিগুলি বা পদগুলি প্রদর্শন করুন যা এলোমেলোভাবে একটি বড় সংগ্রহ থেকে নেওয়া হয়েছে।

একটি ধারণা আমি বরং হাস্যকর মনে করি, কিন্তু এটিকে অযৌক্তিকভাবে ছেড়ে দিতে চাই না, এই ধরনের প্রদর্শন সহ একটি নিকাব হবে।

আপনার কি অতিরিক্ত ধারণা আছে? আমাকে বুঝতে দাও!

যেহেতু পুরো প্রকল্পটি এখনও চলছে, সময়ে সময়ে আপডেটগুলি দেখুন।

ধাপ 6: চিত্র সংগ্রহ - মুখ এবং মুখ

ছবি সংগ্রহ - মুখ ও মুখ
ছবি সংগ্রহ - মুখ ও মুখ
ছবি সংগ্রহ - মুখ ও মুখ
ছবি সংগ্রহ - মুখ ও মুখ
ছবি সংগ্রহ - মুখ ও মুখ
ছবি সংগ্রহ - মুখ ও মুখ
ছবি সংগ্রহ - মুখ ও মুখ
ছবি সংগ্রহ - মুখ ও মুখ

এখানে আপনি এমন একটি ছবি পাবেন যা 2.9 ইঞ্চি ডিসপ্লেতে ব্যবহার করা যেতে পারে, মুখের দিকে মনোযোগ দিয়ে, সাধারণত মুখের অংশে সীমাবদ্ধ থাকে। অন্যদের মধ্যে, এতে রয়েছে এইচএম দ্য কুইন (2x), প্রেসিডেন্ট ওবামা, গান্দি, দালাই লামা, স্ট্যালিন, পল নিউম্যান, পাভারোটি এবং আমার বিড়াল।

অনুগ্রহ করে সচেতন থাকুন, যেহেতু আমি তাদের থেকে কিছু উৎস হিসাবে ইন্টারনেট থেকে ছবি ব্যবহার করেছি, কপিরাইট সুরক্ষা এখনও প্রযোজ্য হতে পারে এবং সেগুলি বাণিজ্যিক উদ্দেশ্যে ব্যবহার নাও হতে পারে।

ধাপ 7: সংগ্রহ - প্যাটার্নস

সংগ্রহ - প্যাটার্নস
সংগ্রহ - প্যাটার্নস
সংগ্রহ - প্যাটার্নস
সংগ্রহ - প্যাটার্নস
সংগ্রহ - প্যাটার্নস
সংগ্রহ - প্যাটার্নস

এখানে বেশ কয়েকটি নিদর্শন রয়েছে যা প্রদর্শিত হতে পারে, সর্বাধিক GIMP ব্যবহার করে তৈরি করা হয়।

ধাপ 8: চিত্র সংগ্রহ - চিহ্ন, প্রতীক এবং পাঠ্য

চিত্র সংগ্রহ - চিহ্ন, প্রতীক এবং পাঠ্য
চিত্র সংগ্রহ - চিহ্ন, প্রতীক এবং পাঠ্য
চিত্র সংগ্রহ - চিহ্ন, প্রতীক এবং পাঠ্য
চিত্র সংগ্রহ - চিহ্ন, প্রতীক এবং পাঠ্য
চিত্র সংগ্রহ - চিহ্ন, প্রতীক এবং পাঠ্য
চিত্র সংগ্রহ - চিহ্ন, প্রতীক এবং পাঠ্য

293x128 প্রদর্শনের জন্য আরো উদাহরণ চিত্র:

চিহ্ন এবং প্রতীক, গ্রন্থ।

আবার: কিছু ছবি বা চিহ্ন (যেমন রাস্পবেরি, অ্যাপল, নির্দেশাবলী) কপিরাইট সুরক্ষিত হতে পারে এবং বাণিজ্যিক উদ্দেশ্যে ব্যবহার করা হবে না।

ধাপ 9: বিকল্প বিন্যাস: Adafruit পালক এবং ই-কাগজ প্রদর্শন

বিকল্প লেআউট: অ্যাডাফ্রুট পালক এবং ই-পেপার ডিসপ্লে
বিকল্প লেআউট: অ্যাডাফ্রুট পালক এবং ই-পেপার ডিসপ্লে
বিকল্প লেআউট: অ্যাডাফ্রুট পালক এবং ই-পেপার ডিসপ্লে
বিকল্প লেআউট: অ্যাডাফ্রুট পালক এবং ই-পেপার ডিসপ্লে

আমি আজ (21-মে -২০২০) বুঝতে পেরেছি যে অ্যাডাফ্রুট একই আকার এবং মাত্রার (https://www.adafruit.com/product/4262, 27 US $) পাশাপাশি 25 সেমি নমনীয় ই-পেপার প্রদর্শন করছে 24 পিন 0.5 মিমি পিচ এক্সটেনশন ক্যাবল (https://www.adafruit.com/product/4230, 1.5 US $) এবং এক্সটেন্ডার সংযোগকারী (https://www.adafruit.com/product/4524)।

তাদের ফেদার বোর্ড পরিবারের জন্য একটি ই-পেপার ড্রাইভার আছে (32KB SRAM সহ Adafruit eInk Feather Friend, https://www.adafruit.com/product/4446, 9 US $) যা এসডি কার্ডধারীর সাথে আসে এই সবগুলো ধরে রাখার জন্য ছবি

আমি অনুমান করি যে এটি এখানে বর্ণিত রাস্পবেরি জিরো সংস্করণের চেয়ে আরও কমপ্যাক্ট এবং শক্তি দক্ষ বিন্যাসের অনুমতি দিতে পারে এবং যদি আপনি STM32F405, 32u4 বা nRF52840 প্ল্যাটফর্ম ব্যবহার করতে পছন্দ করেন তবে এটি একটি নিখুঁত সমাধান হবে। দুর্ভাগ্যক্রমে, অ্যাডাফ্রুট এর ইইনক ফেদার ফ্রেন্ডস এবং ওয়েভশেয়ার ডিসপ্লেগুলিকে একত্রিত করা তুচ্ছ বলে মনে হচ্ছে না।

আমি সত্যিই BLE সহ একটি সংস্করণ দেখতে পছন্দ করি এবং কোন চিত্রগুলি প্রদর্শিত হয় তা নিয়ন্ত্রণ করার জন্য একটি অ্যাপ।

ওয়েভশেয়ার একটি Arduino ডিসপ্লে ড্রাইভার ieldাল এবং একটি ESP3266 ভিত্তিক ডিসপ্লে ড্রাইভার অফার করছে, যদি আপনি এগুলি পছন্দ করেন।

প্রস্তাবিত: