সুচিপত্র:

কাস্টম ক্যারেক্টার জেনারেটর (Adafruit HT16k33 ম্যাট্রিক্স): 3 টি ধাপ
কাস্টম ক্যারেক্টার জেনারেটর (Adafruit HT16k33 ম্যাট্রিক্স): 3 টি ধাপ

ভিডিও: কাস্টম ক্যারেক্টার জেনারেটর (Adafruit HT16k33 ম্যাট্রিক্স): 3 টি ধাপ

ভিডিও: কাস্টম ক্যারেক্টার জেনারেটর (Adafruit HT16k33 ম্যাট্রিক্স): 3 টি ধাপ
ভিডিও: কাস্টম খেলার জন্য ২০২৩ সালের সেরা সেরা ক্যারেক্টার।। 2024, নভেম্বর
Anonim
কাস্টম ক্যারেক্টার জেনারেটর (Adafruit HT16k33 ম্যাট্রিক্স)
কাস্টম ক্যারেক্টার জেনারেটর (Adafruit HT16k33 ম্যাট্রিক্স)

এলসিডি এবং লেড ম্যাট্রিক্সে বিশেষ অক্ষর মুদ্রণ একটি দুর্দান্ত মজা। বিশেষ অক্ষর বা কাস্টম অক্ষর মুদ্রণ করার পদ্ধতি হল প্রতিটি সারি এবং কলামের জন্য বাইনারি মান সহ একটি অ্যারে তৈরি করা। যেকোনো কাস্টম অক্ষরের জন্য সঠিক কোড খুঁজে পাওয়া কঠিন হতে পারে, অতএব, এই প্রকল্পটি 8x8 নেতৃত্বাধীন ম্যাট্রিক্সের জন্য স্বয়ংক্রিয় এবং কোড তৈরি করবে এবং Adafruit HT16k33 8x8 Bicolor Matrix- এ কাস্টম অক্ষরও মুদ্রণ করবে।

Adafruit HT16k33, একটি 1.2 "8x8 Bicolor LED ম্যাট্রিক্স একটি I2C যোগাযোগ প্রোটোকলের মাধ্যমে Arduino এর সাথে যোগাযোগ করে।

অ্যাডাফ্রুট এর মতে, "এলইডি ব্যাকপ্যাকের এই সংস্করণটি 1.2" 8x8 ম্যাট্রিক্সের জন্য ডিজাইন করা হয়েছে। তারা মাত্র 1.2 "x1.2" পরিমাপ করে তাই এটি নিয়ন্ত্রণের জন্য চিপের একটি বিশাল অ্যারে ব্যবহার করা লজ্জাজনক। এই ব্যাকপ্যাকটি পিসিবির পিছনে সুন্দরভাবে বসার জন্য I2C ধ্রুব-বর্তমান ম্যাট্রিক্স নিয়ামক থাকার মাধ্যমে 16 টি পিন বা একগুচ্ছ চিপ ব্যবহার করার বিরক্তির সমাধান করে। কন্ট্রোলার চিপ সবকিছুর যত্ন নেয়, পটভূমিতে সমস্ত 64 এলইডি অঙ্কন করে। আপনাকে যা করতে হবে তা হল 2-পিন I2C ইন্টারফেস ব্যবহার করে এতে ডেটা লিখুন। দুটি অ্যাড্রেস সিলেক্ট পিন আছে যাতে আপনি একক 2-পিন I2C বাসে 8 টি ঠিকানার মধ্যে একটি নির্বাচন করতে পারেন (সেইসাথে অন্যান্য I2C চিপ বা সেন্সর যা আপনি পছন্দ করেন)। ড্রাইভার চিপ 1/16 উজ্জ্বলতা থেকে 1/16 তম ধাপে সম্পূর্ণ উজ্জ্বলতা পর্যন্ত পুরো ডিসপ্লে 'ম্লান' করতে পারে। এটি পৃথক LED গুলিকে ম্লান করতে পারে না, কেবলমাত্র পুরো ডিসপ্লে একবারে।"

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

ধাপ 1: উপাদান

এই নির্দেশযোগ্য Adafruit HT16k33 ম্যাট্রিক্সের একটি মৌলিক প্রকল্প। তোমার দরকার:

  1. Adafruit HT16k33 1.2 "x 1.2" 8x8 Bicolor LED Matrix।
  2. আরডুইনো (যে কোনও রূপ কিন্তু ইউনো পছন্দ করা হয়)।
  3. ব্রেডবোর্ড
  4. পাওয়ার সাপ্লাই

ধাপ 2: পরিকল্পিত

পরিকল্পিত
পরিকল্পিত
পরিকল্পিত
পরিকল্পিত

ওয়্যারিং অ্যাডাফ্রুট HT16k33 এলইডি ম্যাট্রিক্স খুব সহজ কারণ আমাদের ঘড়ি এবং ডেটা পিন সংযুক্ত করতে হবে যেমনটা আমরা সাধারণত I2C ডিভাইসের জন্য করি। সংযোগগুলি হবে:

  1. এসসিএল (ম্যাট্রিক্সের ক্লক পিন) A5 এর সাথে সংযুক্ত (Arduino Uno এর ক্লক পিন। Arduino এর অন্যান্য রূপের জন্য ডেটশীট দেখুন)
  2. এসডিএ (ম্যাট্রিক্সের ডেটা পিন) A4 এর সাথে সংযুক্ত। (Arduino অন্যান্য রূপের জন্য ডেটশীট পড়ুন)
  3. VCC 5V এর সাথে সংযুক্ত।
  4. GND 0V এর সাথে সংযুক্ত।

আপনি চিত্রে দেখানো পরিকল্পিত পরামর্শও নিতে পারেন।

ধাপ 3: কোড

কোড
কোড
কোড
কোড

Arduino কোড

প্রথমত, আমরা প্রয়োজনীয় সমস্ত লাইব্রেরি অন্তর্ভুক্ত করব।

  1. Wire.h:- I2C যোগাযোগের জন্য
  2. Adafruit_LedBackpack
  3. Adafruit_GFX

এই সমস্ত লাইব্রেরি Arduino IDE তেই পাওয়া যায়। আপনাকে কেবল লাইব্রেরি ম্যানেজার থেকে সেগুলি ইনস্টল করতে হবে। স্কেচ >> লাইব্রেরি অন্তর্ভুক্ত করুন >> লাইব্রেরি পরিচালনা করুন

সেটআপ ফাংশন ()

একটি স্বাক্ষরবিহীন পূর্ণসংখ্যা 8-বিট অ্যারে 8 টি সারির জন্য 8 টি সারির 8 টি বিট অ্যারে (8 টি কলাম) স্টোরে 8 বাইনারি মান সেট করা। I2C যোগাযোগের জন্য ঠিকানা সেট করুন।

লুপ ফাংশন ()

আমাদের যেমন অক্ষর মুদ্রণ করতে হবে, তেমনি আমাদের রিয়েল টাইমে চরিত্রের জন্য কোড দরকার। সবচেয়ে সুবিধাজনক পদ্ধতি হল ক্রমানুসারে কোড পাঠানো এবং Arduino সিরিয়াল ডেটা পড়বে এবং সেই অনুযায়ী অক্ষর মুদ্রণ করবে। ক্রমানুসারে একটি অ্যারে পাঠানো একটি ব্যস্ত কাজ হতে পারে, তাই আমরা কমা দ্বারা বিভক্ত সমস্ত 8 টি কোড (প্রতিটি 8 বিট) সহ একটি স্ট্রিং পাঠাতে পারি।

সিরিয়াল স্ট্রিং পড়া:

যদি (Serial.available ()> 0) {data = Serial.readStringUntil ('n'); Serial.println (তথ্য); }

টেক্সট পড়ার পর, আমাদের এই স্ট্রিং ডিকোড করতে হবে এবং বাইনারি ভ্যালু ফিরে পেতে হবে। আমরা জানি, ইনপুট স্ট্রিং এর বিন্যাস সর্বদা একই থাকবে। আমরা এটিকে সাবস্ট্রিং খুঁজে পেতে এবং স্ট্রিংগুলিকে তাদের দশমিক সমমানের মানগুলিতে রূপান্তর করতে পারি। তারপর আমরা ম্যাট্রিক্সে অক্ষরটি প্রিন্ট করতে জেনারেটেড দশমিক অ্যারে (uint8_t) পাস করব।

8 বিটের স্ট্রিংকে দশমিক রূপান্তর করা:

int val (স্ট্রিং str) {int v = 0; জন্য (int i = 0; i <8; i ++) {if (str == '1') {v = v+power (2, (7-i)); }} ফেরত v; }

পাওয়ার ফাংশন (pow ()) ব্যবহার করে দশমিক সমতুল্য মূল্যায়নের জন্য, আপনাকে ডাবল টাইপ মানগুলির সাথে মোকাবিলা করতে হবে এবং তাই আমরা আমাদের নিজস্ব পাওয়ার ফাংশনটি লিখতে পারি:

int শক্তি (int base, int exponent) {int c = 1; জন্য (int i = 0; i {c = c*base;} return c;}

এখন, শেষ পর্যন্ত, আমরা 8 দশমিক মানের (প্রতিটি সারির জন্য একটি) উত্পন্ন অ্যারে ব্যবহার করে অক্ষরটি মুদ্রণ করার জন্য কোড লিখব।

অকার্যকর print_emoji (uint8_t ইমোজি , স্ট্রিং কালার) {matrix.clear (); যদি (রঙ == "লাল") {matrix.drawBitmap (0, 0, ইমোজি, 8, 8, LED_RED); } অন্য {matrix.drawBitmap (0, 0, ইমোজি, 8, 8, LED_GREEN); } matrix.writeDisplay (); বিলম্ব (500); }

আপনি সহজেই এই কোডটি বুঝতে পারবেন কারণ আমরা প্রথমে ম্যাট্রিক্স ক্লিয়ার করছি এবং তারপর matrix.drawBitmap () ফাংশন ব্যবহার করে ইমোজি অ্যারে ব্যবহার করে অক্ষর প্রদর্শন করছি। সমস্ত ফর্ম্যাটিংয়ের পরে "matrix.writeDisplay ()" লিখতে ভুলবেন না কারণ এই ফাংশনটি ম্যাট্রিক্সে এখন পর্যন্ত করা সমস্ত ফরম্যাটিং প্রদর্শন করবে।

এখন আপনি সমস্ত কোড মান সহ স্ট্রিং পাঠাতে পারেন এবং Arduino অক্ষরটি ম্যাট্রিক্সে মুদ্রণ করবে। আপনি নীচের থেকে Arduino কোড ডাউনলোড করতে পারেন। পরীক্ষামূলক উদ্দেশ্যে, আপনি লিখতে পারেন

B00111100, B01000010, B10100101, B10000001, B10100101, B10011001, B01000010, B00111100

সিরিয়াল মনিটরে এই স্ট্রিং এবং ম্যাট্রিক্সে অক্ষর দেখতে পারেন।

এখন, যখন আমরা "প্রিন্ট" বোতাম টিপব তখন আমাদের একটি সফটওয়্যার থেকে সিরিয়াল ডেটা স্বয়ংক্রিয়ভাবে পাঠাতে হবে। এটি স্বয়ংক্রিয় করার জন্য, আমরা একটি ডেমো 8x8 ম্যাট্রিক্স তৈরি করব এবং আমরা ব্যবহারকারীদের কোন কোষের রঙিন হওয়া উচিত তা চয়ন করার একটি সুবিধা প্রদান করব এবং তারপর সফটওয়্যারটি স্বয়ংক্রিয়ভাবে কোড তৈরি করবে এবং স্ট্রিং ফরম্যাটে সিরিয়ালি ডেটা আরডুইনোতে পাঠাবে। আমি আমার বাকি কাজের জন্য প্রসেসিং বেছে নিয়েছি। প্রক্রিয়াকরণে, আমরা 64 টি বোতাম (চাপা ফাংশন সহ আয়তক্ষেত্র) ব্যবহার করে একটি ম্যাট্রিক্স তৈরি করতে পারি এবং শুরুতে একটি নির্দিষ্ট মান এবং রঙ নির্ধারণ করতে পারি (এটি মান 0 সহ সাদা রঙ হতে দিন)। এখন যখনই বোতাম টিপবে, আমরা বোতামের রঙ কালোতে রূপান্তর করব এবং মান 1 তে সেট করব। যদি ব্যবহারকারী আবার একই বোতাম টিপেন, তার মান আবার 0 তে পরিবর্তন হবে এবং রঙ আবার সাদা হবে। এটি ব্যবহারকারীকে বার বার সহজে কোড পরিবর্তন করতে সাহায্য করবে এবং আবার পুরো ম্যাট্রিক্স মুছে না দিয়ে সহজেই সংশোধন করতে পারবে। "প্রিন্ট" বোতামে ক্লিক করে, আমরা ডেমোর জন্য উপরে দেখানো স্ট্রিং এর মতো একটি স্ট্রিং তৈরি করব। তারপর স্ট্রিংটি নির্দিষ্ট সিরিয়াল পোর্টে পাঠানো হবে।

আপনি নিচে থেকে প্রসেসিং কোড ডাউনলোড করতে পারেন। এটি প্রক্রিয়াকরণে আমার প্রথম কোড। কোডিং এর উন্নত উপায় জন্য পরামর্শ অত্যন্ত প্রশংসা করা হয়।

আপনি দেখতে পারেন GUI কেমন দেখাচ্ছে এবং সিস্টেমটি ব্যবহার করে কীভাবে চরিত্র তৈরি করা হয়েছে। ম্যাট্রিক্সে একই অক্ষর তৈরি করতে কয়েক সেকেন্ড সময় লাগবে না।

আপনি আমার GitHub সংগ্রহস্থল থেকে এই প্রকল্পের কোড এবং ছবি ডাউনলোড করতে পারেন।

প্রস্তাবিত: