विषयसूची:
- चरण 1: प्रयुक्त संसाधन
- चरण 2: प्रदर्शन
- चरण 3: SSD1306 लाइब्रेरी
- चरण 4: एनिमेशन और एक्सबीएम फ़ाइलें
- चरण 5: एक्सबीएम फाइलों से बाहर निकलना
- चरण 6: स्रोत कोड
- चरण 7: कोड अपलोड करना
- चरण 8: फ़ाइलें
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:21
यह ESP32 लोरा के परिचय से संबंधित एक और वीडियो है। इस बार, हम विशेष रूप से ग्राफिक डिस्प्ले (128x64 पिक्सल) के बारे में बात करेंगे। हम इस OLED डिस्प्ले पर जानकारी प्रदर्शित करने के लिए SSD1306 लाइब्रेरी का उपयोग करेंगे और XBM छवियों का उपयोग करके एनीमेशन का एक उदाहरण प्रस्तुत करेंगे।
चरण 1: प्रयुक्त संसाधन
1 हेल्टेक वाईफाई लोरा 32
protoboard
चरण 2: प्रदर्शन
विकास बोर्ड पर प्रयुक्त डिस्प्ले 0.96 इंच का OLED है।
इसमें 128x64 है और यह मोनोक्रोम है।
इसमें I2C संचार है और यह 3 तारों के माध्यम से ESP32 से जुड़ा है:
GPIO4 पर एसडीए (डेटा के लिए)
GPIO15 पर SCL (घड़ी के लिए)
GPIO16 पर RST (रीसेट और डिस्प्ले स्टार्ट के लिए)
चरण 3: SSD1306 लाइब्रेरी
यह हेल्टेक-आरोन-ली द्वारा प्रदान किए गए पुस्तकालयों के सेट के साथ मिल सकता है।
इसमें तार लिखने, रेखाएँ खींचने, आयत, वृत्त और चित्र प्रदर्शित करने के कई कार्य हैं।
github.com/Heltec-Aaron-Lee/WiFi_Kit_series
चरण 4: एनिमेशन और एक्सबीएम फ़ाइलें
हम एनीमेशन प्रदर्शित करने के लिए पुस्तकालय के drawXbm फ़ंक्शन का उपयोग करेंगे।
एक्सबीएम छवि प्रारूप में वर्णों की एक सरणी होती है जहां प्रत्येक तत्व हेक्साडेसिमल मान के माध्यम से मोनोक्रोम पिक्सेल (प्रत्येक 1 बिट) के एक सेट का पाठ रूप से प्रतिनिधित्व करता है। ये एक बाइट के बराबर होते हैं।
चूंकि एक बाइट का प्रतिनिधित्व करने के लिए एकाधिक वर्णों का उपयोग किया जाता है, इसलिए ये फ़ाइलें वर्तमान में अपनाए गए प्रारूपों से बड़ी होती हैं। लाभ यह है कि उन्हें पूर्व उपचार की आवश्यकता के बिना सीधे संकलित किया जा सकता है।
सरणी के अलावा, छवि आकार निर्धारित करने वाली दो सेटिंग्स शामिल हैं।
एनीमेशन बनाने के लिए, हमें उन छवियों की आवश्यकता होती है जो फ्रेम बनाती हैं।
हम काम करने के लिए किसी भी इमेज एडिटिंग सॉफ्टवेयर का इस्तेमाल कर सकते हैं। हमें केवल एक ही सावधानी बरतनी चाहिए कि पहले आकार को डिस्प्ले के अनुकूल रखें और मोनोक्रोम फाइलों का उपयोग करें।
फ़ाइलें उत्पन्न करने के लिए, हम उन्हें आकर्षित कर सकते हैं या चित्र आयात कर सकते हैं। यहां, हमने पेंटब्रश का उपयोग करके रंगीन छवि को संपादित करने का निर्णय लिया, और हमने प्रत्येक फ्रेम को आकर्षित किया
मूल छवि - 960x707 पिक्सेल - पीएनजी प्रारूप
अगला कदम इसे मोनोक्रोम बिटमैप के रूप में सहेज कर इसे मोनोक्रोम बनाना है।
फिर, हम इसे डिस्प्ले के अनुकूल आकार में बदलते हैं।
माप की इकाइयों पर विशेष ध्यान दें। इस मामले में, हमने छवि को समायोजित किया ताकि यह प्रदर्शन की पूरी ऊंचाई (ऊर्ध्वाधर = 64 पिक्सेल) पर कब्जा कर ले।
सही आकार में छवि के साथ, हम इसे फ्रेम बनाने के लिए संपादित करेंगे। यहां, हम सिग्नल स्तर के प्रत्येक चाप को मिटा रहे हैं और उन्हें संबंधित फ्रेम के रूप में सहेज रहे हैं।
अब, हमें बीएमपी फाइलों को एक्सबीएम फॉर्मेट में बदलना होगा।
कई सॉफ्टवेयर विकल्प हैं जो इस रूपांतरण को कर सकते हैं। हमने संपादक विकल्प के रूप में GIMP को भी चुना।
हमारे उदाहरण में, हमने फाइल बनाने और संपादित करने के लिए पेंटब्रश का उपयोग किया। हालाँकि, इनमें से हर एक प्रक्रिया जिम्प (या किसी अन्य संपादक) में की जा सकती थी।
कनवर्ट करने के लिए, हम पहले फ़ाइल खोलते हैं।
खुली हुई छवि के साथ, हम फ़ाइल => इस रूप में निर्यात करें का चयन कर सकते हैं…
छवि निर्यात करें विंडो में, हमें XBM के लिए गंतव्य फ़ाइल एक्सटेंशन को बदलना होगा। जिम्प वांछित प्रारूप की पहचान करने और अधिक विकल्प प्रस्तुत करने का प्रभारी होगा …
निर्यात करते समय, जिम्प अन्य विकल्प प्रस्तुत करेगा। हम डिफ़ॉल्ट मान छोड़ सकते हैं।
सभी फाइलों को बदलने के बाद, हमारे पास चार एक्सबीएम फाइलें होंगी, प्रत्येक फ्रेम के लिए एक।
अब उन्हें स्रोत कोड फ़ोल्डर में कॉपी करते हैं और उनके एक्सटेंशन को.h में बदलकर उनका नाम बदलते हैं।
चरण 5: एक्सबीएम फाइलों से बाहर निकलना
हम किसी भी टेक्स्ट एडिटर में एक्सबीएम फाइलें खोल सकते हैं, जहां हम पहले से परिभाषित इमेज मैट्रिक्स और इमेज साइज की जानकारी देखेंगे।
चरण 6: स्रोत कोड
स्रोत कोड: विवरण
हम आवश्यक पुस्तकालयों के साथ-साथ छवि फ़ाइलों को भी शामिल करेंगे। हम छवि की स्थिति और संक्रमण अंतराल को परिभाषित करते हैं। हम ESP32 से जुड़े OLED पिन को भी इंगित करते हैं। अंत में, हम डिस्प्ले ऑब्जेक्ट बनाते और समायोजित करते हैं।
// bibliotecas necessárias के रूप में शामिल करें#include #include "SSD1306.h" //include os arquivos de imagem #include "frame1.h" #include "frame2.h" #include "frame3.h" #include "frame4.h" // डेफिनिस डे पॉसीकाओ दा इमेजम ई इंटरवलो डे ट्रांसीकाओ #define posX 21 #define posY 0 #define इंटरवलो 500 // पिनो डू OLED एस्टो कॉन्क्टैडोस एओ ESP32: I2C //OLED_SDA - GPIO4 //OLED_SCL - GPIO15 //OLED_RST - - GPIO16 #define SDA 4 #define SCL 15 #define RST 16 //O RST deve ser controlado por software SSD1306 डिस्प्ले (0x3c, SDA, SCL, RST); //Cria e ajusta o Objeto डिस्प्ले
स्रोत कोड: सेटअप ()
डिस्प्ले को इनिशियलाइज़ करें और स्क्रीन को लंबवत रूप से उल्टा करें। कार्रवाई वैकल्पिक है।
शून्य सेटअप () {display.init (); //incia o डिस्प्ले डिस्प्ले.flipScreenVertically (); // इनवर्ट वर्टिकलमेंट ए टेला (ऑप्शनल) }
स्रोत कोड: लूप ()
लूप में करने वाली पहली चीज़ स्क्रीन को साफ़ करना है। हम posX और posY प्रारंभिक स्थितियों का उपयोग करके फ्रेम 1 को बफर में लोड करते हैं। हम छवि के आकार को फ्रेम1_चौड़ाई और फ्रेम1_ऊंचाई के साथ सूचित करते हैं, और छवि के बिट्स वाले सरणी का नाम सूचित करते हैं। हम डिस्प्ले पर बफर दिखाते हैं और अगला फ्रेम दिखाने से पहले एक अंतराल की प्रतीक्षा करते हैं।
शून्य लूप () { डिस्प्ले। क्लियर (); // लिम्पा टेला // कैरेगा पैरा ओ बफर ओ फ्रेम 1 // हमें स्थिति के रूप में सकारात्मक स्थिति में है // सूचना ओ तमनहो दा इमेजम कॉम फ्रेम 1_चौड़ाई ई फ्रेम 1_ऊंचाई // सूचना ओ नोम दा मैट्रीज क्यू कॉन्टेम ओएस बिट्स दा इमेजम, कोई कैसो फ्रेम 1 नहीं display.drawXbm(posX, posY, frame1_width, frame1_height, frame1_bits); // मोस्ट्रा ओ बफर नो डिस्प्ले डिस्प्ले। डिस्प्ले (); // अगुआर्डा उम इंटरवेलो एंट्स डे मोस्ट्रार ओ प्रॉक्सिमो फ्रेम विलंब (इंटरवालो);
हम अन्य सभी फ़्रेमों के लिए प्रक्रिया को दोहराते हैं।
// रिपीट ओ प्रोसेसो पैरा टूडोस ओएस आउट्रोस फ्रेम्स डिस्प्ले। क्लियर (); display.drawXbm (posX, posY, frame2_width, frame2_height, frame2_bits); डिस्प्ले.डिस्प्ले (); देरी (अंतराल); डिस्प्ले.क्लियर (); display.drawXbm (posX, posY, frame3_width, frame3_height, frame3_bits); डिस्प्ले.डिस्प्ले (); देरी (अंतराल); डिस्प्ले.क्लियर (); display.drawXbm (posX, posY, frame4_width, frame4_height, frame4_bits); डिस्प्ले.डिस्प्ले (); देरी (अंतराल); }
चरण 7: कोड अपलोड करना
IDE ओपन होने पर.ino फाइल पर डबल-क्लिक करके या फाइल मेन्यू में जाकर सोर्स कोड वाली फाइल को खोलें।
हेल्टेक यूएसबी से कनेक्ट होने के साथ, मेनू टूल्स => कार्ड चुनें: "Heltec_WIFI_LoRa_32"
अभी भी उपकरण मेनू में, COM पोर्ट का चयन करें जहां हेल्टेक जुड़ा हुआ है।
अपलोड बटन पर क्लिक करें…
… और निष्कर्ष की प्रतीक्षा करें।
चरण 8: फ़ाइलें
फ़ाइलें डाउनलोड करें:
पीडीएफ
मैं नहीं
सिफारिश की:
TM1637 LED डिस्प्ले पर Arduino डिस्प्ले तापमान: 7 कदम
TM1637 LED डिस्प्ले पर Arduino डिस्प्ले तापमान: इस ट्यूटोरियल में हम सीखेंगे कि LED डिस्प्ले TM1637 और DHT11 सेंसर और Visuino का उपयोग करके तापमान कैसे प्रदर्शित किया जाए। वीडियो देखें
माइक्रोपायथन के साथ टीटीजीओ (रंग) डिस्प्ले (टीटीजीओ टी-डिस्प्ले): 6 कदम
टीटीजीओ (रंग) डिस्प्ले विथ माइक्रोपायथन (टीटीजीओ टी-डिस्प्ले): टीटीजीओ टी-डिस्प्ले ईएसपी32 पर आधारित एक बोर्ड है जिसमें 1.14 इंच का रंग डिस्प्ले शामिल है। बोर्ड को 7$ से कम के पुरस्कार के लिए खरीदा जा सकता है (शिपिंग सहित, बैंगगूड पर देखा जाने वाला पुरस्कार)। यह एक डिस्प्ले सहित ESP32 के लिए एक अविश्वसनीय पुरस्कार है। T
E32-433T लोरा मॉड्यूल ट्यूटोरियल के साथ ESP32 - लोरा अरुडिनो इंटरफेसिंग: 8 कदम
E32-433T लोरा मॉड्यूल ट्यूटोरियल के साथ ESP32 | लोरा अरुडिनो इंटरफेसिंग: अरे, क्या चल रहा है, दोस्तों! यहाँ CETech से आकर्ष। मेरा यह प्रोजेक्ट eByte से E32 LoRa मॉड्यूल को इंटरफेस कर रहा है जो Arduino IDE का उपयोग करते हुए ESP32 के साथ एक उच्च शक्ति वाला 1-वाट ट्रांसीवर मॉड्यूल है। हमने अपने पिछले ट्यूटोरियल में E32 के काम को समझा
लोरा पर घरेलू उपकरणों को नियंत्रित करें - होम ऑटोमेशन में लोरा - लोरा रिमोट कंट्रोल: 8 कदम
लोरा पर घरेलू उपकरणों को नियंत्रित करें | होम ऑटोमेशन में लोरा | लोरा रिमोट कंट्रोल: इंटरनेट की मौजूदगी के बिना लंबी दूरी (किलोमीटर) से अपने बिजली के उपकरणों को नियंत्रित और स्वचालित करें। लोरा के माध्यम से यह संभव है! अरे, क्या चल रहा है दोस्तों? यहाँ CETech से आकर्ष। इस PCB में OLED डिस्प्ले और 3 रिले भी हैं जो एक
परिचय लोरा और मॉड्यूल RFM95 / RFM95W होपरफ: 5 कदम
परिचय लोरा और मॉड्यूल RFM95 / RFM95W होपरफ: इस अवसर में हम लोरा &ट्रेड; और विशेष रूप से होपरफ इलेक्ट्रॉनिक्स द्वारा निर्मित रेडियो RFM95/96। चूंकि कुछ महीने पहले, 2 मॉड्यूल आए, शुरू में मैं इस विषय पर एक परिचय देना चाहता हूं