Πίνακας περιεχομένων:

Διασύνδεση CMUCam2 με OOPIC: 5 βήματα
Διασύνδεση CMUCam2 με OOPIC: 5 βήματα

Βίντεο: Διασύνδεση CMUCam2 με OOPIC: 5 βήματα

Βίντεο: Διασύνδεση CMUCam2 με OOPIC: 5 βήματα
Βίντεο: Ηλεκτρική διασύνδεση Ελλάδας - Αιγύπτου: To Project Gap και οι σχεδιασμοί του 2024, Νοέμβριος
Anonim

Ακολουθήστε περισσότερα από τον συγγραφέα:

Σύνδεση δύο OOBoards μαζί χρησιμοποιώντας I2C
Σύνδεση δύο OOBoards μαζί χρησιμοποιώντας I2C
Σύνδεση δύο OOBoards μαζί χρησιμοποιώντας I2C
Σύνδεση δύο OOBoards μαζί χρησιμοποιώντας I2C

Επισκόπηση του τρόπου διασύνδεσης ενός CMUCam2 με και OOPIC.

Βήμα 1: Δημιουργία καλωδίου προσαρμογέα

Δημιουργία καλωδίου προσαρμογέα
Δημιουργία καλωδίου προσαρμογέα

1. Πηγαίνετε στο radioshack και αγοράστε 2 από αυτά: Αρσενικό DB-9 Solder Cup Connector2. συγκόλληση πείρου 5 στον σύνδεσμο Α έως τον πείρο 5 στον σύνδεσμο Β (εάν κοιτάξετε προσεκτικά τον σύνδεσμο, είναι σημειωμένοι) 3. συγκόλληση καρφίτσα 2 στον σύνδεσμο Α έως τον ακροδέκτη 3 στον σύνδεσμο Β (εάν κοιτάξετε προσεκτικά τον σύνδεσμο, είναι σημειωμένοι) 4. συγκόλληση καρφίτσα 3 στον σύνδεσμο Α έως τον ακροδέκτη 2 στον σύνδεσμο Β (εάν κοιτάξετε προσεκτικά το βύσμα, σημειώνονται)

Βήμα 2: Αλλάξτε το ποσοστό Baud στο CMUCam

Αλλάξτε το ποσοστό Baud στο CMUCam
Αλλάξτε το ποσοστό Baud στο CMUCam

Αλλάξτε τον ρυθμό baud της CMUCamera σε 9600 baud (προσθέστε έναν βραχυκυκλωτήρα στη θέση 0).

Βήμα 3: Συνδέστε το τυπικό καλώδιο προγραμματισμού και τον κωδικό μεταφόρτωσης

Συνδέστε το τυπικό καλώδιο προγραμματισμού και τον κωδικό μεταφόρτωσης
Συνδέστε το τυπικό καλώδιο προγραμματισμού και τον κωδικό μεταφόρτωσης

Συνδέστε το τυπικό καλώδιο προγραμματισμού και ανεβάστε τον κωδικό σας. Ακολουθεί ένα παράδειγμα κώδικα για να ξεκινήσετε. Αυτός ο κώδικας θα παρακολουθεί την κίνηση χρησιμοποιώντας τις εντολές LF και FD. Θα αλλάξει το IOLine 7 (συνδεδεμένο σε LED) και θα αντικατοπτρίσει το LED κατάστασης παρακολούθησης στο CMUCam.

& apos ** New oDIO1Dim toggleSerial_Event As New oEventDim toggleSerial_Wire As New oWireDim serialReceive_Event As New oEventDim serialReceive_Wire As New oWire & apos ******** εντοπισμός σχετικών αντικειμένων ******** Dim statLED Ως New oDI *** *********************************** & apos*Generic Subroutines*& apos ****** ************************************** Sub main & aposinitialize all main_init & aposset our output mask to ακολουθήστε μόνο το κέντρο μάζας CMUCAM_setOutputMask (2, 3) & αποσυναρμολογήστε το αρχικό μας πλαίσιο διαφοράς CMUCAM_loadDiffFrame () & ξεκινήστε τον υπολογισμό της διαφοράς CMUCAM_startDiffCalc (10) Τέλος SubSub main_init & aposinitialize μια κατάσταση LED statileDialitial) End Su b & aproprocesses έλαβε πακέτα Υποδιεργασία Πακέτο () Dim mx As Byte Dim my As Byte & aposcheck για Mx και My να είναι 0 & aposgranted αν δεν είναι 0, η τοποθεσία θα είναι απενεργοποιημένη (δηλ. & aposT 12 34) & aposbut τότε κέρδισαν & apost πληρούν τα 0 κριτήρια rxBuff. Τοποθεσία = 2 mx = rxBuff. Value rxBuff. Location = 4 my = rxBuff. Value & aposthe led θα πρέπει να αναβοσβήνει από κοινού με το LED παρακολούθησης στην κάμερα Αν (mx = "0") Και (my = "0") statLED = 0 Άλλο statLED = 1 Τέλος IfEnd Sub & apos ************************************** **** & apos*CMU Cam Functions*& apos ************************************ ******* & apossets το δεδομένο led σε on, off, αυτόματο & aposparam led Αριθμός led (0, 1) & aposparam val off, on, auto (0, 1, 2) Λειτουργία CMUCAM_ledSet (ledNum As Byte, val As Byte) Καθώς ο Byte & aposVString δεν ήταν σωστός στον νέο μεταγλωττιστή… & δεν είναι σίγουρος για τον παλιό & apostxBuff. VString = "L0 0" & apossetup την εντολή μας χειροκίνητα txBuff. Location = 0 txBuff. Value = "L" txBuff. Location = 1 & aposthe s η συνάρτηση 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 & αποστείλετε την εντολή serial_SendBufferEnd Sub & αποφορτώνει το αρχικό πλαίσιο διαφοράςSub CMUCAM_loadDiffFrame () & apossetup την εντολή μας χειροκίνητα txBuff. Location = 0 txBuff. Value = "L" txBuff. Location = 1 txBuff. Value = "tal = 2" Value = 13 & apossend the command serial_SendBufferEnd Sub & aposstarts υπολογισμός διαφορών πλαισίου & aposparam thresh threshold (0-9) Sub CMUCAM_startDiffCalc (thresh As Byte) Dim tens As Byte & apossetup our command string txBuff. Location = txB = = txB = = txB = 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 & αποστέλλετε την εντολή As 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 για εφαρμογή txBuff. Location = 5 εκατοντάδες = μάσκα/100 txBuff. Value = serial_toChar (εκατοντάδες) txBuff. Location = 6 tens (μάσκα-εκατοντάδες)/10 txBuff. Value = serial_toChar (δεκάδες) txBuff. Location = 7 txBuff. Value = serial_toChar (mask-εκατοντάδες-δεκάδες) & aposcarriage επιστροφή txBuff. Location = 8 txBuff. Value = 13 & apossendando εντολή serial_Send ***************************************** & apos*Γενικές σειριακές υπορουτίνες *& απο s ****************************************** και αποσυνδέει το σίριαλ portSub serial_init () & aposinitialize a button to turn and off the serial port (turn on to run, turn off to program) toggleSerial_Button. IOLine = 5 toggleSerial_Button. Direction = cvInput toggleSerial_Wire. Input. Link (toggleSerial_Button. Kink) Σύνδεσμος (toggleSerial_Event. Operate) toggleSerial_Wire. Operate = cvTrue & aposinitialize ένα συμβάν για την αποθήκευση των δεδομένων μας σειριακά = 0 & aposinitialize serialPort. Baud = cv9600 & aposinitialize serial status LED serialActive_LED. IOLine = 6 serialActive_LED. Direction = cvOutput & aposwait εδώ μέχρι να ενεργοποιηθεί η σειριακή μας θύρα ολοκλήρωση πακέτουSub serialRe ceive_Event_Code () & apos.received γίνεται false όταν το buffer 4byte είναι κενό Ενώ (serialPort. Received = cvTrue) & αποσκόπηση του byte στο buffer μας rxBuff. Value = serialPort. Value & aposcheck για το τέλος του πακέτου If rxBuff. Value = 13 & apospetet & aposreset το buffer στην αρχή rxBuff. Location = 0 Άλλο rxBuff. Location = rxBuff. Location + 1 EndIf WendEnd Sub & ενεργοποιεί και απενεργοποιεί τη σειριακή θύρα για programmingSub toggleSerial_Event_Code () If serialPort. Operate = cvFalseeial serialPort. Operate = cvFalse serialActive_LED = 0 Τέλος IfEnd Sub & aposconverts μονοψήφιο αριθμό σε χαρακτήραFunction 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" End Select serial_toChar = retValEnd Function & apos sen ds τα δεδομένα που περιέχονται στο txBuff & apos Σημείωση: βεβαιωθείτε ότι το buffer περιέχει μια επιστροφή μεταφοράς (13) στο τέλος !! Sub serial_SendBuffer () & apositerate through, στέλνοντας κάθε byte, τέλος στην επιστροφή μεταφοράς txBuff. Location = 0 Ενώ 1 serialPort. Value = txBuff. Value ooPIC. Delay = 1 & aposmight δεν χρειάζεται αυτό & apossee αν ήταν άμαξα επιστροφής If txBuff. Value = 13 & aposbreak out of the 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 εμφανίζει την τρέχουσα κατάσταση σειριακής θύρας (ενεργοποιημένο σημαίνει ενεργό, απενεργοποιημένο μέσο έτοιμο για προγραμματισμό).

Συνιστάται: