Πίνακας περιεχομένων:
- Βήμα 1: Δημιουργία καλωδίου προσαρμογέα
- Βήμα 2: Αλλάξτε το ποσοστό Baud στο CMUCam
- Βήμα 3: Συνδέστε το τυπικό καλώδιο προγραμματισμού και τον κωδικό μεταφόρτωσης
- Βήμα 4: Αποσυνδέστε τη σύνδεση σύνδεσης προγραμματισμού
- Βήμα 5: Πατήστε το κουμπί για να ξεκινήσετε τη σειριακή επικοινωνία
Βίντεο: Διασύνδεση CMUCam2 με OOPIC: 5 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:38
Ακολουθήστε περισσότερα από τον συγγραφέα:
Επισκόπηση του τρόπου διασύνδεσης ενός CMUCam2 με και OOPIC.
Βήμα 1: Δημιουργία καλωδίου προσαρμογέα
1. Πηγαίνετε στο radioshack και αγοράστε 2 από αυτά: Αρσενικό DB-9 Solder Cup Connector2. συγκόλληση πείρου 5 στον σύνδεσμο Α έως τον πείρο 5 στον σύνδεσμο Β (εάν κοιτάξετε προσεκτικά τον σύνδεσμο, είναι σημειωμένοι) 3. συγκόλληση καρφίτσα 2 στον σύνδεσμο Α έως τον ακροδέκτη 3 στον σύνδεσμο Β (εάν κοιτάξετε προσεκτικά τον σύνδεσμο, είναι σημειωμένοι) 4. συγκόλληση καρφίτσα 3 στον σύνδεσμο Α έως τον ακροδέκτη 2 στον σύνδεσμο Β (εάν κοιτάξετε προσεκτικά το βύσμα, σημειώνονται)
Βήμα 2: Αλλάξτε το ποσοστό 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 εμφανίζει την τρέχουσα κατάσταση σειριακής θύρας (ενεργοποιημένο σημαίνει ενεργό, απενεργοποιημένο μέσο έτοιμο για προγραμματισμό).
Συνιστάται:
Διασύνδεση χωρητικού αισθητήρα δακτυλικών αποτυπωμάτων με Arduino UNO: 7 βήματα
Διασύνδεση χωρητικού αισθητήρα δακτυλικών αποτυπωμάτων με Arduino UNO: Γεια, τι συμβαίνει, παιδιά! Akarsh εδώ από τη CETech. Σήμερα θα προσθέσουμε ένα προστατευτικό στρώμα στα έργα μας. Μην ανησυχείτε δεν πρόκειται να διορίσουμε σωματοφύλακες για το ίδιο. Θα είναι ένας χαριτωμένος λίγο καλός αισθητήρας δακτυλικών αποτυπωμάτων από το DFRobot. Έτσι
Διασύνδεση με οθόνη LCD M4 Συμπερίληψη: 5 βήματα
Διασύνδεση με οθόνη LCD M4 Συμπερίληψη: Αυτό το σεμινάριο θα μας επιτρέψει να ελέγξουμε μια οθόνη LCD μέσω Wi-Fi από το smartphone μας Αν δεν έχουμε το μικρό οδηγό, μπορούμε να χρησιμοποιήσουμε το arduino, αλλά κάτω από το σύνδεσμο για την ανάπτυξη του Drivemall. προτιμώντας το Drivemall από το cla
Διασύνδεση μονάδας GPS με Raspberry Pi: 10 βήματα
Διασύνδεση μονάδας GPS με Raspberry Pi: Γεια σας παιδιά !! Θέλετε να διασυνδέσετε μια μονάδα GPS με το Raspberry Pi; Αντιμετωπίζετε όμως κάποια δυσκολία να το κάνετε; «Μην ανησυχείς, είμαι εδώ για να σε βοηθήσω! Μπορείτε να ξεκινήσετε χρησιμοποιώντας τα ακόλουθα μέρη:
8051 διασύνδεση με DS1307 RTC και εμφάνιση χρονικής σήμανσης σε οθόνη LCD: 5 βήματα
8051 Interfacing With DS1307 RTC and Displaying Timestamp in LCD: Σε αυτό το σεμινάριο σας έχουμε εξηγήσει πώς μπορούμε να διασυνδέσουμε τον μικροελεγκτή 8051 με το ds1307 RTC. Εδώ εμφανίζουμε το χρόνο RTC σε lcd χρησιμοποιώντας προσομοίωση proteus
Διασύνδεση μονάδας οθόνης TM1637 με Arduino: 3 βήματα
Διασύνδεση μονάδας οθόνης TM1637 με Arduino: As-Salam-O-Aleykum! Αυτό το διδακτικό μου είναι για τη διασύνδεση της μονάδας οθόνης TM1637 με το Arduino. Αυτή είναι η μονάδα οθόνης τεσσάρων ψηφίων επτά τμημάτων. Έρχεται σε ποικιλία χρωμάτων. Το δικό μου είναι κόκκινο χρώμα. Χρησιμοποιεί Tm1637 Ic