विषयसूची:

टैबलेट/फोन अरुडिनो स्क्रीन के रूप में, और एक $2 ऑसिलोस्कोप: 4 कदम
टैबलेट/फोन अरुडिनो स्क्रीन के रूप में, और एक $2 ऑसिलोस्कोप: 4 कदम

वीडियो: टैबलेट/फोन अरुडिनो स्क्रीन के रूप में, और एक $2 ऑसिलोस्कोप: 4 कदम

वीडियो: टैबलेट/फोन अरुडिनो स्क्रीन के रूप में, और एक $2 ऑसिलोस्कोप: 4 कदम
वीडियो: How I Made my own Smart Glass Under $10 2024, नवंबर
Anonim
टैबलेट / फोन Arduino स्क्रीन के रूप में, और $ 2 ऑसिलोस्कोप
टैबलेट / फोन Arduino स्क्रीन के रूप में, और $ 2 ऑसिलोस्कोप
टैबलेट / फोन Arduino स्क्रीन के रूप में, और $ 2 ऑसिलोस्कोप
टैबलेट / फोन Arduino स्क्रीन के रूप में, और $ 2 ऑसिलोस्कोप
टैबलेट / फोन Arduino स्क्रीन के रूप में, और $ 2 ऑसिलोस्कोप
टैबलेट / फोन Arduino स्क्रीन के रूप में, और $ 2 ऑसिलोस्कोप

जबकि कोई Arduino- आधारित प्रोजेक्ट के लिए एक सस्ता 320x240 LCD टच स्क्रीन खरीद सकता है, यह अधिक सुविधाजनक हो सकता है - विशेष रूप से स्केच के प्रोटोटाइप और परीक्षण के लिए - टैबलेट या फोन को टच स्क्रीन और पावर स्रोत दोनों के रूप में उपयोग करने के लिए। परियोजना। आपके एंड्रॉइड डिवाइस पर आपके पास बहुत अधिक रिज़ॉल्यूशन और बेहतर दिखने वाला डिस्प्ले हो सकता है (उदाहरण के लिए, आपकी सभी लाइनें एंटी-अलियास होंगी)।

एंड्रॉइड-आधारित स्क्रीन को यूएसबी सीरियल, ब्लूटूथ या वाईफाई (जैसे, ईएसपी8266) के माध्यम से जोड़ा जा सकता है।

इसके लिए मैंने वेक्टरडिस्प्ले (यहां स्रोत) लिखा, एक एंड्रॉइड ऐप जो एक Arduino लाइब्रेरी के साथ जोड़ता है जो एडफ्रूट जीएफएक्स इंटरफ़ेस का एक बड़ा सबसेट लागू करता है। आप कोड लिख सकते हैं जिसे बाद में एक स्टैंडअलोन स्क्रीन का उपयोग करने के लिए आसानी से पोर्ट किया जा सकता है, या एंड्रॉइड-आधारित डिस्प्ले के साथ स्केच का उपयोग करना जारी रख सकते हैं। और आप Arduino स्केच को नियंत्रित करने के लिए Android ऐप से कमांड भेज सकते हैं। Arduino लाइब्रेरी काफी हद तक बोर्ड-स्वतंत्र है: इसे किसी भी बोर्ड के साथ काम करना चाहिए जो सीरियल नाम का USB सीरियल पोर्ट ऑब्जेक्ट प्रदान करता है या वाईफाई पर या ब्लूटूथ के साथ ESP8266 के साथ (पहले अपने बोर्ड को पेयर करें)।

अवधारणा अनुप्रयोग के प्रमाण के रूप में, मैंने ILI9341 डिस्प्ले के स्थान पर वेक्टरडिस्प्ले का उपयोग करने के लिए नंगे-हड्डियों वाले STM32-O-Scope प्रोजेक्ट को पोर्ट किया। परिणाम एक (किनारों के चारों ओर खुरदरा) पोर्टेबल, बैटरी से चलने वाला 1.7MS/s ऑसिलोस्कोप है जिसके लिए $ 2 STM32F103C बोर्ड (libmaple-आधारित Arduino कोर का उपयोग करके), दो तार, एक USB OTG केबल और एक Android डिवाइस से अधिक कुछ नहीं चाहिए।. बेशक, आपको इसके साथ 0 से लेकर लगभग 3.3V तक की सीमा मिलती है।

चरण 1: सॉफ़्टवेयर स्थापित करें

मुझे लगता है कि आपके पास अपने पसंदीदा बोर्ड के लिए एक Arduino IDE स्थापित है और आपके पसंदीदा बोर्ड में USB सीरियल इंटरफ़ेस है।

स्केच पर जाएँ | पुस्तकालय शामिल करें | पुस्तकालयों का प्रबंधन करें। खोज क्षेत्र में "वेक्टर डिस्प्ले" डालें और एक बार मिलने पर "इंस्टॉल करें" पर क्लिक करें।

लाइब्रेरी की ज़िप यहाँ से डाउनलोड करें।

अपने Arduino/लाइब्रेरी फ़ोल्डर के अंदर एक फ़ोल्डर में अनज़िप करें।

Google Play से वेक्टरडिस्प्ले डाउनलोड करें और इसे अपने एंड्रॉइड डिवाइस पर इंस्टॉल करें। आपको अपने Android डिवाइस पर अज्ञात स्रोतों से इंस्टॉलेशन सक्षम करने की आवश्यकता हो सकती है। एंड्रॉइड ऐप UsbSerial लाइब्रेरी का उपयोग करता है और शुरुआती बिंदु लाइब्रेरी के लिए उदाहरण ऐप में से एक था।

चरण 2: डेमो स्केच

डेमो स्केच
डेमो स्केच
डेमो स्केच
डेमो स्केच
डेमो स्केच
डेमो स्केच
डेमो स्केच
डेमो स्केच

अपने बोर्ड को अपने कंप्यूटर से कनेक्ट करें (यदि आवश्यक हो तो अपलोड मोड में) और फ़ाइल पर जाएँ | उदाहरण | वेक्टरडिस्प्ले | आपके Arduino IDE में मंडलियां। अपलोड बटन (दायां तीर) पर क्लिक करें।

अपने Android डिवाइस पर वेक्टरडिस्प्ले ऐप प्रारंभ करें। यूएसबी ओटीजी केबल के माध्यम से अपने बोर्ड को एंड्रॉइड डिवाइस में प्लग करें। (यदि आपके बोर्ड में USB माइक्रो पोर्ट है, तो सुनिश्चित करें कि आपका USB OTG होस्ट पक्ष Android डिवाइस पर जाता है)। अब आपको वेक्टरडिस्प्ले के लिए अनुमति क्वेरी मिलनी चाहिए। ओके दबाओ।

यदि सब कुछ ठीक रहा, तो वेक्टरडिस्प्ले अब स्क्रीन के बाईं ओर दो बटन दिखाएगा: वृत्त और रंग। सर्कल को दबाने से स्क्रीन पर एक रैंडम सर्कल आ जाता है और कलर अगले सर्कल से पहले कलर को रैंडम कलर में बदल देता है।

यदि आप आईडीई में मंडलियों के स्केच को देखते हैं, तो आप देखेंगे कि सीरियल वेक्टर डिस्प्ले के साथ घोषित किया गया है:

सीरियल डिस्प्ले क्लास डिस्प्ले;

और उसके बाद सेटअप() में प्रारंभ किया गया:

डिस्प्ले.बेगिन ();

फिर डिस्प्ले.एडबटन () के साथ कमांड बटन का अनुरोध किया जाता है। फिर लूप() कमांड बटन के माध्यम से भेजे जा रहे आदेशों को देखने के लिए Display.readMessage() को कॉल करता है।

डिफ़ॉल्ट रूप से, डिस्प्ले के लिए कोऑर्डिनेट सिस्टम 240x320 है। हालांकि, अच्छी उपस्थिति के लिए एंटीअलाइजिंग के साथ, आपके एंड्रॉइड डिवाइस स्क्रीन के पूर्ण रिज़ॉल्यूशन का उपयोग करके रेखाएं और टेक्स्ट सभी तैयार किए जाते हैं। इसलिए ऐप को वेक्टर डिस्प्ले कहा जाता है।

चरण 3: एपीआई

लायब्रेरी में API VectorDisplay.h फ़ाइल में है। आपको पहले डिस्प्ले ऑब्जेक्ट को इनिशियलाइज़ करना होगा। USB उपयोग के लिए, इसके साथ करें:

सीरियल डिस्प्ले क्लास डिस्प्ले;

Display.begin() के साथ कनेक्शन को इनिशियलाइज़ करें।

SerialDisplayClass ऑब्जेक्ट में विधियों के दो सेट उपलब्ध हैं: एक सेट 32-बिट रंग (अल्फा सहित) और कमांड का उपयोग करता है जो मेरे वेक्टरडिस्प्ले ऐप द्वारा उपयोग किए जाने वाले USB सीरियल प्रोटोकॉल के बहुत करीब हैं, और दूसरा सेट मानक का एक सबसेट है। एडफ्रूट जीएफएक्स लाइब्रेरी विधियां, 16-बिट रंग का उपयोग कर। अधिकांश भाग के लिए आप कमांड के दो सेटों को स्वतंत्र रूप से मिला सकते हैं, इस अपवाद के साथ कि यदि आप एडफ्रूट संगत विधियों का उपयोग करते हैं, तो आपको 16-बिट रंग कमांड का उपयोग करना चाहिए जिनके नाम 32-बिट वाले के बजाय 565 के साथ समाप्त होते हैं।

आप डिस्प्ले के साथ समन्वय प्रणाली सेट कर सकते हैं। निर्देशांक (चौड़ाई, ऊंचाई)। डिफ़ॉल्ट चौड़ाई = 240 और ऊंचाई = 320 है। यदि आप गैर-वर्ग पिक्सेल वाले डिस्प्ले का अनुकरण करना चाहते हैं, तो आप Display.pixelAspectRatio(अनुपात) का उपयोग कर सकते हैं।

PixelAspectRatio() सहित कुछ विधियाँ, FixedPoint32 तर्क लेती हैं। यह एक 32-बिट पूर्णांक है जो फ्लोटिंग पॉइंट नंबर का प्रतिनिधित्व करता है, जहां 65536 1.0 का प्रतिनिधित्व करता है। फ्लोटिंग पॉइंट नंबर x को FixedPoint32 में बदलने के लिए, करें: (FixedPoint32)(65536. * x) (या सिर्फ TO_FP32(x))।

एंड्रॉइड बटन से कमांड भेजने में सक्षम होने के अलावा, स्क्रीन टच इवेंट भी एमसीयू को भेजे जाते हैं।

वाईफाई उपयोग के लिए, Circle_esp8266 उदाहरण देखें। वाईफाई मोड पर स्विच करने के लिए आपको ऐप में यूएसबी बटन दबाना होगा।

ब्लूटूथ के लिए, आपको यह करने में सक्षम होना चाहिए:

SerialDisplayClass डिस्प्ले (MyBluetoothSerial);

… MyBluetoothSerial.begin(११५२००); डिस्प्ले.बेगिन ();

और फिर USB सीरियल केस की तरह ही आगे बढ़ें, जहां MyBluetoothSerial जो भी स्ट्रीम ऑब्जेक्ट है (जैसे, Serial2) आपके ब्लूटूथ एडॉप्टर से जुड़ा है।

चरण 4: एक $2 ऑसिलोस्कोप

एक $2 ऑसिलोस्कोप
एक $2 ऑसिलोस्कोप
एक $2 ऑसिलोस्कोप
एक $2 ऑसिलोस्कोप
एक $2 ऑसिलोस्कोप
एक $2 ऑसिलोस्कोप

त्वरित और गंदे आस्टसीलस्कप के लिए, आपको एक नीले या काले (इससे निपटने में आसान) गोली STM32F103C8 बोर्ड की आवश्यकता होगी, जिसे आप Aliexpress पर $ 2 से कम में प्राप्त कर सकते हैं। मैं वर्णन करता हूं कि इसके लिए Arduino पर्यावरण के साथ उपयोग के लिए बोर्ड कैसे तैयार किया जाए और यहां स्केच स्थापित करें।

इस स्केच को बोर्ड पर डाउनलोड करें, जो कि पिंगुमेकपेंगुइन के STM32-O-Scope स्केच का एक संशोधित संस्करण है। अपने बोर्ड से मिलान करने के लिए #define BOARD_LED लाइन संपादित करें। मैं एक काली गोली का उपयोग कर रहा हूँ जिसकी LED PB12 है। नीली गोलियां (और कुछ काली गोलियां जिनमें नीली गोली के समान पिनआउट होता है) में PC13 पर LED होती है।

एक तार - ग्राउंड प्रोब - को बोर्ड की जमीन से और दूसरे तार को बोर्ड के B0 पिन से कनेक्ट करें। वेक्टरडिस्प्ले के साथ बोर्ड को एंड्रॉइड डिवाइस में प्लग करें, और आपके पास पोर्टेबल, बैटरी संचालित ऑसिलोस्कोप है।

फोटो में मेरे पास एक फोटोट्रांसिस्टर से जुड़ा आस्टसीलस्कप है। स्क्रीन पर ट्रेस एक टीवी इन्फ्रारेड रिमोट कंट्रोल से है।

सिफारिश की: