Satura rādītājs:

CMUCam2 sasaiste ar OOPIC: 5 soļi
CMUCam2 sasaiste ar OOPIC: 5 soļi

Video: CMUCam2 sasaiste ar OOPIC: 5 soļi

Video: CMUCam2 sasaiste ar OOPIC: 5 soļi
Video: Oglekļa ievedkorekcijas mehānisma piemērošana 2024, Novembris
Anonim

Seko vairāk autoram:

Divu OOBoards savienošana, izmantojot I2C
Divu OOBoards savienošana, izmantojot I2C
Divu OOBoards savienošana, izmantojot I2C
Divu OOBoards savienošana, izmantojot I2C

Pārskats par to, kā saslēgt CMUCam2 ar un OOPIC.

1. darbība. Adaptera kabeļa izgatavošana

Adaptera kabeļa izgatavošana
Adaptera kabeļa izgatavošana

1. Iet uz radioshack un iegādājieties 2 no šiem: vīriešu DB-9 lodēšanas kausa savienotājs2. lodēšanas tapa 5 uz savienotāja A līdz tapai 5 uz savienotāja B (ja uzmanīgi skatāties uz savienotāju, tie ir atzīmēti) 3. lodēšanas tapa 2 uz savienotāja A līdz savienotāja B tapa 3 (ja uzmanīgi paskatās uz savienotāju, tie ir atzīmēti) 4. lodēšanas tapa 3 uz savienotāja A līdz savienotāja B tapa 2 (ja uzmanīgi paskatās uz savienotāju, tie ir atzīmēti)

2. solis: mainiet CMCam Baud ātrumu

Mainiet bauda ātrumu CMUCam
Mainiet bauda ātrumu CMUCam

Mainiet CMUCamera pārraides ātrumu uz 9600 bodu (pievienojiet džemperi 0 pozīcijai).

3. darbība: pievienojiet standarta programmēšanas kabeli un augšupielādes kodu

Pievienojiet standarta programmēšanas kabeli un augšupielādes kodu
Pievienojiet standarta programmēšanas kabeli un augšupielādes kodu

Pievienojiet standarta programmēšanas kabeli un augšupielādējiet savu kodu. Šeit ir daži koda piemēri, lai sāktu darbu. Šis kods izsekos kustībai, izmantojot LF un FD komandas. Tas pārslēgs IOLine 7 (pievienots LED) un atspoguļos izsekošanas statusa LED uz CMUCam.

& apos ******** saistītie objekti ar sērijveida portu Jauns oDIO1Dim pārslēdzējsSerial_Event kā jauns oEventDim pārslēdzas ************************************** un apos*Vispārīgās apakšprogrammas*un apos ****** **************************************** Apakšmaģistrs & aposinitialize all main_init & aposset tikai sekojiet masas centram CMUCAM_setOutputMask (2, 3) un ielādējiet mūsu sākotnējo atšķirību rāmi CMUCAM_loadDiffFrame () & aposstart starpības aprēķinu CMUCAM_startDiffCalc (10) Beidziet SubSub main_init & aposinitialize a status LED statLED. IOLine = 7 statLED. Direction = portu sērija) Beigas Su b & aproproceses saņēma paketesSub processPacket () Dim mx As Byte Dim my As Byte & aposcheck, lai gan Mx, gan My būtu 0 un apoGranted, ja tie nav 0, atrašanās vieta būs izslēgta (ti, & aposT 12 34) & aposbut tad viņi uzvarēja & apost atbilst 0 kritērijiem rxBuff. Location = 2 mx = rxBuff. Value rxBuff. Location = 4 my = rxBuff. Value & aposthe led vajadzētu mirgot vienlaicīgi ar izsekošanas gaismas diodi uz kameras If (mx = "0") And (my = "0") statLED = 0 Cits statLED = 1 Beigt IfEnd Sub & apos ****************************************** **** & apos*CMU Cam Functions*& apos *************************************** ******* & apossets dots noveda pie ieslēgšanas, izslēgšanas, automātiskā & aposparam led) Tā kā baits & aposVString nedarbojās tieši jaunajā kompilatorā… un neesmu pārliecināts par veco & apostxBuff. VString = "L0 0" & manuāli iestatiet mūsu komandrindu txBuff. Location = 0 txBuff. Value = "L" txBuff. Location = 1 & aposthe s tr $ funkcija iesūc… tāpēc tagad tas notiek = 13 & atsaukt komandu serial_SendBufferEnd Sub & ielādē sākotnējo atšķirību frameSub CMUCAM_loadDiffFrame () & manuāli atiestatīt mūsu komandu virkni txBuff. Location = 0 txBuff. Value = "L" txBuff. Location = 1 txBuff. Value = "f" txBuff. Vērtība = 13 un atlaidiet komandu serial_SendBufferEnd Sub & aposstarts, lai aprēķinātu kadru atšķirības un aposparam sliekšņa slieksni (0-9) Sub CMUCAM_startDiffCalc (thresh As Byte) Dim desmitiem As Byte & apossetup mūsu komandu virkne manuāli 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 (desmitiem) txBuff. Location = 4 tens = thresh/10 txBuff. Vertums = serial_toChar (threes-tens) txBuff. Location = 5 txBuff. Value = 1 3 & atteikties no komandas serial_SendBufferEnd Sub & apossets the output mask & aposparam packetTip type of masque to mask (0, 1, 2, etc.) skatīt 46. lpp. Kā baits Dim desmitiem Kā baits & apossetup mūsu komandu virkne manuāli txBuff. Location = 0 txBuff. Value = "O" txBuff. Location = 1 txBuff. Value = "M" txBuff. Location = 2 txBuff. Value = "" & apospacket type txBuff. Location = 3 txBuff. Value = serial_toChar (packetType) txBuff. Location = 4 txBuff. Value = "" & aposmask to piemērot txBuff. Location = 5 simti = maska/100 txBuff. Value = serial_toChar (simtiem) txBuff. Location = 6 (maska-simtiem)/10 txBuff. Value = serial_toChar (desmitiem) txBuff. Location = 7 txBuff. Value = serial_toChar (maska-simtiem desmitu) un aposcarriage return txBuff. Location = 8 txBuff. Value = 13 & atlaidiet komandu serial_SendBuff ******************************************** un apos*Vispārējās sērijas apakšprogrammas *& apo s ******************************************** & aposinitializē sēriju portSub serial_init () & aposinitialize pogu, lai ieslēgtu un izslēgtu seriālo portu (ieslēdziet, lai palaistu, izslēdziet programmu) toggleSerial_Button. IOLine = 5 toggleSerial_Button. Direction = cvInput toggleSerial_Wire. Input. Link (toggleSerial_Button. Value) toggle Saite (toggleSerial_Event. Operate) toggleSerial_Wire. Operate = cvTrue & aposinitialize notikums, lai buferizētu mūsu datus serialReceived_Wire. Input. Link (serialPort. Received) serialReceived_Wire. Output. Link (serialRecept_Event. OperateRuReReReRePeReRePeReReRePeReReRePeReReReReReRePeReReReReReReReReReReReReReReReReReRePeReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReReRe] = 0 & aposinitializējiet mūsu seriālā porta serialPort. Baud = cv9600 & aposinitializējiet mūsu seriālā statusa LED serialActive_LED. IOLine = 6 serialActive_LED. Direction = cvOutput & aposwait šeit, līdz tiek aktivizēts mūsu seriālais ports Kamēr serialPort. Operate = cvFalse WendEnd Sub & aposcoperies pārbaude pakešu pabeigšanaSub serialRe ceive_Event_Code () & apos.received kļūst nepatiess, ja 4 baitu buferis ir tukšs. Kamēr (serialPort. Received = cvTrue) & aposcopy baitu uz mūsu buferi rxBuff. Value = serialPort. Value & aposcheck par paketes beigām If rxBuff. Value = 13 & apaprocess packet & atiestatīt buferi uz sākumu rxBuff. Location = 0 Else rxBuff. Location = rxBuff. Location + 1 EndIf WendEnd Sub & aposturns ieslēdz un izslēdz programmēšanas seriālo portu serialPort. Operate = cvFalse serialActive_LED = 0 Beigt IfEnd Sub & pārvērš viencipara skaitli par rakstzīmi = "2" 3. gadījums retVal = "3" 4. gadījums retVal = "4" 5. gadījums retVal = "5" 6. gadījums retVal = "6" 7. gadījums retVal = "7" 8. gadījums retVal = "8" 9. gadījums retVal = "9" beigas Izvēlieties serial_toChar = retValEnd Funkcija & apos sen ds dati, kas ietverti txBuff & apos. Value ooPIC. Delay = 1 & tas, iespējams, nav vajadzīgs

4. darbība: atvienojiet programmēšanas savienotāju

Atvienojiet programmēšanas savienotāju
Atvienojiet programmēšanas savienotāju
Atvienojiet programmēšanas savienotāju
Atvienojiet programmēšanas savienotāju

Kad programmēšanas savienotājs ir atvienots, pievienojiet jauno kabeļu komplektu, kā parādīts zemāk. Adapterim, kas izgatavots 1. darbībā, vajadzētu ļaut CMUCam tieši pievienot OOPIC

5. solis: nospiediet pogu, lai inicializētu seriālo komunikāciju

IOLine 5 poga sāks sērijveida saziņu starp CMUCam un OOPIC. Tā kā seriālais ports tiek izmantots gan programmēšanai, gan CMUCam, iespējams, vajadzētu būt kontrolētam pārslēgšanās veidam starp abiem.

Programma nedarbosies, kamēr netiks nospiesta šī poga. Ja vēlreiz nospiežat pogu, seriālais ports paliks neaktīvs, ļaujot to ieprogrammēt. IOLine 6 gaismas diode parāda pašreizējo seriālā porta statusu (ieslēgts nozīmē aktīvu, izslēgts - gatavs programmēšanai).

Ieteicams: