विषयसूची:

SSD1306 I2C OLED 128x64 डिस्प्ले पर सर्किटपाइथन के साथ ग्राफिक्स एक इटिबिट्सी M4 एक्सप्रेस का उपयोग करते हुए: 13 चरण (चित्रों के साथ)
SSD1306 I2C OLED 128x64 डिस्प्ले पर सर्किटपाइथन के साथ ग्राफिक्स एक इटिबिट्सी M4 एक्सप्रेस का उपयोग करते हुए: 13 चरण (चित्रों के साथ)

वीडियो: SSD1306 I2C OLED 128x64 डिस्प्ले पर सर्किटपाइथन के साथ ग्राफिक्स एक इटिबिट्सी M4 एक्सप्रेस का उपयोग करते हुए: 13 चरण (चित्रों के साथ)

वीडियो: SSD1306 I2C OLED 128x64 डिस्प्ले पर सर्किटपाइथन के साथ ग्राफिक्स एक इटिबिट्सी M4 एक्सप्रेस का उपयोग करते हुए: 13 चरण (चित्रों के साथ)
वीडियो: Model Railway Departure Board - Raspberry Pi OLED display and FreeCAD 3D model 2024, जुलाई
Anonim
एक SSD1306 I2C OLED 128x64 डिस्प्ले पर सर्किटपाइथन के साथ एक इट्सबिट्सी M4 एक्सप्रेस का उपयोग करके ग्राफिक्स
एक SSD1306 I2C OLED 128x64 डिस्प्ले पर सर्किटपाइथन के साथ एक इट्सबिट्सी M4 एक्सप्रेस का उपयोग करके ग्राफिक्स

SSD1306 OLED डिस्प्ले एक छोटा (0.96 ), सस्ता, व्यापक रूप से उपलब्ध, I2C, 128x64 पिक्सल के साथ मोनोक्रोम ग्राफिकल डिस्प्ले है, जो कि रास्पबेरी पाई, Arduino या Adafruit Itsybitsy M4 जैसे माइक्रोप्रोसेसर डेवलपमेंट बोर्ड में आसानी से (केवल 4 तार) इंटरफेस किया जाता है। एक्सप्रेस, सर्किटप्लेग्राउंड एक्सप्रेस या अन्य सर्किटपायथन डिवाइस। ड्राइवरों को इंटरनेट से डाउनलोड किया जा सकता है।

Arduinos के लिए ग्राफिकल रूटीन कुछ समय के लिए उपलब्ध हैं, लेकिन अन्य विकास प्रणालियों के लिए नहीं।

मूल डिवाइस ड्राइवर उपयोगकर्ताओं को इसकी अनुमति देते हैं:

  • स्क्रीन को ब्लैक या व्हाइट में साफ़ करें। ओलेड.फिल (सी)
  • स्क्रीन पर एक निर्दिष्ट (x, y) स्थिति oled.text("Text", x, y, c) पर एक टेक्स्ट स्ट्रिंग लिखें।
  • निर्दिष्ट (x, y) स्थिति oled.pixel(x, y, c) पर एक बिंदु बनाएं
  • स्क्रीन पर एक तस्वीर फ़ाइल लोड करें। (इस परियोजना में उपयोग नहीं किया गया)
  • डिस्प्ले को अपडेट करें old.show()

यह निर्देशयोग्य सरल प्रक्रियाओं के साथ, कैसे आकर्षित करें, अंतःक्रियात्मक रूप से प्रदर्शित करेगा:

  • पंक्तियां
  • हलकों
  • खोखले बक्से
  • ठोस ब्लॉक
  • पूर्व-परिभाषित वर्ण

मैं विधियों को प्रदर्शित करने के लिए Adafruit Itsybitsy M4 Express का उपयोग करूंगा लेकिन कोड, पायथन में, आसानी से अन्य विकास प्रणालियों में पोर्ट किया जा सकता है।

मैंने इस प्रदर्शन के लिए Itsybitsy M4 को चुना क्योंकि यह सस्ता, शक्तिशाली, प्रोग्राम में आसान है, इसमें एनालॉग और डिजिटल इनपुट/आउटपुट शामिल हैं, इसमें बहुत सारी मेमोरी है, आसानी से इंटरनेट पर दस्तावेज़ीकरण और सहायता फ़ोरम स्थित हैं, शुरू में स्थापित करना बहुत आसान है और सर्किटपायथन का समर्थन करता है, जो कोडिंग के लिए नए लोगों के लिए आदर्श पायथन का एक संस्करण है।

एक बार जब आप अपना Itsybitsy और SSD1306 सेट कर लेते हैं तो यह एक बहुत ही सरल ब्रेडबोर्ड बिल्ड है। कोई टाइपिंग नहीं है, सभी फाइलें डाउनलोड की जा सकती हैं।

यह निर्माण करने के लिए एक सस्ती और आसान परियोजना है लेकिन कुछ मध्यवर्ती/उन्नत विचारों का परिचय देती है। मुझे आशा है कि आप इसे आजमाएंगे। मैं इस छोटे से प्रदर्शन से प्रभावित था।

चरण 1: इस परियोजना के लिए हमें क्या चाहिए

इस परियोजना के लिए हमें क्या चाहिए
इस परियोजना के लिए हमें क्या चाहिए

हार्डवेयर:

  • SSD1306 I2C मोनो डिस्प्ले 128x64 पिक्सल
  • इट्सिबिट्सी एम४ एक्सप्रेस
  • माइक्रोयूएसबी से यूएसबी केबल - बोर्ड को प्रोग्राम करने के लिए
  • ब्रेड बोर्ड
  • १ १० के ओम पोटेंशियोमीटर
  • 1 बटन स्विच
  • कनेक्टिंग वायर - विभिन्न रंग मदद कर सकते हैं
  • कंप्यूटर (कोड लिखने और अपलोड करने के लिए) - एक बहुत पुराना लैपटॉप करेगा।

सॉफ्टवेयर:

म्यू संपादक - कोड लिखने और स्क्रिप्ट को इटिबिट्सी पर अपलोड करने के लिए

Itsybitsy की स्थापना को यहां समझाया गया है:

सर्किटपायथन का नवीनतम संस्करण:

सर्किटपायथन पुस्तकालय:

म्यू संपादक:

चरण 2: सर्किट

सर्किट
सर्किट

यह स्थापित करने के लिए एक बहुत ही सरल सर्किट है। अगला पृष्ठ चीजों को आसान बनाने के लिए रंगीन तारों के साथ तैयार ब्रेडबोर्ड को दिखाता है।

चरण 3: सर्किट का ब्रेडबोर्ड संस्करण

सर्किट का ब्रेडबोर्ड संस्करण
सर्किट का ब्रेडबोर्ड संस्करण

ब्रेडबोर्ड के ऊपर और नीचे पावर रेल हैं। लाल तार के साथ + ve रेल को एक साथ मिलाएं। काले तार के साथ -ve रेल को एक साथ मिलाएं।

Itsybitsy के 3V पिन को निचले +ve रेल - लाल तार से मिलाएं। (कॉलम 12)

Itsybitsy के G (GND) पिन को टॉप-वे रेल - ब्लैक वायर से मिलाएं। (कॉलम 12)

कॉलम 33 और 34 में, SSD1306 VCC और GND पिन को शीर्ष पावर रेल से कनेक्ट करें।

एक गुलाबी तार के साथ SCL पिन को एक साथ मिलाएं।

एक ग्रे तार के साथ एसडीए पिन को एक साथ मिलाएं।

लाल और काले तारों के साथ पोटेंशियोमीटर के बाहरी पिन को ऊपरी पावर रेल से जोड़ते हैं और हरे रंग के तार के साथ केंद्र (वाइपर) पिन को इटसिबिट्सी पर A5 से जोड़ते हैं।

बटन स्विच के एक तरफ को पर्पल वायर से पिन 2 से कनेक्ट करें और ब्लैक वायर से दूसरी साइड को GND रेल से कनेक्ट करें।

चरण 4: फ़ॉन्ट लोड हो रहा है

फ़ॉन्ट लोड हो रहा है
फ़ॉन्ट लोड हो रहा है

फ़ॉन्ट फ़ाइल डाउनलोड करें और इसे सर्किट ड्राइव पर खींचें। (यह इटसिबिट्सी है।)

lib फ़ोल्डर पर डबल क्लिक करें और उन ड्राइवरों की सूची देखें जिन्हें आपने पहले ही लोड कर लिया है।

चरण 5: अतिरिक्त ड्राइवर जोड़ना

अतिरिक्त ड्राइवर जोड़ना
अतिरिक्त ड्राइवर जोड़ना

आपको lib फ़ोल्डर में निम्नलिखित की आवश्यकता होगी:

  • simpleio.mpy
  • adafruit_bus_device
  • adafruit_framebuf.mpy
  • adafruit_ssd1306.mpy

यदि वे अनुपलब्ध हैं, तो उन्हें उपलब्ध नवीनतम संस्करण से फ़ोल्डर में खींचें।

अब आप स्क्रिप्ट डाउनलोड करने के लिए तैयार हैं।

म्यू संपादक में लोड होने के बाद आप इसे main.py नाम से Itsybitsy में सहेज सकते हैं।

कार्यक्रम लाइनों, मंडलियों, एक गतिशील बार ग्राफ और परिभाषित वर्णों को प्रदर्शित करने के प्रदर्शनों की एक श्रृंखला के माध्यम से चलता है। बस बर्तन को धीरे-धीरे घुमाएं और डिस्प्ले को नियंत्रित करने के लिए बटन को दबाकर रखें।

निम्नलिखित पृष्ठ इस बारे में अधिक जानकारी देते हैं कि कार्यक्रम कैसे काम करता है।

चरण 6: उपकरणों को सेटअप करें

उपकरणों को सेटअप करें
उपकरणों को सेटअप करें

यह पहला खंड सभी पुस्तकालयों को लोड करता है और सही पिन पर SSD1306, पोटेंशियोमीटर और बटन स्विच सेट करता है।

चरण 7: वर्णों को परिभाषित करें और क्षैतिज और लंबवत रेखाएं बनाएं

वर्णों को परिभाषित करें और क्षैतिज और लंबवत रेखाएं बनाएं
वर्णों को परिभाषित करें और क्षैतिज और लंबवत रेखाएं बनाएं
वर्णों को परिभाषित करें और क्षैतिज और लंबवत रेखाएं बनाएं
वर्णों को परिभाषित करें और क्षैतिज और लंबवत रेखाएं बनाएं

यह खंड पूर्व-निर्धारित वर्णों को सेट करता है। वे 5 बिंदु चौड़े और 8 बिंदु ऊंचे हैं। परिभाषा में प्रत्येक बिंदु स्क्रीन पर 4 बिंदु खींचता है ताकि वे बेहतर दिखाई दें।

लूप के साथ क्षैतिज और लंबवत रेखाएं खींचना आसान है। आपको बस यह याद रखना है कि आपको अंत में अतिरिक्त बिंदु की आवश्यकता है। (0, 7) से (5, 7) तक की एक रेखा को 6 बिंदुओं की आवश्यकता होगी: x के बराबर 0, 1, 2, 3, 4 और 5 बारी-बारी से।

मूल डॉट कमांड oled.pixel(x, y, color) है - 0 काला है और 1 सफेद है।

मूल (0, 0) स्क्रीन के ऊपर बाईं ओर है, क्षैतिज रूप से 0 - 127 पिक्सेल (बाएं से दाएं) और 0 - 63 लंबवत (ऊपर से नीचे)।

चरण 8: बक्से, ब्लॉक और ढलान वाली रेखाएं

बक्से, ब्लॉक और ढलान वाली रेखाएं
बक्से, ब्लॉक और ढलान वाली रेखाएं

बक्से क्षैतिज और लंबवत रेखाओं से बने होते हैं।

ब्लॉक कई क्षैतिज रेखाओं से बने होते हैं।

ढलान वाली रेखाओं के लिए हम पहले जाँचते हैं कि निर्देशांक सबसे पहले सबसे पहले दिए गए हैं। यदि नहीं, तो हम उन्हें बदल देते हैं क्योंकि रेखा बाएं से दाएं खींची जाएगी।

फिर हम ढलान की गणना करते हैं और इसका उपयोग x के प्रत्येक मान के लिए y मान निर्धारित करने के लिए करते हैं।

डिस्प्ले (टी) प्रक्रिया अद्यतन स्क्रीन को दृश्यमान बनाती है और थोड़ी देरी, टी सेकंड की प्रतीक्षा करती है।

चरण 9: डिग्री सिंबल, एनलग्नमेंट, बार ग्राफ और सर्कल

डिग्री सिंबल, एनलग्नमेंट, बार ग्राफ और सर्कल
डिग्री सिंबल, एनलग्नमेंट, बार ग्राफ और सर्कल

डिग्री सिंबल 4 पिक्सल से बनाया गया है।

एलाइन () रूटीन एक निश्चित स्पेस में शॉर्ट वैल्यू को राइट अलाइन करने के लिए नंबर के सामने अतिरिक्त स्पेस जोड़ता है।

ग्राफ़ (v) रूटीन चयनित प्रतिशत देते हुए एक क्षैतिज दंड आलेख बनाता है। 100 (टन या शीर्ष) का प्रतिनिधित्व करने के लिए 'टी' का उपयोग करके दाहिने हाथ के अंत में मूल्य लिखा जाता है।

मंडलियों को कुछ त्रिकोणमिति की आवश्यकता होती है, इसलिए हमें स्क्रिप्ट की शुरुआत में गणित पुस्तकालय को आयात करने की आवश्यकता होती है। हम केंद्र से x और y ऑफसेट की गणना करने के लिए sin, cos और radians का उपयोग करते हैं क्योंकि त्रिज्या को 90 डिग्री से घुमाया जाता है। ऑफसेट की प्रत्येक गणना के लिए चार चतुर्भुजों में से प्रत्येक में अंक प्लॉट किए जाते हैं।

चरण 10: कचरा संग्रह, शीर्षक और मंडलियां

कचरा संग्रह, शीर्षक और मंडलियां
कचरा संग्रह, शीर्षक और मंडलियां

ये निर्देश स्क्रीन को ब्लैक एंड व्हाइट में साफ़ करना, स्क्रीन पर टेक्स्ट लिखना और स्थान खाली करने के लिए gc() 'कचरा संग्रह' रूटीन का उपयोग करना प्रदर्शित करते हैं। मान से पता चलता है कि बहुत बड़ी स्क्रिप्ट के लिए पर्याप्त जगह है।

कार्यक्रम तब एक सामान्य केंद्र और गतिमान केंद्रों के साथ वृत्त बनाता है। आवश्यक गणना की मात्रा को देखते हुए काफी त्वरित दिनचर्या।

लाइन्स डेमो का शीर्षक आगे लिखा गया है।

चरण 11: लाइन्स डेमो

लाइन्स डेमो
लाइन्स डेमो

यह रूटीन वास्तव में लाइन () रूटीन को वर्कआउट देता है। रेडियल रेखाएं डिस्प्ले के चारों कोनों में से प्रत्येक से अलग-अलग स्पेसिंग पैटर्न बनाने के साथ खींची जाती हैं।

चरण 12: मुख्य लूप: बार ग्राफ और परिभाषित वर्ण

मुख्य लूप: बार ग्राफ और परिभाषित वर्ण
मुख्य लूप: बार ग्राफ और परिभाषित वर्ण

यह कार्यक्रम का मुख्य लूप है। पोटेंशियोमीटर के मान दिखाए गए मानों को बदल देते हैं और बार ग्राफ की लंबाई को बदल देते हैं।

यदि बटन को नीचे रखा जाता है तो परिभाषित वर्णों को 1/0 और सही/गलत के रूप में बदल दिया जाता है। यह लूप काफी धीमी गति से चलता है क्योंकि पूर्व-निर्धारित वर्णों को खींचना एक धीमी प्रक्रिया है। आप उनमें से कुछ पर टिप्पणी करके चीजों को गति दे सकते हैं।

इस डेमो को सरल रखने के लिए कोई तापमान सेंसर नहीं लगाया गया है, इसलिए '?' 190 पंक्ति में मान के बजाय प्रदर्शित होता है।

सिफारिश की: