Përmbajtje:
- Hapi 1: Bërja e kabllit të përshtatësit
- Hapi 2: Ndryshoni Normën Baud në CMUCam
- Hapi 3: Lidhni Kabllon Standarde të Programimit dhe Kodin e Ngarkimit
- Hapi 4: Shkëputni lidhësin e programimit
- Hapi 5: Shtypni butonin për të filluar komunikimin serik
Video: Ndërfaqja e një CMUCam2 me një OOPIC: 5 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:29
Ndiqni më shumë nga autori:
Pasqyrë se si të ndërfaqet një CMUCam2 në dhe OOPIC.
Hapi 1: Bërja e kabllit të përshtatësit
1. Shkoni në radioshack dhe blini 2 nga këto: Mashkull DB-9 Solder Cup Connector2. lidhni pin 5 në lidhësin A në pin 5 në lidhësin B (nëse shikoni me kujdes lidhësin, ato janë shënuar) 3. lidhni kunjin 2 në lidhësin A në kunjin 3 në lidhësin B (nëse shikoni me kujdes lidhësin, ato janë shënuar) 4. lidhni pin 3 në lidhësin A në pin 2 në lidhësin B (nëse shikoni me kujdes lidhësin, ato janë të shënuara)
Hapi 2: Ndryshoni Normën Baud në CMUCam
Ndryshoni shpejtësinë e baudit të CMUCamera në 9600 baud (shtoni një kërcyes në pozicionin 0).
Hapi 3: Lidhni Kabllon Standarde të Programimit dhe Kodin e Ngarkimit
Lidhni kabllon standarde të programimit dhe ngarkoni kodin tuaj. Këtu është një shembull i kodit për të filluar. Ky kod do të ndjekë lëvizjen duke përdorur komandat LF dhe FD. Ai do të kalojë IOLine 7 (i lidhur me një LED) dhe do të pasqyrojë LED të statusit të gjurmimit në CMUCam.
& apos ** ODIO1Dim i ri toggleSerial_Event Si i ri oEventDim toggleSerial_Wire Si i ri oWireDim serialReceive_Event Si i ri oEventDim serialReceive_Wire Si i ri oWire & apos ******** objekte të lidhura me korrigjimin ******** Dim statLED Si New oDI *** ********************************** & apos*Nënrutina të përgjithshme*dhe apos ****** ************************************** Nën kryesore & aposinitializoni gjithçka main_init & aposset maskën tonë të prodhimit ndiqni vetëm qendrën e masës CMUCAM_setOutputMask (2, 3) & aposload kornizën tonë të diferencës fillestare CMUCAM_loadDiffFrame () dhe filloni llogaritjen e diferencës CMUCAM_startDiffCalc (10) Përfundoni NënSub kryesore_init & aposinitializoni një status LED statileDialitial_itialitial) Fund Su b & aposproceset morën paketa Nën procesi Paketa () Dim mx As Byte Dim im Si Byte & aposcheck për të dyja Mx dhe My të jenë 0 & aposgranted nëse ata nuk janë 0, vendndodhja do të jetë jashtë (dmth & aposT 12 34) & aposbut atëherë ata fituan dhe apostulli plotëson 0 kriteret rxBuff. Vendndodhja = 2 mx = rxBuff. Vlera rxBuff. Location = 4 my = rxBuff. Vlera dhe udhëzimet e largëta duhet të vezullojnë njëzëri me LED -in e përcjelljes në kamerë Nëse (mx = "0") Dhe (my = "0") statLED = 0 Tjetër statLED = 1 Përfundo Nëse Fundi & Ap ************************************** **** & apos*Funksionet e CMU Cam*& apos ************************************ ******* & apossets e dhëna çoi në on, off, automatik & aposparam led Numri i numrit të led (0, 1) & aposparam val off, on, auto (0, 1, 2) Funksioni CMUCAM_ledSet (ledNum As Byte, val As Byte) Ndërsa Byte & aposVString nuk ishte & apost duke punuar pikërisht në përpiluesin e ri … & nuk ishte i sigurt për atë të vjetër & apostxBuff. VString = "L0 0" & apossetup vargun tonë të komandave me dorë txBuff. Location = 0 txBuff. Value = "L" txBuff. Lokacioni = 1 & aposthe funksioni tr $ thith… kështu që tani kjo po ndodh 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 komandën serial_SendBufferEnd Sub & aposloads kuadrin e diferencës fillestareSub CMUCAM_loadDiffFrame () & apossetup vargun tonë të komandave me dorë txBuff. Location = 0 txBuff. Value = "L" txBuff. Location = 1 txBuff. Value = "2" = 2 Vlera = 13 & apossend komandën serial_SendBufferEnd Sub & aposstart llogarit dallimet e kuadrit & pragun e aposparam prag (0-9) Nën CMUCAM_startDiffCalc (thresh Si Byte) Dim dhjeta Si Byte & apossetup vargun e komandës sonë me dorë txBuff. Location = txB = Vendi = 0x 1 txBuff. Value = "D" txBuff. Lokacioni = 2 txBuff. Vlera = "" txBuff. Lokacioni = 3 dhjetëra = thresh/10 txBuff. Value = serial_toChar (dhjetra) txBuff. Lokacioni = 4 dhjetëra = thresh/10 txBuff. Vlera = serial_toChar (thresh-dhjetëshe) txBuff. Lokacioni = 5 txBuff. Vlera = 1 3 & apossend komandës Si Byte Dim dhjetëra Si Byte & apossetup komandën tonë manualisht txBuff. Location = 0 txBuff. Value = "O" txBuff. Location = 1 txBuff. Value = "M" txBuff. Location = 2 txBuff. Value = "" & lloji apospacket txBuff. Vendndodhja = 3 txBuff. Value = serial_toChar (packetType) txBuff. Location = 4 txBuff. Value = "" & aposmask për të aplikuar txBuff. Location = 5 qindra = maskë/100 txBuff. Vlera = serial_toChar (qindra) txBuff = Vendndodhje = 6 dhjetë (maska-qindra)/10 txBuff. Vlera = serial_toChar (dhjetëra) txBuff. Lokacioni = 7 txBuff. Vlera = serial_toChar (maska-qindra-dhjetëshe) dhe aposcarriage kthimi txBuff. Lokacioni = 8 txBuff. Vlera = 13 & apossend & aperos serial_Send ***************************************** dhe apos*Nënrutina të përgjithshme seriale *& apo s ****************************************** dhe aposinitializon serialin portSub serial_init () & aposinitialize një buton për të ndezur dhe fikur portin serik (aktivizo për të kandiduar, fikur programin) Lidhja (toggleSerial_Event. Operate) toggleSerial_Wire. Operate = cvTrue & aposinitialize një ngjarje për të ruajtur të dhënat tona serialReceive_Wire. Input. Link (serialPort. Received) serialReceive_Wire. Output. Link (serialReceive_Ececeive_EiveRiveRiveRiveRiveRiveRiveRiveure = 0 & aposinitialize portin tonë serial serialPort. Baud = cv9600 & aposinitialize statusin tonë serial LED serialActive_LED. IOLine = 6 serialActive_LED. Direction = cvOutput & aposwait këtu derisa porti ynë serial të aktivizohet Ndërsa serialPort. Operate = Cift përfundimi i paketësNën serialRe ceive_Event_Code () & apos.received bëhet false kur tamponi 4byte është i zbrazët Ndërsa (serialPort. Received = cvTrue) & aposkoponi bajtin në tamponin tonë rxBuff. Value = serialPort. Vlera & aposcheck për fundin e paketës Nëse rxBuff. Vlera = 13 & apospetë & aposreset tampon në fillim rxBuff. Location = 0 Tjetër rxBuff. Location = rxBuff. Location + 1 FundIf WendEnd Sub & kthehet në dhe jashtë portës seriale për programimSub toggleSerial_Event_Code () Nëse serialPort. Operate = cvFalse serial = CvFalse serialPort. Operate = cvFalse serialActive_LED = 0 Përfundoni IfEnd Sub & aposconverton një numër një shifror në një karakterFunksion serial_toChar (inVal As Byte) Si Byte Dim retVal Si Byte Zgjidh Rastin inVal Rast 0 retVal = "0" Rasti 1 retVal = "1" Rast 2 = "2" Rasti 3 retVal = "3" Rasti 4 retVal = "4" Rasti 5 retVal = "5" Rasti 6 retVal = "6" Rasti 7 retVal = "7" Rasti 8 retVal = "8" Rasti 9 retVal = "9" Fund Përzgjidhni serial_toChar = funksioni retValEnd & apos sen ds të dhënat që përmbahen në txBuff & apos Shënim: sigurohuni që tamponi përmban një kthim të karrocës (13) në fund !! Nën serial_SendBuffer () & apositerate përmes, duke dërguar çdo bajt, fund në kthimin e karrocës txBuff. Lokacioni = 0 Ndërsa 1 serialPort. Vlera = txBuff. Vlera ooPIC. Vonesa = 1 & aposmight nuk ka nevojë për këtë & apossee nëse ishte një karrocë kthimi Nëse txBuff. Value = 13 & aposbreak out of our loop Return End If & aposgo to the next character txBuff. Location = txBuff. Location + 1 WendEnd Sub
Hapi 4: Shkëputni lidhësin e programimit
Pasi të jetë shkëputur lidhësi i programimit, bashkëngjitni montimin e ri të kabllove siç tregohet më poshtë. Përshtatësi i bërë në hapin 1 duhet të lejojë që CMUCam të lidhet drejtpërdrejt me OOPIC
Hapi 5: Shtypni butonin për të filluar komunikimin serik
Butoni në IOLine 5 do të fillojë komunikimin serik midis CMUCam dhe OOPIC. Meqenëse porti serik përdoret si për programim ashtu edhe për CMUCam, ndoshta duhet të ketë një mënyrë të kontrolluar të ndërrimit të të dyjave.
Programi nuk do të funksionojë derisa të shtypet ky buton. Nëse shtypni përsëri butonin, porti serik do të jetë joaktiv, duke ju lejuar ta programoni atë. LED në IOLine 6 shfaq statusin aktual të portit serik (aktiv do të thotë aktiv, off do të thotë i gatshëm për programim).
Recommended:
Ndërfaqja me një ekran LCD M4 Përfshirja: 5 hapa
Ndërfaqja me një ekran LCD M4 Përfshirja: Ky tutorial do të na lejojë të kontrollojmë një ekran LCD nëpërmjet Wi-Fi nga smartphone-i ynë Nëse nuk kemi drejtuesin e vogël, mund të përdorim arduino, por poshtë lidhjes për zhvillimin e Drivemall. duke preferuar Drivemall mbi klasën
Ndërfaqja Njeri-Kompjuter: Funksioni i një shtrënguesi (bërë nga Kirigami) nga Lëvizja e kyçeve duke përdorur EMG .: 7 hapa
Ndërfaqja Njeri-Kompjuter: Funksioni i një shtrënguesi (bërë nga Kirigami) nga Lëvizja e kyçeve duke përdorur EMG .: Pra, kjo ishte përpjekja ime e parë në një ndërfaqe njeri-kompjuter. Kam kapur sinjalet e aktivizimit të muskujve të lëvizjes sime të dorës duke përdorur një sensor EMG, e përpunova atë përmes python dhe arduino dhe aktivizoi një gripper të bazuar në origami
Ndërfaqja e çdo Arduino me një celular: 6 hapa (me fotografi)
Ndërfaqja e çdo Arduino me një celular: Kur përdorni një Arduino, mund të rezultojë mjaft e bezdisshme të mos jeni në gjendje ta përdorni atë vetëm sepse nuk keni një kompjuter në dispozicion. Ndoshta Windows ose Mac OS nuk janë të pajtueshëm, nuk keni fare kompjuter ose thjesht dëshironi më shumë liri për int
Ndërfaqja e RFID-RC522 Me Arduino MEGA një skicë të thjeshtë: 4 hapa
Ndërfaqja e RFID-RC522 Me Arduino MEGA një Skicë të Thjeshtë: Hai atje në këtë tutorial do t'ju ndihmoj me ndërlidhjen e RFID-RC522 me Arduino Mega 2560 për të lexuar RFID dhe shfaqur të dhënat në Monitorin Serial. kështu që ju mund ta zgjeroni atë vetë Ju keni nevojë: Arduino Mega ose Arduino Uno
Ndërfaqja e një thirrjeje rrotulluese të telefonit me një Arduino: 6 hapa (me fotografi)
Ndërfaqja e telefonit rrotullues Dial me një Arduino: Një telefon i vjetër rrotullues mund të përdoret për një numër qëllimesh në projektet tuaja Arduino - përdorni atë si një pajisje të re hyrëse ose përdorni Arduino për të ndërlidhur një telefon rrotullues me kompjuterin tuaj. Ky është një udhëzues shumë themelor që përshkruan se si të ndërlidhni numrin në një