Sadržaj:
- Korak 1: Izrada adapterskog kabela
- Korak 2: Promijenite brzinu prijenosa na CMUCam -u
- Korak 3: Povežite standardni kabl za programiranje i kod za otpremanje
- Korak 4: Odvojite konektor za programiranje
- Korak 5: Pritisnite dugme za pokretanje serijske komunikacije
Video: Povezivanje CMUCam2 sa OOPIC: 5 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:09
Autor arsinioSledi Još autora:
Pregled načina povezivanja CMUCam2 sa OOPIC -om.
Korak 1: Izrada adapterskog kabela
1. Idite na radioshack i kupite 2 od ovih: Muški DB-9 konektor za lemljenje2. lemni pin 5 na konektoru A na pin 5 na konektoru B (ako pažljivo pogledate konektor, oni su označeni) 3. lemni pin 2 na konektoru A na pin 3 na konektoru B (ako pažljivo pogledate konektor, oni su označeni) 4. lemni pin 3 na konektoru A na pin 2 na konektoru B (ako pažljivo pogledate konektor, oni su označeni)
Korak 2: Promijenite brzinu prijenosa na CMUCam -u
Promijenite brzinu prijenosa CMUC kamere na 9600 bauda (dodajte kratkospojnik u položaj 0).
Korak 3: Povežite standardni kabl za programiranje i kod za otpremanje
Priključite standardni kabl za programiranje i učitajte svoj kôd. Evo nekoliko primjera koda za početak. Ovaj kod će pratiti kretanje pomoću LF i FD naredbi. Prebacivat će IOLine 7 (spojen na LED) i preslikavati LED status za praćenje na CMUCam.
& apos ******** objekti povezani sa serijskim portom ******** Dim serialPort As New oSerialPortDim txBuff As New oBuffer27 & aposchange 27 to make tampon veći/manjiDim rxBuff As New oBuffer10Dim serialActive_LED As New oDIO1Dim toggleSerial_Button Novi oDIO1Dim toggleSerial_Event kao novi oEventDim prekidačSerial_Wire kao novi oWireDim serialReceive_Event kao novi oEventDim serialReceive_Wire kao novi oWire & apos ******** otklanjanje grešaka povezanih objekata ******** Zatamnjivanje označeno kao novo oDIO1 & apos ***** ************************************ & apos*Genericke potprograme*& apos ****** ************************************** Sub main & aposinitializirajte sve main_init & postavite svoju izlaznu masku na samo slijedite centar mase CMUCAM_setOutputMask (2, 3) i ponovo učitajte naš okvir početne razlike CMUCAM_loadDiffFrame () & ponovo pokrenite izračun razlike CMUCAM_startDiffCalc (10) Završi SubSub main_init & aposinitializirajte status LED LED statLED. IOLine = 7) Kraj ned b & aposprocesi primljeni paketiSub processPacket () Dim mx As Byte Dim my As Byte & aposcheck da i Mx i My budu 0 & aposgrantirani ako nisu 0, lokacija će biti isključena (tj. & aposT 12 34) & apos ali tada će pobijediti i ispuniti 0 kriterija rxBuff. Location = 2 mx = rxBuff. Vrednost rxBuff. Location = 4 my = rxBuff. Vrednost i apost LED bi trebao treptati u skladu sa LED -om za praćenje na kameri If (mx = "0") And (my = "0") statLED = 0 Ostalo statLED = 1 Kraj IfEnd Sub & apos ****************************************** **** & apos*CMU Cam funkcije*& apos *************************************** ******* & aposseti zadanog vodila za uključivanje, isključivanje, automatsko & aposparam LEDBroj LED dioda (0, 1) & aposparam val isključeno, uključeno, auto (0, 1, 2) Funkcija CMUCAM_ledSet (ledNum Kao bajt, val Kao bajt) Kako Byte & aposVString nije & apost radio ispravno u novom kompajleru … & aposigurno u vezi sa starim & apostxBuff. VString = "L0 0" & ručno podesili naš komandni niz txBuff. Location = 0 txBuff. Value = "L" txBuff. Location = 1 & apostx tr $ funkcija je sranje … pa se ovo sada događa txBuff. Value = serial_toChar (ledNum) txBuff. Location = 2 txBuff. Value = "" txBuff. Location = 3 txBuff. Value = serial_toChar (val) txBuff. Location = 4 txBuff. Location = 4 txBuff. Location = 4 txBuff. Voz = 4 = 13 & pošalji naredbu serial_SendBufferEnd Sub & apospremi početnu razliku frameSub CMUCAM_loadDiffFrame () & apossetup našem komandnom nizu ručno txBuff. Location = 0 txBuff. Value = "L" txBuff. Location = 1 txBuff. Val. Vrijednost = 13 & pošalji naredbu serial_SendBufferEnd Sub & aposstarts izračunavanje razlika okvira & aposparam prag praga (0-9) Sub CMUCAM_startDiffCalc (thresh As Byte) Dim tenses As Byte & apossetup naš naredbeni niz ručno txBuff. Location = 0 txBuff. Location = 0 txBuff. V 1 txBuff. Value = "D" txBuff. Location = 2 txBuff. Value = "" txBuff. Location = 3 desetice = thresh/10 txBuff. Value = serial_toChar (desetice) txBuff. Location = 4 desetice = thresh. 10 txBue = serial_toChar (thresh-desetice) txBuff. Location = 5 txBuff. Value = 1 3 & apossend naredba serial_SendBufferEnd Pod & aposseti izlazna maska & aposparam packetType tip paketa za maskiranje (0, 1, 2, itd.) Vidi stranicu 46 & aposparam maska vrijednost maske za primjenu (0-255) Sub CMUCAM_setOutputMask (paket paket Tip Byte, maska As Byte) Kao zatamnjenje bajtova Kao bajt & apossetup naš naredbeni niz ruč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 primjenu txBuff. Location = 5 stotina = maska/100 txBuff. Value = serial_toChar (stotine) txBuff.to (maska-stotine)/10 txBuff. Value = serial_toChar (desetke) txBuff. Location = 7 txBuff. Value = serial_toChar (mask-stotine-desetke) & aposcarriage vrati txBuff. Location = 8 txBuff. Value = 13 & apossend naredba ******************************************* & apos*Opće serijske potprograme *& apo s ********************************************** i aposinitializira serijski broj portSub serial_init () & aposinitializirati dugme za uključivanje i isključivanje serijskog porta (uključiti za pokretanje, isključiti za programiranje) toggleSerial_Button. IOLine = 5 toggleSerial_Button. Direction = cvInput toggleSerial_Wire. Input. Link (toggleSerial_Wut). Veza (toggleSerial_Event. Operate) toggleSerial_Wire. Operate = cvTrue & aposinitialize event to buffer our data serialReceive_Wire. Input. Link (serialPort. Received) serialReceive_Wire. Output. Link (serialReceve_e) = 0 & aposinitializujte naš serijski port serialPort. Baud = cv9600 & aposinitializirajte naš serijski status LED serialActive_LED. IOLine = 6 serialActive_LED. Direction = cvOutput & aposvijekajte ovdje dok se naš serijski port ne aktivira. Dok serialPort provjerava i podržava? kompletiranje paketaSub serialRe ceive_Event_Code () & apos.received postaje lažno kada je bajt od 4 bajta prazan Dok (serialPort. Received = cvTrue) & aposkopira bajt u naš međuspremnik rxBuff. Value = serialPort. Value & aposcheck za kraj paketa Ako je rxBuff. Valcess = 13 & apospremiti međuspremnik na početak rxBuff. Location = 0 Ostalo rxBuff. Location = rxBuff. Location + 1 EndIf WendEnd Sub & aposturns on i off serijski port za programiranjeSub toggleSerial_Event_Code () If serialPort. Operate = cvFalseal serialPort. Operate = cvFalse serialActive_LED = 0 End IfEnd Sub & pretvara jednocifreni broj u characterFunction serial_toChar (inVal kao bajt) Kao bajt Dim retVal Kao bajt Izaberite slučaj inVal Case 0 retVal = "0" Case 1 retVal = "1" Case 2 retVal = "2" Slučaj 3 retVal = "3" Slučaj 4 retVal = "4" Slučaj 5 retVal = "5" Slučaj 6 retVal = "6" Slučaj 7 retVal = "7" Slučaj 8 retVal = "8" Slučaj 9 retVal = "9" Kraj Odaberite serial_toChar = retValEnd Funkcija & apos sen ds podaci sadržani u txBuff & apos Napomena: pobrinite se da međuspremnik sadrži povratak nosača (13) na kraju !! Sub serial_SendBuffer () & apositerate kroz, šaljući svaki bajt, kraj na nosaču nosača txBuff. Location = 0 Dok je 1 serialPort. Value = txBuff. Vrijednost ooPIC. Delay = 1 & aposmight ovo ne treba & apossee ako se radi o vraćanju nosača Ako je txBuff. Value = 13 & aposbreak van naše petlje Return End If & aposgo na sljedeći znak txBuff. Location = txBuff. Location + 1 WendEnd Sub
Korak 4: Odvojite konektor za programiranje
Nakon što se konektor za programiranje odvoji, priključite novi sklop kabla kao što je prikazano ispod. Adapter napravljen u koraku 1 trebao bi omogućiti CMUCam direktno priključivanje na OOPIC
Korak 5: Pritisnite dugme za pokretanje serijske komunikacije
Dugme na IOLine 5 započinje serijsku komunikaciju između CMUCam -a i OOPIC -a. Budući da se serijski port koristi i za programiranje i za CMUCam, vjerovatno bi trebao postojati kontrolirani način prebacivanja između njih.
Program se neće pokrenuti dok se ne pritisne ovo dugme. Ako ponovo pritisnete dugme, serijski port će biti neaktivan, što vam omogućava da ga programirate. LED na IOLine 6 prikazuje trenutni status serijskog porta (uključeno znači aktivno, isključeno znači spremno za programiranje).
Preporučuje se:
Povezivanje kapacitivnog senzora otiska prsta s Arduino UNO: 7 koraka
Povezivanje kapacitivnog senzora otiska prsta sa Arduinom UNO: Hej, šta ima, momci! Akarsh ovdje iz CETech -a. Danas ćemo našim projektima dodati zaštitni sloj. Ne brinite, nećemo imenovati nikakve tjelohranitelje za iste. To će biti simpatičan mali zgodan senzor otiska prsta iz DFRobota. Dakle
Povezivanje senzora plina s Arduinom: 4 koraka
Povezani senzor plina s Arduinom: Senzor dima MQ-2 osjetljiv je na dim i sljedeće zapaljive plinove: LPG, butan, propan, metan, alkohol, vodik. Otpor senzora je različit ovisno o vrsti plina. Senzor dima ima ugrađen potenciometar
Povezivanje sa LCD ekranom M4Uključak: 5 koraka
Povezivanje s LCD zaslonom M4Uključak: Ovaj vodič će nam omogućiti upravljanje LCD zaslonom putem Wi-Fi veze sa našeg pametnog telefona. Ako nemamo mali upravljački program, možemo koristiti arduino, ali ispod veze za razvoj Drivemall-a. Prednost preferirajući Drivemall umjesto klase
Povezivanje LM35 osjetnika temperature s Arduinom: 4 koraka
Povezivanje temperaturnog senzora LM35 s Arduinom: Termometri su korisni aparati koji se dugo koriste za mjerenje temperature. U ovom projektu napravili smo digitalni termometar zasnovan na Arduinu za prikaz trenutne temperature okoline i promjena temperature na LCD -u. Može biti depl
Vodič za povezivanje PLSD -a: Povezivanje na Apple TV putem AirPlay -a [Neslužbeno]: 10 koraka
PLSD Vodič za povezivanje: Povezivanje na Apple TV putem AirPlay -a [Neslužbeno]: Sljedeći vodič pruža ilustraciju procesa povezivanja sa Apple TV -ima u konferencijskoj sali putem AirPlay -a. Ovaj neslužbeni izvor dostupan je iz ljubaznosti administraciji, osoblju i ovlaštenim gostima Perkins lokalne školske oblasti