Innehållsförteckning:
- Steg 1: Gör adapterkabeln
- Steg 2: Ändra överföringshastigheten på CMUCam
- Steg 3: Anslut standardprogrammeringskabeln och uppladdningskoden
- Steg 4: Koppla bort programmeringsanslutningen
- Steg 5: Tryck på knappen för att initiera seriell kommunikation
Video: Gränssnitt mellan en CMUCam2 och en OOPIC: 5 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:47
Av arsinioFölj mer av författaren:
Översikt över hur du kopplar en CMUCam2 till och OOPIC.
Steg 1: Gör adapterkabeln
1. Gå till radioshack och köp 2 av dessa: DB-9 hanlödkoppkoppling 2. lödstift 5 på kontakt A till stift 5 på kontakt B (om du tittar noga på kontakten är de märkta) 3. lödstift 2 på kontakt A till stift 3 på kontakt B (om du tittar noga på kontakten är de märkta) 4. lödstift 3 på kontakt A till stift 2 på kontakt B (om du tittar noga på kontakten är de märkta)
Steg 2: Ändra överföringshastigheten på CMUCam
Ändra överföringshastigheten för CMUCamera till 9600 baud (lägg till en bygel till position 0).
Steg 3: Anslut standardprogrammeringskabeln och uppladdningskoden
Anslut den vanliga programmeringskabeln och ladda upp din kod. Här är några exempelkoder för att komma igång. Denna kod spårar rörelse med LF- och FD -kommandon. Det kommer att växla IOLine 7 (ansluten till en LED) och spegla spårningsstatus -LED på CMUCam.
& apos ******** serieportrelaterade objekt ******** Dim serialPort As New oSerialPortDim txBuff As New oBuffer27 & aposchange the 27 to make the buffer greater/smallerDim rxBuff As New oBuffer10Dim serialActive_LED As New oDIO1Dim toggleSerial_Button As New oDIO1Dim toggleSerial_Event As New oEventDim toggleSerial_Wire As New oWireDim serialReceive_Event As New oEventDim serialReceive_Wire As New oWire & apos ******** felsökningsrelaterade objekt ******** Dim statLED Som nya oDIO1 & apos ***** ************************************* och apos*Generiska underprogram*och apos ****** *** följ endast masscentrum CMUCAM_setOutputMask (2, 3) & aposload vår initiala differensram CMUCAM_loadDiffFrame () & aposstart differensberäkningen CMUCAM_startDiffCalc (10) Avsluta SubSub main_init & aposinitialisera en status -LED statLED. IOLine = 7 statLED. Dirizein) Avsluta Su b & aposprocesser mottagna paket SubprocessPaket () Dim mx As Byte Dim my As Byte & aposcheck för att både Mx och My ska vara 0 & aposgranteras om de inte är 0, platsen kommer att vara av (dvs. & aposT 12 34) & aposbut då vann de och apost uppfyller 0 -kriterierna rxBuff. Location = 2 mx = rxBuff. Value rxBuff. Location = 4 my = rxBuff. Value & aposthe led bör blinka i samklang med spårningslampan på kameran Om (mx = "0") Och (my = "0") statLED = 0 Annat statLED = 1 Avsluta IfEnd Sub & apos ****************************************** **** & apos*CMU Cam -funktioner*& apos **************************************** ******* & apossets den givna ledde till on, off, automatic & aposparam ledNum antal led (0, 1) & aposparam val off, on, auto (0, 1, 2) Function CMUCAM_ledSet (ledNum As Byte, val As Byte) Eftersom Byte & aposVString inte & apost fungerade rätt i den nya kompilatorn … & apos inte säker på den gamla & apostxBuff. VString = "L0 0" & apossetup vår kommandosträng manuellt txBuff. Location = 0 txBuff. Value = "L" txBuff. Location = 1 & aposthe s tr $ -funktionen suger … så nu händer detta 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 kommandot serial_SendBufferEnd Sub & aposloads den initiala differens frameSub CMUCAM_loadDiffFrame () & apossetup vår kommandosträng manuellt txBuff. Location = 0 txBuff. Value = "L" txBuff. Location = 1 txBuff. Value = "F" txBuff.uffx. Value = 13 & apossend kommandot serial_SendBufferEnd Sub & aposstarts som beräknar ramdifferenser & aposparam tröskelgräns (0-9) Sub CMUCAM_startDiffCalc (trösk som byte) Dim tio As Byte & apossetup vår kommandosträng manuellt txBuff. Location = 0 txBuff. Value = "F" txBuff. 1 txBuff. Value = "D" txBuff. Location = 2 txBuff. Value = "" txBuff. Location = 3 tior = trösk/10 txBuff. Value = serial_toChar (tio) txBuff. Location = 4 tior = trösk/10 txBuff. Värde = serial_toChar (tröskel) txBuff. Location = 5 txBuff. Value = 1 3 & apossend kommandot 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 hundratals As Byte Dim tens As Byte & apossetup vår kommandosträng manuellt txBuff. Location = 0 txBuff. Value = "O" txBuff. Location = 1 txBuff. Value = "M" txBuff. Location = 2 txBuff. Value = "" & apospacket type txBuff. Location = 3 txBuff. Value = serial_toChar (packetType) txBuff. Location = 4 txBuff. Value = "" & aposmask för att tillämpa txBuff. Location = 5 hundra = mask/100 txBuff. Value = serial_toChar (hundratals) txBuff. Location = 6 tior = (mask-hundratals)/10 txBuff. Value = serial_toChar (tens) txBuff. Location = 7 txBuff. Value = serial_toChar (mask-hundred-tens) & aposcarriage return txBuff. Location = 8 txBuff. Value = 13 & öppna kommandot serial_SendBufferEnd Sub & apos* ********************************************* och apos*Allmänna serieprogram *& apo s ********************************************** portSub serial_init () & aposinitialisera en knapp för att slå på och av serieporten (slå på för att köra, stäng av för att programmera) toggleSerial_Button. IOLine = 5 toggleSerial_Button. Direction = cvInput toggleSerial_Wire. Input. Link (toggleSerial_Button.). Länka (toggleSerial_Event. Operate) toggleSerial_Wire. Operate = cvTrue och aposinitialisera en händelse för att buffra våra data serialReceive_Wire. Input. Link (serialPort. Received) serialReceive_Wire. Output. Link (serialReceive_Event. Operate. Operate. Operate. Operate_Event. Operate_Event. OperateReceive_Event. OperateReceive_Event. OperateReserve_OfficeReserve_OfficeReserve_OfficeReserve_OfficeReserve_Office) = 0 & aposinitialisera vår seriella port serialPort. Baud = cv9600 & aposinitialisera vår seriella status LED serialActive_LED. IOLine = 6 serialActive_LED. Direction = cvOutput & aposwait här tills vår seriella port aktiveras medan serialPort. Operate = cvFalse WendEnd Sub och mottar vår buffert och mottar vår buffert och mottar vår buffert paketet kompletteringSub serialRe ceive_Event_Code () & apos.received blir falsk när 4 -bytesbufferten är tom Medan (serialPort. Received = cvTrue) & aposkopierar byten till vårt buffert rxBuff. Value = serialPort. Value & aposcheck för slutet av paketet om rxBuff. Value = 13 & aposprocess packet & aposåterställ bufferten till början rxBuff. Location = 0 Else rxBuff. Location = rxBuff. Location + 1 EndIf WendEnd Sub & aposturns på och av serieporten för programmeringSub toggleSerial_Event_Code () If serialPort. Operate = cvFalse serialPort. Trans = A serialPort. Operate = cvFalse serialActive_LED = 0 End IfEnd Sub & aposkonverterar ett enkelsiffrigt nummer till en characterFunction serial_toChar (inVal som byte) som byte Dim retVal som byte Välj fall inVal fall 0 retVal = "0" fall 1 retVal = "1" fall 2 retVal = "2" Case 3 retVal = "3" Case 4 retVal = "4" Case 5 retVal = "5" Case 6 retVal = "6" Case 7 retVal = "7" Case 8 retVal = "8" Case 9 retVal = "9" Slut Välj serial_toChar = retValEnd -funktion & apos sen ds data som finns i txBuff & apos Obs! Se till att bufferten innehåller en vagnretur (13) i slutet !! Sub serial_SendBuffer () & apositerera igenom, skicka varje byte, slut på vagnretur txBuff. Location = 0 Medan 1 serialPort. Value = txBuff. Value ooPIC. Delay = 1 & kan inte behöva detta & apossee om det var en vagnretur Om txBuff. Value = 13 & aposbreak ur vår loop Return End If & aposgo till nästa tecken txBuff. Location = txBuff. Location + 1 WendEnd Sub
Steg 4: Koppla bort programmeringsanslutningen
När programmeringskontakten har kopplats bort, fäst den nya kabelmonteringen enligt nedan. Adaptern som gjordes i steg 1 ska göra att CMUCam kan anslutas direkt till OOPIC
Steg 5: Tryck på knappen för att initiera seriell kommunikation
Knappen på IOLine 5 startar den seriella kommunikationen mellan CMUCam och OOPIC. Eftersom serieporten används för både programmering och CMUCam, borde det förmodligen finnas ett kontrollerat sätt att växla mellan de två.
Programmet körs inte förrän den här knappen trycks in. Om du trycker på knappen igen blir serieporten inaktiv så att du kan programmera den. Lysdioden på IOLine 6 visar den aktuella seriella portstatusen (på betyder aktiv, av betyder redo för programmering).
Rekommenderad:
Gränssnitt mellan människa och dator: Funktion som en gripare (tillverkad av Kirigami) med handledsrörelse med EMG: 7 steg
Mänskligt-datorgränssnitt: Fungera som en gripare (tillverkad av Kirigami) av handledsrörelse med hjälp av EMG .: Så det här var mitt första försök på ett gränssnitt mellan människa och dator. Jag fångade muskelaktiveringssignalerna från min handledsrörelse med en EMG-sensor, bearbetade genom python och arduino och aktiverade en origami -baserad gripare
Nextion Display - Gränssnitt och protokoll förklaras med PIC och Arduino: 10 steg
Nextion Display | Gränssnitt och protokoll förklaras med PIC och Arduino: Nextion Display är mycket lätt att använda och enkelt gränssnitt med mikrokontroller. Med hjälp av Nextion -editor kan vi konfigurera displayen och vi kan designa UI på displayen. Så baserat på händelser eller kommandon Nextion display kommer att verka för att visa
Gränssnitt mellan alla Arduino med en mobiltelefon: 6 steg (med bilder)
Gränssnitt mellan alla Arduino med en mobiltelefon: När du använder en Arduino kan det bli ganska irriterande att inte kunna använda den bara för att du inte har en dator tillgänglig. Kanske Windows eller Mac OS inte är kompatibelt, du har ingen dator alls eller du vill bara ha mer frihet för int
Hej Blynk! Gränssnitt mellan SPEEEduino och Blynk -appen: 5 steg
Hej Blynk! Gränssnitt mellan SPEEEduino och Blynk-appen: Vad är SPEEEduino? SPEEEduino är ett Wi-Fi-aktiverat mikrokontrollerkort baserat på Arduino-ekosystemet, byggt för lärare. SPEEEduino kombinerar formfaktorn och mikrokontrollern för Arduino med ESP8266 Wi-Fi SoC, vilket gör
Kopiera och klistra in och komma åt filer mellan flera datorer: 3 steg
Kopiera och klistra in och få åtkomst till filer mellan flera datorer: Jag hittade precis en webbplats som tillåter människor att kopiera och klistra in text, bilder, videor etc. mellan flera datorer. Det låter dig också skapa ett anslagstavla, ladda upp filer och skriva ut din webbsida. Och det bästa är att du inte ens har