Gränsyta för en CMUCam2 till en OOPIC (3 / 5 steg)

Steg 3: Anslut standard programmering kabeln och ladda upp koden



Att standard programmering kabeln och ladda upp din kod. Här är några exempelkod att komma igång.

Denna kod kommer spåra rörelse med kommandona LF och FD. Det kommer att växla IOLine 7 (ansluten till en LED) och spegla spårning status-LED på CMUCam.

"*** serieport relaterade objekt *** Dim serialPort som nya oSerialPortDim txBuff som ny oBuffer27 'ändra 27 att göra den buffert större/smallerDim rxBuff som ny oBuffer10Dim serialActive_LED som ny oDIO1Dim toggleSerial_Button som ny oDIO1Dim toggleSerial_Event som ny oEventDim toggleSerial_Wire som ny oWireDim serialReceive_Event som ny oEventDim serialReceive_Wire som ny oWire' *** debug relaterade objekt *** Dim statLED som ny oDIO1'*** ' * generiska subrutiner *" *** Sub main "initiera allt main_init" ställa vår produktion mask bara följa center av massa CMUCAM_setOutputMask (2, 3) "ladda våra inledande skillnaden ram CMUCAM_loadDiffFrame()" starta skillnaden beräkning CMUCAM_startDiffCalc (10) slutet SubSub main_init "initiera en status-LED statLED.IOLine = 7 statLED.Direction = cvOutput ' initiera våra seriell port serial_init () slutet Sub'processes fått packetsSub processPacket() Dim mx som Byte Dim min som Byte" kontrollera för båda Mx och min vara 0 ' beviljas om de inte är 0 , platsen kommer att vara avstängd (dvs 'T 12 34) "men då de inte kommer att uppfylla de kriterier som 0 rxBuff.Location = 2 mx = rxBuff.Value rxBuff.Location = 4 min = rxBuff.Value ' led bör blinka unisont med spårning LED på kameran om (mx ="0") och (min ="0") statLED = 0 annars statLED = 1 End IfEnd Sub'*** ' * CMU Cam funktioner *" *** "anger den tanke ledde till på , av, ledde automatic'param ledNum antal (0,1) "param val off, auto, (0,1,2) funktion CMUCAM_ledSet(ledNum As Byte, val As Byte) som Byte" VString var inte fungerar direkt i den nya kompilatorn.... ' inte säker om den gamla som "txBuff.VString =" L0 0 "" setup våra kommandosträngen manuellt txBuff.Location = 0 txBuff.Value = "L" txBuff.Location = 1 "str$ funktionen suger... så nu är det här hända txBuff.Value = serial_toChar(ledNum) txBuff.Location = 2 txBuff.Value =" "txBuff.Location = 3 txBuff.Value = serial_toChar(val) txBuff.Location = 4 txBuff.Value = 13 ' Skicka kommando serial_SendBufferEnd Sub'loads den första skillnaden frameSub CMUCAM_loadDiffFrame() ' setup våra kommandosträngen manuellt txBuff.Location = 0 txBuff.Value ="L"txBuff.Location = 1 txBuff.Value ="F"txBuff.Location = 2 txBuff.Value = 13" Skicka kommandot serial_SendBufferEnd Sub'starts beräkning av ram differences'param tröska tröskel (0-9) Sub CMUCAM_startDiffCalc(thresh As Byte) Dim TEN som Byte "setup våra kommandosträngen manuellt txBuff.Location = 0 txBuff.Value ="F"txBuff.Location = 1 txBuff.Value ="D"txBuff.Location = 2 txBuff.Value =" "txBuff.Location = 3 tior = tröska/10 txBuff.Value = serial_toChar(tens) txBuff.Location = 4 tior = tröska/10 txBuff.Value = serial_toChar(thresh-tens) txBuff.Location = 5 txBuff.Value = 13 ' Skicka kommando serial_SendBufferEnd Sub'sets utgång mask'param packetType typ av paket till mask (0,1,2 etc) se sidan 46' param mask mask värde att tillämpa (0-255) Sub CMUCAM_setOutputMask(packetType As Byte, mask As Byte) Dim hundratals som Byte Dim TEN som Byte "setup våra kommandosträngen manuellt txBuff.Location = 0 txBuff.Value ="O"txBuff.Location = 1 txBuff.Value ="M"txBuff.Location = 2 txBuff.Value =" "" packet typ txBuff.Location = 3 txBuff.Value = serial_toChar(packetType) txBuff.Location = 4 txBuff.Value = "" "mask att tillämpa txBuff.Location = 5 hundratals = mask/100 txBuff.Value = serial_toChar(hundreds) txBuff.Location = 6 tior = (mask-hundratals) / 10 txBuff.Value = serial_toChar(tens) txBuff.Location = 7 txBuff.Value = serial_toChar () mask-hundratals-TEN) "vagnretur txBuff.Location = 8 txBuff.Value = 13 'Skicka kommando serial_SendBufferEnd Sub' ***'* allmänna seriella subrutiner *" *** "initierar seriell portSub serial_init()" initiera en knapp för att slå på och av den seriella porten (aktivera att köra, stänga av program) toggleSerial_Button.IOLine = 5 toggleSerial_Button.Direction = cvInput toggleSerial_Wire.Input.Link(toggleSerial_Button.Value) toggleSerial_Wire.Output.Link(toggleSerial_Event.Operate) toggleSerial_Wire.Operate = cvTrue ' initiera en händelse att buffra våra data serialReceive_Wire.Input.Link(serialPort.Received) serialReceive_Wire.Output.Link(serialReceive_Event.Operate) serialReceive_Wire.Operate = cvTrue ' initiera våra RX buffert rxBuff.Location = 0 "initiera våra seriell port serialPort.Baud = cv9600 ' initiera våra seriell status-LED serialActive_LED. IOLine = 6 serialActive_LED. Riktning = cvOutput ' vänta här tills våra seriella porten blir aktiverat medan serialPort.Operate = cvFalse WendEnd Sub'copies data i våra mottagningsbufferten och kontroller för packet completionSub serialReceive_Event_Code() ".received blir falsk 4 byte buffert är tom While(serialPort.Received = cvTrue)" kopiera byten till vår buffert rxBuff.Value = serialPort.Value ' Kontrollera om slutet av paket om rxBuff.Value = 13 "bearbeta paket processPacket()" återställa bufferten till början rxBuff.Location = 0 annars rxBuff.Location = rxBuff.Location + 1 EndIf WendEnd Sub'turns på och av seriell port för programmingSub toggleSerial_Event_Code() om serialPort.Operate = cvFalse serialPort.Operate = cvTrue serialActive_LED = 1 Else serialPort.Operate = cvFalse serialActive_LED = 0 slut IfEnd Sub'converts ett ensiffriga tal till en characterFunction serial_toChar (inVal som Byte) som Byte Dim retVal som Byte Select Case inVal fallet 0 retVal = "0" ärende 1 retVal = "1" fall 2 retVal = "2" ärende 3 retVal = "3" fallet 4 retVal = "4" fall 5 retVal = "5" fallet 6 retVal = "6" fall 7 retVal = "7" fallet 8 retVal = "8" ärende 9 retVal = "9" slutet Välj serial_toChar = retValEnd funktion "skickar uppgifter i txBuff" OBS: kontrollera bufferten innehåller en vagnretur (13) i slutet! Sub serial_SendBuffer() "iterera igenom, skickar varje byte, slutet på transport tillbaka txBuff.Location = 0 medan 1 serialPort.Value = txBuff.Value ooPIC.Delay = 1" kan inte behöver detta ' se om det var en vagnretur om txBuff.Value = 13 "bryta våra loop tillbaka End If ' gå till nästa tecken txBuff.Location = txBuff.Location + 1 WendEnd Sub

Se Steg
Relaterade Ämnen

Gränsyta för elektroniska kretsar till Arduinos

gränsyta för elektroniska kretsar till ArduinoI detta instructable använder jag ett exempel på gränssnitt en Arduino att en ARINC 429 sändtagare för att demonstrera den allmänna processen för gränssnitt en Arduino att elektroniska kretsar så du kan a...

Gränsyta för en vindgivaren till lysdioder

mål:Genom att använda Arduino, gränssnittet en vind/andedräkt sensor till lysdioder. Via Arduino, du kan programmera lysdioderna att svara på olika nivåer av vinden från sensorn, kontroll ljusstyrkan på enskilda lysdioder, och programmet ett unikt öv...

PID rad efterföljare Atmega328P

INTRODUKTIONHej killar är 3: e året universitetsstudent Lovely Professional University, Indien för närvarande bedriver elektronik och kommunikation Engineering.Youtube-kanal::: https://www.youtube.com/channel/UC6ck0xanIUl14OorqW06VZAFacebook-profil::...

Hemautomation använder arduino med wifi, bluetooth och IR-fjärrkontroll

Detta är en handledning för att visa hur man bygger ett hem automationssystem med arduino med Wifi [ESP8266-01], bluetooth (HC-05) och IR-fjärrkontroll. Hemautomation resulterar i ett smartare hem och används för att ge en högre och friskare levnadss...

Gränsyta AXI TFT handkontrollen med MIG IP och använda den till Display med VGA-porten på Nexys4 DDR styrelsen

Denna handledning är den tredje delen av en serie i tre delar som behandlar inrättandet MIG IP från Xilinx använda DDR-minne ombord Nexys4 styrelsen och samverkar med AXI TFT Undersökningsperioden för att använda VGA-porten i styrelsen.Kontrollera at...

Gränsyta för en Digital mikrometer till en Arduino & VGA-skärm

Uppdatering: Igaging ursprung serien använder en Mitutoyo kabel och utgång Mitutoyo 52 bit datastream. Koden och scheman under arbete med SPC Digimatic skjutmått, mikrometrar, ringa indikatorer och skalor från båda företagen.Diskutera olika tillverka...

Gränsyta för motorer med Arduino

Gränsyta för olika typer av motorer med en mikro-controller är bland de mest grundläggande färdigheter en maker/robotics entusiasten behov att bemästra. I detta projekt ska jag bygga upp på den tidigare projektet Smart telefon kontrollerad LED-lampor...

Snabb Digital termometer med billiga USB till TTL omvandlare och DS18B20 - utan Arduino eller Raspberry Pi

I min tidigare instructable jag gav en introduktion till Digital termometer med DS18B20 och ESP8266 nodemcu ombord med SPI OLED-skärm och programmering använder Arduino IDE. Det krävs kunskaper i programmering, grundläggande elektronik och krävs lite...

Gränsyta MSP430 startfönstret med 7 segment display

Hej folk,Välkommen till min MSP430 Launchpad gränsyta för handledning, i detta instructable jag kommer gränssnitt en MSP430 startfönstret med 7 segment gemensam katod display.Observera att jag omformatering min ursprungliga artikel publicerad på www....

GRÄNSYTA för en 8 X 8 MATRISSKRIVARE LED DISPLAY med en AT89C51 MIKROKONTROLLER

Gränssnitt på en 8 x 8 matrisskrivare kan vara roligt och är lätt att spela med, så låt oss gå rakt in i det!Steg 1: Vad du behöver:AT89C51 MICRCONTROLLER8 X 8 MATRISSKRIVAREEN UTVECKLING STYRELSE ELLERDOT MATRIX MODULSteg 2: Principer du behöver vet...

Gränsyta 16 x 2 LCD med msp430 startfönstret i 8-bitars läge

Hallå där! I detta instructable jag ska berätta om 16 x 2 LCD och deras gränssnitt i 8-bitars läge. Som ni vet alla LCD står för vätska kristall uppvisning. Nu vi använde tidigare 7 segmenterar skärmar för visning, men nu LCD är Rekommenderad. Den fr...

Leksak kassaapparat hacka till tillägga verklig streckkodsläsare.

Min dotter blev besviken att skannern i hennes leksak kassaapparat inte fungerade riktigt. Jag löste detta genom gränsyta för en gammal PS/2 CueCat streckkodsläsare till en bild och sparar data till en seriell port i ASCII-format. Ursprungliga kassaa...

Gränsyta en M74HC238 3-8 Line dekoder med en Arduino (exempel)

detta är en grundläggande handledning för att ge dig en grundläggande förståelse för hur man använder en M74HC238 3-8 Line dekoder.Som namnet antyder, behöver du bara 3 digitala pins på din Arduino att styra alla 8 utgångar.Projektet gör att du kan b...

Hur man bygger den ultimata ingången till en hemmabio

Följ stegen i denna video att se hur jag skapade den väldigt cool "grand ingången" till min nya hemmabio (att projektet i en annan instructable). Från split kolumner till bokstäver överst, det är alla här....

Raspberry Pi dokument Scanner med automatisk belasta upp till Dropbox.

Har du någonsin fått orolig när du inte har kunnat hitta en räkning eller post-it lapp som du verkligen behövs? Bra med denna Raspberry Pi dokument Scanner nu behöver du inte! Alla dina anteckningar, kvitton och handlingar kommer nu att ett klick bor...

Hur till: Laser gravör!

Vi har alla sett filmer eller instructables visar upp laserskurna objekt och projekt, och jag är också säker på att de av oss som är beslutsfattare har undrat hur mycket en av dessa maskin skulle kosta. Tråkigt nog någon form av kraftfull skärare sku...

Film till Mutoscope

Bor i San Francisco, är jag omgiven av supercool platser av tekniska och kulturella historia. En av dessa platser är den fantastiska Musée Méchanique på piren 45 i Embarcadero. Museet har alla typer av mekaniska reliker från förra sekelskiftet som på...

Förvandla din mollskinn till en haj dinosaurie monster med 3D tryckta delar

Detta projekt ingår i ett kort och roligt samarbete med kollega Pier 9 sänds konstnärer i Residence Bernie Lubell, Maddy Maxey och Andrew Thurlow. I början av vår hemvist fick vi alla dessa coola lilla bärbara datorer. För ett litet projekt beslutat...

Göra din OP-1 till en leksak

OP-1 är en kraftfull synth och sampler. Det är också små och så välbyggd att barnen kan säkert spela med det, mosa knapparna och ha skitkul. En favorit spel bland OP-1 föräldrar är att prova barn sjunger, skär provet i bitar, pitch shift det hela nyc...