Агуулгын хүснэгт:

CMUCam2 -ийг OOPIC -тэй холбох: 5 алхам
CMUCam2 -ийг OOPIC -тэй холбох: 5 алхам

Видео: CMUCam2 -ийг OOPIC -тэй холбох: 5 алхам

Видео: CMUCam2 -ийг OOPIC -тэй холбох: 5 алхам
Видео: CMUCam2 2024, Долдугаар сарын
Anonim

ArsinioFollow Зохиогчийн дэлгэрэнгүй:

I2C ашиглан хоёр OOBoards -ийг хооронд нь холбох
I2C ашиглан хоёр OOBoards -ийг хооронд нь холбох
I2C ашиглан хоёр OOBoards -ийг хооронд нь холбох
I2C ашиглан хоёр OOBoards -ийг хооронд нь холбох

CMUCam2 ба OOPIC -ийг хэрхэн холбох талаар тойм.

Алхам 1: адаптер кабель хийх

Тохируулагч кабель хийх
Тохируулагч кабель хийх

1. Radioshack-ийг аваад эдгээрээс 2-ийг худалдаж аваарай: Эрэгтэй DB-9 Solder Cup Connector2. А холбогч дээрх гагнуурын зүү 5, Б холбогч дээрх 5 зүү хүртэл (хэрэв та холбогчийг анхааралтай ажиглавал тэдгээр нь тэмдэглэгдсэн байна) 3. А холбогч дээрх 2 гагнуурын зүү Б холбогч дээрх 3 зүү хүртэл (хэрэв та холбогчийг анхааралтай ажиглавал тэдгээр нь тэмдэглэгдсэн байна) 4. А холбогч дээрх 3 гагнуурын зүү B холбогч дээрх 2 зүү хүртэл (хэрэв та холбогчийг анхааралтай ажиглавал тэдгээр нь тэмдэглэгдсэн байна)

Алхам 2: CMUCam дээрх Baud Rate -ийг өөрчлөх

CMUCam дээрх Baud Rate -ийг өөрчлөх
CMUCam дээрх Baud Rate -ийг өөрчлөх

CMUCamera -ийн baud хурдыг 9600 baud болгон өөрчилнө үү (0 байрлалд холбогчийг нэмнэ үү).

Алхам 3: Стандарт програмчлалын кабелийг холбож код оруулах

Стандарт програмчлалын кабелийг холбож, кодоо байршуулна уу
Стандарт програмчлалын кабелийг холбож, кодоо байршуулна уу

Стандарт програмчлалын кабелийг холбоод кодоо оруулна уу. Энэ код нь LF болон FD командыг ашиглан хөдөлгөөнийг хянах болно. Энэ нь IOLine 7 -ийг (LED -тэй холбосон) сольж, CMUCam дээрх хяналтын статусын LED -ийг тусгах болно.

& apos ******** цуваа порттой холбоотой объектууд ******** serial port нь шинэ oSerialPortDim txBuff шиг шинэ oBuffer27 & 27 -г буцааж том/жижиг болгохын тулд Dim rxBuff -ийг шинэ oBuffer10Dim serialActive_LED болгон шинэ oDIO1Dim байдлаар сольж болно. Шинэ oDIO1Dim toggleSerial_Event гэж шинэ oEventDim toggleSerial_Wire гэж шинэ oWireDim serialReceive_Event шинэ байдлаар oEventDim serialReceive_Wire байдлаар шинэ oWire & apos ******** дибаг хийхтэй холбоотой обьектууд ******** Шинэ статикийг шинэ oDIO1 & apos шиг ******** ************************************ & apos*Ерөнхий дэд програмууд & apos ****** ****************************** CMUCAM_setOutputMask (2, 3) массын төвийг дагаж мөрдөөрэй, CMUCAM_loadDiffFrame () анхны ялгааны хүрээг татаж аваад CMUCAM_startDiffCalc (10) SubSub main_init -ийг төгсгөлд нь оруулаад статусын LED статик. IOLine = 7 цуврал дамжуулалтыг баталгаажуулна уу.) Су b & aposprocesses хүлээн авсан пакетууд Sub processPacket () Dim mx As Byte Dim My As Byte & Mx ба My хоёуланг нь 0 болгож aposcheck хийвэл 0 биш бол байршлыг унтраана (өөрөөр хэлбэл & aposT 12 34) & aposbut гэхдээ тэд 0 шалгуурыг хангасан rxBuff. Location = 2 mx = rxBuff. Value rxBuff. Location = 4 my = rxBuff. Value & aposthe led нь камер дээрх LED хянах төхөөрөмжтэй нэгэн зэрэг анивчих ёстой бол (mx = "0") Тэгээд (миний = "0") statLED = 0 Бусад statLED = 1 IfEnd Sub & apos -ийг дуусга **************************************** **** & apos*CMU Cam Functions*& apos ************************************* ******* & apossets өгөгдсөн хөтчийг асаах, унтраах, автомат & aposparam led руу хөтлөх LED (0, 1) & aposparam val off, on, auto (0, 1, 2) CMUCAM_ledSet функц (ledNum As Byte, val As Byte)) Byte & aposVString нь шинэ хөрвүүлэгч дээр ажиллахгүй байсан тул… & хуучин хувилбарын талаар сайн мэдэхгүй байна 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 тушаалыг оруулах ба анхны ялгаа болох frameSub CMUCAM_loadDiffFrame () -ийг татаж авах & манай командын мөрийг гараар тохируулах txBuff. Location = 0 txBuff. Value = "L" txBuff. Location = 1 txBuff. Value = "F" txBuff. " Утга = 13 & serial_SendBufferEnd Sub тушаалыг оруулах & хүрээний ялгаа & aposparam босго хэмжээг тооцоолох ажлыг эхлүүлнэ (0-9) Sub CMUCAM_startDiffCalc (thire As Byte) Dim on As Byte & apossetup our command string hand txBuff. Location = 0 txBuff. Value = 1 txBuff. Value = "D" txBuff. Location = 2 txBuff. Value = "" txBuff. Location = 3 tens = thresh/10 txBuff. Value = serial_toChar (tens) txBuff. Location = 4 tens = thresh/10 txBuff. Value = serial_toChar (thres-tens) txBuff. Location = 5 txBuff. Value = 1 3 & serial_SendBufferEnd Sub тушаалыг гаргах ба гаралтын маск & апоспарам пакетийн төрөл As Byte Dim нь As byte & apossetup манай тушаалын мөрийг гараар txBuff. Location = 0 txBuff. Value = "O" txBuff. Location = 1 txBuff. Value = "M" txBuff. Location = 2 txBuff. Value = "" & txBuff төрөл. Байршил = 3 txBuff. Value = serial_toChar (packetType) txBuff. Location = 4 txBuff. Value = "" & txBuff. Location = 5 зуун = маск/100 txBuff. Value = serial_toChar (хэдэн зуун) txBuff. Location = 6 арав = (маск-зуун)/10 txBuff. Value = serial_toChar (арав) txBuff. Location = 7 txBuff. Value = serial_toChar (маск-зуун-арав) & aposcarriage буцах txBuff. Location = 8 txBuff. Value = 13 & serial_SendBufferE тушаалыг зөвшөөрсөн. ****************************************** & apos*Цуваа ерөнхий дэд програмууд *& apo s ******************************************** & цувралыг эхлүүлэх portSub serial_init () & цуваа портыг асаах, унтраах товчлуурыг идэвхжүүлэх (ажиллуулахын тулд асаах, програмыг унтраах) toggleSerial_Button. IOLine = 5 toggleSerial_Button. Direction = cvInput toggleSerial_Wire. Input. Link (toggleSeral_Button. Холбоос (toggleSerial_Event. Operate) toggleSerial_Wire. Operate = cvTrue & aposinitialize бидний өгөгдлийг buffer = 0 & манай цуваа портын serialPort. Baud = cv9600 & aposinitialize бидний серийн статус LED serialActive_LED. IOLine = 6 serialActive_LED. Direction = cvOutput & aposwit манай цуваа порт идэвхжих хүртэл Энд serialPort. Operate = cvFalse wendopies дэмждэг пакет дуусгахSub serialRe ceive_Event_Code () & apos.received нь 4 байтын буфер хоосон байх үед худлаа болно. & буферийг эхэнд нь тохируулах serialPort. Operate = cvFalse serialActive_LED = 0 If End End & End нь нэг оронтой тоог тэмдэгт болгон хувиргадаг serial_toChar функц (inVal As Byte) Byte Dim retVal As Byte As Case inVal Case 0 retVal = "0" Case 1 retVal = "1" Case 2 retVal = "2" Кейс 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 функцийг сонгоно уу ds txBuff & apos -д агуулагдсан өгөгдөл Тэмдэглэл: буферт төгсгөлд нь хайрцаг буцах (13) орсон байгаа эсэхийг шалгаарай !! Sub serial_SendBuffer () -ээр дамжуулж, байт бүрийг илгээж, тэрэгний буцах төгсгөлд txBuff. Location = 0 байхад 1 serialPort. Value = txBuff. Value ooPIC. Delay = 1 & aposm энэ хэрэггүй болно

Алхам 4: Програмчлалын холбогчийг салга

Програмчлалын холбогчийг салга
Програмчлалын холбогчийг салга
Програмчлалын холбогчийг салга
Програмчлалын холбогчийг салга

Програмчлалын холбогчийг салгасны дараа доор үзүүлсэн шиг шинэ кабелийн угсралтыг хавсаргана уу. 1 -р алхамд хийсэн адаптер нь CMUCam -ийг OOPIC -д шууд залгах боломжийг олгох ёстой

Алхам 5: Цуваа холболтыг эхлүүлэхийн тулд товчлуурыг дарна уу

IOLine 5 дээрх товчлуур нь CMUCam ба OOPIC хооронд цуваа холболтыг эхлүүлэх болно. Цуваа порт нь програмчлал болон CMUCam -ийн аль алинд нь ашиглагддаг тул тэдгээрийн хооронд шилжих хяналттай арга байх ёстой.

Энэ товчлуурыг дарах хүртэл програм ажиллахгүй болно. Хэрэв та товчлуурыг дахин дарвал цуваа порт идэвхгүй болж програмчлах боломжтой болно. IOLine 6 дээрх LED нь одоогийн цуваа портын статусыг харуулдаг (асаалттай байгаа нь идэвхжсэн, унтраасан нь програмчлалд бэлэн гэсэн үг).

Зөвлөмж болгож буй: