সুচিপত্র:
- ধাপ 1: ব্যবহৃত সম্পদ
- ধাপ 2: প্রদর্শন
- ধাপ 3: SSD1306 লাইব্রেরি
- ধাপ 4: অ্যানিমেশন এবং এক্সবিএম ফাইল
- ধাপ 5: এক্সবিএম ফাইলগুলি প্রস্থান করা
- ধাপ 6: সোর্স কোড
- ধাপ 7: কোড আপলোড করা
- ধাপ 8: ফাইল
ভিডিও: ভূমিকা ESP32 Lora OLED ডিসপ্লে: 8 টি ধাপ
2024 লেখক: John Day | [email protected]. সর্বশেষ পরিবর্তিত: 2024-01-30 08:01
এটি ESP32 LoRa এর ভূমিকা সম্পর্কিত আরেকটি ভিডিও। এবার, আমরা বিশেষভাবে একটি গ্রাফিক ডিসপ্লে (128x64 পিক্সেল) সম্পর্কে কথা বলব। আমরা এই OLED ডিসপ্লেতে তথ্য প্রদর্শনের জন্য SSD1306 লাইব্রেরি ব্যবহার করব এবং XBM ইমেজ ব্যবহার করে অ্যানিমেশনের উদাহরণ উপস্থাপন করব।
ধাপ 1: ব্যবহৃত সম্পদ
1 হেলটেক ওয়াইফাই লোরা 32
প্রোটোবোর্ড
ধাপ 2: প্রদর্শন
উন্নয়ন বোর্ডে ব্যবহৃত ডিসপ্লে 0.96 ইঞ্চির একটি OLED।
এটি 128x64 এবং একরঙা।
এটিতে I2C যোগাযোগ রয়েছে এবং 3 টি তারের মাধ্যমে ESP32 এর সাথে সংযুক্ত:
GPIO4 এ SDA (ডেটার জন্য)
GPIO15- এ এসসিএল (ঘড়ির জন্য)
GPIO16 এ RST (রিসেট এবং ডিসপ্লে শুরুর জন্য)
ধাপ 3: SSD1306 লাইব্রেরি
এটি হেলটেক-অ্যারন-লি দ্বারা প্রদত্ত লাইব্রেরির সেটের সাথে পাওয়া যেতে পারে।
স্ট্রিং লেখার, রেখা অঙ্কন, আয়তক্ষেত্র, বৃত্ত এবং চিত্র প্রদর্শনের জন্য এর বেশ কয়েকটি কাজ রয়েছে।
github.com/Heltec-Aaron-Lee/WiFi_Kit_series
ধাপ 4: অ্যানিমেশন এবং এক্সবিএম ফাইল
আমরা একটি অ্যানিমেশন প্রদর্শন করতে লাইব্রেরির drawXbm ফাংশন ব্যবহার করব।
XBM ইমেজ ফরম্যাটে অক্ষরগুলির একটি অ্যারে থাকে যেখানে প্রতিটি উপাদান টেক্সট্যালি একটি হেক্সাডেসিমাল মানের মাধ্যমে একরঙা পিক্সেলের একটি সেট (প্রতিটি 1 বিট) উপস্থাপন করে। এগুলো এক বাইটের সমান।
যেহেতু একক বাইটের প্রতিনিধিত্ব করার জন্য একাধিক অক্ষর ব্যবহার করা হয়, এই ফাইলগুলি বর্তমানে গৃহীত ফর্ম্যাটগুলির চেয়ে বড় হতে থাকে। সুবিধা হল যে তারা পূর্বের চিকিৎসার প্রয়োজন ছাড়া সরাসরি সংকলিত হতে পারে।
অ্যারে ছাড়াও, ছবির সেটিংস নির্ধারণকারী দুটি সেটিংস অন্তর্ভুক্ত করা হয়েছে।
অ্যানিমেশন তৈরির জন্য, আমাদের এমন ছবি দরকার যা ফ্রেম তৈরি করবে।
কাজ করার জন্য আমরা যে কোন ইমেজ এডিটিং সফটওয়্যার ব্যবহার করতে পারি। আমাদেরকে একমাত্র সতর্কতা অবলম্বন করতে হবে তা হল প্রথমে ডিসপ্লের সাথে সাইজের সামঞ্জস্য রাখা এবং একরঙা ফাইল ব্যবহার করা।
ফাইল তৈরি করতে, আমরা সেগুলি আঁকতে পারি বা ছবি আমদানি করতে পারি। এখানে, আমরা পেইন্টব্রাশ ব্যবহার করে একটি রঙিন ছবি সম্পাদনা করার সিদ্ধান্ত নিয়েছি, এবং আমরা প্রতিটি ফ্রেম এঁকেছি
মূল ছবি - 960x707 পিক্সেল --p.webp
পরবর্তী ধাপ হল এটিকে একরঙা বিটম্যাপ হিসেবে সংরক্ষণ করে একরঙা করা।
তারপরে, আমরা ডিসপ্লের সাথে সামঞ্জস্যপূর্ণ আকারে এটির আকার পরিবর্তন করি।
পরিমাপের এককগুলিতে বিশেষ মনোযোগ দিন। এই ক্ষেত্রে, আমরা চিত্রটি সামঞ্জস্য করেছি যাতে এটি প্রদর্শনীর পুরো উচ্চতা (উল্লম্ব = 64 পিক্সেল) দখল করে।
সঠিক আকারে চিত্রের সাথে, আমরা ফ্রেম গঠনের জন্য এটি সম্পাদনা করব। এখানে, আমরা সংকেত স্তরের প্রতিটি চাপ মুছে দিচ্ছি এবং সেগুলি সংশ্লিষ্ট ফ্রেম হিসাবে সংরক্ষণ করছি।
এখন, আমাদের বিএমপি ফাইলগুলিকে এক্সবিএম ফরম্যাটে রূপান্তর করতে হবে।
এই রূপান্তরটি করতে পারে এমন বেশ কয়েকটি সফ্টওয়্যার বিকল্প রয়েছে। আমরা একটি সম্পাদক বিকল্প হিসাবে GIMP বেছে নিয়েছি।
আমাদের উদাহরণে, আমরা ফাইলগুলি তৈরি এবং সম্পাদনা করতে পেইন্টব্রাশ ব্যবহার করেছি। যাইহোক, এই প্রক্রিয়াগুলির প্রত্যেকটি জিম্পে (বা অন্য কোনও সম্পাদক) করা যেতে পারে।
রূপান্তর করার জন্য, আমরা প্রথমে ফাইলটি খুলি।
ছবিটি খোলার সাথে সাথে আমরা ফাইল => রপ্তানি হিসাবে নির্বাচন করতে পারি …
এক্সপোর্ট ইমেজ উইন্ডোতে, আমাদের অবশ্যই XBM এর গন্তব্য ফাইল এক্সটেনশন পরিবর্তন করতে হবে। জিম্প কাঙ্ক্ষিত ফরম্যাট শনাক্তকরণ এবং আরও বিকল্প উপস্থাপনের দায়িত্বে থাকবে …
রপ্তানি করার সময়, জিম্প অন্যান্য বিকল্পগুলি উপস্থাপন করবে। আমরা ডিফল্ট মান ছেড়ে যেতে পারি।
সমস্ত ফাইল রূপান্তর করার পরে, আমাদের চারটি XBM ফাইল থাকবে, প্রতিটি ফ্রেমের জন্য একটি।
এখন আসুন তাদের সোর্স কোড ফোল্ডারে কপি করি এবং তাদের এক্সটেনশানগুলিকে.h এ পরিবর্তন করে তাদের নাম পরিবর্তন করি।
ধাপ 5: এক্সবিএম ফাইলগুলি প্রস্থান করা
আমরা যেকোনো টেক্সট এডিটরে XBM ফাইল খুলতে পারি, যেখানে আমরা ইমেজ ম্যাট্রিক্স এবং ইমেজ সাইজ ইনফরমেশন দেখতে পাব যা আগে থেকেই সংজ্ঞায়িত ছিল।
ধাপ 6: সোর্স কোড
উৎস কোড: বিবৃতি
আমরা প্রয়োজনীয় লাইব্রেরিগুলির পাশাপাশি ইমেজ ফাইলগুলি অন্তর্ভুক্ত করব। আমরা ছবির অবস্থান এবং স্থানান্তর ব্যবধান নির্ধারণ করি। আমরা ESP32 এর সাথে সংযুক্ত OLED পিনগুলিও নির্দেশ করি। পরিশেষে, আমরা প্রদর্শন বস্তু তৈরি এবং সমন্বয় করি।
// গ্রন্থপরিচয়ের প্রয়োজনীয়তা হিসাবে অন্তর্ভুক্ত করুন #অন্তর্ভুক্ত #অন্তর্ভুক্ত "SSD1306.h" // Incluindo os arquivos de imagem #include "frame1.h" #include "frame2.h" #include "frame3.h" #include "frame4.h" // definições de posição da imagem e intervalo de transição #define posX 21 #define posY 0 #define intervalo 500 // Pinos do OLED estão conctados ao ESP32: I2C // OLED_SDA - GPIO4 // OLED_SCL - GPIO15 - - GPIO16 #ডিফাইন এসডিএ 4 #এসসিএল 15 ডিফাইন করুন RST 16 // O RST deve ser controlado por software SSD1306 display (0x3c, SDA, SCL, RST); // Cria e ajusta o Objeto display
সোর্স কোড: সেটআপ ()
ডিসপ্লে আরম্ভ করুন এবং উল্লম্বভাবে পর্দা উল্টান। কর্ম alচ্ছিক।
অকার্যকর সেটআপ () {display.init (); // inicia o প্রদর্শন display.flipScreenVertically (); // inverte verticalmente a tela (opcional)}
সোর্স কোড: লুপ ()
লুপে প্রথম কাজটি হল পর্দা পরিষ্কার করা। আমরা posX এবং posY প্রাথমিক অবস্থান ব্যবহার করে বাফারে ফ্রেম 1 লোড করি। আমরা ফ্রেম 1_উইডথ এবং ফ্রেম 1_হাইটের সাথে ছবির আকার এবং চিত্রের বিট সম্বলিত অ্যারের নাম জানাই। আমরা ডিসপ্লেতে বাফার দেখাই এবং পরবর্তী ফ্রেম দেখানোর আগে একটি বিরতির জন্য অপেক্ষা করি।
অকার্যকর লুপ () {display.clear (); // limpa tela // carrega para o buffer o frame 1 // usando as posições iniciais posX e posY // informa o tamanho da imagem com frame1_width e frame1_height // informa o nome da matriz que contem os bits da imagem, no caso frame1_bits display.drawXbm (posX, posY, frame1_width, frame1_height, frame1_bits); // mostra o বাফার কোন প্রদর্শন display.display (); // aguarda um intervalo antes de mostrar o próximo frame delay (intervalo);
আমরা অন্যান্য সমস্ত ফ্রেমের জন্য প্রক্রিয়াটি পুনরাবৃত্তি করি।
// repete o processo para todos os outros frames display.clear (); display.drawXbm (posX, posY, frame2_width, frame2_height, frame2_bits); display.display (); বিলম্ব (ব্যবধান); display.clear (); display.drawXbm (posX, posY, frame3_width, frame3_height, frame3_bits); display.display (); বিলম্ব (ব্যবধান); display.clear (); display.drawXbm (posX, posY, frame4_width, frame4_height, frame4_bits); display.display (); বিলম্ব (ব্যবধান); }
ধাপ 7: কোড আপলোড করা
আইডিই ওপেন করে,.ino ফাইলে ডাবল ক্লিক করে, অথবা ফাইল মেনুতে গিয়ে সোর্স কোড দিয়ে ফাইলটি খুলুন।
ইউএসবি -তে হেলটেক সংযুক্ত থাকলে, মেনু টুলস => কার্ড নির্বাচন করুন: "Heltec_WIFI_LoRa_32"
এখনও সরঞ্জাম মেনুতে, COM পোর্ট নির্বাচন করুন যেখানে হেলটেক সংযুক্ত রয়েছে।
UPLOAD বাটনে ক্লিক করুন …
… এবং উপসংহারের জন্য অপেক্ষা করুন।
ধাপ 8: ফাইল
ফাইল ডাউনলোড করুন:
পিডিএফ
আইএনও
প্রস্তাবিত:
একটি OLED ডিসপ্লে সহ ESP32 GPS ট্র্যাকার: 7 টি ধাপ
একটি OLED ডিসপ্লে সহ ESP32 GPS ট্র্যাকার: এটি একটি GPS ট্র্যাকার যা OLED ডিসপ্লেতে সমস্ত অবস্থানগত তথ্য প্রদর্শন করে। একটি বোতাম ব্যবহারকারীকে OLED- এ UI- এর সাথে যোগাযোগ করতে সাহায্য করে। CETech থেকে এখানে আর্ক। কোডটি অনবোর্ড বোতাম ব্যবহার করে একটি মেনু চালিত প্রোগ্রাম অফার করে
TTGO (রঙ) ডিসপ্লে উইথ মাইক্রোপাইথন (TTGO T- ডিসপ্লে): Ste টি ধাপ
TTGO (কালার) ডিসপ্লে উইথ মাইক্রোপাইথন (TTGO T- ডিসপ্লে): TTGO T-Display হল ESP32 ভিত্তিক একটি বোর্ড যাতে 1.14 ইঞ্চি কালার ডিসপ্লে রয়েছে। বোর্ডটি 7 ডলারের কম মূল্যের জন্য কেনা যাবে (শিপিং সহ, ব্যাংগুডে দেখা পুরস্কার)। এটি একটি ESP32 এর ডিসপ্লে সহ একটি অবিশ্বাস্য পুরস্কার।
Arduino এবং TFT ডিসপ্লে ব্যবহার করে কিভাবে রিয়েলটাইম ঘড়ি তৈরি করবেন - 3.5 ইঞ্চি TFT ডিসপ্লে সহ Arduino Mega RTC: 4 টি ধাপ
কিভাবে Arduino এবং TFT ডিসপ্লে ব্যবহার করে রিয়েলটাইম ক্লক তৈরি করবেন | 3.5 ইঞ্চি TFT ডিসপ্লে সহ Arduino Mega RTC: আমার ইউটিউব চ্যানেলে যান। ভূমিকা:- এই পোস্টে আমি 3.5 ইঞ্চি TFT টাচ LCD, Arduino Mega ব্যবহার করে "রিয়েল টাইম ক্লক" তৈরি করতে যাচ্ছি 2560 এবং DS3231 RTC মডিউল …. শুরু করার আগে … আমার ইউটিউব চ্যানেল থেকে ভিডিওটি দেখুন .. নোট:- যদি আপনি Arduin ব্যবহার করেন
ESP32 এর ভূমিকা: 10 টি ধাপ
ESP32 এর ভূমিকা: এই প্রবন্ধে আমরা ESP32 সম্পর্কে কথা বলতে যাচ্ছি, যাকে আমি ESP8266 এর বড় ভাই বলে মনে করি। আমি সত্যিই এই মাইক্রোকন্ট্রোলারটি পছন্দ করি কারণ এতে ওয়াইফাই রয়েছে। শুধু তাই আপনার একটি ধারণা আছে, ইএসপি বিদ্যমান হওয়ার আগে, যদি আপনার ওয়াইফাই থাকার জন্য আরডুইনো প্রয়োজন হয়, তাহলে আপনি
ESP32 এবং OLED ডিসপ্লে: ইন্টারনেট ঘড়ি - DHT22: 10 ধাপ (ছবি সহ)
ইএসপি 32 এবং ওএলইডি ডিসপ্লে: ইন্টারনেট ঘড়ি - ডিএইচটি 22: এই নির্দেশযোগ্য প্রতিযোগিতা প্রতিযোগিতা: " জিআইএফ চ্যালেঞ্জ 2017 " আপনাকে অনেক ধন্যবাদ