Turinys:
- 1 žingsnis: padarykite adapterio kabelį
- 2 veiksmas: pakeiskite „CMUCam“„Baud“greitį
- 3 veiksmas: prijunkite standartinį programavimo kabelį ir įkėlimo kodą
- 4 žingsnis: atjunkite programavimo jungtį
- 5 veiksmas: paspauskite mygtuką, kad inicijuotumėte nuoseklųjį ryšį
Video: CMUCam2 sąsaja su OOPIC: 5 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:49
Sekite daugiau autoriaus:
CMUCam2 ir OOPIC sąsajos apžvalga.
1 žingsnis: padarykite adapterio kabelį
1. Eikite į radioshack ir nusipirkite 2 iš jų: Vyriškas DB-9 Solder Cup Connector2. lituoklio kaištis 5 ant jungties A iki 5 kaištis ant jungties B (jei atidžiai žiūrite į jungtį, jie pažymėti) 3. lituoklio kaištis 2 ant jungties A iki 3 kaištis ant jungties B (jei atidžiai žiūrite į jungtį, jie pažymėti) 4. litavimo kaištis 3 ant jungties A iki 2 kaištis ant jungties B (jei atidžiai žiūrite į jungtį, jie pažymėti)
2 veiksmas: pakeiskite „CMUCam“„Baud“greitį
Pakeiskite „CMUCamera“duomenų perdavimo spartą į 9600 baudų (pridėkite trumpiklį į 0 padėtį).
3 veiksmas: prijunkite standartinį programavimo kabelį ir įkėlimo kodą
Prijunkite standartinį programavimo kabelį ir įkelkite kodą. Štai keletas kodo pavyzdžių, kaip pradėti. Šis kodas stebės judėjimą naudodamas LF ir FD komandas. Jis perjungs „IOLine 7“(prijungtas prie šviesos diodo) ir atspindės CMUCam stebėjimo būsenos šviesos diodą.
& apos ******** su serijiniu prievadu susiję objektai ******** Dim serialPort kaip naujas oSerialPortDim txBuff As new oBuffer27 & aposchange 27, kad buferis būtų didesnis/mažesnis Dim rxBuff As New oBuffer10Dim serialActive_LED As New oDIO1Dim perjungimasSerial_Button Naujas oDIO1Dim perjungimasSerial_Event Kaip naujas oEventDim toggleSerial_Wire Kaip naujas oWireDim serialRecept_Event As New oEventDim serialRecept_Wire As new oWire & apos ******** derinimo objektai ******** Dim statLED As New oDIO1 & apos ******* ************************************** ir apos*Bendrosios paprogramės*ir apos ****** *************************************** sekti tik masės centrą CMUCAM_setOutputMask (2, 3) ir įkelti mūsų pradinį skirtumo rėmelį CMUCAM_loadDiffFrame () & aposstart the Difference Calculation CMUCAM_startDiffCalc (10) End SubSub main_init & aposinitialize a status LED statLED. IOLine = 7 statLED. Direction = portoz) Pabaiga Su b & apoprocesai gavo paketusSub processPacket () Dim mx As Byte Dim my As Byte & aposcheck, kad tiek Mx, tiek My būtų 0 ir apogr., jei jie nėra 0, vieta bus išjungta (ty & aposT 12 34) & aposbut tada jie laimėjo ir apost atitinka 0 kriterijus rxBuff. Location = 2 mx = rxBuff. Value rxBuff. Location = 4 my = rxBuff. Value & aposthe led turėtų mirksėti kartu su fotoaparato sekimo šviesos diodu If (mx = "0") Ir (my = "0") statLED = 0 Kita statLED = 1 Pabaiga IfEnd Sub & apos ****************************************** **** & apos*CMU Cam Functions*& apos *************************************** ******* & nurodytos lemputės įjungtos, išjungtos, automatinis ir aposparam ledas LED skaičius (0, 1) ir aposparam val išjungtas, įjungtas, automatinis (0, 1, 2) Funkcija CMUCAM_ledSet (ledNum As baitas, val kaip baitas) Kadangi „Byte & aposVString“neveikė ir nesuveikė naujame kompiliatoriuje … ir nesate tikri dėl senosios & apostxBuff. VString = "L0 0" ir rankiniu būdu nustatykite mūsų komandų eilutę txBuff. Location = 0 txBuff. Value = "L" txBuff. Location = 1 & aposthe s tr $ funkcija žiauri … todėl dabar tai vyksta = 13 & atleisti komandą serial_SendBufferEnd Sub & įkelia pradinį skirtumą frameSub CMUCAM_loadDiffFrame () & apossetup mūsų komandų eilutę rankiniu būdu txBuff. Location = 0 txBuff. Value = "L" txBuff. Location = 1 txBuff. Value = "t" txBuff. Location = 1 txBuff. Value = "t" tx Reikšmė = 13 ir atšaukti komandą serial_SendBufferEnd Sub & aposstarts pradeda skaičiuoti kadrų skirtumus ir aposparamo slenkstį (0-9) Sub CMUCAM_startDiffCalc (thresh As Byte) Dim dešimtys As Byte & apossetup mūsų komandų eilutė rankiniu būdu txBuff. Location = 0 txBuff. Vex =uf " 1 txBuff. Value = "D" txBuff. Location = 2 txBuff. Value = "" txBuff. Location = 3 tens = thresh/10 txBuff. Value = serial_toChar (dešimtys) txBuff. Location = 4 dešimtys = Thresh/10 txBuff. Vertimas = serial_toChar (thresh-tens) txBuff. Location = 5 txBuff. Value = 1 3 & atleisti komandą serial_SendBufferEnd Sub & apossets the output mask & aposparam packetTip type of paketo to mask (0, 1, 2 ir tt), žr. 46 psl. Kaip baitas Dim dešimtys Kaip baitas & apossetup mūsų komandų eilutė rankiniu būdu txBuff. Location = 0 txBuff. Value = "O" txBuff. Location = 1 txBuff. Value = "M" txBuff. Location = 2 txBuff. Value = "" & apospacket type txBuff. Vieta = 3 txBuff. Value = serial_toChar (packetType) txBuff. Location = 4 txBuff. Value = "" & aposmask to piemērot txBuff. Location = 5 simtai = kaukė/100 txBuff. Value = serial_toChar (šimtai) txBuff. Location = 6 (kaukė-šimtai)/10 txBuff. Value = serial_toChar (dešimtys) txBuff. Location = 7 txBuff. Value = serial_toChar (kaukė-šimtai dešimčių) ir aposcarriage return txBuff. Location = 8 txBuff. Value = 13 & atleisti komandą serial_SendBuff ******************************************** ir apos*Bendrosios serijos paprogramės *& apo s ******************************************** ir apozitializuoja seriją portSub serial_init () & aposinitialize mygtuką, kad įjungtumėte ir išjungtumėte nuoseklųjį prievadą (įjunkite, kad paleistumėte, išjunkite programą) Nuoroda (toggleSerial_Event. Operate) toggleSerial_Wire. Operate = cvTrue & aposinitialize įvykį, kad buferizuotų mūsų duomenis serialRecept_Wire. Input. Link (serialPort. Received) serialRecept_Wire. Output. Link (serialRecept_Event. OperateRuReReReRePe = 0 ir apozitizuokite mūsų nuoseklųjį prievadą serialPort. Baud = cv9600 & aposinitializuokite mūsų serijos būsenos šviesos diodą serialActive_LED. IOLine = 6 serialActive_LED. Direction = cvOutput & aposwait čia, kol mūsų serijinis prievadas bus suaktyvintas. paketo užbaigimasSub serialRe ceive_Event_Code () & apos.received tampa klaidinga, kai 4 baitų buferis yra tuščias. Kai (serialPort. Received = cvTrue) & aposcopy baitą į mūsų buferį rxBuff. Value = serialPort. Value & aposcheck paketo pabaigai. Jei rxBuff. Value = 13 & aposreset buferį į pradžią rxBuff. Location = 0 Else rxBuff. Location = rxBuff. Location + 1 EndIf WendEnd Sub & aposturns on and off the serial port for programingSub toggleSerial_Event_Code () If serialPort. Operate = cvFpe serialPort = cvFru serialPort serialPort. Operate = cvFalse serialActive_LED = 0 Pabaiga IfEnd Sub & paverčia vieno skaitmens skaičių į simbolį = "2" 3 atvejis retVal = "3" 4 atvejis retVal = "4" 5 atvejis retVal = "5" 6 atvejis retVal = "6" 7 atvejis retVal = "7" 8 atvejis retVal = "8" 9 atvejis retVal = "9" Pabaiga Pasirinkite serial_toChar = retValEnd Funkcija & apos sen ds duomenys, esantys txBuff & apos Pastaba: įsitikinkite, kad buferio pabaigoje yra vežimo grąžinimas (13)!. Value ooPIC. Delay = 1 & šito & apossee gali nereikėti, jei tai būtų vežimo grąžinimas Jei txBuff. Value = 13 & aposbreak iš mūsų ciklo Grįžti pabaiga If & aposgo prie kito simbolio txBuff. Location = txBuff. Location + 1 WendEnd Sub
4 žingsnis: atjunkite programavimo jungtį
Atjungę programavimo jungtį, pritvirtinkite naują kabelių komplektą, kaip parodyta žemiau. 1 žingsnyje pagamintas adapteris turėtų leisti CMUCam tiesiogiai prijungti prie OOPIC
5 veiksmas: paspauskite mygtuką, kad inicijuotumėte nuoseklųjį ryšį
Mygtukas „IOLine 5“pradės nuoseklųjį ryšį tarp CMUCam ir OOPIC. Kadangi nuoseklusis prievadas naudojamas ir programavimui, ir CMUCam, tikriausiai turėtų būti kontroliuojamas perjungimo būdas.
Programa neveiks, kol nepaspausite šio mygtuko. Jei dar kartą paspausite mygtuką, nuoseklusis prievadas bus neaktyvus ir galėsite jį užprogramuoti. Šviesos diodas „IOLine 6“rodo dabartinę serijinio prievado būseną (įjungta reiškia aktyvų, išjungta - pasirengusi programuoti).
Rekomenduojamas:
Sąsaja su LCD ekranu M4 Įtraukimas: 5 žingsniai
Sąsaja naudojant LCD ekraną M4 pirmenybė „Drivemall“, o ne klasei
„Arduino“erdvėlaivio sąsaja: 3 žingsniai
„Arduino“erdvėlaivio sąsaja: „Hi Instructable“bendruomenė, šį kartą aš padariau vieną iš paprasčiausių projektų, kuriuos užbaigiau su „Arduino Uno“: erdvėlaivių grandine. Tai vadinama todėl, kad būtent tokio tipo programavimas ir grandinės būtų naudojamos ankstyvosiose mokslinės fantastikos TV laidose ir filmuose
8051 sąsaja su DS1307 RTC ir laiko žymos rodymas LCD ekrane: 5 žingsniai
8051 sąsaja su DS1307 RTC ir laiko žymos rodymas skystųjų kristalų ekrane: Šioje pamokoje mes jums paaiškinome, kaip galime sujungti 8051 mikrovaldiklį su ds1307 RTC. Čia mes rodome RTC laiką LCD, naudojant proteus modeliavimą
„Jammarduino DUE“- „pasidaryk pats“kompiuterio ir „Jamma“sąsaja arkadinėms spintelėms: 6 žingsniai
„Jammarduino DUE“- „pasidaryk pats“kompiuteris į „Jamma“sąsają, skirtą arkadinėms spintelėms: ši instrukcija parodys, kaip sukurti paprastą „Arduino DUE“skydą, kad prie kompiuterio būtų galima prijungti tikrą arkadinę mašiną su mažos skiriamosios gebos CRT ir „jamma“jungtimi. sustiprinti vaizdo signalą, sklindantį iš vaizdo įrašo
Darbo su „I2C“jutiklio sąsaja pradžia ?? - Sąsaja su jūsų MMA8451 naudojant ESP32: 8 žingsniai
Darbo su „I2C“jutiklio sąsaja pradžia ?? - Sąsaja su jūsų MMA8451 naudojant ESP32: Šioje pamokoje sužinosite viską apie tai, kaip paleisti, prijungti ir gauti I2C įrenginį (akselerometrą), dirbantį su valdikliu (Arduino, ESP32, ESP8266, ESP12 NodeMCU)