Turinys:

CMUCam2 sąsaja su OOPIC: 5 žingsniai
CMUCam2 sąsaja su OOPIC: 5 žingsniai

Video: CMUCam2 sąsaja su OOPIC: 5 žingsniai

Video: CMUCam2 sąsaja su OOPIC: 5 žingsniai
Video: Dahua tinklo šakotuvas su PoE 48V maitinimu. 4 kanalų. V2 versija 2024, Lapkritis
Anonim

Sekite daugiau autoriaus:

Dviejų OOBoard plokščių sujungimas naudojant I2C
Dviejų OOBoard plokščių sujungimas naudojant I2C
Dviejų OOBoard plokščių sujungimas naudojant I2C
Dviejų OOBoard plokščių sujungimas naudojant I2C

CMUCam2 ir OOPIC sąsajos apžvalga.

1 žingsnis: padarykite adapterio kabelį

Adapterio kabelio gamyba
Adapterio kabelio gamyba

1. Eikite į radioshack ir nusipirkite 2 iš jų: Vyriškas DB-9 Solder Cup Connector2. lituoklio kaištis 5 ant jungties A iki 5 kaištis ant jungties B (jei atidžiai žiūrite į jungtį, jie pažymėti) 3. lituoklio kaištis 2 ant jungties A iki 3 kaištis ant jungties B (jei atidžiai žiūrite į jungtį, jie pažymėti) 4. litavimo kaištis 3 ant jungties A iki 2 kaištis ant jungties B (jei atidžiai žiūrite į jungtį, jie pažymėti)

2 veiksmas: pakeiskite „CMUCam“„Baud“greitį

Pakeiskite „Baud Rate“CMUCam
Pakeiskite „Baud Rate“CMUCam

Pakeiskite „CMUCamera“duomenų perdavimo spartą į 9600 baudų (pridėkite trumpiklį į 0 padėtį).

3 veiksmas: prijunkite standartinį programavimo kabelį ir įkėlimo kodą

Prijunkite standartinį programavimo kabelį ir įkėlimo kodą
Prijunkite standartinį programavimo kabelį ir įkėlimo kodą

Prijunkite standartinį programavimo kabelį ir įkelkite kodą. Štai keletas kodo pavyzdžių, kaip pradėti. Šis kodas stebės judėjimą naudodamas LF ir FD komandas. Jis perjungs „IOLine 7“(prijungtas prie šviesos diodo) ir atspindės CMUCam stebėjimo būsenos šviesos diodą.

& apos ******** su serijiniu prievadu susiję objektai ******** Dim serialPort kaip naujas oSerialPortDim txBuff As new oBuffer27 & aposchange 27, kad buferis būtų didesnis/mažesnis Dim rxBuff As New oBuffer10Dim serialActive_LED As New oDIO1Dim perjungimasSerial_Button Naujas oDIO1Dim perjungimasSerial_Event Kaip naujas oEventDim toggleSerial_Wire Kaip naujas oWireDim serialRecept_Event As New oEventDim serialRecept_Wire As new oWire & apos ******** derinimo objektai ******** Dim statLED As New oDIO1 & apos ******* ************************************** ir apos*Bendrosios paprogramės*ir apos ****** *************************************** sekti tik masės centrą CMUCAM_setOutputMask (2, 3) ir įkelti mūsų pradinį skirtumo rėmelį CMUCAM_loadDiffFrame () & aposstart the Difference Calculation CMUCAM_startDiffCalc (10) End SubSub main_init & aposinitialize a status LED statLED. IOLine = 7 statLED. Direction = portoz) Pabaiga Su b & apoprocesai gavo paketusSub processPacket () Dim mx As Byte Dim my As Byte & aposcheck, kad tiek Mx, tiek My būtų 0 ir apogr., jei jie nėra 0, vieta bus išjungta (ty & aposT 12 34) & aposbut tada jie laimėjo ir apost atitinka 0 kriterijus rxBuff. Location = 2 mx = rxBuff. Value rxBuff. Location = 4 my = rxBuff. Value & aposthe led turėtų mirksėti kartu su fotoaparato sekimo šviesos diodu If (mx = "0") Ir (my = "0") statLED = 0 Kita statLED = 1 Pabaiga IfEnd Sub & apos ****************************************** **** & apos*CMU Cam Functions*& apos *************************************** ******* & nurodytos lemputės įjungtos, išjungtos, automatinis ir aposparam ledas LED skaičius (0, 1) ir aposparam val išjungtas, įjungtas, automatinis (0, 1, 2) Funkcija CMUCAM_ledSet (ledNum As baitas, val kaip baitas) Kadangi „Byte & aposVString“neveikė ir nesuveikė naujame kompiliatoriuje … ir nesate tikri dėl senosios & apostxBuff. VString = "L0 0" ir rankiniu būdu nustatykite mūsų komandų eilutę txBuff. Location = 0 txBuff. Value = "L" txBuff. Location = 1 & aposthe s tr $ funkcija žiauri … todėl dabar tai vyksta = 13 & atleisti komandą serial_SendBufferEnd Sub & įkelia pradinį skirtumą frameSub CMUCAM_loadDiffFrame () & apossetup mūsų komandų eilutę rankiniu būdu txBuff. Location = 0 txBuff. Value = "L" txBuff. Location = 1 txBuff. Value = "t" txBuff. Location = 1 txBuff. Value = "t" tx Reikšmė = 13 ir atšaukti komandą serial_SendBufferEnd Sub & aposstarts pradeda skaičiuoti kadrų skirtumus ir aposparamo slenkstį (0-9) Sub CMUCAM_startDiffCalc (thresh As Byte) Dim dešimtys As Byte & apossetup mūsų komandų eilutė rankiniu būdu txBuff. Location = 0 txBuff. Vex =uf " 1 txBuff. Value = "D" txBuff. Location = 2 txBuff. Value = "" txBuff. Location = 3 tens = thresh/10 txBuff. Value = serial_toChar (dešimtys) txBuff. Location = 4 dešimtys = Thresh/10 txBuff. Vertimas = serial_toChar (thresh-tens) txBuff. Location = 5 txBuff. Value = 1 3 & atleisti komandą serial_SendBufferEnd Sub & apossets the output mask & aposparam packetTip type of paketo to mask (0, 1, 2 ir tt), žr. 46 psl. Kaip baitas Dim dešimtys Kaip baitas & apossetup mūsų komandų eilutė rankiniu būdu txBuff. Location = 0 txBuff. Value = "O" txBuff. Location = 1 txBuff. Value = "M" txBuff. Location = 2 txBuff. Value = "" & apospacket type txBuff. Vieta = 3 txBuff. Value = serial_toChar (packetType) txBuff. Location = 4 txBuff. Value = "" & aposmask to piemērot txBuff. Location = 5 simtai = kaukė/100 txBuff. Value = serial_toChar (šimtai) txBuff. Location = 6 (kaukė-šimtai)/10 txBuff. Value = serial_toChar (dešimtys) txBuff. Location = 7 txBuff. Value = serial_toChar (kaukė-šimtai dešimčių) ir aposcarriage return txBuff. Location = 8 txBuff. Value = 13 & atleisti komandą serial_SendBuff ******************************************** ir apos*Bendrosios serijos paprogramės *& apo s ******************************************** ir apozitializuoja seriją portSub serial_init () & aposinitialize mygtuką, kad įjungtumėte ir išjungtumėte nuoseklųjį prievadą (įjunkite, kad paleistumėte, išjunkite programą) Nuoroda (toggleSerial_Event. Operate) toggleSerial_Wire. Operate = cvTrue & aposinitialize įvykį, kad buferizuotų mūsų duomenis serialRecept_Wire. Input. Link (serialPort. Received) serialRecept_Wire. Output. Link (serialRecept_Event. OperateRuReReReRePe = 0 ir apozitizuokite mūsų nuoseklųjį prievadą serialPort. Baud = cv9600 & aposinitializuokite mūsų serijos būsenos šviesos diodą serialActive_LED. IOLine = 6 serialActive_LED. Direction = cvOutput & aposwait čia, kol mūsų serijinis prievadas bus suaktyvintas. paketo užbaigimasSub serialRe ceive_Event_Code () & apos.received tampa klaidinga, kai 4 baitų buferis yra tuščias. Kai (serialPort. Received = cvTrue) & aposcopy baitą į mūsų buferį rxBuff. Value = serialPort. Value & aposcheck paketo pabaigai. Jei rxBuff. Value = 13 & aposreset buferį į pradžią rxBuff. Location = 0 Else rxBuff. Location = rxBuff. Location + 1 EndIf WendEnd Sub & aposturns on and off the serial port for programingSub toggleSerial_Event_Code () If serialPort. Operate = cvFpe serialPort = cvFru serialPort serialPort. Operate = cvFalse serialActive_LED = 0 Pabaiga IfEnd Sub & paverčia vieno skaitmens skaičių į simbolį = "2" 3 atvejis retVal = "3" 4 atvejis retVal = "4" 5 atvejis retVal = "5" 6 atvejis retVal = "6" 7 atvejis retVal = "7" 8 atvejis retVal = "8" 9 atvejis retVal = "9" Pabaiga Pasirinkite serial_toChar = retValEnd Funkcija & apos sen ds duomenys, esantys txBuff & apos Pastaba: įsitikinkite, kad buferio pabaigoje yra vežimo grąžinimas (13)!. Value ooPIC. Delay = 1 & šito & apossee gali nereikėti, jei tai būtų vežimo grąžinimas Jei txBuff. Value = 13 & aposbreak iš mūsų ciklo Grįžti pabaiga If & aposgo prie kito simbolio txBuff. Location = txBuff. Location + 1 WendEnd Sub

4 žingsnis: atjunkite programavimo jungtį

Atjunkite programavimo jungtį
Atjunkite programavimo jungtį
Atjunkite programavimo jungtį
Atjunkite programavimo jungtį

Atjungę programavimo jungtį, pritvirtinkite naują kabelių komplektą, kaip parodyta žemiau. 1 žingsnyje pagamintas adapteris turėtų leisti CMUCam tiesiogiai prijungti prie OOPIC

5 veiksmas: paspauskite mygtuką, kad inicijuotumėte nuoseklųjį ryšį

Mygtukas „IOLine 5“pradės nuoseklųjį ryšį tarp CMUCam ir OOPIC. Kadangi nuoseklusis prievadas naudojamas ir programavimui, ir CMUCam, tikriausiai turėtų būti kontroliuojamas perjungimo būdas.

Programa neveiks, kol nepaspausite šio mygtuko. Jei dar kartą paspausite mygtuką, nuoseklusis prievadas bus neaktyvus ir galėsite jį užprogramuoti. Šviesos diodas „IOLine 6“rodo dabartinę serijinio prievado būseną (įjungta reiškia aktyvų, išjungta - pasirengusi programuoti).

Rekomenduojamas: