সুচিপত্র:
- ধাপ 1: উপকরণ
- ধাপ 2: নির্মাণ পরিকল্পনা
- ধাপ 3: হার্ডওয়্যার: সার্কিট ডিজাইন
- ধাপ 4: হার্ডওয়্যার: এক্রাইলিক কাটিং
- ধাপ 5: Arduino প্রোগ্রামিং কোড
- ধাপ 6: একটি সমাপ্ত চেহারা
ভিডিও: ডট লাইট প্যাটার্ন: Ste টি ধাপ
2024 লেখক: John Day | [email protected]. সর্বশেষ পরিবর্তিত: 2024-01-30 08:01
আমি "আমি কি নিজের হাতে আলো নিয়ন্ত্রণ করতে পারি এবং নিজের ইচ্ছা প্রকাশ করতে পারি?"
এটি একটি 'ডট লাইট প্যাটার্ন' যা আপনাকে আপনার নিজের রং তৈরি করতে, সেই রং দিয়ে আপনার নিজস্ব প্যাটার্ন ডিজাইন করতে এবং বিভিন্ন অ্যানিমেশন প্রভাব অনুভব করতে দেয়।
ধাপ 1: উপকরণ
- Arduino UNO x 13
- WS2901 বা WS2811 পিক্সেল LED স্ট্রিপ (130 LEDS)
- বোতাম সুইচ x 1
- স্ন্যাপ সুইচ x 65
- Potentionmeter x 65
- রেনবো ক্যাবল
- পাওয়ার যথেষ্ট এসএমপিএস
- কন্ডাক্টর ক্যাবল
- এক্রাইলিক স্বচ্ছ গোলাকার বার (30 মিমি ব্যাস)
- কালো রঙের এক্রাইলিক বোর্ড (5T) (500mm*790mm) x 2, (500mm*35mm) x 2, (790mm*35mm) x 2
ধাপ 2: নির্মাণ পরিকল্পনা
ধাপ 3: হার্ডওয়্যার: সার্কিট ডিজাইন
-
উপরের কাঠামোর মতো এক্রাইলিক প্লেট কেটে নিন। (ধাপ 2 দেখুন)
- এক টুকরো নিও-পিক্সেল LED পটেনশনমিটার গর্তের উপরে এবং নীচে রাখা হয় এবং মোট 65 জোড়া নিও-পিক্সেল LEDs সংযুক্ত থাকে।
- এক জোড়া আরডুইনো পিন গঠনের জন্য একজোড়া নিও-পিক্সেল এলইডি একসঙ্গে তারযুক্ত।
- পটেনশনমিটার গর্তে 65 পটেনশনমিটার ফিট করুন। (এটি একটি নিও-পিক্সেলেটেড পৃষ্ঠের বিপরীত দিকে রাখুন।)
- সুইচ ছিদ্র মেলে 65 স্ন্যাপ সুইচ সংযুক্ত করুন।
- মোট তেরোটি আরডুইনো ইউএনও প্রতিটি তেরোটি জোনের সাথে সংযুক্ত করা হয়েছে যাতে 65 টি টুকরো হার্ডওয়্যারের পাঁচটি টুকরো একটি আরডুইনো ইউএনওতে বাঁধা যায়।
- সংযুক্ত ছবিতে যেমন দেখানো হয়েছে, তারের সাহায্যে আরডুইনো ইউএনও-র পিনগুলিতে পটেনশনমিটার, স্ন্যাপ সুইচ এবং নিও-পিক্সেল এলইডি সংযুক্ত করুন। (ধাপ 2 দেখুন)
- বেশ কয়েকটি Arduino UNO- এর GND এবং 5V পিনগুলি কেবল তারের সাথে সংগৃহীত হয়, তারপর বাহ্যিক শক্তির সাথে সংযুক্ত। (ধাপ 2 দেখুন)
- বায়ুর চাপে ধুলো সরান।
ধাপ 4: হার্ডওয়্যার: এক্রাইলিক কাটিং
-
এক্রাইলিক রড 50 মিমি দৈর্ঘ্যে কাটা।
- অ্যাক্রিলিক রডের একপাশে পটেনশনমিটারের নিয়ন্ত্রক অংশের সাথে মিল করার জন্য আকার এবং গভীরতায় ড্রিল করা হয়।
- এক্রাইলিক রডটি ক্লিয়ারেন্সের জন্য গর্তের চেয়ে কিছুটা প্রশস্ত করা হয় যা পোটেনশনমিটারে ভালভাবে ফিট করতে পারে।
- অন্য দিকটি একটু স্যান্ডপেপার দেয় যাতে আলো সুন্দরভাবে প্রেরণ করা যায়।
ধাপ 5: Arduino প্রোগ্রামিং কোড
www.kasperkamperman.com/blog/arduino/ardui…
'hsb থেকে rgb' কোড 를 참고 한 code
#অন্তর্ভুক্ত
// 'adafruit_neopixel' 헤더 파일 라는 외부 라이브러리 를
// 네오 픽셀 연결 핀 번호 선언
#পিন 1 ডিফাইন করুন 2 পিন 2 ডিফাইন করুন
#সংজ্ঞায়িত করুন NUMPIXELS 2 // 픽셀 픽셀 LED
#সংজ্ঞায়িত করুন NUM_LIGHTS 5 // 모듈 모듈 갯수 (네오 픽셀 오브젝트 갯수)
// 네오 픽셀 오브젝트 অ্যারে
Adafruit_NeoPixel পিক্সেল = {Adafruit_NeoPixel (NUMPIXELS, PIN1, NEO_GRB + + NEO_KHZ800), Adafruit_NeoPixel (NUMPIXELS, পিন 2, NEO_GRB + + NEO_KHZ800), Adafruit_NeoPixel (NUMPIXELS, PIN3, NEO_GRB + + NEO_KHZ800), Adafruit_NeoPixel (NUMPIXELS, PIN4, NEO_GRB + + NEO_KHZ800), Adafruit_NeoPixel (NUMPIXELS, PIN5, NEO_GRB + NEO_KHZ800)}; //// 네오 픽셀 을 사용 위해 위해 객체 를 생성। // 첫번째 인자 값 은 네오 픽셀 의 LED 의 개수 // 두번째 인자 값 은 픽셀 이 이 아두 이노 번호 번호 // 세번째 인자 바뀌는 은 픽셀 의 바뀌는
//////////////////////////////////////////////////////////////
////// HSV 를 RGB 로 변환 하는 함수 getRGB () 를 위한 변수 와 함수
const বাইট dim_curve = {
0, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 16, 16, 16, 16, 17, 17, 17, 18, 18, 18, 19, 19, 19, 20, 20, 20, 21, 21, 22, 22, 22, 23, 23, 24, 24, 25, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 32, 32, 33, 33, 34, 35, 35, 36, 36, 37, 38, 38, 39, 40, 40, 41, 42, 43, 43, 44, 45, 46, 47, 48, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 68, 69, 70, 71, 73, 74, 75, 76, 78, 79, 81, 82, 83, 85, 86, 88, 90, 91, 93, 94, 96, 98, 99, 101, 103, 105, 107, 109, 110, 112, 114, 116, 118, 121, 123, 125, 127, 129, 132, 134, 136, 139, 141, 144, 146, 149, 151, 154, 157, 159, 162, 165, 168, 171, 174, 177, 180, 183, 186, 190, 193, 196, 200, 203, 207, 211, 214, 218, 222, 226, 230, 234, 238, 242, 248, 255, }; //
অকার্যকর getRGB (int hue, int sat, int val, int colours [5] [3], int index) {
val = dim_curve [val]; sat = 255 - dim_curve [255 - sat];
// 색조, 채도 및 밝기 (HSB /HSV) 를 RGB 로
// dim_curve 는 밝기 값 채도 채도 (반전) 에서만 사용। // 이것은 가장 자연스럽게 보입니다।
int r;
int g; int খ; int বেস;
যদি (sat == 0) {
রং [সূচক] [0] = ভ্যাল; রং [সূচক] [1] = ভ্যাল; রং [সূচক] [2] = ভ্যাল; } অন্য {
বেস = ((255 - sat) * val) >> 8;
সুইচ (রঙ / 60) {
কেস 0: আর = ভ্যাল; g = (((val - base) * hue) / 60) + base; b = বেস; বিরতি;
মামলা 1:
r = (((val - base) * (60 - (hue % 60))) / 60) + বেস; g = val; b = বেস; বিরতি;
কেস 2:
r = বেস; g = val; b = (((val - base) * (hue % 60)) / 60) + base; বিরতি;
কেস 3:
r = বেস; g = (((val - base) * (60 - (hue % 60))) / 60) + বেস; b = ভাল; বিরতি;
কেস 4:
r = (((val - base) * (hue % 60)) / 60) + base; g = বেস; b = ভাল; বিরতি;
কেস 5:
r = ভাল; g = বেস; b = (((val - base) * (60 - (hue % 60))) / 60) + বেস; বিরতি; }
রং [সূচক] [0] = আর;
রং [সূচক] [1] = ছ; রং [সূচক] [2] = বি; }
}
int rgb_colors [NUM_LIGHTS] [3]; // 네오 픽셀 오브젝트 갯수 마다 rgb রঙ
ইন্ট হিউ [NUM_LIGHTS]; // 네오 픽셀 오브젝트 갯수 ue hue 선언 int sat [NUM_LIGHTS]; // 네오 픽셀 픽셀 갯수 마다 명도 선언 int brignt [NUM_LIGHTS]; // 네오 픽셀 오브젝트 갯수 마다 밝기 서언
// 일반 변수 선언
int startSwitch = {8, 9, 10, 11, 12}; // চালু/বন্ধ 버튼 핀 번호 বুলিয়ান স্টার্টস্টেট = {মিথ্যা, মিথ্যা, মিথ্যা, মিথ্যা, মিথ্যা}; // চালু/বন্ধ
const int colorPin = {A0, A1, A2, A3, A4}; // 가변 저항 핀 번호
int colorVal = {0, 0, 0, 0, 0}; // 가변 저항 초기 값
int animationButton = 7; // 애니메이션 모드 변환 버튼 핀 번호
/////////////////////////////////////////////////
// 애니메이션 모든 변환 을 위한 위한 디 디 바운싱 선언 // 디 바운싱? Button 시간 내 많은 이벤트 이벤트 button button button button button button button button button button button button button button int buttonState; // 입력 핀 으로부터 의 현재 현재 last int lastButtonState = HIGH; // 이전 의 판독 판독 은 켜진 로 ign স্বাক্ষরবিহীন দীর্ঘ lastDebounceTime = 0; // 출력 핀 이 마지막 으로 으로 전환 시간 은 0 으로 স্বাক্ষরবিহীন দীর্ঘ debounceDelay = 50; // 디 바운싱 설정 설정; 출력 이 깜빡 이면 증가 한다 int মোড = 0; // 애니메이션 모드 변수
int B_Interval [5]; // 블 링킹 을 위한 모듈 모듈 랜덤 랜덤
int B_Min = 100; // 블 링킹 최단 속도; int B_Max = 500; // 블 링킹 최장 속도; int R_Interval = 50; // 레인보우 애니메이션 속도 변수 D D_Interval = 10; // 디밍 속도 변수
বুলিয়ান বি_স্টেট [5]; // 블 링킹 을 위한 위한 모듈 모듈 상태 상태
///////////////////////////////////////////////////////
// 멀티 테스 킹 애니메이션 애니메이션 위한 위한 변수 변수
স্বাক্ষরবিহীন দীর্ঘ বর্তমান মিলিস; // 현재 시간 변수
স্বাক্ষরবিহীন দীর্ঘ B_previousMillis [5]; // 각 모듈 의 블 링킹 타이머 স্বাক্ষরবিহীন দীর্ঘ DR_Millis [5]; // 각 모듈 의 디밍 랜덤 예비 (예비) স্বাক্ষরবিহীন দীর্ঘ R_previousMillis; // 레인보우 타이머 স্বাক্ষরবিহীন দীর্ঘ D_previousMillis; // 디밍
বুলিয়ান ফার্স্ট রেইনবো = সত্য; // 레인보우 색상 초기화 상태 변수
int RainbowSpeed; // 레인보우 변환 변수
int উজ্জ্বল = 100; // 디밍 초기 값 int BrightnessFactor = 1; // 디밍 증감 값 //////////////////////////////////////////////// ////////////////////////////////////////
অকার্যকর সেটআপ() {
জন্য (int i = 0; i <NUM_LIGHTS; i ++) {পিক্সেল .begin (); // 네오 픽셀 초기화 초기화}
// 버튼 인풋 설정
জন্য (int i = 0; i <NUM_LIGHTS; i ++) {pinMode (StartSwitch , INPUT_PULLUP); // চালু/বন্ধ pin 설정 pin} pinMode (animationButton, INPUT_PULLUP); // 애니메이션 버튼 인풋 설정
জন্য (int i = 0; i <NUM_LIGHTS; i ++) {B_Interval = int (random (B_Min, B_Max)); // 모듈 별 블 링킹 랜덤 속도 (인터발) 생성 생성}
Serial.begin (9600); // 통신
}
অকার্যকর লুপ () {
মোড = CheckAnimMode (); // 모드 에 애니메이션 체크 모드 모드 함수 넣는다
// 버튼 과 가변 저항 값 을 각각 읽어 읽어।
জন্য (int i = 0; i <NUM_LIGHTS; i ++) {startState =! digitalRead (StartSwitch ); // চালু/বন্ধ করুন 을 colorVal = analogRead (colorPin ); // 가변 저항 에서 읽은 읽은 값 가변 가변 저항 초기 값 넣는다}
সুইচ (মোড) {// 애니메이션 함수 스위치
কেস 0: অন (); // on 실행 실행 break; // 조건문 에서 빠져 나가라
মামলা 1:
রামধনু (); // রামধনু 실행 실행 বিরতি;
কেস 2:
dimming (); // dimming 함수 실행 বিরতি;
কেস 3:
ঝলকানি (); // ঝলকানি 함수 실행 বিরতি; }
জন্য (int i = 0; i <NUM_LIGHTS; i ++) {পিক্সেল .show (); // 네오 픽셀 오브젝트 배열 켜라}
}
/////////////////////////////////////////////////////////////
int CheckAnimMode () {
// 애니메이션 선택 버튼 을 을 모드 모드 결정 결정।
////////////////////////////////////////////////////// /// currentMillis = মিলিস (); // 시간 측정 int reading = digitalRead (animationButton); যদি (পড়া! = lastButtonState) {// 입력 핀 으로부터 이전 의 비교 비교 비교 비교 비교 lastDebounceTime = millis (); // 현재 시간 을 출력 출력 핀 마지막 마지막 으로 전환 된 시간}
যদি ((currentMillis - lastDebounceTime)> debounceDelay) {
যদি (পড়া! = buttonState) {// 입력 핀 으로부터 으로부터 받은 현재 값
buttonState = পড়া; // 판독 값 을 buttonState 에
যদি (buttonState == LOW) {// 버튼 상태 가 꺼져
মোড ++; // 버튼 모드 1 씩 증가 if (MODE> 3) {MODE = 0; প্রথম রেনবো = সত্য; // 레인보우 색상 초기화 상태 ight BrightnessFactor = 1; // 디밍 증감 값 উজ্জ্বল = 15; // 밝기 는 15}}}}
lastButtonState = পড়া; // 판독 값 을 이전 이전 버튼 버튼 에 에
মোড ফেরত; 하고 를 종료 하고 মোড 함수 로 값 을 리턴 하라}
////////////////////////////////////////////////////////////////////
// অ্যানিমেশন মোড ফাংশন
//চালু
অকার্যকর () {Serial.println ("on"); // 시리얼 모니터 을 on 을 on for (int i = 0; i <NUM_LIGHTS; i ++) {color_set (i, colorVal ); // 가변 저항 값 에 따라 따라 셋팅}}}
// রেইনবো
অকার্যকর রামধনু () {Serial.println ("বৃষ্টি"); // 시리얼 모니터 에 বৃষ্টি 을 써라 যদি (firstRainbow) {RainbowSpeed = 0; // 속도 속도 초기화 firstRainbow = মিথ্যা; // 레인보우 색상 초기화 상태 꺼짐} যদি (মিলিস () - R_previousMillis> R_Interval) {// 흐른 시간 값 이 레인보우 인터벌 값 크면 _ R_previousMillis = currentMillis; // 현재 시간 을 이전 이전 라 에 라 라 b RainbowSpeed += 10; // 레인보우 변환 변수 에 10 을 더해라}
জন্য (int i = 0; i <NUM_LIGHTS; i ++) {color_set (i, (colorVal +RainbowSpeed) % 1023); // 레인보우 컬러 셋팅}
}
// ডিমিং
অকার্যকর dimming () {Serial.println ("dimm"); // 시리얼 모니터 에 dimm 을 써라 Serial.println (উজ্জ্বল); // 시리얼 모니터 ight উজ্জ্বল 를 써라 if (currentMillis - D_previousMillis> D_Interval) {// 흐른 시간 값 이 디밍 인터벌 값 크면 _ D_previousMillis = currentMillis; // 현재 시간 을 이전 이전 에 에 ight Bright += BrightnessFactor; // 밝기 에 디밍 증감 값 1 씩 올려라} যদি (উজ্জ্বল 254) {BrightnessFactor = -1 * BrightnessFactor; } উজ্জ্বল = সীমাবদ্ধ (উজ্জ্বল, 99, 254); // 변수 밝기 값 을 최소값 99 ~ 값 254 사이 의 의 으로 으로
জন্য (int i = 0; i <NUM_LIGHTS; i ++) {dim_color_set (i, Bright); // 디밍 컬러 셋팅}}
// ঝলকানি
অকার্যকর জ্বলজ্বলে () {Serial.println ("blink"); // 시리얼 모니터 에 পলক 를
জন্য (int i = 0; i B_Interval ) {// 흐른 시간 값 이 블링크 인터벌 인터벌 값 보다
B_previousMillis = currentMillis; // 현재 시간 을 이전 의 의 블링크 에 넣어 _ B_state =! B_state ; // 각 모듈 의 블 블 상태 변수 의 값 의 반대 을}}}} জন্য (int i = 0; i <NUM_LIGHTS; i ++) {if (B_state ) {// 모듈 의 블 링킹 가 가 읽 히면 color_set (i, colorVal ); // 가변 저항 값 에 따라 따라 셋팅} অন্য {noColor_set (i); // 읽히지 않으면 컬러 셋팅 셋팅 않음}}}
}
////////////////////////////////////////////////////////////////////////////////////////
// মূল ফাংশন
// রঙ সেট
অকার্যকর color_set (int index, int colorSenser) {
যদি (startState [index]) {hue [index] = map (colorSenser, 0, 1023, 0, 359); // 0 ~ 1023 값 을 0 ~ 359 값 으로 매핑 color color color color color color color color color color color color color color color color color color color color জন্য (int i = 0; i <NUMPIXELS; i ++) {pixel [index].setPixelColor (i, pixels [index]. Color (rgb_colors [index] [0], rgb_colors [index] [1], rgb_colors [index] [2])); } // 픽셀 컬러 셋팅 을 rgb_colors 의 r, g, b 으로 else} অন্যথায় noColor_set (index); // 컬러 셋팅 않음 않음}
////// noColor সেট
void noColor_set (int index) {// 컬러 셋팅 하지 않는 함수
জন্য (int i = 0; i <NUMPIXELS; i ++) {pixel [index].setPixelColor (i, pixels [index]. Color (0, 0, 0)); } // 픽셀 컬러 세팅 을 0, 0, 0 으로 설정}
//// dimColor সেট
void dim_color_set (int index, int BC) {// 디밍 컬러 셋팅 함수
যদি (startState [index]) {hue [index] = map (colorVal [index], 0, 1023, 0, 359); // 0 ~ 1023 값 을 0 ~ 359 값 으로 매핑 color color color color color color color color color color color color color color color color color color color জন্য (int i = 0; i <NUMPIXELS; i ++) {pixel [index].setPixelColor (i, pixels [index]. Color (rgb_colors [index] [0], rgb_colors [index] [1], rgb_colors [index] [2])); } /// 픽셀 컬러 셋팅 을 rgb_colors 의 r, g, b 으로 else} অন্যথায় noColor_set (index); // 컬러 셋팅 하지 않음}
ধাপ 6: একটি সমাপ্ত চেহারা
প্রস্তাবিত:
ESP8266 বিকিরণ প্যাটার্ন: 7 ধাপ
ESP8266 বিকিরণ প্যাটার্ন: ESP8266 একটি জনপ্রিয় মাইক্রোকন্ট্রোলার মডিউল কারণ এটি অনবোর্ড ওয়াইফাই এর মাধ্যমে ইন্টারনেটের সাথে সংযুক্ত হতে পারে। এটি শখের জন্য রিমোট কন্ট্রোলড গ্যাজেট এবং আইওটি ডিভাইসগুলি ন্যূনতম অতিরিক্ত হার্ডওয়্যারের সাথে তৈরি করার অনেক সুযোগ খুলে দেয়
সন্তোষজনক LED প্যাটার্ন: Ste টি ধাপ
সন্তোষজনক এলইডি প্যাটার্নস: অনেকের জন্য ঘুম একটি কার্যত অপ্রাপ্য পণ্য হয়ে উঠেছে, ভাগ্যবান কয়েকজনের জন্য সংরক্ষিত একটি বিলাসিতা যারা দায়িত্বের বিভিন্ন স্ট্রিংগুলিকে একসাথে বিভিন্ন দিকে টানতে অনুভব করে না। ঘুম গুরুত্বপূর্ণ এবং আপনাকে রিফ্রেশ করতে সাহায্য করতে পারে
বোল্ট - DIY ওয়্যারলেস চার্জিং নাইট ক্লক (Ste টি ধাপ): Ste টি ধাপ (ছবি সহ)
বোল্ট - DIY ওয়্যারলেস চার্জিং নাইট ক্লক (Ste টি ধাপ): ইনডাকটিভ চার্জিং (ওয়্যারলেস চার্জিং বা কর্ডলেস চার্জিং নামেও পরিচিত) হল এক ধরনের ওয়্যারলেস পাওয়ার ট্রান্সফার। এটি পোর্টেবল ডিভাইসে বিদ্যুৎ সরবরাহ করতে ইলেক্ট্রোম্যাগনেটিক ইন্ডাকশন ব্যবহার করে। সবচেয়ে সাধারণ অ্যাপ্লিকেশন হল কিউ ওয়্যারলেস চার্জিং সেন্ট
একটি LED নাইট লাইট W/ স্টার প্যাটার্ন তৈরি করা: 8 টি ধাপ (ছবি সহ)
একটি এলইডি নাইট লাইট ডাব্লু/ স্টার প্যাটার্ন তৈরি করা: এই এলইডি নাইটলাইটটিতে একটি স্টার প্যাটার্ন রয়েছে এবং এটি একটি জাদুকরী উপায়ে একটি অন্ধকার ঘর আলোকিত করে। আমি কাঠের জন্য ipe ব্যবহার করেছি, তবে যেকোনো গা dark় কাঠ, বা উদাহরণস্বরূপ আঁকা MDF ভাল কাজ করবে। এটি একটি সত্যিই মজাদার প্রকল্প এবং একটি অ্যাকসেন্ট আলো হিসাবে দুর্দান্ত হবে
কোল্ড ক্যাথোড লাইট ব্যবহার করে ম্যাক্রো ফটোগ্রাফি লাইট সোর্স: Ste টি ধাপ (ছবি সহ)
কোল্ড ক্যাথোড লাইট ব্যবহার করে ম্যাক্রো ফটোগ্রাফি লাইট সোর্স: হালকা টেন্ট ব্যবহার করে শুটিং করার সময় কম তীব্রতার আলোর উৎস বেশ কাজে লাগে। LCD স্ক্রিনে পাওয়া CCFL (ঠান্ডা ক্যাথোড ফ্লুরোসেন্ট লাইট) এই উদ্দেশ্যে উপযুক্ত। CCFL এবং সংশ্লিষ্ট আলো ছড়িয়ে ছিটিয়ে থাকা প্যানেলগুলি ভাঙা ল্যাপটপে পাওয়া যাবে