Съдържание:
- Стъпка 1: Осъществяване на адаптерния кабел
- Стъпка 2: Променете скоростта на предаване в CMUCam
- Стъпка 3: Свържете стандартния кабел за програмиране и кода за качване
- Стъпка 4: Изключете конектора за програмиране
- Стъпка 5: Натиснете бутона, за да инициализирате серийната комуникация
Видео: Свързване на CMUCam2 с OOPIC: 5 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:55
От arsinio Следвайте още от автора:
Преглед на начина на свързване на CMUCam2 към и OOPIC.
Стъпка 1: Осъществяване на адаптерния кабел
1. Отидете на radioshack и купете 2 от тях: мъжки DB-9 Solder Cup Connector2. спойка щифт 5 на конектор А към щифт 5 на конектор В (ако погледнете внимателно конектора, те са маркирани) 3. спойка щифт 2 на конектор А към щифт 3 на конектор В (ако погледнете внимателно конектора, те са маркирани) 4. спойка щифт 3 на конектор А до щифт 2 на конектор В (ако погледнете внимателно конектора, те са маркирани)
Стъпка 2: Променете скоростта на предаване в CMUCam
Променете скоростта на обмен на CMUC камерата на 9600 бода (добавете джъмпер на позиция 0).
Стъпка 3: Свържете стандартния кабел за програмиране и кода за качване
Свържете стандартния кабел за програмиране и качете кода си. Ето един примерен код, за да започнете. Този код ще проследява движението с помощта на командите LF и FD. Той ще превключи IOLine 7 (свързан към светодиод) и ще отразява светодиода за състоянието на проследяване на CMUCam.
& apos ******** обекти, свързани със сериен порт ******** Dim serialPort As New oSerialPortDim txBuff As New oBuffer27 & aposchange 27, за да направи буфера по -голям/по -малъкDim rxBuff Като нов oBuffer10Dim serialActive_LED Като нов oDIO1Dim toggleSerial_Button Нов oDIO1Dim превключвателSerial_Event Като нов oEventDim превключвателSerial_Wire Като нов oWireDim serialReceive_Event Като нов oEventDim serialReceive_Wire Като нов oWire & apos ******** отстраняване на грешки свързани обекти ******** Dim statLED Като нов oDIO1 & apos *** ************************************** & apos*Общи подпрограми*& apos ****** ************************************** Sub main & aposinitialize all main_init & aposset нашата изходна маска да следвайте само центъра на масата CMUCAM_setOutputMask (2, 3) & aposload нашата първоначална рамка за разлика CMUCAM_loadDiffFrame () & апостартирайте изчислението на разликата CMUCAM_startDiffCalc (10) End SubSub main_init & aposinitialize a status LED LED statLED. IOLine = 7) Край на Су b & aposprocesses получени пакети Sub processPacket () Dim mx As Byte Dim my As Byte & aposcheck за Mx и My да бъде 0 & aposgranted, ако не са 0, местоположението ще бъде изключено (т.е. & aposT 12 34) & aposbut тогава те спечелят & apost отговарят на 0 критерия rxBuff. Location = 2 mx = rxBuff. Value rxBuff. Location = 4 my = rxBuff. Vueue & apost светодиодът трябва да мига в унисон с проследяващия светодиод на камерата If (mx = "0") And (my = "0") statLED = 0 Други statLED = 1 End IfEnd Sub & apos ****************************************** **** & apos*CMU Cam функции*& apos *************************************** ******* & apossets даденото доведе до включване, изключване, автоматично & aposparam ledNum брой светодиоди (0, 1) & aposparam val изключено, включено, автоматично (0, 1, 2) Функция CMUCAM_ledSet (ledNum като байт, val като байт) Тъй като Byte & aposVString не работеше и апостол точно в новия компилатор … & apos не съм сигурен за стария & apostxBuff. VString = "L0 0" & apossetup нашия ръчен низ низ txBuff. Location = 0 txBuff. Value = "L" txBuff. Location = 1 & apostx tr $ функцията е гадна … така че сега това се случва 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. Value = 4 = 13 & apossend командата serial_SendBufferEnd Sub & aposloads първоначалната разлика frameSub CMUCAM_loadDiffFrame () & apossetup нашия команден низ ръчно txBuff. Location = 0 txBuff. Value = "L" txBuff. Location = 1 txBuff. Val. Стойност = 13 & apossend командата serial_SendBufferEnd Sub & aposstarts изчисляване на разликите в рамката & aposparam праг на праг (0-9) Sub CMUCAM_startDiffCalc (thresh As Byte) Dim tens As Byte & apossetup нашия команден низ ръчно txBuff. Location = 0 txBuff. Location = 0 txBuff. V 1 txBuff. Value = "D" txBuff. Location = 2 txBuff. Value = "" txBuff. Location = 3 десетки = thresh/10 txBuff. Value = serial_toChar (десетки) txBuff. Location = 4 десетки = thresh. 10 txBuff = serial_toChar (thresh-tens) txBuff. Location = 5 txBuff. Value = 1 3 & apossend командата serial_SendBufferEnd Sub & apossets изходната маска & aposparam packetType тип пакет за маска (0, 1, 2 и т.н.) вижте страница 46 & aposparam маска стойност на маската, която да приложите (0-255) Sub CMUCAM_setOutputMask (packetType As байт, маска Aste) Като байт Dim десетки Като байт & apossetup нашият команден низ ръчно txBuff. Location = 0 txBuff. Value = "O" txBuff. Location = 1 txBuff. Value = "M" txBuff. Location = 2 txBuff. Value = "" & apospacuket тип tx. Местоположение = 3 txBuff. Value = serial_toChar (packetType) txBuff. Location = 4 txBuff. Value = "" & aposmask за прилагане на txBuff. Location = 5 стотици = маска/100 txBuff. Value = serial_toChar (стотици) txBuff. To (маска-стотици)/10 txBuff. Value = serial_toChar (десетки) txBuff. Location = 7 txBuff. Value = serial_toChar (маска-стотици десетки) & aposcarriage връщане txBuff. Location = 8 txBuff. Value = 13 & apossend Изпрати командата ******************************************* & apos*Общи серийни подпрограми *& апо s ********************************************** & апосинициализира серийния portSub serial_init () & aposinitialize бутон за включване и изключване на серийния порт (включване за изпълнение, изключване за програмиране) toggleSerial_Button. IOLine = 5 toggleSerial_Button. Direction = cvInput toggleSerial_Wire. Input. Link (toggleSerial_Wut). Връзка (toggleSerial_Event. Operate) = 0 & aposinitialize нашия сериен порт serialPort. Baud = cv9600 & aposinitialize нашия сериен статус LED serialActive_LED. IOLine = 6 serialActive_LED. Direction = cvOutput & aposwait тук, докато нашият сериен порт се активира Докато serialPort. завършване на пакети Sub serialRe ceive_Event_Code () & apos.received става невярно, когато 4 -байтовият буфер е празен. & aposreset буфера до началото rxBuff. Location = 0 В противен случай rxBuff. Location = rxBuff. Location + 1 EndIf WendEnd Sub & aposturns включване и изключване на серийния порт за програмиране Sub subgleSerial_Event_Code () If serialPort. Operate = cvFA serialPort. Operate = cvFalse serialActive_LED = 0 End IfEnd Sub & aposконвертира едноцифрено число в characterFunction serial_toChar (inVal като байт) Като байт Dim retVal Като байт Изберете случай inVal Case 0 retVal = "0" Case 1 retVal = "1" Case 2 retVal = "2" Случай 3 retVal = "3" Случай 4 retVal = "4" Случай 5 retVal = "5" Случай 6 retVal = "6" Случай 7 retVal = "7" Случай 8 retVal = "8" Случай 9 retVal = "9" Край Изберете serial_toChar = retValEnd Функция & apos sen ds данните, съдържащи се в txBuff & apos Забележка: уверете се, че буферът съдържа връщане на каретка (13) в края !! Sub serial_SendBuffer () & apositerate чрез, изпращайки всеки байт, end on carriage return txBuff. Location = 0 Докато 1 serialPort. Value = txBuff. Value ooPIC. Delay = 1 & aposmight не се нуждае от това & apossee ако е връщане на карета Ако txBuff. Value = 13 & aposbreak излиза от нашия цикъл Return End If & aposgo към следващия символ txBuff. Location = txBuff. Location + 1 WendEnd Sub
Стъпка 4: Изключете конектора за програмиране
След като конекторът за програмиране е изключен, свържете новия кабелен възел, както е показано по -долу. Адаптерът, направен в стъпка 1, трябва да позволява CMUCam да бъде директно включен в OOPIC
Стъпка 5: Натиснете бутона, за да инициализирате серийната комуникация
Бутонът на IOLine 5 ще стартира серийната комуникация между CMUCam и OOPIC. Тъй като серийният порт се използва както за програмиране, така и за CMUCam, вероятно трябва да има контролиран начин за превключване между двете.
Програмата няма да работи, докато този бутон не бъде натиснат. Ако натиснете бутона отново, серийният порт ще остане неактивен, което ще ви позволи да го програмирате. Светодиодът на IOLine 6 показва текущото състояние на серийния порт (включен означава активен, изключен означава готов за програмиране).
Препоръчано:
Свързване на капацитивен сензор за пръстови отпечатъци с Arduino UNO: 7 стъпки
Свързване на капацитивен сензор за пръстови отпечатъци с Arduino UNO: Хей, какво става, момчета! Akarsh тук от CETech. Днес ще добавим защитен слой към нашите проекти. Не се притеснявайте, че няма да назначим никакви телохранители за същото. Това ще бъде сладък малък добре изглеждащ сензор за пръстови отпечатъци от DFRobot
Свързване на сензор за газ с Arduino: 4 стъпки
Свързан сензор за газ с Arduino: Сензорът за дим MQ-2 е чувствителен към дим и към следните запалими газове: пропан-бутан, бутан, пропан, метан, алкохол, водород. Съпротивлението на сензора е различно в зависимост от вида газ. Сензорът за дим има вграден потенциометър
Свързване с калъф за iPhone X на RileyLink: 15 стъпки
Циклиране с калъф за iPhone X на RileyLink: Тази инструкция обхваща как да интегрирате устройство, наречено RileyLink, в калъф за батерия на iPhone X. Тази информация се основава в голяма степен на @Phil Garber, който написа прекрасна статия за Medium за направата на iPhone 6/7/8 случай. Вижте статията му ТУК. Кой
Ръководство за свързване на PLSD: Свързване към телевизори на Apple чрез AirPlay [неофициално]: 10 стъпки
Ръководство за свързване на PLSD: Свързване към Apple TV чрез AirPlay [Неофициално]: Следното ръководство е предоставено, за да илюстрира процеса на свързване към Apple TV към конферентна зала чрез AirPlay. Този неофициален ресурс е предоставен с любезното съдействие на администрацията, персонала и упълномощените гости на местния училищен район Perkins
Правилно свързване на светодиоди от серия срещу паралелно свързване: 6 стъпки
Правилно свързване на светодиоди от серия срещу паралелна връзка: В тази инструкция говорим за светодиоди - светодиоди и как можем да ги свържем, ако имаме няколко блока. Това е един урок, който бих искал да знам от самото начало, защото когато започнах да се занимавам с електронни схеми, изградих няколко