فهرست مطالب:

رابط CMUCam2 با OOPIC: 5 مرحله
رابط CMUCam2 با OOPIC: 5 مرحله

تصویری: رابط CMUCam2 با OOPIC: 5 مرحله

تصویری: رابط CMUCam2 با OOPIC: 5 مرحله
تصویری: مفهوم الروابط URL - شرح مفصل ومهم لمختبري تطبيقات الويب 2024, نوامبر
Anonim

بیشتر توسط نویسنده دنبال کنید:

اتصال دو OOBoards به یکدیگر با استفاده از I2C
اتصال دو OOBoards به یکدیگر با استفاده از I2C
اتصال دو OOBoards به یکدیگر با استفاده از I2C
اتصال دو OOBoards به یکدیگر با استفاده از I2C

مروری بر نحوه اتصال CMUCam2 به و OOPIC.

مرحله 1: ساخت کابل آداپتور

ساخت کابل آداپتور
ساخت کابل آداپتور

1. به radioshack بروید و 2 مورد از این موارد را خریداری کنید: Male DB-9 Solder Cup Connector2. پین 5 را روی کانکتور A تا پین 5 را روی کانکتور B لحیم کنید (اگر با دقت به کانکتور نگاه کنید ، آنها مشخص شده اند) 3. پین 2 را روی کانکتور A تا پین 3 را روی کانکتور B لحیم کنید (اگر با دقت به کانکتور نگاه کنید ، آنها مشخص شده اند) 4. پین 3 را روی کانکتور A تا پین 2 را روی کانکتور B لحیم کنید (اگر با دقت به کانکتور نگاه کنید ، آنها مشخص شده اند)

مرحله 2: نرخ Baud را در CMUCam تغییر دهید

نرخ Baud را در CMUCam تغییر دهید
نرخ Baud را در CMUCam تغییر دهید

نرخ باود CMUCamera را به 9600 باود تغییر دهید (یک بلوز به موقعیت 0 اضافه کنید).

مرحله 3: کابل برنامه نویسی استاندارد و کد بارگذاری را وصل کنید

کابل برنامه نویسی استاندارد و کد بارگذاری را متصل کنید
کابل برنامه نویسی استاندارد و کد بارگذاری را متصل کنید

کابل برنامه نویسی استاندارد را متصل کرده و کد خود را بارگذاری کنید. در اینجا چند کد نمونه برای شروع کار وجود دارد. این کد با استفاده از دستورات LF و FD حرکت را ردیابی می کند. IOLine 7 (متصل به LED) را تغییر می دهد و LED وضعیت ردیابی را در CMUCam آینه می کند.

& apos ** جدید oDIO1Dim toggleSerial_Event As New oEventDim toggleSerial_Wire As New oWireDim serialReceive_Event As New oEventDim serialReceive_Wire As New oWire & apos ******** اشکال زدایی اشکالات مرتبط ******** Dim statLED به عنوان جدید oDI* **** * فقط مرکز جرم را دنبال کنید CMUCAM_setOutputMask (2 ، 3) & آپلود مجدد فریم اولیه CMUCAM_loadDiffFrame () و شروع محاسبه تفاوت CMUCAM_startDiffCalc (10) پایان SubSub main_init & aposinitialize یک وضعیت LED statileDialTialTial) End Su b & aposprocesses بسته های دریافت شده فرایند زیر بسته () Dim mx As Byte Dim my As Byte & aposcheck برای هر دو Mx و My 0 و اگر آنها 0 نباشند ، مکان خاموش خواهد بود (یعنی & aposT 12 34) & aposbut سپس آنها برآورده می شوند و 0 معیار rxBuff را برآورده می کنند. Location = 2 mx = rxBuff. Value rxBuff. Location = 4 my = rxBuff. Value & aposthe led باید همزمان با LED ردیابی دوربین (If mx = "0") And (my = "0") statLED = 0 دیگر STLED = 1 پایان IfEnd Sub & apos *************************************** **** & apos*عملکردهای CMU Cam*& apos ************************************ **) همانطور که Byte & 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 & دستور را ارسال کنید Value = 13 و دستور را ارسال کنید 1 txBuff. Value = "D" txBuff. Location = 2 txBuff. Value = "" txBuff. Location = 3 دهها = thresh/10 txBuff. Value = serial_toChar (دهها) txBuff. Location = 4 دهها = thresh/10 txBuff. Value = serial_toChar (thresh-tenens) txBuff. Location = 5 txBuff. Value = 1 3 & apossend command serial_SendBufferEnd Sub & apsoets the output mask & aposparam packet type of packet to mask (0، 1، 2، etc.) see page 46 & aposparam mask mask mask to apply (0-255) Sub CMUCAM_setOutputMask (packetType As Byte، mask As Byte) Dimension As Byte Dim tens As Byte & apossetup رشته فرمان ما را به صورت دستی txBuff. Location = 0 txBuff. Value = "O" txBuff. Location = 1 txBuff. Value = "M" txBuff. Location = 2 txBuff. Value = "" & apospacket type txBuff. مکان = 3 txBuff. Value = serial_toChar (packetType) txBuff. Location = 4 txBuff. Value = "" & aposmask برای اعمال txBuff. Location = 5 sedan = mask/100 txBuff. Value = serial_toChar (صدها) txBuff. Location = 6 tens = (mask-sedan)/10 txBuff. Value = serial_toChar (دهها) txBuff. Location = 7 txBuff. Value = serial_toChar (mask-sedan-deh) & aposcarriage return txBuff. Location = 8 txBuff. Value = 13 & apossend دستور & ارسال ***************************************** و & amp *& apo s ***************************************** و سریال را به حالت اولیه آماده می کند portSub serial_init () & aposinitialize یک دکمه برای روشن و خاموش کردن پورت سریال (روشن کردن برای اجرا ، خاموش کردن برنامه) toggleSerial_Button. IOLine = 5 toggleSerial_Button. Direction = cvInput toggleSerial_Wire. Input. Link (toggleSerial_Button. Link (toggleSerial_Button. Link) پیوند (toggleSerial_Event. Operate) toggleSerial_Wire. Operate = cvTrue & aposinitialize an event to buffer your data serialReceive_Wire. Input. Link (serialPort. Received) serialReceive_Wire. Output. Link (serialReceive_Eceive_eceive_eceive_eceive_eceive_eceive_eceive_eceive_eceive_eceive_eceive_eceive_eceive_eceive_eceive_eceive_eceive_eceive_Eive = 0 & aposinitialize serial port serialPort. Baud = cv9600 & aposinitialize our serial status LED serialActive_LED. IOLine = 6 serialActive_LED. Direction = cvOputput & aposwait در اینجا تا پورت سریال ما فعال شود در حالی که serialPort. دریافت کنید تکمیل بسته ceive_Event_Code () & apos.received زمانی خالی می شود که بافر 4 بایتی خالی باشد در حالی که (serialPort. Received = cvTrue) و بایت را در بافر ما rxBuff. Value = serialPort. Value & aposcheck برای پایان بسته If rxBuff. Value = 13 و apospet (بسته) & aposreset بافر به ابتدا rxBuff. Location = 0 در غیر این صورت rxBuff. Location = rxBuff. Location + 1 EndIf اگر WendEnd Sub & پورت سریال را برای برنامه نویسی روشن یا خاموش کند (subial toggleSerial_Event_Code () If serialPort. Operate = cvFalseeial = 1 serialPort. Operate = cvFalse serialActive_LED = 0 پایان IfEnd Sub & aposconconvert one number number to a characterFunction serial_toChar (inVal As Byte) As Byte Dim retVal As Byte Select Case inVal Case 0 retVal = "0" Case 1 retVal = "1" Case 2 = "2" مورد 3 retVal = "3" مورد 4 retVal = "4" مورد 5 retVal = "5" مورد 6 retVal = "6" مورد 7 retVal = "7" مورد 8 retVal = "8" مورد 9 retVal = "9" پایان انتخاب serial_toChar = retValEnd Function & apos sen ds داده های موجود در txBuff & apos توجه: مطمئن شوید که بافر حاوی یک واگن بازگشتی (13) در پایان است !! زیر serial_SendBuffer () & apositerate از طریق ، ارسال هر بایت ، پایان در بازگشت txBuff. Location = 0 در حالی که 1 serialPort. Value = txBuff. Value ooPIC. Delay = 1 & aposmight نیازی به این & apossee ندارد اگر یک کالسکه برگشت اگر txBuff. Value = 13 & aposbreak out of the loop Return End If & aposgo به کاراکتر بعدی txBuff. Location = txBuff. Location + 1 WendEnd Sub

مرحله 4: اتصال برنامه نویسی را قطع کنید

اتصال برنامه نویسی را قطع کنید
اتصال برنامه نویسی را قطع کنید
اتصال برنامه نویسی را قطع کنید
اتصال برنامه نویسی را قطع کنید

هنگامی که اتصال برنامه نویسی قطع شد ، مجموعه جدید کابل را مانند تصویر زیر وصل کنید. آداپتور ساخته شده در مرحله 1 باید اجازه دهد CMUCam مستقیماً به OOPIC متصل شود

مرحله 5: دکمه را برای شروع ارتباط سریال فشار دهید

دکمه روی IOLine 5 ارتباط سریال بین CMUCam و OOPIC را آغاز می کند. از آنجا که پورت سریال هم برای برنامه نویسی و هم برای CMUCam استفاده می شود ، احتمالاً باید روش کنترل شده ای برای جابجایی بین این دو وجود داشته باشد.

تا زمانی که این دکمه را فشار ندهید ، برنامه اجرا نمی شود. اگر دوباره دکمه را فشار دهید ، پورت سریال غیرفعال می شود و به شما امکان می دهد آن را برنامه ریزی کنید. LED در IOLine 6 وضعیت پورت سریال فعلی را نشان می دهد (روشن به معنی فعال ، خاموش به معنی آماده برای برنامه نویسی).

توصیه شده: