विषयसूची:
- चरण 1: एडेप्टर केबल बनाना
- चरण 2: CMUCam पर बॉड दर बदलें
- चरण 3: मानक प्रोग्रामिंग केबल कनेक्ट करें और कोड अपलोड करें
- चरण 4: प्रोग्रामिंग कनेक्टर को डिस्कनेक्ट करें
- चरण 5: सीरियल संचार शुरू करने के लिए बटन दबाएं
वीडियो: CMUCam2 को OOPIC में इंटरफेस करना: 5 कदम
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:23
लेखक द्वारा अधिक का पालन करें:
CMUCam2 को और OOPIC से कैसे इंटरफ़ेस करें, इसका अवलोकन।
चरण 1: एडेप्टर केबल बनाना
1. गोटो रेडियोशैक और इनमें से 2 खरीदें:पुरुष डीबी-9 सोल्डर कप कनेक्टर2। कनेक्टर ए पर सोल्डर पिन 5 कनेक्टर बी पर 5 पिन करने के लिए (यदि आप कनेक्टर पर ध्यान से देखते हैं, तो वे चिह्नित होते हैं)3। कनेक्टर ए पर सोल्डर पिन 2 से कनेक्टर बी पर 3 पिन करने के लिए (यदि आप कनेक्टर पर ध्यान से देखते हैं, तो वे चिह्नित हैं) 4। कनेक्टर ए पर सोल्डर पिन 3 कनेक्टर बी पर 2 पिन करने के लिए (यदि आप कनेक्टर पर ध्यान से देखते हैं, तो वे चिह्नित होते हैं)
चरण 2: CMUCam पर बॉड दर बदलें
CMUCamera की बॉड दर को ९६०० बॉड में बदलें (जम्पर को स्थिति ० में जोड़ें)।
चरण 3: मानक प्रोग्रामिंग केबल कनेक्ट करें और कोड अपलोड करें
मानक प्रोग्रामिंग केबल कनेक्ट करें और अपना कोड अपलोड करें। आपको आरंभ करने के लिए यहां कुछ उदाहरण कोड दिए गए हैं। यह कोड LF और FD कमांड का उपयोग करके गति को ट्रैक करेगा। यह IOline 7 (एक LED से जुड़ा हुआ) को टॉगल करेगा और CMUCam पर ट्रैकिंग स्थिति LED को मिरर करेगा।
&apos ********* सीरियल पोर्ट संबंधित ऑब्जेक्ट ********* नए oSerialPortDim txBuff के रूप में नए oSerialPortDim txBuff के रूप में मंद सीरियलपोर्ट और बफ़र को बड़ा/छोटा बनाने के लिए मंद rxBuff को नए oBuffer10Dim serialActive_LED के रूप में नए oDIO1Dim टॉगलSerial_Button के रूप में बदलें नया oDIO1Dim टॉगलSerial_Event नए oEventDim के रूप में टॉगलSerial_Wire नए oWireDim serialReceive_Event के रूप में नए oEventDim serialReceive_Wire के रूप में नए oWire और apos के रूप में ******* डिबग संबंधित ऑब्जेक्ट ********* डिम स्टेटलेड नए oDIO1 और apos के रूप में ******* ***********&apos* जेनेरिक सबरूटीन्स *&apos****** *************************************** उप मुख्य और सब कुछ aposinitialize main_init और हमारे आउटपुट मास्क को एपॉसेट करें केवल बड़े पैमाने के केंद्र का अनुसरण करें CMUCAM_setOutputMask(2, 3) और हमारे प्रारंभिक अंतर फ्रेम CMUCAM_loadDiffFrame() को लोड करें और अंतर गणना शुरू करें CMUCAM_startDiffCalc(10) End SubSub main_init & aposinitialize a Status LED statLED. IOline = 7 statLED. Direction = cvOutput और apos में हमारे सीरियल पोर्ट को प्रारंभ करें।) अंत सु b&aposprocesses प्राप्त पैकेटसब प्रोसेसपैकेट () Dim mx As Byte Dim my As Byte & aposcheck Mx और My दोनों के लिए 0 & aposgranted यदि वे 0 नहीं हैं, तो स्थान बंद हो जाएगा (यानी & aposT 12 34) और apos लेकिन फिर वे 0 मानदंड rxBuff को पूरा करेंगे और करेंगे. Location = 2 mx = rxBuff. Value rxBuff. Location = 4 my = rxBuff. Value & aposthe LED को कैमरे पर ट्रैकिंग LED के साथ एक साथ ब्लिंक करना चाहिए यदि (mx = "0") और (my = "0") statLED = 0 और स्टेटलेड = 1 एंड इफएंड सब एंड apos ******************************************* ****&apos* सीएमयू कैम फंक्शन *&apos************************* ******* और दिए गए लेड को चालू, बंद, स्वचालित और अपोस्पारम एलईडी की संख्या (0, 1) और अपोस्पारम वैल ऑफ, ऑन, ऑटो (0, 1, 2) फ़ंक्शन CMUCAM_ledSet (ledNum As बाइट, वैल बाइट के रूप में) को एपॉसेट करता है) चूंकि बाइट और aposVString नए कंपाइलर में सही काम कर रहा था… और पुराने के बारे में निश्चित नहीं था &apostxBuff. VString = "L0 0" और हमारे कमांड स्ट्रिंग को मैन्युअल रूप से txBuff. Location = 0 txBuff. Value = "L" txBuff. Location = 1 &aposthe s tr$ फ़ंक्शन बेकार है … तो अब यह हो रहा है txBuff. Value = serial_toChar(ledNum) txBuff. Location = 2 txBuff. Value = "" txBuff. Location = 3 txBuff. Value = serial_toChar(val) txBuff. Location = 4 txBuff. Value = 13 &apossend serial_SendBufferEnd उप और प्रारंभिक अंतर फ्रेमउप CMUCAM_loadDiffFrame() और हमारे कमांड स्ट्रिंग को मैन्युअल रूप से txBuff. Location = 0 txBuff. Value = "L" txBuff. Location = 1 txBuff. Value = "F" txBuff. Location = 2 txBuff। मान = 13 और आदेश भेजें serial_SendBufferEnd उप और फ्रेम अंतर की गणना शुरू करता है और aposparam थ्रेश थ्रेशोल्ड (0-9)उप CMUCAM_startDiffCalc (बाइट के रूप में थ्रेश) बाइट के रूप में मंद दसियों और हमारे कमांड स्ट्रिंग को मैन्युअल रूप से txBuff. Location = 0 txBuff. Value = "F" स्थान पर सेट करें। 1 txBuff. Value = "D" txBuff. Location = 2 txBuff. Value = "" txBuff. Location = 3 दहाई = थ्रेश/10 txBuff. Value = serial_toChar(tens) txBuff. Location = 4 दहाई = थ्रेश/10 txBuff. Value = serial_toChar(थ्रेश-टेन्स) txBuff. Location = 5 txBuff. Value = 1 3 &apossend serial_SendBufferEnd आउटपुट मास्क और aposparam पैकेट टाइप को मास्क (0, 1, 2, आदि) में उप&एपॉसेट करता है, पेज 46 देखें और लागू करने के लिए aposparam मास्क मास्क मान (0-255) Sub CMUCAM_setOutputMask (पैकेट टाइप बाइट के रूप में, बाइट के रूप में मास्क) मंद सैकड़ों बाइट डिम दसियों के रूप में बाइट और हमारे कमांड स्ट्रिंग को मैन्युअल रूप से txBuff. Location = 0 txBuff. Value = "O" txBuff. Location = 1 txBuff. Value = "M" txBuff. Location = 2 txBuff. Value = "" और apospacket टाइप txBuff। स्थान = 3 txBuff. Value = serial_toChar(packetType) txBuff. Location = 4 txBuff. Value = "" &aposmask txBuff लागू करने के लिए। स्थान = 5 सौ = मास्क/100 txBuff. Value = serial_toChar (सैकड़ों) txBuff. Location = 6 tens = (मास्क-सैकड़ों)/10 txBuff. Value = serial_toChar(tens) txBuff. Location = 7 txBuff. Value = serial_toChar (मास्क-सैकड़ों-टेन्स) और aposcarriage रिटर्न txBuff. Location = 8 txBuff. Value = 13 &aposendBufferEnd Sub कमांड सीरियल_भेजें_भेजें ************************************************** सामान्य सीरियल सबरूटीन्स *&apo s ************************************************ धारावाहिक को प्रारंभ करता है पोर्टसब सीरियल_इनिट () सीरियल पोर्ट को चालू और बंद करने के लिए एक बटन को प्रारंभ करें (चलाने के लिए चालू करें, प्रोग्राम को बंद करें) टॉगल सीरियल_बटन। आईओलाइन = 5 टॉगल सीरियल_बटन। दिशा = सीवी इनपुट टॉगल सीरियल_वायर। इनपुट। लिंक (टॉगलसेरियल_बटन। वैल्यू) टॉगल सीरियल_वायर। आउटपुट। Link(toggleSerial_Event. Operate) टॉगलSerial_Wire. Operate = cvTrue और हमारे डेटा को बफ़र करने के लिए एक ईवेंट को प्रारंभ करें। = 0 हमारे सीरियल पोर्ट सीरियलपोर्ट को और aposinitialize। बॉड = cv9600 & aposinitialize हमारे सीरियल स्टेटस LED serialActive_LED. IOLine = 6 serialActive_LED. Direction = cvOutput और यहां तब तक प्रतीक्षा करें जब तक हमारा सीरियल पोर्ट सक्रिय न हो जाए। सीरियलपोर्ट के दौरान। पैकेट पूर्णताउप धारावाहिकRe ceive_Event_Code() &apos.received असत्य हो जाता है जब 4बाइट बफर खाली होता है जबकि (serialPort. Received = cvTrue) और बाइट को हमारे बफर rxBuff. Value = serialPort. Value और aposcheck के लिए पैकेट के अंत के लिए यदि rxBuff. Value = 13 और aposprocess पैकेट प्रक्रिया पैकेट () बफर को आरंभिक rxBuff में &aposreset करें। serialPort. Operate = cvFalse serialActive_LED = 0 एंड इफएंड सब एक सिंगल डिजिट नंबर को कैरेक्टर में कन्वर्ट करता हैFunction serial_toChar(inVal as Byte) बाइट डिम रेटवैल के रूप में बाइट सिलेक्ट केस इनवैल केस 0 रेटवैल = "0" केस 1 रेटवैल = "1" केस 2 रेटवैल = "2" केस 3 रेटवैल = "3" केस 4 रेटवैल = "4" केस 5 रेटवैल = "5" केस 6 रेटवैल = "6" केस 7 रेटवैल = "7" केस 8 रेटवैल = "8" केस 9 रेटवैल = "9" एंड सिलेक्ट करें serial_toChar = retValEnd फंक्शन और apos sen ds txBuff&apos में निहित डेटा नोट: सुनिश्चित करें कि बफर में अंत में एक कैरिज रिटर्न (13) है !!सब serial_SendBuffer() & apositerate के माध्यम से, प्रत्येक बाइट भेजकर, कैरिज रिटर्न पर अंत txBuff. Location = 0 जबकि 1 serialPort. Value = txBuff. Value ooPIC. Delay = 1 और इसकी आवश्यकता नहीं हो सकती है और देखें कि क्या यह कैरिज रिटर्न था यदि txBuff. Value = 13 और हमारे लूप से बाहर निकल जाता है तो रिटर्न एंड यदि अगले वर्ण txBuff. Location = txBuff. Location + 1 WendEnd Sub पर जाता है
चरण 4: प्रोग्रामिंग कनेक्टर को डिस्कनेक्ट करें
प्रोग्रामिंग कनेक्टर के डिस्कनेक्ट होने के बाद, नीचे दिखाए गए अनुसार नई केबल असेंबली संलग्न करें। चरण 1 में बने एडॉप्टर को CMUCam को सीधे OOPIC में प्लग करने की अनुमति देनी चाहिए
चरण 5: सीरियल संचार शुरू करने के लिए बटन दबाएं
IOline 5 का बटन CMUCam और OOPIC के बीच धारावाहिक संचार शुरू करेगा। चूंकि सीरियल पोर्ट प्रोग्रामिंग और सीएमयूकैम दोनों के लिए उपयोग किया जाता है, इसलिए शायद दोनों के बीच टॉगल करने का एक नियंत्रित तरीका होना चाहिए।
यह बटन दबाए जाने तक प्रोग्राम नहीं चलेगा। यदि आप फिर से बटन दबाते हैं, तो सीरियल पोर्ट निष्क्रिय हो जाएगा, जिससे आप इसे प्रोग्राम कर सकेंगे। IOline 6 पर LED वर्तमान सीरियल पोर्ट स्थिति (सक्रिय साधन पर, बंद का मतलब प्रोग्रामिंग के लिए तैयार) प्रदर्शित करता है।
सिफारिश की:
I2C सेंसर इंटरफेस के साथ शुरुआत करना ?? - ESP32s का उपयोग करके अपने MMA8451 को इंटरफ़ेस करें: 8 कदम
I2C सेंसर इंटरफेस के साथ शुरुआत करना ?? - ESP32s का उपयोग करके अपने MMA8451 को इंटरफ़ेस करें: इस ट्यूटोरियल में, आप कंट्रोलर (Arduino, ESP32, ESP8266, ESP12 NodeMCU) के साथ काम करने वाले I2C डिवाइस (एक्सेलेरोमीटर) को शुरू करने, कनेक्ट करने और प्राप्त करने के तरीके के बारे में जानेंगे।
रास्पबेरी पाई 3 बी में एचडीएमआई के बिना रास्पियन स्थापित करना - रास्पबेरी पाई 3बी के साथ शुरुआत करना - अपना रास्पबेरी पाई सेट करना 3: 6 कदम
रास्पबेरी पाई 3 बी में एचडीएमआई के बिना रास्पियन स्थापित करना | रास्पबेरी पाई 3बी के साथ शुरुआत करना | अपना रास्पबेरी पाई 3 सेट करना: जैसा कि आप में से कुछ लोग जानते हैं कि रास्पबेरी पाई कंप्यूटर काफी शानदार हैं और आप पूरे कंप्यूटर को सिर्फ एक छोटे बोर्ड पर प्राप्त कर सकते हैं। रास्पबेरी पाई 3 मॉडल बी में क्वाड-कोर 64-बिट एआरएम कोर्टेक्स ए 53 है। 1.2 गीगाहर्ट्ज़ पर क्लॉक किया गया। यह पाई 3 को लगभग 50
जावा में फंक्शनल इंटरफेस के साथ लैम्ब्डा एक्सप्रेशंस का उपयोग करना: १५ कदम
जावा में फंक्शनल इंटरफेस के साथ लैम्ब्डा एक्सप्रेशंस का उपयोग करना: जावा में फंक्शनल इंटरफेस एक बहुत ही उपयोगी टूल है जिसका उपयोग कई नए प्रोग्रामर नहीं करते हैं। वे डेवलपर्स को अपने कोड को अमूर्त करने की अनुमति देते हैं ताकि इसे कई अलग-अलग समस्याओं पर लागू किया जा सके। यह लैम्ब्डा अभिव्यक्तियों के साथ विशेष रूप से उपयोगी है जो
एलसीडी 20X4 डिस्प्ले को Nodemcu में इंटरफेस करना: 3 कदम
Nodemcu के लिए LCD 20X4 डिस्प्ले को इंटरफेस करना: मैंने इसे साझा करने का फैसला किया क्योंकि मैं पहले अपने पिछले कार्य के साथ कठिनाइयों का सामना कर रहा था, मैंने ग्राफिक (128x64) LCD को Nodemcu के साथ इंटरफ़ेस करने की कोशिश की, लेकिन कोई फायदा नहीं हुआ, मैं असफल रहा। मुझे लगता है कि यह पुस्तकालय के साथ कुछ करना चाहिए (ग्राफ के लिए पुस्तकालय
टोयोटा कोरोला में आइपॉड इंटरफेस केबल स्थापित करना: 5 कदम
टोयोटा कोरोला में एक आइपॉड इंटरफेस केबल स्थापित करना: यदि आप अपने कोरोला के कारखाने स्टीरियो के लिए एक आइपॉड कनेक्शन चाहते हैं तो आप अपने स्थानीय इलेक्ट्रॉनिक्स स्टोर को स्थापना के लिए $50 - $100 का भुगतान कर सकते हैं; या आप स्वयं उस केबल को निःशुल्क स्थापित कर सकते हैं. मैं आपको दिखाना चाहता हूं कि एक स्थापित करना कितना आसान है