Bitmap Image কে সহজভাবে OLED Display তে প্রদর্শন।

যে কোন Image কে OLED ডিসপ্লেতে প্রিন্ট করতে হলে Image কে Bitmap এ কনভার্ট করে নিতে হয়। এরপর OLED ডিসপ্লের রেজুলেশন অনুযায়ী Resize করে নিতে হবে। যেহেতু এই টিউটোরিয়ালে 0.96″ OLED ব্যবহার করেছি, তাই এই ডিসপ্লের রেজুলেশন অনুযায়ী ছবিটিকে 128 x 64 পিক্সেলে কনভার্ট করে নিবো। যদি সিলেক্টেড ছবিটি Bitmap না হয়ে JPEG বা PNG হয়, তাহলে

Bitmap-OLED-1

ছবিটিকে ওপেন করে Save as এর মাধ্যমে Bitmap ইমেজে কনভার্ট করে নিতে হবে। এই কাজটি করতে হলে Windows এর Paint ব্যবহার করা যেতে পারে। এছাড়াও Illustrator, Photoshop কিংবা অন্যান্য সফটওয়্যার দিয়েও কনভার্টের কাজটি করা যাবে। এরপর একটি  LCD Image Converter সফটওয়্যারের মাধ্যমে ছবিটি c ল্যাংগুয়েজে কনভার্ট করে নিতে হবে। তারপর কনভার্টকৃত ছবির

Bitmap-OLED-2

প্রোগ্রামটি Notepad ++ এ ওপেন করে কপি করে Arduino IDE তে নিয়ে আসতে হবে। এরপর প্রোগ্রামটি আপলোড করলেই OLED ডিসপ্লেতে ছবি চলে আসবে। এখানে ব্যবহার করা হয়েছে ESP32 মাইক্রোকন্ট্রোলার। অন্য সকল ডেভেলপমেন্ট বোর্ড দিয়েও ডিসপ্লের ইন্টারফেস করা যায়। সেই ক্ষেত্রে প্রোগ্রাম এবং কানেকশন ডায়াগ্রাম পরিবর্তন হবে। 

Bitmap-OLED-3

ছবি সিলেকশন

রং পরিবর্তন

আমরা রাসবেরি পাই এর লোগোটিকে OLED ডিসপ্লেতে প্রিন্ট করবো। এর জন্য ছবিটিকে সাদা কালো করে নিবো। এর ফলে আউটপুট কি আসতে পারে বুঝতে সহজ হবে। রঙ্গিন ছবিটিকে সরাসরি Bitmap এ কনভার্ট করলে Black এবং Pink অংশটি সাদা অথবা কালো রঙে কনভার্ট হবে। নিচের ছবিটির Pink এবং Green অংশটি ফেলে দিয়ে একটি সাদা-কালো ছবি তৈরি করেছি।

Bitmap-OLED-4

এবার ছবিটিকে Resize করে নিতে হবে। Resize-> Pixel ক্লিক করবো। OLED ডিসপ্লের সাইজ অনুযায়ী Horizontal এবং Vertical বক্সে 128 x 64 বসিয়ে দিবো। এরপর OK। 

Bitmap-OLED-5

নিচের ছবিতে দেখা যাচ্ছে ছবিটি সঠিক সাইজে কনভার্ট হয়েছে। এবার শুধু Save করতে হবে Bitmap ইমেজে। এর জন্য File->Save as এ ক্লিক করবো। ছবিটি Save করার সময় Save as type এ “24-bit Bitmap (*.bmp;*.dib)” সিলেক্ট করে Save দিবো। এরপর প্রস্তুত হয়ে যাবে 128 x 64 পিক্সেলের Bitmap image.

Bitmap-OLED-6

LCD Image Converter সফটওয়্যারটিতে কনভার্টকৃত Bitmap Image ওপেন করতে হবে।

Bitmap-OLED-7

Image->Import… থেকে Rpi-Logo bitmap ইমেজটি ওপেন করবো।

Bitmap ইমেজটি Open করার পর নিচের চিত্রের মত দেখাবে। এটাকে Inverse করেও প্রিন্ট করা যাবে।

সেই ক্ষেত্রে Image->Inverse ক্লিক করতে হবে অথবা Ctrl+I। এর জন্য প্রতিবার ইমেজ Import করতে হবে না।

এখন File->Convert অথাব Ctrl+P তে ক্লিক করে একটি নামে Save করতে হবে। এরপর একটি C ফাইল জেনারেট হবে। এরপর C ফাইলটি একটি Notepad এ ওপেন করে কপি করে নিবো, সঠিকভাবে কতটুকু Copy করবো তা  “Code with Bitmap Image” প্রোগ্রামের অংশ থেকে দেখে নিবো।

প্রয়োজনীয় কম্পোনেন্টঃ

এক্সপেরিমেন্ট করতে যে সকল কম্পোনেন্ট প্রয়োজন হবে, তার নাম পরিমাণ ও লিংকসহ তালিকা।

ক্রমিক নং  কম্পোনেন্টের নাম পরিমাণ লিংক
ESP32 Development Board 30 Pin
১টি কম্পোনেন্ট লিংক
Micro USB Data Cable ১টি কম্পোনেন্ট লিংক
Breadboard (830 Point)  ১টি কম্পোনেন্ট লিংক
OLED Display Blue I2C 128×64 0.96 inch ১টি কম্পোনেন্ট লিংক
Jumper Wire
৪টি কম্পোনেন্ট লিংক

সঠিক কানেক্টিভিটির জন্য সিলিকনের জাম্পার ওয়্যার অধিকগুণে ভালো। সব ধরণের Jumper Wire এই লিংকে পাওয়া যাবে। এক্সপেরিমেন্ট করতে ৪টি মেইল টু মেইল জাম্পার ওয়্যার প্রয়োজন হবে। 

সার্কিট কানেকশন

এখানে কানেকশন খুবই সহজ। মাত্র ৪টি তারের কানেকশন দিতে হবে। 

ESP32 Development Board OLED Display Blue I2C 128×64 0.96 inch
3.3V VCC
GND GND
D21 SDA
D22 SCL

ডেমো কোডঃ

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);

// Bitmap Image Data here.

void setup() {
  Serial.begin(115200);
 
  if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
    Serial.println(F("SSD1306 allocation failed"));
   for(;;);
  }
  delay(2000);
  display.clearDisplay();
}

void loop() {  
  display.drawBitmap(0, 0, RPI_Logo, 128, 64, 1);
  display.display();
  delay(10000);
  display.clearDisplay();
  
  display.drawBitmap(0, 0, RPI_Logo_Inverse, 128, 64, 1);
  display.display();
  delay(10000);
  display.clearDisplay();
}

এই কোডে, Bitmap Image এর ডাটা রয়েছে Rpi_Logo বাইট অ্যারেতে। drawBitmap ফাংশন ব্যবহার করে OLED ডিসপ্লেতে ইমেজটি (0, 0) অবস্থানে প্রদর্শিত হয়। Image  এর আকার ও OLED ডিসপ্লের উপর ভিত্তি করে কোডটি পরিবর্তন করুন। ESP32 বোর্ডে আপলোড করার আগে প্রয়োজনীয় লাইব্রেরি অন্তর্ভুক্ত করুন।

লাইব্রেরীঃ

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

Adafruit_GFX.h
Adafruit_SSD1306.h

Code with Bitmap Image

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);

// Bitmap Image Data here.

static const uint8_t RPI_Logo[1024] = {
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x0f, 0xf8, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x03, 0x83, 0xe0, 0x68, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xf1, 0xc7, 0xff, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xfc, 0x9f, 0xff, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xfe, 0xbf, 0xff, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7c, 0xfe, 0x3f, 0xdf, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0x3f, 0x3f, 0x7f, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xde, 0x3c, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xe6, 0x3b, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xf0, 0x07, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9f, 0xf8, 0x0f, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xf0, 0x07, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3, 0xe0, 0x03, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0xc0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xc7, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xcf, 0xfd, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0x8f, 0xfc, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9f, 0x0f, 0xfc, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9e, 0x07, 0xf8, 0x3c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9c, 0x00, 0x00, 0x1e, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb8, 0x78, 0x0f, 0xce, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0xfe, 0x1f, 0xe0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x03, 0xfe, 0x3f, 0xf0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x43, 0xff, 0x3f, 0xf1, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xe7, 0xff, 0x3f, 0xfb, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0xe7, 0xff, 0x3f, 0xfb, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0xe7, 0xff, 0x3f, 0xfb, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0xe7, 0xfe, 0x1f, 0xfb, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0xe7, 0xfe, 0x1f, 0xf1, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0xe3, 0xfc, 0x0f, 0xf1, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0xc1, 0xf8, 0xc3, 0xe1, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xc0, 0x03, 0xf8, 0x01, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x80, 0x0f, 0xfc, 0x04, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x18, 0x0f, 0xfc, 0x1e, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3e, 0x1f, 0xfe, 0x3f, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0x1f, 0xfe, 0x7f, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x9f, 0xfe, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x8f, 0xfc, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xcf, 0xfc, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9f, 0xc7, 0xf9, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xc1, 0xe1, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xc0, 0x01, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe1, 0x80, 0x00, 0xe3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0f, 0xfc, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x1f, 0xfc, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xe3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x03, 0x1f, 0xff, 
    0xff, 0xff, 0x00, 0x7f, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x03, 0x9f, 0xff, 
    0xff, 0xff, 0x1c, 0x78, 0xfc, 0x7f, 0x9e, 0x27, 0xe7, 0xfd, 0xfb, 0xff, 0xfc, 0x71, 0xff, 0xff, 
    0xff, 0xff, 0x1c, 0x60, 0x38, 0x18, 0x0e, 0x03, 0x81, 0xc0, 0x81, 0x18, 0xfc, 0x61, 0x1f, 0xff, 
    0xff, 0xff, 0x00, 0xe3, 0x11, 0x98, 0x06, 0x01, 0x18, 0xc1, 0x83, 0x19, 0xfc, 0x03, 0x1f, 0xff, 
    0xff, 0xff, 0x01, 0xfe, 0x10, 0x78, 0xc6, 0x31, 0x1c, 0xc7, 0x8f, 0x99, 0xfc, 0x03, 0x1f, 0xff, 
    0xff, 0xff, 0x10, 0xe0, 0x18, 0x18, 0xe6, 0x31, 0x00, 0x47, 0x8f, 0x91, 0xfc, 0x7f, 0x1f, 0xff, 
    0xff, 0xff, 0x18, 0xe3, 0x1f, 0x88, 0xc6, 0x31, 0x1f, 0xc7, 0x8f, 0x83, 0xfc, 0x7f, 0x1f, 0xff, 
    0xff, 0xff, 0x18, 0x46, 0x11, 0x88, 0x06, 0x01, 0x08, 0xc7, 0x8f, 0xc3, 0xfc, 0x7f, 0x1f, 0xff, 
    0xff, 0xff, 0x1c, 0x20, 0x18, 0x18, 0x0e, 0x03, 0x80, 0xc7, 0x8f, 0xc3, 0xfc, 0x7f, 0x1f, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
};

static const uint8_t RPI_Logo_Inverse[1024] = {
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf0, 0x07, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xfc, 0x7c, 0x1f, 0x97, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x0e, 0x38, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x03, 0x60, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x40, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x83, 0x01, 0xc0, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0xc0, 0xc0, 0x80, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x21, 0xc3, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x19, 0xc4, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x0f, 0xf8, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x07, 0xf0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x0f, 0xf8, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1f, 0xfc, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0x3f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x38, 0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x30, 0x02, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x70, 0x03, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0xf0, 0x03, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0xf8, 0x07, 0xc3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0xff, 0xff, 0xe1, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x87, 0xf0, 0x31, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x01, 0xe0, 0x1f, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xfc, 0x01, 0xc0, 0x0f, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xbc, 0x00, 0xc0, 0x0e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x18, 0x00, 0xc0, 0x04, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x18, 0x00, 0xc0, 0x04, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x18, 0x00, 0xc0, 0x04, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x18, 0x01, 0xe0, 0x04, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x18, 0x01, 0xe0, 0x0e, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x1c, 0x03, 0xf0, 0x0e, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x3e, 0x07, 0x3c, 0x1e, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x3f, 0xfc, 0x07, 0xfe, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x7f, 0xf0, 0x03, 0xfb, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xe7, 0xf0, 0x03, 0xe1, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xc1, 0xe0, 0x01, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xc0, 0xe0, 0x01, 0x80, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x60, 0x01, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x70, 0x03, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x03, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x38, 0x06, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x3e, 0x1e, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x3f, 0xfe, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x7f, 0xff, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf0, 0x03, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xe0, 0x03, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x01, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x03, 0xfc, 0xe0, 0x00, 
    0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0x01, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x03, 0xfc, 0x60, 0x00, 
    0x00, 0x00, 0xe3, 0x87, 0x03, 0x80, 0x61, 0xd8, 0x18, 0x02, 0x04, 0x00, 0x03, 0x8e, 0x00, 0x00, 
    0x00, 0x00, 0xe3, 0x9f, 0xc7, 0xe7, 0xf1, 0xfc, 0x7e, 0x3f, 0x7e, 0xe7, 0x03, 0x9e, 0xe0, 0x00, 
    0x00, 0x00, 0xff, 0x1c, 0xee, 0x67, 0xf9, 0xfe, 0xe7, 0x3e, 0x7c, 0xe6, 0x03, 0xfc, 0xe0, 0x00, 
    0x00, 0x00, 0xfe, 0x01, 0xef, 0x87, 0x39, 0xce, 0xe3, 0x38, 0x70, 0x66, 0x03, 0xfc, 0xe0, 0x00, 
    0x00, 0x00, 0xef, 0x1f, 0xe7, 0xe7, 0x19, 0xce, 0xff, 0xb8, 0x70, 0x6e, 0x03, 0x80, 0xe0, 0x00, 
    0x00, 0x00, 0xe7, 0x1c, 0xe0, 0x77, 0x39, 0xce, 0xe0, 0x38, 0x70, 0x7c, 0x03, 0x80, 0xe0, 0x00, 
    0x00, 0x00, 0xe7, 0xb9, 0xee, 0x77, 0xf9, 0xfe, 0xf7, 0x38, 0x70, 0x3c, 0x03, 0x80, 0xe0, 0x00, 
    0x00, 0x00, 0xe3, 0xdf, 0xe7, 0xe7, 0xf1, 0xfc, 0x7f, 0x38, 0x70, 0x3c, 0x03, 0x80, 0xe0, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};

void setup() {
  Serial.begin(115200);
 
  if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
    Serial.println(F("SSD1306 allocation failed"));
   for(;;);
  }
  delay(2000);
  display.clearDisplay();
}

void loop() {  
  display.drawBitmap(0, 0, RPI_Logo, 128, 64, 1);
  display.display();
  delay(10000);
  display.clearDisplay();
  
  display.drawBitmap(0, 0, RPI_Logo_Inverse, 128, 64, 1);
  display.display();
  delay(10000);
  display.clearDisplay();
}

আউটপুট

RPI_Logo

RPI_Logo_Inverse

Raspberry Pi Pico এর সাথে TFT Display কিভাবে ব্যবহার করতে হয়? জানতে ক্লিক করুন

Rate this post
Share with your friends
Default image
Nur Mohammad
Senior Research Engineer | Techshop Bangladesh | E-mail: nur@techshopbd.com
Articles: 38

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.