Мазмұны:

CMUCam2 -ді OOPIC -пен байланыстыру: 5 қадам
CMUCam2 -ді OOPIC -пен байланыстыру: 5 қадам

Бейне: CMUCam2 -ді OOPIC -пен байланыстыру: 5 қадам

Бейне: CMUCam2 -ді OOPIC -пен байланыстыру: 5 қадам
Бейне: CMUCam2 2024, Шілде
Anonim

Автордың толығырақ авторы:

IOC көмегімен екі OOBoard тақтасын біріктіру
IOC көмегімен екі OOBoard тақтасын біріктіру
IOC көмегімен екі OOBoard тақтасын біріктіру
IOC көмегімен екі OOBoard тақтасын біріктіру

CMUCam2 мен OOPIC интерфейсіне қалай шолу жасау.

1 -қадам: адаптер кабелін жасау

Адаптер кабелін жасау
Адаптер кабелін жасау

1. Радиоқабылдағышқа кіріп, оның 2-ін сатып алыңыз: DB-9 еркек дәнекер тостағанының қосқышы2. дәнекер түйреуіш 5 А коннекторындағы В коннекторындағы 5 түйреуішке (егер коннекторға мұқият қарасаңыз, олар белгіленген) 3. дәнекерлеу штыры 2 А коннекторындағы В коннекторындағы 3 түйреуге дейін (егер коннекторға мұқият қарасаңыз, олар белгіленген) 4. дәнекерлеу штыры 3 А коннекторындағы В коннекторындағы 2 түйреуге дейін (егер коннекторға мұқият қарасаңыз, олар белгіленген)

2 -қадам: CMUCam бойынша Бауд жылдамдығын өзгертіңіз

CMUCam бойынша Бауд жылдамдығын өзгертіңіз
CMUCam бойынша Бауд жылдамдығын өзгертіңіз

CMUCamera -ның беру жылдамдығын 9600 -ге өзгертіңіз (0 позициясына секіргіш қосыңыз).

3 -қадам: Стандартты бағдарламалау кабелі мен жүктеу кодын қосыңыз

Стандартты бағдарламалау кабелін және жүктеу кодын қосыңыз
Стандартты бағдарламалау кабелін және жүктеу кодын қосыңыз

Стандартты бағдарламалау кабелін қосыңыз және кодты жүктеңіз. Бұл кодты бастау үшін LF және FD командаларының көмегімен қозғалысты бақылайды. Ол IOLine 7 -ді қосады (жарық диодына қосылады) және CMUCam -да бақылау күйінің жарық диодын көрсетеді.

& apos ******** сериялы портқа қатысты нысандар ******** dim serPort New oSerialPortDim txBuff ретінде жаңа oBuffer27 & 27 -ді ауыстырады, буферді үлкенірек/кішірек етеді Dim rxBuff ретінде жаңа oBuffer10Dim serialActive_LED ретінде жаңа oDIO1Dim қосқыш Сериялық_Түйме As Жаңа oDIO1Dim toggleSerial_Event ретінде Жаңа oEventDim toggleSerial_Wire ретінде жаңа oWireDim serialReceive_Event ретінде жаңа oEventDim serialReceive_Wire ретінде жаңа oWire & apos ******** отладка қатысты объектілер ******** Dim statLED ретінде жаңа oDIO1 & apos ******** ************************************ & apos*Жалпы бағдарламалар*& apos ****** ****************************** CMUCAM_setOutputMask (2, 3) массасының ортасын ғана қадағалаңыз және CMUCAM_loadDiffFrame () бастапқы айырмашылық шеңберін жүктеңіз және айырмашылықты есептеуден бастаңыз CMUCAM_startDiffCalc (10) SubSub main_init & апосинитизациялаңыз күй статикалық LED статикалық. IOLine = 7 сериялық сериялы -порталы.) Су b & aposprocesses packets Sub processPacket () Dim mx As Byte Dim My As Byte & apxcheck to the Mx and My 0 және aposgranted 0 болмаса, орналасу өшіріледі (яғни & aposT 12 34). Location = 2 mx = rxBuff. Value rxBuff. Location = 4 my = rxBuff. Value & aposthe LED фотокамерадағы бақылау жарық диодымен бір мезгілде жыпылықтауы керек Егер (mx = «0») және (менің = «0») statLED = 0 Басқа StatLED = 1 IfEnd Sub & Apos аяқталса **************************************** **** & apos*CMU Cam функциялары*& apos ************************************* ******* & апоссет берілген, қосулы, өшірулі, автоматты және апоспарамды лед (0, 1) & апоспарам өшірілген, қосулы, автоматты (0, 1, 2) Функция CMUCAM_ledSet (ledNum As Byte, val As Byte)) Byte & aposVString жаңа компиляторда дұрыс жұмыс істемегендіктен… & apostxBuff. VString = «L0 0» ескіргеніне сенімді емеспіз & командалық жолды қолмен орнатамыз txBuff. Location = 0 txBuff. Value = «L» txBuff. Location = 1 & aposthe tr $ функциясы сұмдық … енді бұл болып жатыр = 13 & serial_SendBufferEnd Sub пәрменін апоссайдқа жібереді & frameSub CMUCAM_loadDiffFrame () & apossetup командалық жолды қолмен орнатады txBuff. Location = 0 txBuff. Value = «L» txBuff. Location = 1 txBuff. Value = «F» tx2 «. Value = 13 & serial_SendBufferEnd Sub & apossend командасы кадрлардың айырмашылығын және апоспарамды шекті табуды есептей бастайды (0-9) Sub CMUCAM_startDiffCalc (байт ретінде) Dim on as Byte & apossetup Біздің командалық жолды қолмен 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 tens 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 пәрменін қабылдамайды. ********************************************* Жалпы сериялық қосалқы бағдарламалар *& 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 оқиғаны деректерімізді буферлеу үшін serialReceive_Wire. Input. Link (serialPort. Received) serialReceive_Wire. Output. Link (serialReceiveReprive_Ovent. Oper_Ovent_Ovent. Operate_Event. Operate) = 0 & біздің сериялық порт serialPort. Baud = cv9600 & апосинитализациялау сериялық күйді жарықдиодты serialActive_LED. IOLine = 6 serialActive_LED. Direction = cvOutput & aposwit Біздің сериялық портымыз іске қосылғанша күтіңіз, ал serialPort. Operate = cvFalse біздің WendEnd қосылымын қабылдайды және қабылдайды пакетті аяқтауSub serialRe ceive_Event_Code () & apos.received 4 байтты буфер бос болған кезде жалған болады, ал (serialPort. Received = cvTrue) & байтты біздің буферге апарады rxBuff. Value = serialPort. Value & aposcheck if rxBuff. Value = 13 process & aposproetse & буферді rxBuff. Location = 0 басқа күйге келтіру serialPort. Operate = cvFalse serialActive_LED = 0 IfEnd Sub & End бір таңбалы санды кейіпке айналдырады serial_toChar функциясы (inVal As Byte) Byte Dim retVal As Byte Select Case inVal Case 0 retVal = «0» Case 1 retVal = «1» Case 2 retVal = «2» 3 -жағдай retVal = «3» 4 -жағдай retVal = «4» 5 -жағдай retVal = «5» 6 -жағдай retVal = «6» 7 -жағдай 7 retVal = «7» 8 -жағдай retVal = «8» 9 -жағдай retVal = «9» Соңы serial_toChar = retValEnd Функциясын таңдаңыз & apos sen ds txBuff & apos ішіндегі деректер Ескертпе: буфердің соңында каретка қайтарымы (13) бар екеніне көз жеткізіңіз !! Sub_ser_SendBuffer () & apositerate арқылы, әрбір байтты жіберіп, кареткаға қайтару txBuff. Location = 0 While 1 serialPort. Value = txBuff. Value ooPIC. Delay = 1 & apossee бұл & apossee қажет емес болуы мүмкін, егер бұл каретканың қайтуы болса, txBuff. Value = 13 & біздің үзілістен aposbreak Return End Егер & aposgo келесі таңбаға txBuff. Location = txBuff. Location + 1 WendEnd Sub

4 -қадам: Бағдарламалау коннекторын ажыратыңыз

Бағдарламалау қосқышын ажыратыңыз
Бағдарламалау қосқышын ажыратыңыз
Бағдарламалау қосқышын ажыратыңыз
Бағдарламалау қосқышын ажыратыңыз

Бағдарламалау коннекторы ажыратылғаннан кейін төменде көрсетілгендей жаңа кабель жинағын бекітіңіз. 1 -қадамда жасалған адаптер CMUCam -ды OOPIC -ке тікелей қосуға мүмкіндік беруі керек

5 -қадам: Сериялық байланысты инициализациялау түймесін басыңыз

IOLine 5 түймесі CMUCam мен OOPIC арасындағы сериялық байланысты бастайды. Сериялық порт бағдарламалау үшін де, CMUCam үшін де қолданылатындықтан, екеуінің арасында ауысудың басқарылатын әдісі болуы керек.

Бұл түйме басылмайынша бағдарлама жұмыс істемейді. Егер түймені қайта бассаңыз, сериялық порт белсенді емес болады, бұл оны бағдарламалауға мүмкіндік береді. IOLine 6 жарық диоды ағымдағы сериялық порт күйін көрсетеді (қосулы - белсенді, өшіру - бағдарламалауға дайын).

Ұсынылған: