Obsah:

Prepojenie CMUCam2 s OOPIC: 5 krokov
Prepojenie CMUCam2 s OOPIC: 5 krokov

Video: Prepojenie CMUCam2 s OOPIC: 5 krokov

Video: Prepojenie CMUCam2 s OOPIC: 5 krokov
Video: 💣 Правильный 2.0 TDI - это версия с Common Rail !!! Чем этот мотор лучше версии с насос-форсункой ? 2024, November
Anonim

Od arsinioSledovať viac od autora:

Spojenie dvoch OOBoborov dohromady pomocou I2C
Spojenie dvoch OOBoborov dohromady pomocou I2C
Spojenie dvoch OOBoborov dohromady pomocou I2C
Spojenie dvoch OOBoborov dohromady pomocou I2C

Prehľad toho, ako prepojiť CMUCam2 a OOPIC.

Krok 1: Výroba adaptérového kábla

Výroba adaptérového kábla
Výroba adaptérového kábla

1. Choďte na rádioshack a kúpte si 2 z nich: Male DB-9 Solder Cup Connector2. spájkujte kolík 5 na konektore A s kolíkom 5 na konektore B (ak sa pozriete pozorne na konektor, sú označené) 3. spájkovací kolík 2 na konektore A na kolík 3 na konektore B (ak sa na konektor dobre pozriete, sú označené) 4. spájkovací kolík 3 na konektore A s kolíkom 2 na konektore B (ak sa pozriete pozorne na konektor, sú označené)

Krok 2: Zmeňte prenosovú rýchlosť na CMUCam

Zmeňte prenosovú rýchlosť na CMUCam
Zmeňte prenosovú rýchlosť na CMUCam

Zmeňte prenosovú rýchlosť CMUCamery na 9600 baudov (pridajte prepojku do polohy 0).

Krok 3: Pripojte štandardný programovací kábel a nahrajte kód

Pripojte štandardný programovací kábel a nahrajte kód
Pripojte štandardný programovací kábel a nahrajte kód

Pripojte štandardný programovací kábel a nahrajte kód. Tu je príklad kódu, ktorý vám pomôže začať. Tento kód bude sledovať pohyb pomocou príkazov LF a FD. Prepne IOLine 7 (pripojený k LED dióde) a zrkadlí stavovú kontrolku LED na CMUCam.

& apos ******** objekty súvisiace so sériovým portom ******** Dim serialPort as New oSerialPortDim txBuff As New oBuffer27 & aposchange the 27 to make the buffer greater/smallerDim rxBuff As New oBuffer10Dim serialActive_LED As New oDIO1Dim toggleSerial_Button As Nový prepínač oDIO1DimSerial_Event ako nový oEventDim toggleSerial_Wire ako nový oWireDim serialReceive_Event ako nový oEventDim serialReceive_Wire ako nový oWire & apos ******** ladiť súvisiace objekty ******** Dim statLED ako nový o*** ****************************************************************************** **************************************************************************** len nasledovať ťažisko CMUCAM_setOutputMask (2, 3) & aposload our initial difference frame CMUCAM_loadDiffFrame () & aposstart the Difference Calculation CMUCAM_startDiffCalc (10) End SubSub main_init & aposinitialize a status LED statLED. IOLine = 7 statLED. Direction = cvO) Koniec Su b & aposproceses prijaté paketySub processPacket () Dim mx As Byte Dim my As Byte & aposcheck for Mx and My to be 0 & aposgranted if they are 0, the location will off (tj & aposT 12 34) & aposbut then they win & apost meet the 0 criteria rxBuff. Poloha = 2 mx = rxBuff. Value rxBuff. Location = 4 my = rxBuff. Value & aposthe LED by mala blikať súčasne s LED diódou na kamere If (mx = "0") And (my = "0") statLED = 0 Ostatné statLED = 1 Koniec IfEnd Sub & apos ********************************** **** & apos*CMU Cam Functions*& apos ************************************** ******* & apossets the LED led on on, off, automatic & aposparam led Led number of led led (0, 1) & aposparam val off, on, auto (0, 1, 2) Function CMUCAM_ledSet (ledNum As Byte, val As Byte) Pretože Byte & aposVString nepracoval priamo v novom kompilátore … & nie je si istý starým & apostxBuff. VString = "L0 0" & apossetup náš príkazový reťazec ručne txBuff. Location = 0 txBuff. Value = "L" txBuff. Location = 1 & aposthe s tr $ funkcia je nanič … takže teraz sa to deje txBuff. Value = serial_toChar (ledNum) txBuff. Location = 2 txBuff. Value = "" txBuff. Location = 3 txBuff. Value = serial_toChar (val) txBuff. Location = 4 txBuff. Value = 13 & aposend the command serial_SendBufferEnd Sub & aposloads the initial difference frameSub CMUCAM_loadDiffFrame () & apossetup our command string manually txBuff. Location = 0 txBuff. Value = "L" txBuff. Location = 1 txBuff. Value = "F" txBuff. Hodnota = 13 & povoliť príkaz serial_SendBufferEnd Sub & aposstarts výpočty rozdielov rámcov & prahová hodnota prahu aposparamu (0-9) Sub CMUCAM_startDiffCalc (thresh As Byte) Dim desiatky ako Byte & apossetup náš príkazový reťazec ručne txBuff. Location = 0 txBuff. Value = "F" tx 1 txBuff. Value = "D" txBuff. Location = 2 txBuff. Value = "" txBuff. Location = 3 desiatky = mlátiť/10 txBuff. Value = serial_toChar (desiatky) txBuff. Location = 4 desiatky = mlátiť/10 txBuff. Value = serial_toChar (thresh-desiatky) txBuff. Location = 5 txBuff. Value = 1 3 & apossend the command serial_SendBufferEnd Sub & apossets the output mask & aposparam packetType type of packet to mask (0, 1, 2, etc.) see page 46 & aposparam mask mask value use (0-255) Sub CMUCAM_setOutputMask (packetType As Byte, mask As Byte) Dim stovky As Byte Dim desiatky As Byte & apossetup our command string manually txBuff. Location = 0 txBuff. Value = "O" txBuff. Location = 1 txBuff. Value = "M" txBuff. Location = 2 txBuff. Value = "" & apospacket type txBuff. Poloha = 3 txBuff. Value = serial_toChar (packetType) txBuff. Location = 4 txBuff. Value = "" & aposmask na použitie txBuff. Location = 5 stoviek = maska/100 txBuff. Value = serial_toChar (stovky) txBuff. Location = 6 desiatok = (masky-stovky)/10 txBuff. Value = serial_toChar (desiatky) txBuff. Location = 7 txBuff. Value = serial_toChar (masky-stovky-desiatky) & aposcarriage vrátiť txBuff. Location = 8 txBuff. Value = 13 & apossend the command serial_SendBufferEnd Sub & **************************************************************************************** *& apo s ************************************************ portSub serial_init () & aposinitialize tlačidlo na zapnutie a vypnutie sériového portu (zapnutie spustenia, vypnutie programu) toggleSerial_Button. IOLine = 5 toggleSerial_Button. Direction = cvInput toggleSerial_Wire. Input. Link (toggleSerial_ButtonVal Odkaz (toggleSerial_Event. Operate) toggleSerial_Wire. Operate = cvTrue & aposinitialize an event to buffer our data serialReceive_Wire. Input. Link (serialPort. Received) serialReceive_Wire. Output. Link (serialReceive_Event. Office) = 0 & aposinitialize our serial port serialPort. Baud = cv9600 & aposinitialize our serial status LED LED serialActive_LED. IOLine = 6 serialActive_LED. Direction = cvOutput & apos vyčkajte tu, kým sa náš sériový port neaktivuje Kým serialPort. Operate = cvFalse WendEnd Sub & aposcopies dokončenie paketuSub serialRe ceive_Event_Code () & apos.received sa stane falošným, keď je 4byte medzipamäť prázdna While (serialPort. Received = cvTrue) & aposkopia bajt do nášho buffera rxBuff. Value = serialPort. Value & aposcheck pre koniec paketu If rxBuff. Value = 13 & aposprocess packet process & aposreset buffer na začiatok rxBuff. Location = 0 Else rxBuff. Location = rxBuff. Location + 1 EndIf WendEnd Sub & aposturns on and off the serial port for programmingSub toggleSerial_Event_Code () If serialPort. Operate = cvFalse serialPort. O serialPort. Operate = cvFalse serialActive_LED = 0 End IfEnd Sub & aposkonvertuje jednociferné číslo na characterFunction serial_toChar (inVal As Byte) As Byte Dim retVal As Byte Select Case inVal Case 0 retVal = "0" Case 1 retVal = "1" Case 2 retVal = "2" Prípad 3 retVal = "3" Prípad 4 retVal = "4" Prípad 5 retVal = "5" Prípad 6 retVal = "6" Prípad 7 retVal = "7" Prípad 8 retVal = "8" Prípad 9 retVal = Koniec „9“Vyberte serial_toChar = retValEnd Funkcia & apos sen ds údaje obsiahnuté v txBuff & apos Poznámka: uistite sa, že vyrovnávacia pamäť obsahuje na konci návrat vozíka (13) !! Sub serial_SendBuffer () & apositerate cez, odoslanie každého bajtu, koniec na návrat vozíka txBuff. Location = 0 Kým 1 serialPort. Value = txBuff. Hodnota ooPIC. Delay = 1 & nemusí to potrebovať & apossee, ak to bol návrat vozíka If txBuff. Value = 13 & aposbreak out of our loop Return End If & aposgo to the next character txBuff. Location = txBuff. Location + 1 WendEnd Sub

Krok 4: Odpojte konektor programovania

Odpojte konektor programovania
Odpojte konektor programovania
Odpojte konektor programovania
Odpojte konektor programovania

Po odpojení programovacieho konektora pripojte novú zostavu káblov podľa nižšie uvedeného obrázku. Adaptér vyrobený v kroku 1 by mal umožniť priame zapojenie CMUCamu do OOPIC

Krok 5: Stlačením tlačidla inicializujete sériovú komunikáciu

Tlačidlo na IOLine 5 spustí sériovú komunikáciu medzi CMUCam a OOPIC. Pretože sériový port slúži na programovanie aj na CMUCam, pravdepodobne by mal existovať kontrolovaný spôsob prepínania medzi týmito dvoma.

Program sa nespustí, kým nestlačíte toto tlačidlo. Ak znova stlačíte tlačidlo, sériový port sa deaktivuje, čo vám umožní ho naprogramovať. LED na IOLine 6 zobrazuje aktuálny stav sériového portu (zapnutý znamená aktívny, vypnutý znamená pripravený na programovanie).

Odporúča: