Სარჩევი:

CMUCam2– ის დაკავშირება OOPIC– თან: 5 ნაბიჯი
CMUCam2– ის დაკავშირება OOPIC– თან: 5 ნაბიჯი

ვიდეო: CMUCam2– ის დაკავშირება OOPIC– თან: 5 ნაბიჯი

ვიდეო: CMUCam2– ის დაკავშირება OOPIC– თან: 5 ნაბიჯი
ვიდეო: CMUCam2 2024, ივლისი
Anonim

ავტორი: arsinio

ორი OOBoard- ის დაკავშირება I2C გამოყენებით
ორი OOBoard- ის დაკავშირება I2C გამოყენებით
ორი OOBoard- ის დაკავშირება I2C გამოყენებით
ორი OOBoard- ის დაკავშირება I2C გამოყენებით

მიმოხილვა, თუ როგორ უნდა მოხდეს CMUCam2 და OOPIC ინტერფეისი.

ნაბიჯი 1: ადაპტერის კაბელის დამზადება

ადაპტერის კაბელის დამზადება
ადაპტერის კაბელის დამზადება

1. გადადით რადიოშეტევაზე და იყიდეთ 2 მათგანი: მამრობითი DB-9 Solder Cup Connector2. შემაერთეთ პინ 5 კონექტორზე A დამაგრებით B კონექტორზე (თუ ყურადღებით დააკვირდებით კონექტორს, ისინი აღინიშნება) 3. solder pin 2 კონექტორი A to pin 3 კონექტორი B (თუ ყურადღებით დააკვირდებით კონექტორს, ისინი აღინიშნება) 4. solder pin 3 კონექტორი A to pin 2 კონექტორი B (თუ ყურადღებით დააკვირდებით კონექტორს, ისინი აღინიშნება)

ნაბიჯი 2: შეცვალეთ Baud Rate CMUCam– ზე

შეცვალეთ Baud Rate CMUCam– ზე
შეცვალეთ Baud Rate CMUCam– ზე

შეცვალეთ CMUCamera- ს ბადის სიჩქარე 9600 baud (დაამატეთ მხტუნავი 0 პოზიციას).

ნაბიჯი 3: შეაერთეთ სტანდარტული პროგრამირების კაბელი და ატვირთეთ კოდი

შეაერთეთ სტანდარტული პროგრამირების კაბელი და ატვირთვის კოდი
შეაერთეთ სტანდარტული პროგრამირების კაბელი და ატვირთვის კოდი

შეაერთეთ სტანდარტული პროგრამირების კაბელი და ატვირთეთ თქვენი კოდი. აქ არის რამოდენიმე მაგალითი კოდი დასაწყებად. ეს კოდი თვალყურს ადევნებს მოძრაობას LF და FD ბრძანებების გამოყენებით. ის გადართავს IOLine 7 -ს (ჩართულია LED- ზე) და ასახავს თვალთვალის სტატუსის LED CMUCam– ზე.

& apos ******** სერიულ პორტთან დაკავშირებული ობიექტები ******** Dim serialPort As New oSerialPortDim txBuff As New oBuffer27 & aposchange 27 რათა გახადოს ბუფერი უფრო დიდი/პატარაDim rxBuff როგორც ახალი oBuffer10Dim serialActive_LED როგორც ახალი oDIO1Dim გადართვაSerial_B ახალი oDIO1Dim გადართვაSerial_Event როგორც ახალი oEventDim გადართვაSerial_Wire როგორც ახალი oWireDim serialReceive_Event როგორც ახალი oEventDim serialReceive_Wire როგორც ახალი oWire & apos ******** გამართვის დაკავშირებული ობიექტები ******** Dim statLED როგორც ახალი oDI ** ************ ******** მიჰყევით მხოლოდ მასის ცენტრს CMUCAM_setOutputMask (2, 3) და ატვირთეთ ჩვენი საწყისი განსხვავების ჩარჩო CMUCAM_loadDiffFrame () და დაიწყეთ სხვაობის გამოთვლა CMUCAM_startDiffCalc (10) ბოლო SubSub მთავარ_შინა & aposinitialize სტატუსი LED statileDialinial = წილი) ბოლო სუ b & aposprocesses– მა მიიღო პაკეტები ქვეპროექტი პაკეტი () Dim mx As Byte Dim my As Byte & aposcheck როგორც Mx ასევე My 0 იქნება 0 & aposgranted თუ ისინი არ არიან 0, ადგილმდებარეობა გამორთული იქნება (ანუ & aposT 12 34) & aposbut მაშინ მოიგეს და აპოსტი აკმაყოფილებს 0 კრიტერიუმს rxBuff. მდებარეობა = 2 mx = rxBuff. Value rxBuff. Location = 4 my = rxBuff. Value & aposthe led უნდა დახუჭოს ერთხმად თვალთვალის LED კამერით თუ (mx = "0") და (my = "0") statLED = 0 სხვა **** & apos*CMU კამერის ფუნქციები*& apos ************************************* ******* & apossets მოცემული გამოიწვია on, off, automat & aposparam led რაოდენობა led (0, 1) & aposparam val off, on, auto (0, 1, 2) CMUCAM_ledSet (ledNum As Byte, val As Byte) როგორც ბაიტი და aposVString არ იყო და მოციქული მუშაობდა ახალ შემდგენელში… tr $ ფუნქცია ცუდია … ასე რომ ახლა ეს ხდება txBuff. Value = serial_toChar (ledNum) txBuff. Location = 2 txBuff. Value = "" txBuff. Location = 3 txBuff. Value = serial_toChar (val) txBuff. Location = 4 txBuff. Value = 13 & გაგზავნეთ ბრძანება მნიშვნელობა = 13 & გამოაქვეყნეთ ბრძანება 1 txBuff. Value = "D" txBuff. Location = 2 txBuff. Value = "" txBuff. Location = 3 ათეული = thresh/10 txBuff. Value = serial_toChar (ათეული) txBuff. Location = 4 ათეული = thresh/10 txBuff. Value = serial_toChar (thresh-tens) txBuff.location = 5 txBuff.value = 1 3 და გაგზავნეთ ბრძანება როგორც Byte Dim ათობით როგორც Byte & apossetup ჩვენი ბრძანების სტრიქონი ხელით txBuff. Location = 0 txBuff. Value = "O" txBuff. Location = 1 txBuff. Value = "M" txBuff. Location = 2 txBuff. Value = "" & apospacket type txBuff. ადგილმდებარეობა = 3 txBuff. Value = serial_toChar (packetType) txBuff. Location = 4 txBuff. Value = "" & aposmask to use txBuff. Location = 5 ასეული = ნიღაბი/100 txBuff. Value = serial_toChar (ასობით) txBuff = მდებარეობა = 6 ათეული (ნიღაბი-ასობით)/10 txBuff. Value = serial_toChar (ათეული) txBuff. Location = 7 txBuff. Value = serial_toChar (mask-sedan-ათეული) & aposcarriage return txBuff. Location = 8 txBuff. Value = 13 & apossend ბრძანების სერიული_Send_Send **************** *& აპო s ****************************************** და ავრცელებს სერიალს portSub serial_init () & aposinitize ღილაკს სერიული პორტის ჩართვა და გამორთვა (ჩართვა გაშვება, პროგრამის გამორთვა) toggleSerial_Button. IOLine = 5 toggleSerial_Button. Direction = cvInput toggleSerial_Wire. Input. Link (toggleSerial_Button.ink ლინკი (toggleSerial_Event. Operate) toggleSerial_Wire. Operate = cvTrue & aposinitialize event to buffer our data serialReceive_Wire. Input. Link (serialPort. Received) serialReceive_Wire. Output. Link (serialRecece2) serialivece2. = 0 & aposinitialize ჩვენი სერიული პორტი serialPort. Baud = cv9600 & aposinitialize ჩვენი სერიული სტატუსი LED serialActive_LED. IOLine = 6 serialActive_LED. Direction = cvOputput & aposwait here სანამ ჩვენი სერიული პორტი არ გააქტიურდება სანამ serialPort. Opend პაკეტის დასრულება ქვე სერიული ceive_Event_Code () & apos.received ხდება false როდესაც 4 ბაიტიანი ბუფერი ცარიელია & aposreset ბუფერი დასაწყისში rxBuff. Location = 0 სხვა rxBuff. Location = rxBuff. Location + 1 EndIf WendEnd Sub & aposturns on and off serial port for programmingSub toggleSerial_Event_Code () If serialPort. Operate = cvFalseseial = cvFalse serial serialPort. Operate = cvFalse serialActive_LED = 0 დასასრული IfEnd Sub & aposconverts one number number to a 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 retase = = "2" Case 3 retVal = "3" Case 4 retVal = "4" Case 5 retVal = "5" Case 6 retVal = "6" Case 7 retVal = "7" Case 8 retVal = "8" Case 9 retVal = "9" დასრულება აირჩიეთ serial_toChar = retValEnd ფუნქცია & apos sen ds მონაცემები შეიცავს txBuff & apos შენიშვნა: დარწმუნდით, რომ ბუფერი შეიცავს ვაგონის დაბრუნებას (13) დასასრულს !! ქვე serial_SendBuffer () & apositerate მეშვეობით, თითოეული ბაიტის გაგზავნით, ვაგონის დაბრუნების ბოლოს txBuff. Location = 0 მიუხედავად იმისა, რომ 1 serialPort. Value = txBuff. ღირებულება ooPIC. Delay = 1 & aposmight არ სჭირდება ეს & apossee თუ ეს იყო ვაგონის დაბრუნება თუ txBuff. Value = 13 & aposbreak out of our loop Return End If & aposgo to the next character txBuff. Location = txBuff. Location + 1 WendEnd Sub

ნაბიჯი 4: პროგრამირების კავშირის გათიშვა

გათიშეთ პროგრამირების კავშირი
გათიშეთ პროგრამირების კავშირი
გათიშეთ პროგრამირების კავშირი
გათიშეთ პროგრამირების კავშირი

მას შემდეგ, რაც პროგრამირების კონექტორი გათიშულია, მიამაგრეთ ახალი საკაბელო ასამბლეა, როგორც ნაჩვენებია ქვემოთ. ნაბიჯი 1 გაკეთებული ადაპტერი უნდა აძლევდეს CMUCam- ს პირდაპირ ჩართვას OOPIC- ში

ნაბიჯი 5: დააჭირეთ ღილაკს სერიული კომუნიკაციის დასაწყებად

IOLine 5 – ის ღილაკი დაიწყებს სერიულ კომუნიკაციას CMUCam– სა და OOPIC– ს შორის. მას შემდეგ, რაც სერიული პორტი გამოიყენება როგორც პროგრამირებისათვის, ასევე CMUCam– ისთვის, ალბათ უნდა არსებობდეს ამ ორს შორის გადართვის კონტროლირებადი გზა.

პროგრამა არ იმუშავებს მანამ, სანამ არ დააჭერთ ამ ღილაკს. თუ კვლავ დააჭერთ ღილაკს, სერიული პორტი უმოქმედო გახდება, რაც მისი პროგრამირების საშუალებას მოგცემთ. LED IOLine 6 აჩვენებს სერიული პორტის ამჟამინდელ სტატუსს (ჩართულია ნიშნავს აქტიურს, გამორთული ნიშნავს მზადაა პროგრამირებისთვის).

გირჩევთ: