Sisukord:

CMUCam2 liidestamine OOPIC -iga: 5 sammu
CMUCam2 liidestamine OOPIC -iga: 5 sammu

Video: CMUCam2 liidestamine OOPIC -iga: 5 sammu

Video: CMUCam2 liidestamine OOPIC -iga: 5 sammu
Video: CMUCam2 2024, Juuli
Anonim

Jälgige rohkem autorit:

Kahe OOBoardi ühendamine I2C abil
Kahe OOBoardi ühendamine I2C abil
Kahe OOBoardi ühendamine I2C abil
Kahe OOBoardi ühendamine I2C abil

Ülevaade CMUCam2 ja OOPIC -i liidestamisest.

Samm: adapterkaabli valmistamine

Adapterkaabli valmistamine
Adapterkaabli valmistamine

1. Minge radioshacki ja ostke neist 2: isane DB-9 Solder Cup Connector2. jootetihvt 5 pistikul A kuni tihvt 5 pistikul B (kui vaatate hoolikalt pistikut, on need märgistatud) 3. jootetihvt 2 pistikul A kuni tihvt 3 pistikul B (kui vaatate hoolikalt pistikut, on need märgistatud) 4. jootetihvt 3 pistikul A kuni tihvt 2 pistikul B (kui vaatate pistikut hoolikalt, on need märgistatud)

2. samm: muutke CMUCami baudi kiirust

Muutke CMUCami baudi kiirust
Muutke CMUCami baudi kiirust

Muutke CMUCamera andmeedastuskiiruseks 9600 baud (lisage hüppaja asendisse 0).

Samm: ühendage standardprogrammeerimiskaabel ja üleslaadimiskood

Ühendage tavaline programmeerimiskaabel ja üleslaadimiskood
Ühendage tavaline programmeerimiskaabel ja üleslaadimiskood

Ühendage tavaline programmeerimiskaabel ja laadige oma kood üles. Siin on mõned näite koodid alustamiseks. See kood jälgib liikumist, kasutades käske LF ja FD. See lülitab IOLine 7 (ühendatud LED -iga) ja peegeldab CMUCami jälgimisoleku LED -i.

& apos ******** jadapordiga seotud objektid ******** Dim serialPort nagu uus oSerialPortDim txBuff As New oBuffer27 & aposchange 27, et muuta puhver suuremaks/väiksemaks Uus oDIO1Dim toggleSerial_Event Nagu uus oEventDim toggleSerial_Wire Nagu uus oWireDim serialReceived_Event Nagu uus oEventDim serialRecept_Wire nagu uus oWire & apos ******** silumisega seotud objektid ******** Dim statLED nagu uus oDIO1 & apos ******* ************************************** & apos*Üldised alamprogrammid*& apos ****** ************************************************************************************* järgige ainult massikeskust CMUCAM_setOutputMask (2, 3) ja laadige uuesti meie esialgne erinevuste raam CMUCAM_loadDiffFrame () & käivitage erinevuste arvutamine CMUCAM_startDiffCalc (10) Lõpp SubSub main_init & aposinitialize a status LED statLED. IOLine = 7 statLED. Direput = ciosin) Lõpp Su b & aproprotsessid said pakette AlamprotsessPacket () Dim mx As Byte Dim My As Byte & aposcheck nii Mx kui My jaoks 0 ja vabandatakse, kui need pole 0, on asukoht välja lülitatud (st & aposT 12 34) & aposbut siis nad võitsid & apost vastavad 0 kriteeriumile rxBuff. Location = 2 mx = rxBuff. Value rxBuff. Location = 4 my = rxBuff. Value & aposthe led peaks vilguma koos kaamera jälgimisdioodiga If (mx = "0") And (my = "0") statLED = 0 Else statLED = 1 End IfEnd Sub & apos ****************************************** **** & apos*CMU Cam Functions*& apos *************************************** ******* & etteantud LED -ide sisse- ja väljalülitamine, automaatne & aposparam led) Kuna bait & aposVString ei töötanud uues kompilaatoris õigesti … & pole vana osas kindel & apostxBuff. VString = "L0 0" & lubab meie käsurida käsitsi seadistada txBuff. Location = 0 txBuff. Value = "L" txBuff. Location = 1 & aposthe s Funktsioon tr $ imeb… nii et nüüd juhtub see = 13 & luba käsk serial_SendBufferEnd Sub & laadib algse erinevuse frameSub CMUCAM_loadDiffFrame () & kinnitab meie käsurida käsitsi txBuff. Location = 0 txBuff. Value = "L" txBuff. Location = 1 txBuff. Value = "t" txBuff. Location = 1 txBuff. Value = "t" tx Väärtus = 13 & luba käsk serial_SendBufferEnd Sub & aposstarts hakkab arvutama kaadri erinevusi ja aprasparami künniskünnist (0-9) Sub CMUCAM_startDiffCalc (threes As Byte) Dim kümneid By By & apossetup meie käsustring käsitsi txBuff. Location = 0 txBuff. Value = " 1 txBuff. Value = "D" txBuff. Location = 2 txBuff. Value = "" txBuff. Location = 3 tens = thresh/10 txBuff. Value = serial_toChar (kümned) txBuff. Location = 4 tens = thresh/10 txBuff.alue = serial_toChar (thresh-tens) txBuff. Location = 5 txBuff. Value = 1 3 & paluge käsk serial_SendBufferEnd Sub & apossets the output mask & aposparam packetTüüpi pakett-tüüpi maski (0, 1, 2 jne) vt lk 46 & aposparam mask mask value to use (0-255) Sub CMUCAM_setOutputMask (packetType As bait, mask kui bait) Dim Nagu bait Dim kümneid Byte & apossetup meie käsurida käsitsi 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, et rakendada txBuff. Location = 5 sadu = mask/100 txBuff. Value = serial_toChar (sadu) txBuff. Location = 6 (mask-sadu)/10 txBuff. Value = serial_toChar (kümneid) txBuff. Location = 7 txBuff. Value = serial_toChar (mask-sadu-kümneid) & aposcarriage return txBuff. Location = 8 txBuff. Value = 13 & käsu serial_SendBuff lubamine ******************************************** ja apos*General Serial Subroutines *& apo s ******************************************** & aposinitialiseerib sarja portSub serial_init () & aposinitialize nupp jadapordi sisse- ja väljalülitamiseks (lülitage käivitamiseks sisse, lülitage programm välja) toggleSerial_Button. IOLine = 5 toggleSerial_Button. Direction = cvInput toggleSerial_Wire. Input. Link (toggleSerial_Button. Value) toggle Link (toggleSerial_Event. Operate) toggleSerial_Wire. Operate = cvTrue & aposinitialize sündmus, et meie andmed puhverdada = 0 & aposinitialiseeri meie jadapordi serialPort. Baud = cv9600 & aposinitialize meie jadaseisundi LED serialActive_LED. IOLine = 6 serialActive_LED. Direction = cvOutput & aposwait siin, kuni meie jadaport aktiveerub. pakettide lõpuleviimineSub serialRe ceive_Event_Code () & apos.received muutub valeks, kui 4 -baidine puhver on tühi Kuigi (serialPort. Received = cvTrue) & aposcopy bait meie puhvrisse rxBuff. Value = serialPort. Value & aposcheck paketi lõpu jaoks If rxBuff. Value = 13 & apaprocess & seadistage puhver algusesse rxBuff. Location = 0 Muu rxBuff. Location = rxBuff. Location + 1 EndIf WendEnd Sub & aposturns sisse ja välja lülitamiseks programmeerimise jadapordi jaoks serialPort. Operate = cvFalse serialActive_LED = 0 End IfEnd Sub & konverteerib ühekohalise numbri tähemärgiksFunktsioon serial_toChar (inVal As bait) As Byte Dim retVal As Byte Valige Case inVal Case 0 retVal = "0" Case 1 retVal = "1" Case 2 retVal = "2" juhtum 3 retVal = "3" juhtum 4 retVal = "4" juhtum 5 retVal = "5" juhtum 6 retVal = "6" juhtum 7 retVal = "7" juhtum 8 retVal = "8" juhtum 9 retVal = "9" Lõpp Vali serial_toChar = retValEnd Funktsioon & apos sen ds txBuff & apos sisalduvad andmed Märkus: veenduge, et puhvri lõpus oleks käru tagastamine (13) !! Alamseeria_SendBuffer () & vabandage läbi, saates iga baidi, veo tagastamisel txBuff. Location = 0 Kuigi 1 serialPort. Value = txBuff. Value ooPIC. Delay = 1 & ei pruugi seda & apossee vaja, kui see oli vaguni tagasisaatmine

Samm: eemaldage programmeerimisühendus

Vabastage programmeerimisühendus
Vabastage programmeerimisühendus
Vabastage programmeerimisühendus
Vabastage programmeerimisühendus

Kui programmeerimispistik on lahti ühendatud, kinnitage uus kaablikomplekt, nagu allpool näidatud. Etapis 1 valmistatud adapter peaks võimaldama CMUCami otse OOPIC -i ühendada

Samm: jadaühenduse initsialiseerimiseks vajutage nuppu

IOLine 5 nupp käivitab CMUCami ja OOPICi vahelise jadaühenduse. Kuna jadapordi kasutatakse nii programmeerimiseks kui ka CMUCami jaoks, peaks nende vahel tõenäoliselt olema kontrollitud viis.

Programm ei tööta enne, kui seda nuppu vajutatakse. Kui vajutate nuppu uuesti, muutub jadaport passiivseks, võimaldades teil seda programmeerida. IOLine 6 valgusdiood kuvab jadaporti praeguse oleku (sisse lülitatud tähendab aktiivset, väljalülitatud tähendab programmeerimiseks valmisolekut).

Soovitan: