Inhaltsverzeichnis:
- Schritt 1: Herstellen des Adapterkabels
- Schritt 2: Ändern Sie die Baudrate der CMUCam
- Schritt 3: Verbinden Sie das Standard-Programmierkabel und den Upload-Code
- Schritt 4: Trennen Sie den Programmieranschluss
- Schritt 5: Drücken Sie die Taste, um die serielle Kommunikation zu initialisieren
Video: Anschließen einer CMUCam2 an eine OOPIC - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:22
Von arsinioFolgen Sie mehr vom Autor:
Übersicht über die Schnittstelle zwischen einer CMUCam2 und OOPIC.
Schritt 1: Herstellen des Adapterkabels
1. Gehen Sie zum Radioshack und kaufen Sie 2 davon: Männlicher DB-9-Lötbecheranschluss2. Löten Sie Pin 5 von Stecker A mit Pin 5 von Stecker B (wenn Sie genau auf den Stecker schauen, sind sie markiert)3. Löten Sie Pin 2 von Stecker A mit Pin 3 von Stecker B (wenn Sie genau auf den Stecker schauen, sind sie markiert)4. Pin 3 von Stecker A mit Pin 2 von Stecker B verlöten (wenn Sie genau auf den Stecker schauen, sind sie markiert)
Schritt 2: Ändern Sie die Baudrate der CMUCam
Ändern Sie die Baudrate der CMUCamera auf 9600 Baud (fügen Sie einen Jumper auf Position 0).
Schritt 3: Verbinden Sie das Standard-Programmierkabel und den Upload-Code
Schließen Sie das Standard-Programmierkabel an und laden Sie Ihren Code hoch. Hier ist ein Beispielcode, um Ihnen den Einstieg zu erleichtern. Dieser Code verfolgt die Bewegung mit den LF- und FD-Befehlen. Es schaltet IOLine 7 (angeschlossen an eine LED) um und spiegelt die Tracking-Status-LED auf der CMUCam.
&apos******** Serial Port Related Objects ********Dim serialPort As New oSerialPortDim txBuff As New oBuffer27 &aposändern Sie die 27 um den Puffer größer/kleiner zu machenDim rxBuff As New oBuffer10Dim serialActive_LED As New oDIO1Dim toggleSerial_Button As New oDIO1Dim toggleSerial_Event As New oEventDim toggleSerial_Wire As New oWireDim serialReceive_Event As New oEventDim serialReceive_Wire As New oWire&apos******** Debug-bezogene Objekte ********Dim statLED As New oDIO1&apos******** *************************************&apos* Generische Subroutinen *&apos******* ****************************************Sub main &aposiinitialize alles main_init &aposset unsere Ausgabemaske auf nur Schwerpunkt folgen CMUCAM_setOutputMask(2, 3) &aposladen Sie unseren anfänglichen Differenzrahmen CMUCAM_loadDiffFrame() &aposstarten Sie die Differenzberechnung CMUCAM_startDiffCalc(10)End SubSub main_init &aposinitialisieren Sie eine Status-LED statLED. IOLine = 7 statLED. Direction = cvOutput &aposinitialize unsere serielle Schnittstelle)Ende So b&apos verarbeitet empfangene PaketeSub processPacket() Dim mx As Byte Dim my As Byte &aposcheck für Mx und My auf 0. Location = 2 mx = rxBuff. Value rxBuff. Location = 4 my = rxBuff. Value &apostdie LED sollte gleichzeitig mit der Tracking-LED an der Kamera blinken Wenn (mx = "0") Und (my = "0") statLED = 0 Sonst statLED = 1 End IfEnd Sub&apos******************************************** ****&apos* CMU-Cam-Funktionen *&apos**************************************** *******&apossets die angegebene LED auf on, off, automatic&aposparam ledNum Nummer der LED (0, 1)&aposparam val off, on, auto (0, 1, 2)Funktion CMUCAM_ledSet(ledNum As Byte, val As Byte). tr$ Funktion ist scheiße…also passiert das jetzt txBuff. Value = serial_toChar(ledNum) txBuff. Location = 2 txBuff. Value = " " txBuff. Location = 3 txBuff. Value = serial_toChar(val) txBuff. Location = 4 txBuff. Value = 13 &apossende den Befehl serial_SendBufferEnd Sub&aposlädt die anfängliche Differenz frameSub CMUCAM_loadDiffFrame() &apossetze unseren Befehlsstring manuell txBuff. Location = 0 txBuff. Value = "L" txBuff. Location = 1 txBuff. Value = "F" txBuff. Buff = 2 txBuff. Location = 2 Wert = 13 &apossende den Befehl serial_SendBufferEnd Sub&aposstartet die Berechnung der Framedifferenzen&aposparam Thresh Thresh Threshold (0-9)Sub CMUCAM_startDiffCalc(thresh As Byte) Dim tens As Byte &apossetup unseren Befehlsstring manuell txBuff. Location = 0 txBuff. Value = "F" tx. Buff 1 txBuff. Value = "D" txBuff. Location = 2 txBuff. Value = " " txBuff. Location = 3 Zehner = Thresh/10 txBuff. Value = serial_toChar(Zehner) txBuff. Location = 4 Zehner = Thresh/10 txBuff. Value = serial_toChar(thresh-tens) txBuff. Location = 5 txBuff. Value = 1 3 &apossende den Befehl serial_SendBufferEnd Sub&apossets die Ausgabemaske&aposparam packetType Typ des zu maskierenden Pakets (0, 1, 2, etc) siehe Seite 46&aposparam mask Maskenwert anzuwenden (0-255)Sub CMUCAM_setOutputMask(packetType As Byte, mask As Byte) Dim Hunderte As Byte Dim tens As Byte &apossetup unseren Befehlsstring manuell txBuff. Location = 0 txBuff. Value = "O" txBuff. Location = 1 txBuff. Value = "M" txBuff. Location = 2 txBuff. Value = " " &apospacket type txBuff. Location = 3 txBuff. Value = serial_toChar(packetType) txBuff. Location = 4 txBuff. Value = " " &aposmaske zum Anwenden von txBuff. Location = 5 Hunderter = Maske/100 txBuff. Value = serial_toChar(Hunderter) txBuff. Location = 6 Zehner = (Maske-Hunderter)/10 txBuff. Value = serial_toChar(Zehner) txBuff. Location = 7 txBuff. Value = serial_toChar(Maske-Hunderer-Zehner) &aposcarriage return txBuff. Location = 8 txBuff. Value = 13 &apossende den Befehl serial_Send*BufferEnd ********************************************&apos* Allgemeine serielle Unterprogramme *&apo s************************************************&apositialisiert die Seriennummer portSub serial_init() &aposiinitialisieren Sie eine Schaltfläche zum Ein- und Ausschalten der seriellen Schnittstelle (zum Ausführen einschalten, zum Programm ausschalten) toggleSerial_Button. IOLine = 5 toggleSerial_Button. Direction = cvInput toggleSerial_Wire. Input. Link(toggleSerial_Button. Value) toggleSerial_Wire. Output. Link(toggleSerial_Event. Operate) toggleSerial_Wire. Operate = cvTrue &aposiinitialisieren Sie ein Ereignis zum Puffern unserer Daten = 0 &aposinitialisieren Sie unsere serielle Schnittstelle serialPort. Baud = cv9600 &aposiinitialisieren Sie unsere serielle Status-LED serialActive_LED. IOLine = 6 serialActive_LED. Direction = cvOutput &aposwarten Sie hier, bis unsere serielle Schnittstelle aktiviert wird Während serialPort. Operate = cvFalse WendEnd Sub&kopiert Daten in unseren Empfangspuffer und prüft auf PaketvervollständigungSub serialRe ceive_Event_Code() &apos.received wird false wenn der 4Byte Puffer leer ist While(serialPort. Received = cvTrue) &aposkopie das Byte in unseren Puffer rxBuff. Value = serialPort. Value &aposcheck auf Paketende If rxBuff. Value = 13 &aposprocess package processPacket() &apossetze den Puffer auf den Anfang zurück rxBuff. Location = 0 Else rxBuff. Location = rxBuff. Location + 1 EndIf WendEnd Sub&aposschaltet die serielle Schnittstelle für die Programmierung ein und ausSub toggleSerial_Event_Code() If serialPort. Operate = cvFalse serialPort. Operate ElActive._vTrue serial serialPort. Operate = cvFalse serialActive_LED = 0 End IfEnd Sub&aposkonvertiert eine einstellige Zahl in ein ZeichenFunction 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" Fall 3 retVal = "3" Fall 4 retVal = "4" Fall 5 retVal = "5" Fall 6 retVal = "6" Fall 7 retVal = "7" Fall 8 retVal = "8" Fall 9 retVal = "9" End Select serial_toChar = retValEnd Function&apos sen ds die in txBuff&apos enthaltenen Daten Hinweis: Stellen Sie sicher, dass der Puffer am Ende einen Wagenrücklauf (13) enthält!!Sub serial_SendBuffer() &apositerate through, sende jedes Byte, end on carriage return txBuff. Location = 0 Während 1 serialPort. Value = txBuff. Value ooPIC. Delay = 1 &aposkönnte dies nicht brauchen &apossee wenn es ein Wagenrücklauf war If txBuff. Value = 13 &aposaus unserer Schleife ausbrechen Return End If &aposgehen zum nächsten Zeichen txBuff. Location = txBuff. Location + 1 WendEnd Sub
Schritt 4: Trennen Sie den Programmieranschluss
Sobald der Programmierstecker getrennt ist, bringen Sie die neue Kabelbaugruppe wie unten gezeigt an. Der in Schritt 1 hergestellte Adapter sollte es ermöglichen, die CMUCam direkt an die OOPIC. anzuschließen
Schritt 5: Drücken Sie die Taste, um die serielle Kommunikation zu initialisieren
Die Taste auf IOLine 5 startet die serielle Kommunikation zwischen der CMUCam und dem OOPIC. Da die serielle Schnittstelle sowohl für die Programmierung als auch für die CMUCam verwendet wird, sollte es wahrscheinlich eine kontrollierte Möglichkeit geben, zwischen den beiden umzuschalten.
Das Programm wird erst ausgeführt, wenn diese Taste gedrückt wird. Wenn Sie die Taste erneut drücken, wird die serielle Schnittstelle inaktiv, sodass Sie sie programmieren können. Die LED am IOLine 6 zeigt den aktuellen Status der seriellen Schnittstelle an (an bedeutet aktiv, aus bedeutet bereit zur Programmierung).
Empfohlen:
Erhalten Sie eine Benachrichtigungs-E-Mail, wenn ein Kanal auf ThingSpeak eine Weile nicht aktualisiert wurde – wikiHow
Erhalten Sie eine Benachrichtigungs-E-Mail, wenn ein Kanal auf ThingSpeak eine Weile nicht aktualisiert wurde: HintergrundgeschichteIch habe sechs automatisierte Gewächshäuser, die über Dublin, Irland, verteilt sind. Durch die Verwendung einer maßgeschneiderten Handy-App kann ich die automatisierten Funktionen in jedem Gewächshaus aus der Ferne überwachen und mit ihnen interagieren. Ich kann den Win manuell öffnen / schließen
Erstellen und Einfügen einer Tabelle und Hinzufügen zusätzlicher Spalten und/oder Zeilen zu dieser Tabelle in Microsoft Office Word 2007 – wikiHow
Erstellen und Einfügen einer Tabelle und Hinzufügen zusätzlicher Spalten und/oder Zeilen zu dieser Tabelle in Microsoft Office Word 2007: Hatten Sie schon einmal viele Daten, mit denen Sie arbeiten, und dachten Sie sich … dieser Daten besser und verständlicher aussehen?" Wenn ja, dann könnte eine Tabelle in Microsoft Office Word 2007 Ihre Antwort sein
So erstellen Sie eine Website (eine Schritt-für-Schritt-Anleitung): 4 Schritte
So erstellen Sie eine Website (eine Schritt-für-Schritt-Anleitung): In dieser Anleitung zeige ich Ihnen, wie die meisten Webentwickler ihre Websites erstellen und wie Sie teure Website-Builder vermeiden können, die für eine größere Website oft zu begrenzt sind helfen Ihnen, einige Fehler zu vermeiden, die ich am Anfang gemacht habe
Li-Ionen-Akku parallel und in Reihe anschließen: 5 Schritte (mit Bildern)
So schließen Sie einen Li-Ionen-Akku parallel und in Reihe an
Raspberry Pi an Laptop-Display anschließen (Windows-Betriebssystem) – wikiHow
So verbinden Sie Raspberry Pi mit Laptop-Display (Windows-Betriebssystem): In diesem Instructable lernen wir, wie Sie einen Laptop-Bildschirm als Display für Ihr Raspberry Pi 2 Modell B verwenden. Raspberry Pi-Displays sind auf dem Markt weit verbreitet, aber hübsch teuer. Anstatt also einen separaten Monitor zu kaufen, können Sie