Sadržaj:

Povezivanje CMUCam2 sa OOPIC: 5 koraka
Povezivanje CMUCam2 sa OOPIC: 5 koraka

Video: Povezivanje CMUCam2 sa OOPIC: 5 koraka

Video: Povezivanje CMUCam2 sa OOPIC: 5 koraka
Video: Uputstvo za povezivanje AnyCast uređaja za prenos slike sa mobilnog na TV 2024, Juli
Anonim

Autor arsinioSledi Još autora:

Povezivanje dvije OOBoard ploče zajedno pomoću I2C
Povezivanje dvije OOBoard ploče zajedno pomoću I2C
Povezivanje dvije OOBoard ploče zajedno pomoću I2C
Povezivanje dvije OOBoard ploče zajedno pomoću I2C

Pregled načina povezivanja CMUCam2 sa OOPIC -om.

Korak 1: Izrada adapterskog kabela

Izrada adapterskog kabla
Izrada adapterskog kabla

1. Idite na radioshack i kupite 2 od ovih: Muški DB-9 konektor za lemljenje2. lemni pin 5 na konektoru A na pin 5 na konektoru B (ako pažljivo pogledate konektor, oni su označeni) 3. lemni pin 2 na konektoru A na pin 3 na konektoru B (ako pažljivo pogledate konektor, oni su označeni) 4. lemni pin 3 na konektoru A na pin 2 na konektoru B (ako pažljivo pogledate konektor, oni su označeni)

Korak 2: Promijenite brzinu prijenosa na CMUCam -u

Promijenite brzinu prijenosa na CMUCam -u
Promijenite brzinu prijenosa na CMUCam -u

Promijenite brzinu prijenosa CMUC kamere na 9600 bauda (dodajte kratkospojnik u položaj 0).

Korak 3: Povežite standardni kabl za programiranje i kod za otpremanje

Povežite standardni kabl za programiranje i kod za otpremanje
Povežite standardni kabl za programiranje i kod za otpremanje

Priključite standardni kabl za programiranje i učitajte svoj kôd. Evo nekoliko primjera koda za početak. Ovaj kod će pratiti kretanje pomoću LF i FD naredbi. Prebacivat će IOLine 7 (spojen na LED) i preslikavati LED status za praćenje na CMUCam.

& apos ******** objekti povezani sa serijskim portom ******** Dim serialPort As New oSerialPortDim txBuff As New oBuffer27 & aposchange 27 to make tampon veći/manjiDim rxBuff As New oBuffer10Dim serialActive_LED As New oDIO1Dim toggleSerial_Button Novi oDIO1Dim toggleSerial_Event kao novi oEventDim prekidačSerial_Wire kao novi oWireDim serialReceive_Event kao novi oEventDim serialReceive_Wire kao novi oWire & apos ******** otklanjanje grešaka povezanih objekata ******** Zatamnjivanje označeno kao novo oDIO1 & apos ***** ************************************ & apos*Genericke potprograme*& apos ****** ************************************** Sub main & aposinitializirajte sve main_init & postavite svoju izlaznu masku na samo slijedite centar mase CMUCAM_setOutputMask (2, 3) i ponovo učitajte naš okvir početne razlike CMUCAM_loadDiffFrame () & ponovo pokrenite izračun razlike CMUCAM_startDiffCalc (10) Završi SubSub main_init & aposinitializirajte status LED LED statLED. IOLine = 7) Kraj ned b & aposprocesi primljeni paketiSub processPacket () Dim mx As Byte Dim my As Byte & aposcheck da i Mx i My budu 0 & aposgrantirani ako nisu 0, lokacija će biti isključena (tj. & aposT 12 34) & apos ali tada će pobijediti i ispuniti 0 kriterija rxBuff. Location = 2 mx = rxBuff. Vrednost rxBuff. Location = 4 my = rxBuff. Vrednost i apost LED bi trebao treptati u skladu sa LED -om za praćenje na kameri If (mx = "0") And (my = "0") statLED = 0 Ostalo statLED = 1 Kraj IfEnd Sub & apos ****************************************** **** & apos*CMU Cam funkcije*& apos *************************************** ******* & aposseti zadanog vodila za uključivanje, isključivanje, automatsko & aposparam LEDBroj LED dioda (0, 1) & aposparam val isključeno, uključeno, auto (0, 1, 2) Funkcija CMUCAM_ledSet (ledNum Kao bajt, val Kao bajt) Kako Byte & aposVString nije & apost radio ispravno u novom kompajleru … & aposigurno u vezi sa starim & apostxBuff. VString = "L0 0" & ručno podesili naš komandni niz txBuff. Location = 0 txBuff. Value = "L" txBuff. Location = 1 & apostx tr $ funkcija je sranje … pa se ovo sada događa txBuff. Value = serial_toChar (ledNum) txBuff. Location = 2 txBuff. Value = "" txBuff. Location = 3 txBuff. Value = serial_toChar (val) txBuff. Location = 4 txBuff. Location = 4 txBuff. Location = 4 txBuff. Voz = 4 = 13 & pošalji naredbu serial_SendBufferEnd Sub & apospremi početnu razliku frameSub CMUCAM_loadDiffFrame () & apossetup našem komandnom nizu ručno txBuff. Location = 0 txBuff. Value = "L" txBuff. Location = 1 txBuff. Val. Vrijednost = 13 & pošalji naredbu serial_SendBufferEnd Sub & aposstarts izračunavanje razlika okvira & aposparam prag praga (0-9) Sub CMUCAM_startDiffCalc (thresh As Byte) Dim tenses As Byte & apossetup naš naredbeni niz ručno txBuff. Location = 0 txBuff. Location = 0 txBuff. V 1 txBuff. Value = "D" txBuff. Location = 2 txBuff. Value = "" txBuff. Location = 3 desetice = thresh/10 txBuff. Value = serial_toChar (desetice) txBuff. Location = 4 desetice = thresh. 10 txBue = serial_toChar (thresh-desetice) txBuff. Location = 5 txBuff. Value = 1 3 & apossend naredba serial_SendBufferEnd Pod & aposseti izlazna maska & aposparam packetType tip paketa za maskiranje (0, 1, 2, itd.) Vidi stranicu 46 & aposparam maska vrijednost maske za primjenu (0-255) Sub CMUCAM_setOutputMask (paket paket Tip Byte, maska As Byte) Kao zatamnjenje bajtova Kao bajt & apossetup naš naredbeni niz ručno txBuff. Location = 0 txBuff. Value = "O" txBuff. Location = 1 txBuff. Value = "M" txBuff. Location = 2 txBuff. Value = "" & apospacketket tx. Lokacija = 3 txBuff. Value = serial_toChar (vrsta paketa) txBuff. Location = 4 txBuff. Value = "" & aposmaska za primjenu txBuff. Location = 5 stotina = maska/100 txBuff. Value = serial_toChar (stotine) txBuff.to (maska-stotine)/10 txBuff. Value = serial_toChar (desetke) txBuff. Location = 7 txBuff. Value = serial_toChar (mask-stotine-desetke) & aposcarriage vrati txBuff. Location = 8 txBuff. Value = 13 & apossend naredba ******************************************* & apos*Opće serijske potprograme *& apo s ********************************************** i aposinitializira serijski broj portSub serial_init () & aposinitializirati dugme za uključivanje i isključivanje serijskog porta (uključiti za pokretanje, isključiti za programiranje) toggleSerial_Button. IOLine = 5 toggleSerial_Button. Direction = cvInput toggleSerial_Wire. Input. Link (toggleSerial_Wut). Veza (toggleSerial_Event. Operate) toggleSerial_Wire. Operate = cvTrue & aposinitialize event to buffer our data serialReceive_Wire. Input. Link (serialPort. Received) serialReceive_Wire. Output. Link (serialReceve_e) = 0 & aposinitializujte naš serijski port serialPort. Baud = cv9600 & aposinitializirajte naš serijski status LED serialActive_LED. IOLine = 6 serialActive_LED. Direction = cvOutput & aposvijekajte ovdje dok se naš serijski port ne aktivira. Dok serialPort provjerava i podržava? kompletiranje paketaSub serialRe ceive_Event_Code () & apos.received postaje lažno kada je bajt od 4 bajta prazan Dok (serialPort. Received = cvTrue) & aposkopira bajt u naš međuspremnik rxBuff. Value = serialPort. Value & aposcheck za kraj paketa Ako je rxBuff. Valcess = 13 & apospremiti međuspremnik na početak rxBuff. Location = 0 Ostalo rxBuff. Location = rxBuff. Location + 1 EndIf WendEnd Sub & aposturns on i off serijski port za programiranjeSub toggleSerial_Event_Code () If serialPort. Operate = cvFalseal serialPort. Operate = cvFalse serialActive_LED = 0 End IfEnd Sub & pretvara jednocifreni broj u characterFunction serial_toChar (inVal kao bajt) Kao bajt Dim retVal Kao bajt Izaberite slučaj inVal Case 0 retVal = "0" Case 1 retVal = "1" Case 2 retVal = "2" Slučaj 3 retVal = "3" Slučaj 4 retVal = "4" Slučaj 5 retVal = "5" Slučaj 6 retVal = "6" Slučaj 7 retVal = "7" Slučaj 8 retVal = "8" Slučaj 9 retVal = "9" Kraj Odaberite serial_toChar = retValEnd Funkcija & apos sen ds podaci sadržani u txBuff & apos Napomena: pobrinite se da međuspremnik sadrži povratak nosača (13) na kraju !! Sub serial_SendBuffer () & apositerate kroz, šaljući svaki bajt, kraj na nosaču nosača txBuff. Location = 0 Dok je 1 serialPort. Value = txBuff. Vrijednost ooPIC. Delay = 1 & aposmight ovo ne treba & apossee ako se radi o vraćanju nosača Ako je txBuff. Value = 13 & aposbreak van naše petlje Return End If & aposgo na sljedeći znak txBuff. Location = txBuff. Location + 1 WendEnd Sub

Korak 4: Odvojite konektor za programiranje

Odvojite priključak za programiranje
Odvojite priključak za programiranje
Odvojite priključak za programiranje
Odvojite priključak za programiranje

Nakon što se konektor za programiranje odvoji, priključite novi sklop kabla kao što je prikazano ispod. Adapter napravljen u koraku 1 trebao bi omogućiti CMUCam direktno priključivanje na OOPIC

Korak 5: Pritisnite dugme za pokretanje serijske komunikacije

Dugme na IOLine 5 započinje serijsku komunikaciju između CMUCam -a i OOPIC -a. Budući da se serijski port koristi i za programiranje i za CMUCam, vjerovatno bi trebao postojati kontrolirani način prebacivanja između njih.

Program se neće pokrenuti dok se ne pritisne ovo dugme. Ako ponovo pritisnete dugme, serijski port će biti neaktivan, što vam omogućava da ga programirate. LED na IOLine 6 prikazuje trenutni status serijskog porta (uključeno znači aktivno, isključeno znači spremno za programiranje).

Preporučuje se: