جدول المحتويات:

الربط بين CMUCam2 و OOPIC: 5 خطوات
الربط بين CMUCam2 و OOPIC: 5 خطوات

فيديو: الربط بين CMUCam2 و OOPIC: 5 خطوات

فيديو: الربط بين CMUCam2 و OOPIC: 5 خطوات
فيديو: 3rd lecture of Genetic Engineering, Verifying correct ligation (Gene cloning) 2024, يوليو
Anonim

تابع المزيد بالمؤلف:

ربط جهازي OOBoards معًا باستخدام I2C
ربط جهازي OOBoards معًا باستخدام I2C
توصيل جهازي OOBoards معًا باستخدام I2C
توصيل جهازي OOBoards معًا باستخدام I2C

نظرة عامة حول كيفية ربط CMUCam2 بـ OOPIC.

الخطوة 1: عمل كابل المحول

صنع كابل المحول
صنع كابل المحول

1. اذهب إلى راديوشاك واشتري 2 من هذه: ذكر DB-9 Solder Cup Connector2. دبوس اللحام 5 على الموصل A إلى السن 5 على الموصل B (إذا نظرت بعناية إلى الموصل ، يتم تمييزها) 3. دبوس اللحام 2 في الموصل A إلى السن 3 في الموصل B (إذا نظرت بعناية إلى الموصل ، يتم تمييزها) 4. دبوس اللحام 3 على الموصل A إلى السن 2 على الموصل B (إذا نظرت بعناية إلى الموصل ، يتم تمييزها)

الخطوة 2: تغيير معدل الباود على CMUCam

قم بتغيير معدل الباود على CMUCam
قم بتغيير معدل الباود على CMUCam

قم بتغيير معدل الباود الخاص بـ CMUCamera إلى 9600 باود (أضف وصلة مرور إلى الموضع 0).

الخطوة 3: قم بتوصيل كابل البرمجة القياسي وكود التحميل

قم بتوصيل كابل البرمجة القياسي وكود التحميل
قم بتوصيل كابل البرمجة القياسي وكود التحميل

قم بتوصيل كابل البرمجة القياسي وقم بتحميل الكود الخاص بك. إليك بعض الأمثلة على الكود لتبدأ. هذا الرمز سوف يتتبع الحركة باستخدام الأمرين LF و FD. سيقوم بتبديل IOLine 7 (متصل بمصباح LED) ويعكس مؤشر حالة التتبع على CMUCam.

& apos ؛ ******** الكائنات ذات الصلة بالمنفذ التسلسلي ******** Dim serialPort as New oSerialPortDim txBuff as New oBuffer27 & aposchange 27 لجعل المخزن المؤقت أكبر / أصغر جديد oDIO1Dim toggleSerial_Event كجديد oEventDim toggleSerial_Wire كجديد oWireDim serialReceive_Event كجديد oEventDim serialReceive_Wire As New oWire & apos ******** تصحيح الكائنات ذات الصلة ******** Dim statLED as New ***DIO1 & a ************************************************************************************************************************************************************************************************************** ********************************************************** Sub main & aposinitialize all main_init & aposset our output mask to فقط اتبع مركز الكتلة CMUCAM_setOutputMask (2، 3) وقم بتحميل إطار الاختلاف الأولي الخاص بنا CMUCAM_loadDiffFrame () وابدأ حساب الفرق CMUCAM_startDiffCalc (10) End SubSub main_init & aposinitialize حالة LED statLED. IOLine = 7 statLposvitOutialize) نهاية سو استلمت العمليات حزمًا عملية فرعية حزمة () Dim mx As Byte Dim my As Byte & aposcheck لكل من Mx و My ليكونا 0 & aposgranted إذا لم تكن 0 ، فسيتم إيقاف الموقع (أي & aposT 12 34) ولكن بعد ذلك فازوا و apost يلبي 0 معايير rxBuff. Location = 2 mx = rxBuff. Value rxBuff. Location = 4 my = rxBuff. Value & aposthe led يجب أن يومض بانسجام مع مؤشر LED للتتبع على الكاميرا إذا (mx = "0") و (my = "0") statLED = 0 عدا ذلك statLED = 1 End IfEnd Sub & apos ********************************************** **** & apos * وظائف كاميرا CMU * & apos *************************************** ******* & apossets يؤدي إلى تشغيل ، إيقاف ، تلقائي و aposparam عدد الصمامات (0 ، 1) و aposparam val off ، on ، auto (0 ، 1 ، 2) Function CMUCAM_ledSet (ledNum As Byte، val As Byte) نظرًا لأن Byte & aposVString لم يكن & apost يعملان بشكل صحيح في المترجم الجديد … & apos غير متأكد من القديم & apostxBuff. VString = "L0 0" & apossetup سلسلة أوامرنا يدويًا 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 & إلغاء الأمر serial_SendBufferEnd Sub & تحميل إطار الاختلاف الأولي Sub CMUCAM_loadDiffFrame () & إنشاء سلسلة أوامرنا يدويًا txBuff. Location = 0 txBuff. Value = "L" txBuff. Location = 1 txBuff. Value = "Focation = 2 txBuff. Value =" Focation. القيمة = 13 & إلغاء الأمر serial_SendBufferEnd Sub & aposstarts حساب اختلافات الإطارات وعتبة aposparam (0-9) Sub CMUCAM_startDiffCalc (العتبة بالبايت) خافت العشرات على هيئة بايت وإنشاء سلسلة أوامرنا يدويًا txBuff. Location = 0 txBuff. Value = " 1 txBuff. Value = "D" txBuff. Location = 2 txBuff. Value = "" txBuff. Location = 3 عشرات = العتبة / 10 txBuff. Value = serial_toChar (عشرات) txBuff. Location = 4 عشرات = العتبة / 10 txBuff. Value = serial_toChar (عتبة عشرات) txBuff. Location = 5 txBuff. Value = 1 3 & إلغاء الأمر serial_SendBufferEnd Sub & apossets the output mask & aposparam packetType of packet to mask (0، 1، 2، etc) راجع الصفحة 46 & قيمة قناع aposparam للتطبيق (0-255) Sub CMUCAM_setOutputMask (packetType As Byte ، Mask As Byte) باهت المئات كبايت دايم عشرات على هيئة بايت وفتح سلسلة أوامرنا يدويًا 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. Location = 5 مئات = قناع / 100 txBuff. Value = serial_toChar (مئات) txBuff. Location = 6 عشرات = (قناع-مئات) / 10 txBuff. Value = serial_toChar (عشرات) txBuff. Location = 7 txBuff. Value = serial_toChar (mask-مئات-عشرات) & aposcarriage return txBuff. Location = 8 txBuff. Value = 13 & apossend الأمر serial_Send & aposer * *********************************************** & apos * التدريبات الفرعية التسلسلية العامة * & apo s ************************************************** & فتح المسلسل portSub serial_init () & aposinitialize زر لتشغيل وإيقاف تشغيل المنفذ التسلسلي (قم بتشغيله للتشغيل ، قم بإيقاف تشغيل البرنامج) رابط (toggleSerial_Event. Operate) toggleSerial_Wire. Operate = cvTrue & aposinitialize حدث لتخزين بياناتنا serialReceive_Wire. Input. Link (serialPort. Received) serialReceive_Wire. Output. Link (serialReceive_Event. ReceLink) 0 إكمال الحزمة ceive_Event_Code () & apos.received يصبح خاطئًا عندما يكون المخزن المؤقت 4 بايت فارغًا. & aposres اضبط المخزن المؤقت على البداية rxBuff. Location = 0 آخر rxBuff. Location = rxBuff. Location + 1 EndIf WendEnd Sub & aposturns داخل وخارج المنفذ التسلسلي للبرمجة serialPort. Operate = cvFalse serialActive_LED = 0 End IfEnd Sub & apos تحويل رقم مكون من رقم واحد إلى حرف دالة serial_toChar (inVal As Byte) كـ Byte Dim retVal As Byte حدد الحالة inVal Case 0 retVal = "0" Case 1 retVal = "1" Case 2 retVal = "2" Case 3 retVal = "3" Case 4 retVal = "4" Case 5 retVal = "5" Case 6 retVal = "6" Case 7 retVal = "7" Case 8 retVal = "8" Case 9 retVal = "9" حدد إنهاء serial_toChar = وظيفة retValEnd & apos sen ds البيانات الموجودة في txBuff & apos ملاحظة: تأكد من احتواء المخزن المؤقت على حرف إرجاع (13) في النهاية !!. Value ooPIC. Delay = 1 & aposmight لا تحتاج إلى هذا & apossee إذا كان إرجاع سطر إذا كانت txBuff. Value = 13 & aposbreak الخروج من الحلقة الخاصة بنا عودة End If & aposgo إلى الحرف التالي txBuff. Location = txBuff. Location + 1 WendEnd Sub

الخطوة 4: افصل موصل البرمجة

افصل موصل البرمجة
افصل موصل البرمجة
افصل موصل البرمجة
افصل موصل البرمجة

بمجرد فصل موصل البرمجة ، قم بتوصيل مجموعة الكابلات الجديدة كما هو موضح أدناه. يجب أن يسمح المحول الذي تم إجراؤه في الخطوة 1 بتوصيل CMUCam مباشرة بـ OOPIC

الخطوة 5: اضغط على الزر لبدء الاتصال التسلسلي

سيبدأ الزر الموجود على IOLine 5 الاتصال التسلسلي بين CMUCam و OOPIC. نظرًا لاستخدام المنفذ التسلسلي لكل من البرمجة و CMUCam ، فمن المحتمل أن تكون هناك طريقة مسيطر عليها للتبديل بين الاثنين.

لن يعمل البرنامج حتى يتم الضغط على هذا الزر. إذا ضغطت على الزر مرة أخرى ، فسيصبح المنفذ التسلسلي غير نشط ، مما يتيح لك برمجته. يعرض مؤشر LED الموجود على IOLine 6 حالة المنفذ التسلسلي الحالي (يعني قيد التشغيل ، يعني إيقاف التشغيل جاهزًا للبرمجة).

موصى به: