Kazalo:
- 1. korak: Izdelava adapterskega kabla
- 2. korak: spremenite hitrost prenosa podatkov na CMUCam
- 3. korak: Priključite standardni programski kabel in kodo za nalaganje
- 4. korak: Odklopite priključek za programiranje
- 5. korak: Za začetek serijske komunikacije pritisnite gumb
Video: Povezovanje CMUCam2 z OOPIC: 5 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:08
Avtor arsinioSledi več avtorja:
Pregled, kako povezati CMUCam2 z OOPIC.
1. korak: Izdelava adapterskega kabla
1. Pojdite na radioshack in kupite 2 od teh: Moški DB-9 priključek za spajkanje 2. spajkalni zatič 5 na priključku A na zatič 5 na priključku B (če pozorno pogledate priključek, sta označena) 3. spajkalni zatič 2 na priključku A na zatič 3 na priključku B (če pozorno pogledate priključek, sta označena) 4. spajkalni zatič 3 na priključku A do zatiča 2 na priključku B (če pozorno pogledate priključek, so označeni)
2. korak: spremenite hitrost prenosa podatkov na CMUCam
Spremenite hitrost prenosa kamere CMUC na 9600 baudov (dodajte mostiček v položaj 0).
3. korak: Priključite standardni programski kabel in kodo za nalaganje
Priključite standardni programski kabel in naložite kodo. Tukaj je nekaj primerov kode za začetek. Ta koda bo spremljala gibanje z ukazi LF in FD. Preklopil bo IOLine 7 (priključen na LED) in prikazal LED za sledenje statusu na CMUCam.
& apos ******** objekti, povezani s serijskimi vrati Novi oDIO1Dim toggleSerial_Event As New oEventDim toggleSerial_Wire As New oWireDim serialReceive_Event As New oEventDim serialReceive_Wire As New oWire & apos ******** odpravljanje napak povezanih predmetov ******** Dim statLED Kot novo oDIO1 & a *** ************************************ & apos*Splošne podprograme*& apos ****** ************************************** Sub main & aposinitialize all main_init & aposset our output mask to samo sledite središču mase CMUCAM_setOutputMask (2, 3) & aposload naš začetni okvir razlike CMUCAM_loadDiffFrame () & aposstart izračun razlike CMUCAM_startDiffCalc (10) End SubSub main_init & aposinitialize status LED LED statLED. IOLine = 7) Konec Su b & aposprocesi prejeti paketiSub processPacket () Dim mx As Byte Dim my As Byte & aposcheck za Mx in My, da bo 0 & aposgrantirano, če nista 0, bo lokacija izklopljena (tj. & aposT 12 34) & apostem pa bodo zmagali & apost izpolnjujejo merila 0 rxBuff. Location = 2 mx = rxBuff. Value rxBuff. Location = 4 my = rxBuff. Vrednost & apost LED naj utripa v sozvočju s sledilno LED na kameri If (mx = "0") And (my = "0") statLED = 0 Druga statLED = 1 Konec IfEnd Sub & apos ****************************************** **** & apos*CMU Cam funkcije*& apos *************************************** ******* & aposseti dano vodilo za vklop, izklop, samodejno & aposparam ledNum število LED (0, 1) & aposparam val izklop, vklop, samodejno (0, 1, 2) Funkcija CMUCAM_ledSet (ledNum kot bajt, val kot bajt) Ker Byte & aposVString ni & apost deloval prav v novem prevajalniku… & aposne prepričani o starem & apostxBuff. VString = "L0 0" & aposse nastavite naš ukazni niz ročno txBuff. Location = 0 txBuff. Value = "L" txBuff. Location = 1 & apostx tr $ funkcija je zanič… zato se to zdaj dogaja = 13 & pošlje ukaz serial_SendBufferEnd Sub & apospremeni začetno razliko frameSub CMUCAM_loadDiffFrame () & apossetup naš ukazni niz ročno txBuff. Location = 0 txBuff. Value = "L" txBuff. Location = 1 txBuff. Val. Vrednost = 13 & pošlji ukaz serial_SendBufferEnd Sub & aposstarts, ki izračuna razlike v okvirju & aposparam prag praga (0-9) Sub CMUCAM_startDiffCalc (thresh As Byte) Dim desetine As Byte & apossetup naš ukazni niz ročno txBuff. Location = 0 txBuff. Location = 0 txBuff. Location = 0 txBuff. Location = 0 txBuff. Location = 0 txBuff. 1 txBuff. Value = "D" txBuff. Location = 2 txBuff. Value = "" txBuff. Location = 3 desetice = thresh/10 txBuff. Value = serial_toChar (deset) txBuff. Location = 4 desetice = thresh/10 txBue = serial_toChar (prag-desetice) txBuff. Location = 5 txBuff. Value = 1 3 & apossend ukaz serial_SendBufferEnd Sub & apossets izhodna maska & aposparam paket Vrsta paketa za masko (0, 1, 2, itd) glejte stran 46 & aposparam maska vrednost maske za uporabo (0-255) Sub CMUCAM_setOutputMask (packetType As Byte, mask As Byte) Kot Byte Dim desetina Kot Byte & apossetup naš ukazni niz ročno txBuff. Location = 0 txBuff. Value = "O" txBuff. Location = 1 txBuff. Value = "M" txBuff. Location = 2 txBuff. Value = "" & apospacketket tx. Lokacija = 3 txBuff. Value = serial_toChar (vrsta paketa) txBuff. Location = 4 txBuff. Value = "" & aposmaska za uporabo txBuff. Location = 5 stotin = maska/100 txBuff. Value = serial_toChar (stotine) txBuff.to (mask-stotine)/10 txBuff. Value = serial_toChar (desetine) txBuff. Location = 7 txBuff. Value = serial_toChar (maska-stotine-desetice) & aposcarriage vrne txBuff. Location = 8 txBuff. Value = 13 & aposusi ******************************************* & apos*Splošne serijske podprograme *& apo s ******************************************** & aposinitializira serijsko portSub serial_init () & aposinitializirajte gumb za vklop in izklop serijskih vrat (vklopite za zagon, izklopite za programiranje) toggleSerial_Button. IOLine = 5 toggleSerial_Button. Direction = cvInput toggleSerial_Wire. Input. Link (toggleSerial_Wut). Povezava (toggleSerial_Event. Operate) toggleSerial_Wire. Operate = cvTrue & aposinitialize event to buffer our data serialReceive_Wire. Input. Link (serialPort. Received) serialReceive_Wire. Output. Link = 0 & aposinitialize naše serijska vrata serialPort. Baud = cv9600 & aposinitialize naše serijsko stanje LED serialActive_LED. IOLine = 6 serialActive_LED. Direction = cvOutput & aposvažajte tukaj, dokler se naša serijska vrata ne aktivirajo. SerialPort. paket zaključekSub serialRe ceive_Event_Code () & apos.received postane false, ko je 4 -bajtni vmesni pomnilnik prazen. Medtem ko (serialPort. Received = cvTrue) & aposkopira bajt v naš vmesni pomnilnik rxBuff. Value = serialPort. Value & aposcheck za konec paketa Če je rxBuff. Palket & aposnastavi medpomnilnik na začetek rxBuff. Location = 0 Sicer rxBuff. Location = rxBuff. Location + 1 EndIf WendEnd Sub & aposturn vklopi in izklopi serijska vrata za programiranjeSub toggleSerial_Event_Code () Če je serialPort. Operate = cvFalseal serialPort. Operate = cvFalse serialActive_LED = 0 End IfEnd Sub & pretvori enomestno številko v characterFunction serial_toChar (inVal As Byte) Kot Byte Dim retVal As Byte Select Case inVal Case 0 retVal = "0" Primer 1 retVal = "1" Primer 2 retVal = "2" Primer 3 retVal = "3" Primer 4 retVal = "4" Primer 5 retVal = "5" Primer 6 retVal = "6" Primer 7 retVal = "7" Primer 8 retVal = "8" Primer 9 retVal = "9" Konec Izberite serial_toChar = retValEnd Funkcija & apos sen ds podatki v txBuff & apos Opomba: poskrbite, da bo vmesni pomnilnik vseboval vrnitev nosilca (13) na koncu !!. Vrednost ooPIC. Delay = 1 & morda tega ne potrebuje & apossee, če je šlo za vrnitev nosilca Če je txBuff. Value = 13 & aposbreak iz naše zanke Return End If & aposgo na naslednji znak txBuff. Location = txBuff. Location + 1 WendEnd Sub
4. korak: Odklopite priključek za programiranje
Ko odklopite priključek za programiranje, priključite nov sklop kabla, kot je prikazano spodaj. Adapter, narejen v 1. koraku, mora omogočati, da se CMUCam neposredno priključi na OOPIC
5. korak: Za začetek serijske komunikacije pritisnite gumb
Gumb na IOLine 5 bo začel serijsko komunikacijo med CMUCam in OOPIC. Ker se serijska vrata uporabljajo tako za programiranje kot za CMUCam, bi verjetno moral obstajati nadzorovan način preklapljanja med tema dvema.
Program se ne zažene, dokler ne pritisnete tega gumba. Če znova pritisnete gumb, bodo serijska vrata neaktivna, kar vam omogoča programiranje. LED na IOLine 6 prikazuje trenutno stanje serijskih vrat (vklopljeno pomeni aktivno, izklopljeno pripravljeno za programiranje).
Priporočena:
Povezovanje kapacitivnega senzorja prstnih odtisov z Arduino UNO: 7 korakov
Povezovanje kapacitivnega senzorja prstnih odtisov z Arduinom UNO: Hej, kaj je, fantje! Akarsh tukaj iz CETech -a. Danes bomo našim projektom dodali zaščitno plast. Ne skrbite, za to ne bomo imenovali nobenega telesnega stražarja. To bo srčkan, lep videz senzorja prstnih odtisov podjetja DFRobot
Povezovanje z LCD zaslonom M4Vključitev: 5 korakov
Povezovanje z LCD zaslonom M4 Vključitev: Ta vadnica nam bo omogočila nadzor LCD zaslona prek Wi-Fi-ja iz našega pametnega telefona. Če nimamo gonilnika, lahko uporabimo arduino, vendar pod povezavo za razvoj Drivemall-a. raje Drivemall pred klao
8051 Povezovanje z DS1307 RTC in prikaz časovnega žiga na LCD -ju: 5 korakov
8051 Povezovanje z DS1307 RTC in prikaz časovnega žiga na LCD -ju: V tej vadnici smo vam razložili, kako lahko povežemo mikrokrmilnik 8051 z ds1307 RTC. Tukaj prikazujemo čas RTC na LCD -ju z uporabo simulacije proteusa
Povezovanje temperaturnega senzorja DS18B20 z Arduinom in ESP8266: 8 korakov
Povezovanje temperaturnega senzorja DS18B20 z Arduinom in ESP8266: Hej, kaj je, fantje! Akarsh tukaj iz CETech -a. Danes bomo v svoj arzenal dodali nov senzor, znan kot temperaturni senzor DS18B20. To je temperaturni senzor, podoben DHT11, vendar ima drugačen nabor aplikacij. Primerjali ga bomo z
Povezovanje Arduino WiFi z oblakom z uporabo ESP8266: 7 korakov
Priključitev Arduino WiFi v oblak z uporabo ESP8266: V tej vadnici vam bomo razložili, kako svoj Arduino povezati z oblakom IoT prek WiFi. Konfigurirali bomo nastavitev, sestavljeno iz Arduina in modula WiFi ESP8266, kot stvar IoT in jo pripravili za komunikacijo z oblakom AskSensors.L