Obsah:
- Krok 1: Výroba kabelu adaptéru
- Krok 2: Změňte přenosovou rychlost na CMUCam
- Krok 3: Připojte standardní programovací kabel a nahrajte kód
- Krok 4: Odpojte konektor programování
- Krok 5: Stisknutím tlačítka inicializujete sériovou komunikaci
Video: Propojení CMUCam2 s OOPIC: 5 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:24
Od arsinioSledovat více od autora:
Přehled toho, jak propojit CMUCam2 a OOPIC.
Krok 1: Výroba kabelu adaptéru
1. Přejděte na radioshack a kupte 2 z nich: Male DB-9 Solder Cup Connector2. pájet kolík 5 na konektor A na pin 5 na konektor B (pokud se na konektor pečlivě podíváte, jsou označeny) 3. pájejte pin 2 na konektoru A na pin 3 na konektoru B (pokud se na konektor pečlivě podíváte, jsou označeny) 4. připájejte pin 3 na konektor A na pin 2 na konektor B (pokud se na konektor podíváte pozorně, jsou označeny)
Krok 2: Změňte přenosovou rychlost na CMUCam
Změňte přenosovou rychlost CMUCamery na 9600 baudů (přidejte propojku do polohy 0).
Krok 3: Připojte standardní programovací kabel a nahrajte kód
Připojte standardní programovací kabel a nahrajte svůj kód. Zde je příklad kódu, který vám pomůže začít. Tento kód bude sledovat pohyb pomocí příkazů LF a FD. Přepne IOLine 7 (připojený k LED) a zrcadlí LED stavu sledování na CMUCam.
& apos ******** objekty související se sériovým portem ******** Dim serialPort As New oSerialPortDim txBuff As New oBuffer27 & aposchange the 27 to buffer is greater/smallerDim rxBuff As New oBuffer10Dim serialActive_LED As New oDIO1Dim toggleSerial_Button As Nový přepínač oDIO1DimSerial_Event jako nový oEventDim toggleSerial_Wire jako nový oWireDim serialReceive_Event jako nový oEventDim serialReceive_Wire jako nový oWire & apos ******** ladit související objekty ******** Dim statLED jako nový o*** *************************************************************************************** ***************************************************************************************** pouze sledovat těžiště CMUCAM_setOutputMask (2, 3) & aposload náš počáteční rozdíl CMUCAM_loadDiffFrame () & aposstart the Difference Calculation CMUCAM_startDiffCalc (10) End SubSub main_init & aposinitialize a status LED statLED. IOLine = 7 statLED. Direction = cvO) Konec Su b & aposproceses receive packetsSub processPacket () Dim mx As Byte Dim my As Byte & aposcheck for Mx and My to be 0 & aposgranted if they are 0, the location will be off (ie & aposT 12 34) & aposbut then they won & apost meet the 0 criteria rxBuff. Location = 2 mx = rxBuff. Value rxBuff. Location = 4 my = rxBuff. Value & aposthe LED by měla blikat souběžně se sledovací LED na kameře If (mx = "0") And (my = "0") statLED = 0 Jinak statLED = 1 Konec IfEnd Sub & apos ************************************ **** & apos*Funkce CMU Cam*& apos ************************************* ******* & apossets the led led on on, off, automatic & aposparam led LED Number number of led (0, 1) & aposparam val off, on, auto (0, 1, 2) Function CMUCAM_ledSet (ledNum As Byte, val As Byte) Protože Byte & aposVString nepracoval přímo v novém kompilátoru … & aposx si není jistý starým & apostxBuff. VString = "L0 0" & apossetup náš příkazový řetězec ručně txBuff. Location = 0 txBuff. Value = "L" txBuff. Location = 1 & aposthe s tr $ funkce naštve … tak teď se to děje txBuff. Value = serial_toChar (ledNum) txBuff. Location = 2 txBuff. Value = "" txBuff. Location = 3 txBuff. Value = serial_toChar (val) txBuff. Location = 4 txBuff. Value = 13 & aposend the command serial_SendBufferEnd Sub & aposloads the initial difference frameSub CMUCAM_loadDiffFrame () & apossetup our command string manually txBuff. Location = 0 txBuff. Value = "L" txBuff. Location = 1 txBuff. Value = "F" txBuff Hodnota = 13 & aposse the command serial_SendBufferEnd Sub & aposstarts Calculation Frame Differences & aposparam thresh threshold (0-9) Sub CMUCAM_startDiffCalc (thresh As Byte) Dim desiatky As Byte & apossetup our command string manually txBuff. Location = 0 txBuff. Value = "F" tx 1 txBuff. Value = "D" txBuff. Location = 2 txBuff. Value = "" txBuff. Location = 3 desítky = mlátit/10 txBuff. Value = serial_toChar (desítky) txBuff. Location = 4 desítky = mlátit/10 txBuff. Value = serial_toChar (thresh-desiatky) txBuff. Location = 5 txBuff. Value = 1 3 & apossend the command serial_SendBufferEnd Sub & apossets the output mask & aposparam packetType type of packet to mask (0, 1, 2, etc.) see page 46 & aposparam mask mask value to apply (0-255) Sub CMUCAM_setOutputMask (packetType As Byte, mask As Byte) Dim stovky As Byte Dim dess As Byte & apossetup our command string manually txBuff. Location = 0 txBuff. Value = "O" txBuff. Location = 1 txBuff. Value = "M" txBuff. Location = 2 txBuff. Value = "" & apospacket type txBuff. Umístění = 3 txBuff. Value = serial_toChar (packetType) txBuff. Location = 4 txBuff. Value = "" & aposmask pro použití txBuff. Location = 5 stovek = maska/100 txBuff. Value = serial_toChar (stovky) txBuff. Location = 6 desítek = (masky-stovky)/10 txBuff. Value = serial_toChar (desítky) txBuff. Location = 7 txBuff. Value = serial_toChar (masky-stovky-desítky) & aposcarriage návrat txBuff. Location = 8 txBuff. Value = 13 & apossend příkaz serial_SendBufferEnd Sub & ************************************************************************************ *& apo s ******************************************************* portSub serial_init () & aposinitialize a button to turn on and off the serial port (turn on run, turn off to program) toggleSerial_Button. IOLine = 5 toggleSerial_Button. Direction = cvInput toggleSerial_Wire. Input. Link (toggleSerial_Button.al Odkaz (toggleSerial_Event. Operate) toggleSerial_Wire. Operate = cvTrue & aposinitialize an event to buffer our data serialReceive_Wire. Input. Link (serialPort. Received) serialReceive_Wire. Output. Link (serialReceive_Event. = 0 & aposinitialize our serial port serialPort. Baud = cv9600 & aposinitialize our serial status LED LED serialActive_LED. IOLine = 6 serialActive_LED. Direction = cvOutput & apos zde počkejte, až se aktivuje náš sériový port Zatímco serialPort. Operate = cvFalse WendEnd Sub & aposcopies dokončení paketu Sub subserle ceive_Event_Code () & apos.received se stane falešným, když je 4byte buffer prázdný While (serialPort. Received = cvTrue) & aposcopy the byte to our buffer rxBuff. Value = serialPort. Value & aposcheck for end of packet If rxBuff. Value = 13 & aposprocess packet & aposreset buffer na začátek rxBuff. Location = 0 Else rxBuff. Location = rxBuff. Location + 1 EndIf WendEnd Sub & aposturns on and off the serial port for programmingSub toggleSerial_Event_Code () If serialPort. Operate = cvFalse serialPort. O serialPort. Operate = cvFalse serialActive_LED = 0 End IfEnd Sub & apos převádí jednociferné číslo na znakFactory 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" Případ 3 retVal = "3" Případ 4 retVal = "4" Případ 5 retVal = "5" Případ 6 retVal = "6" Případ 7 retVal = "7" Případ 8 retVal = "8" Případ 9 retVal = "9" Konec Vyberte serial_toChar = retValEnd Funkce & apos sen ds data obsažená v txBuff & apos Poznámka: ujistěte se, že vyrovnávací paměť obsahuje na konci návrat na vozík (13) !! Sub serial_SendBuffer () & apositerate přes, odeslání každého bajtu, konec na carriage return txBuff. Location = 0 Zatímco 1 serialPort. Value = txBuff Hodnota.
Krok 4: Odpojte konektor programování
Jakmile je programovací konektor odpojen, připojte novou sestavu kabelu podle obrázku níže. Adaptér vyrobený v kroku 1 by měl umožnit přímé připojení modulu CMUCam k OOPIC
Krok 5: Stisknutím tlačítka inicializujete sériovou komunikaci
Tlačítko na IOLine 5 zahájí sériovou komunikaci mezi CMUCam a OOPIC. Protože je sériový port používán jak pro programování, tak pro CMUCam, pravděpodobně by měl existovat kontrolovaný způsob přepínání mezi nimi.
Program se nespustí, dokud nestisknete toto tlačítko. Pokud tlačítko stisknete znovu, sériový port bude neaktivní, což vám umožní jej naprogramovat. LED na IOLine 6 zobrazuje aktuální stav sériového portu (zapnuto znamená aktivní, vypnuto znamená připraveno k programování).
Doporučuje:
Propojení kapacitního snímače otisků prstů s Arduino UNO: 7 kroků
Propojení kapacitního snímače otisků prstů s Arduino UNO: Hej, co se děje, lidi! Akarsh zde od CETech. Dnes přidáme do našich projektů ochrannou vrstvu. Nebojte se, nebudeme jmenovat žádné bodyguardy za to samé. Bude to roztomilý, dobře vypadající snímač otisků prstů od DFRobot
Propojení teplotního senzoru DS18B20 s Arduino a ESP8266: 8 kroků
Propojení teplotního senzoru DS18B20 s Arduino a ESP8266: Hej, co se děje, lidi! Akarsh zde od CETech. Dnes přidáme do našeho arzenálu nový senzor známý jako teplotní senzor DS18B20. Jedná se o teplotní senzor podobný DHT11, ale má jinou sadu aplikací. Budeme to porovnávat s
Propojení mikrokontroléru Atmega16 s LED displejem Dot Matrix: 5 kroků
Propojení mikrokontroléru Atmega16 s bodovým LED displejem: V tomto projektu budeme propojovat jeden jehličkový LED displej s mikrokontrolérem AVR (Atmega16). Zde si ukážeme simulaci v proteusu, to samé můžete aplikovat na svůj hardware. Zde tedy nejprve vytiskneme jednu postavu, řekněme „A“v t
Adaptér Breakout řadiče PS2 pro propojení Arduino: 10 kroků
Adaptér Breakout řadiče PS2 pro propojení Arduino: Ovladač PlayStation 2 je opravdu užitečný gamepad pro robotické projekty. Je levný, hojně dostupný (z druhé ruky), obsahuje spoustu tlačítek a je kompatibilní s Arduino! Abyste jej mohli používat, potřebujete speciální konektor, který jej zapojí do
Propojení kampusu: 8 kroků
Campus Connections: Prohlášení o problému Konec semestru je pro studenty Indiana University často stresujícím obdobím roku, protože si dělají starosti se závěrečnými zkouškami a známkami. Indiana University již nabízí některé strategie ke zmírnění stresu, jako je Balance at Kelley