विषयसूची:

परिचय ESP32 लोरा OLED डिस्प्ले: 8 कदम
परिचय ESP32 लोरा OLED डिस्प्ले: 8 कदम
Anonim
Image
Image
परिचय ESP32 लोरा OLED डिस्प्ले
परिचय ESP32 लोरा OLED डिस्प्ले

यह ESP32 लोरा के परिचय से संबंधित एक और वीडियो है। इस बार, हम विशेष रूप से ग्राफिक डिस्प्ले (128x64 पिक्सल) के बारे में बात करेंगे। हम इस OLED डिस्प्ले पर जानकारी प्रदर्शित करने के लिए SSD1306 लाइब्रेरी का उपयोग करेंगे और XBM छवियों का उपयोग करके एनीमेशन का एक उदाहरण प्रस्तुत करेंगे।

चरण 1: प्रयुक्त संसाधन

प्रयुक्त संसाधन
प्रयुक्त संसाधन

1 हेल्टेक वाईफाई लोरा 32

protoboard

चरण 2: प्रदर्शन

प्रदर्शन
प्रदर्शन
प्रदर्शन
प्रदर्शन

विकास बोर्ड पर प्रयुक्त डिस्प्ले 0.96 इंच का OLED है।

इसमें 128x64 है और यह मोनोक्रोम है।

इसमें I2C संचार है और यह 3 तारों के माध्यम से ESP32 से जुड़ा है:

GPIO4 पर एसडीए (डेटा के लिए)

GPIO15 पर SCL (घड़ी के लिए)

GPIO16 पर RST (रीसेट और डिस्प्ले स्टार्ट के लिए)

चरण 3: SSD1306 लाइब्रेरी

SSD1306 लाइब्रेरी
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: फ़ाइलें

फ़ाइलें डाउनलोड करें:

पीडीएफ

मैं नहीं

सिफारिश की: