Inhoudsopgave:
- Stap 1: De adapterkabel maken
- Stap 2: Wijzig de baudrate op de CMUCam
- Stap 3: Sluit de standaard programmeerkabel aan en upload code
- Stap 4: Koppel de programmeerconnector los
- Stap 5: Druk op de knop om seriële communicatie te initialiseren
Video: Een CMUCam2 koppelen aan een OOPIC: 5 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:19
Door arsinioVolg meer van de auteur:
Overzicht van de interface van een CMUCam2 naar en OOPIC.
Stap 1: De adapterkabel maken
1. Ga naar radioshack en koop er 2: mannelijke DB-9 soldeerbekerconnector2. soldeer pin 5 op connector A aan pin 5 op connector B (als je goed op de connector kijkt, zijn ze gemarkeerd)3. soldeer pin 2 op connector A aan pin 3 op connector B (als je goed op de connector kijkt, zijn ze gemarkeerd)4. soldeer pin 3 op connector A naar pin 2 op connector B (als je goed op de connector kijkt, zijn ze gemarkeerd)
Stap 2: Wijzig de baudrate op de CMUCam
Wijzig de baudrate van de CMUCamera naar 9600 baud (voeg een jumper toe aan positie 0).
Stap 3: Sluit de standaard programmeerkabel aan en upload code
Sluit de standaard programmeerkabel aan en upload je code. Hier is een voorbeeldcode om u op weg te helpen. Deze code volgt beweging met behulp van de LF- en FD-opdrachten. Het schakelt IOLine 7 (aangesloten op een LED) en spiegelt de trackingstatus-LED op de CMUCam.
&apos******** seriële poort gerelateerde objecten ********Dim serialPort As New oSerialPortDim txBuff As New oBuffer27 &aposchange de 27 om de buffer groter/kleiner te makenDim rxBuff As New oBuffer10Dim serialActive_LED As New oDIO1Dim toggleSerial_Button As Nieuw oDIO1Dim toggleSerial_Event als nieuw oEventDim toggleSerial_Wire als nieuw oWireDim serialReceive_Event als nieuw oEventDim serialReceive_Wire als nieuw oWire&apos******** debug-gerelateerde objecten ********Dim statLED als nieuw ******** ************************************&apos* Generieke subroutines *&apos****** ****************************************Sub main &apositialize alles main_init &aposset ons uitvoermasker om volg alleen het massamiddelpunt CMUCAM_setOutputMask(2, 3) &aposload ons initiële verschilframe CMUCAM_loadDiffFrame() &aposstart de verschilberekening CMUCAM_startDiffCalc(10)End SubSub main_init &apositialize a status LED statLED. IOLine = 7 statLED. Direction = cvOutput serial &aposinitialize onze()Eind zo b&apossprocesses ontvangen pakkettenSub processPacket() Dim mx As Byte Dim my As Byte &aposcheck voor zowel Mx als My om 0 te zijn &aposgrant als ze niet 0 zijn, zal de locatie uit zijn (dwz &aposT 12 34) &aposmaar dan zullen ze&apost voldoen aan de 0 criteria rxBuff. Locatie = 2 mx = rxBuff. Value rxBuff. Location = 4 my = rxBuff. Value &apostthe led moet knipperen in harmonie met de tracking-LED op de camera If (mx = "0") And (my = "0") statLED = 0 Anders statLED = 1 End IfEnd Sub'********************************************* ****&apos* CMU Cam Functies *&apos*************************************** *******&aposseert de gegeven led naar aan, uit, automatisch&aposparam ledNum aantal leds (0, 1)&aposparam val off, on, auto (0, 1, 2)Functie CMUCAM_ledSet(ledNum As Byte, val As Byte) Omdat Byte &aposVString&apost goed werkte in de nieuwe compiler… &aposniet zeker over de oude &apostxBuff. VString = "L0 0" &aposdeze commandostring handmatig instellen txBuff. Location = 0 txBuff. Value = "L" txBuff. Location = 1 &aposthe s tr$ functie zuigt…dus nu gebeurt dit txBuff. Value = serial_toChar(ledNum) txBuff. Location = 2 txBuff. Value = " " txBuff. Location = 3 txBuff. Value = serial_toChar(val) txBuff. Location = 4 txBuff. Value = 13 &apossend de opdracht serial_SendBufferEnd Sub&aposlaadt het initiële verschil frameSub CMUCAM_loadDiffFrame() &aposstel onze opdrachtreeks handmatig in txBuff. Location = 0 txBuff. Value = "L" txBuff. Location = 1 txBuff. Valux = "F" tB = 1 txBuff. Value = "F" tB = Waarde = 13 &apossend the command serial_SendBufferEnd Sub&aposstart berekening van frameverschillen&aposparam drempeldrempel (0-9)Sub CMUCAM_startDiffCalc(thresh As Byte) Dim tens As Byte &apossetup onze commandostring handmatig txBuff. Location = 0 txBuff. Valux = "F." 1 txBuff. Value = "D" txBuff. Location = 2 txBuff. Value = " " txBuff. Location = 3 tientallen = thresh/10 txBuff. Value = serial_toChar(tens) txBuff. Location = 4 tientallen = thresh/10 txBuff. Value = serial_toChar(thresh-tiens) txBuff. Location = 5 txBuff. Value = 1 3 &apossend the command serial_SendBufferEnd Sub&aposseert het uitvoermasker&aposparam packetType type pakket dat moet worden gemaskeerd (0, 1, 2, enz.) zie pagina 46&aposparam mask mask mask value to apply (0-255)Sub CMUCAM_setOutputMask(packetType As Byte, mask As Byte) Dim honderden As Byte Dim tens As Byte &apossetup onze commandoreeks handmatig txBuff. Location = 0 txBuff. Value = "O" txBuff. Location = 1 txBuff. Value = "M" txBuff. Location = 2 txBuff. Value = " " &apospacket type txBuff. Locatie = 3 txBuff. Value = serial_toChar(packetType) txBuff. Location = 4 txBuff. Value = " " &aposmask om txBuff. Location = 5 honderden = mask/100 txBuff. Value = serial_toChar(honderden) txBuff. Location = 6 tientallen (mask-hundreds)/10 txBuff. Value = serial_toChar(tens) txBuff. Location = 7 txBuff. Value = serial_toChar(mask-hundreds-tens) &aposcarriage return txBuff. Location = 8 txBuff. Value = 13 &apossend the command *********************************************&apos* Algemene seriële subroutines *&apo s**************************************************&apositialiseert de serie portSub serial_init() &apositialize een knop om de seriële poort in en uit te schakelen (aanzetten om te draaien, uitschakelen om te programmeren) toggleSerial_Button. IOLine = 5 toggleSerial_Button. Direction = cvInput toggleSerial_Wire. Input. Link(toggleSerial_Button. Value_Wire. Serial_Wire. Serial_Wire. Link(toggleSerial_Event. Operate) toggleSerial_Wire. Operate = cvTrue &apositialiseer een gebeurtenis om onze gegevens te bufferen serialReceive_Wire. Input. Link(serialPort. Received) serialReceive_Wire. Output. Link(serialReceive_Event. Operate =repositialReceive_Event. Operate) = 0 &apositialize onze seriële poort serialPort. Baud = cv9600 &aposinitialize onze seriële status-LED serialActive_LED. IOLine = 6 serialActive_LED. Direction = cvOutput &aposwait here totdat onze seriële poort wordt geactiveerd While serialPort. Operate = cvFalse WendEnd Sub&aposcopies-gegevens in onze ontvangstbuffer en controleert op pakketvoltooiingSub serialRe ceive_Event_Code() &apos.received wordt onwaar wanneer 4byte buffer leeg is While(serialPort. Received = cvTrue) &aposcopy de byte naar onze buffer rxBuff. Value = serialPort. Value &aposcheck voor einde van pakket If rxBuff. Value = 13 &aposprocess pakketprocesPacket() &aposreset de buffer naar het begin rxBuff. Location = 0 Else rxBuff. Location = rxBuff. Location + 1 EndIf WendEnd Sub&apostschakelt de seriële poort voor programmering in en uit Sub toggleSerial_Event_Code() If serialPort. Operate = cvFalse serialPort. Operate1Active = cvTrue serialPort. Operate = cvFalse serialActive_LED = 0 End IfEnd Sub&aposconverteert een getal van één cijfer naar een teken Functie serial_toChar (inVal As Byte) As Byte Dim ReVal As Byte Select Case inVal Case 0 retVal = "0" Case 1 retVal = "1" Case 2 retVal = "2" Geval 3 retVal = "3" Geval 4 retVal = "4" Geval 5 retVal = "5" Geval 6 retVal = "6" Geval 7 retVal = "7" Geval 8 retVal = "8" Geval 9 retVal = "9" End Selecteer serial_toChar = retValEnd Function&apos sen ds de gegevens in txBuff&apos Opmerking: zorg ervoor dat de buffer aan het einde een regelterugloop (13) bevat!!. Value ooPIC. Delay = 1 &aposheeft dit misschien niet nodig &apossee of het een regelterugloop was If txBuff. Value = 13 &aposbreak uit onze lus Return End If &aposga naar het volgende teken txBuff. Location = txBuff. Location + 1 WendEnd Sub
Stap 4: Koppel de programmeerconnector los
Nadat de programmeerconnector is losgekoppeld, bevestigt u de nieuwe kabeleenheid zoals hieronder weergegeven. Met de adapter die in stap 1 is gemaakt, moet de CMUCam rechtstreeks op de OOPIC. kunnen worden aangesloten
Stap 5: Druk op de knop om seriële communicatie te initialiseren
De knop op IOLine 5 start de seriële communicatie tussen de CMUCam en de OOPIC. Aangezien de seriële poort wordt gebruikt voor zowel programmering als de CMUCam, zou er waarschijnlijk een gecontroleerde manier moeten zijn om tussen beide te schakelen.
Het programma wordt pas uitgevoerd als op deze knop wordt gedrukt. Als u nogmaals op de knop drukt, wordt de seriële poort inactief, zodat u deze kunt programmeren. De LED op IOLine 6 geeft de huidige status van de seriële poort weer (aan betekent actief, uit betekent gereed voor programmering).
Aanbevolen:
Google-agenda's aan Google Sites koppelen: 5 stappen
Google-agenda's aan Google-sites koppelen: dit is een Instructable om u te leren hoe u Google-agenda's kunt maken, gebruiken en bewerken en deze vervolgens aan een Google-site kunt koppelen met behulp van de deelmogelijkheden. Dit kan voor veel mensen voordelig zijn, aangezien Google Sites kan worden gebruikt om i
Een GPS-module koppelen met de Raspberry Pi: Dashcam deel 2: 3 stappen
Een GPS-module koppelen met de Raspberry Pi: Dashcam Deel 2: Dit is deel 2 van het dashcam-project en in dit bericht zullen we leren hoe een GPS-module op de Raspberry Pi kan worden aangesloten. We zullen dan de GPS-gegevens gebruiken en als tekstoverlay aan de video toevoegen. Lees eerst deel 1 via de onderstaande link, voordat u
Een Xbox One-controller koppelen aan een Windows 10-laptop: 16 stappen
Een Xbox One-controller koppelen aan een Windows 10-laptop.: U hebt nodig: Xbox-controllerWindows 10-laptop
Een schijfbestand virtueel koppelen: 3 stappen
Hoe u een schijfbestand virtueel kunt koppelen: in deze instructie leert u hoe u een iso-bestand maakt van een groep bestanden of een schijf en vervolgens hoe u dat bestand op een virtuele harde schijf kunt mounten alsof het een schijf is. Deze specifieke software ondersteunt maximaal 15 virtuele schijven die allemaal m
Voeg een pc-synchronisatie-aansluiting toe aan een Nikon Sc-28 Ttl-kabel (gebruik de automatische instellingen voor een aan-cameraflits en trigger-uit-cameraflitsen!!): 4 stappen
Voeg een Pc Sync-aansluiting toe aan een Nikon Sc-28 TTL-kabel (gebruik Auto-instellingen voor een on Camera Flash en Trigger Off Camera Flashes !!): in deze instructable laat ik je zien hoe je een van die vervelende gepatenteerde 3-pins TTL-connectoren op de zijkant van een Nikon SC-28 off-camera TTL-kabel en vervang deze door een standaard pc-synchronisatieconnector. hierdoor kunt u een speciale flitser gebruiken, s