Isi kandungan:

Memadan CMUCam2 dengan OOPIK: 5 Langkah
Memadan CMUCam2 dengan OOPIK: 5 Langkah

Video: Memadan CMUCam2 dengan OOPIK: 5 Langkah

Video: Memadan CMUCam2 dengan OOPIK: 5 Langkah
Video: Mengenal Petugas Damkar - Fakta Menarik 2024, Julai
Anonim

Oleh arsinio Ikuti Lagi oleh pengarang:

Menghubungkan dua OOBoards bersama-sama menggunakan I2C
Menghubungkan dua OOBoards bersama-sama menggunakan I2C
Menghubungkan dua OOBoards bersama-sama menggunakan I2C
Menghubungkan dua OOBoards bersama-sama menggunakan I2C

Gambaran keseluruhan bagaimana untuk menghubungkan CMUCam2 ke dan OOPIC.

Langkah 1: Membuat Kabel Adaptor

Membuat Kabel Adaptor
Membuat Kabel Adaptor

1. Pergi rak radio dan beli 2 daripadanya: Penyambung Piala Solder Lelaki DB-92. pateri pin 5 pada penyambung A hingga pin 5 pada penyambung B (jika anda melihat dengan teliti pada penyambung, ia ditandakan) 3. pateri pin 2 pada penyambung A hingga pin 3 pada penyambung B (jika anda melihat dengan teliti pada penyambung, ia ditandakan) 4. pateri pin 3 pada penyambung A hingga pin 2 pada penyambung B (jika anda melihat dengan teliti pada penyambung, ia ditandakan)

Langkah 2: Tukar Baud Rate pada CMUCam

Tukar Baud Rate pada CMUCam
Tukar Baud Rate pada CMUCam

Tukar kadar baud CMUCamera menjadi 9600 baud (tambah pelompat ke kedudukan 0).

Langkah 3: Sambungkan Kabel Pengaturcaraan Standard dan Kod Muat Naik

Sambungkan Kabel Pengaturcaraan Standard dan Kod Muat Naik
Sambungkan Kabel Pengaturcaraan Standard dan Kod Muat Naik

Sambungkan kabel pengaturcaraan standard dan muat naik kod anda. Berikut adalah beberapa contoh kod untuk memulakan anda. Kod ini akan mengesan pergerakan menggunakan arahan LF dan FD. Ia akan menukar IOLine 7 (disambungkan ke LED) dan mencerminkan LED status penjejakan pada CMUCam.

& apos ******** objek berkaitan port bersiri ******** Dim serialPort As New oSerialPortDim txBuff As New oBuffer27 & ubah 27 untuk menjadikan buffer lebih besar / lebih kecilDim rxBuff Sebagai oBuffer10Dim serialActive_LED Sebagai Baru oDIO1Dim toggleSerial_Button As ODIO1Dim toggleSerial_Event Baru Sebagai oEventDim toggleSerial_Wire Baru Sebagai siri oWireDim BaruReceive_Event Sebagai New oEventDim serialReceive_Wire New oWire & apos Baru ******** debug objek yang berkaitan ******** Dim statLED Sebagai Baru ODIO1 & apos ******** ************************************** & apos * Subrutin Generik * & apos ****** **************************************** Sub utama & aposinisialisasi segalanya main_init & susun topeng keluaran kami untuk hanya ikuti pusat jisim CMUCAM_setOutputMask (2, 3) & muatkan kerangka perbezaan awal kami CMUCAM_loadDiffFrame () & mulakan pengiraan perbezaan CMUCAM_startDiffCalc (10) End SubSub main_init & aposinitialize status LED statLED. IOLine = 7 statLED. Direction = cv) Tamat Su b & aposesses menerima paketSub processPacket () Dim mx As Byte Dim my As Byte & aposcheck untuk kedua-dua Mx dan My menjadi 0 & aposgranted jika mereka tidak 0, lokasi akan dimatikan (iaitu & aposT 12 34) & aposbut kemudian mereka menang & murtad memenuhi 0 kriteria rxBuff. Lokasi = 2 mx = rxBuff. Value rxBuff. Location = 4 my = rxBuff. Value & aposthe led harus berkelip serentak dengan LED penjejakan pada kamera Jika (mx = "0") Dan (my = "0") statLED = 0 Lain statLED = 1 Sub End & apos Akhir ****************************************** **** & apos * Fungsi Cam CMU * & apos *************************************** ******* & aposset yang diberikan menyebabkan on, off, automatik & aposparam ledNum number of led (0, 1) & aposparam val off, on, auto (0, 1, 2) Function CMUCAM_ledSet (ledNum As Byte, val As Byte) Oleh kerana Byte & aposVString tidak berfungsi dengan baik dalam penyusun baru … & aposin tidak pasti mengenai yang lama & apostxBuff. VString = "L0 0" & susun rentetan arahan kami secara manual txBuff. Location = 0 txBuff. Value = "L" txBuff. Location = 1 & aposthe s fungsi tr $ menyedihkan… jadi sekarang ini berlaku txBuff. Value = serial_toChar (ledNum) txBuff. Location = 2 txBuff. Value = "" txBuff. Location = 3 txBuff. Value = serial_toChar (val) txBuff. Location = 4 txBuff. Value = 13 & tambah perintah serial_SendBufferEnd Sub & aposload the difference difference frameSub CMUCAM_loadDiffFrame () & susun rentetan perintah kami secara manual txBuff. Location = 0 txBuff. Value = "L" txBuff. Location = 1 txBuff. Value = "F" txBuff. Lokasi Nilai = 13 & tambah perintah bersiri_SendBufferEnd Sub & aposstart mengira perbezaan bingkai & ambang ambang aposparam (0-9) Sub CMUCAM_startDiffCalc (thresh As Byte) Dim tens As As Byte & apossetup rentetan arahan kami secara manual txBuff. Location = 0 txBuff. Value = "F" = "F" 1 txBuff. Value = "D" txBuff. Location = 2 txBuff. Value = "" txBuff. Location = 3 tens = thresh / 10 txBuff. Value = serial_toChar (puluhan) txBuff. Location = 4 puluhan = ambang / 10 txBuff. Value = serial_toChar (thresh-tens) txBuff. Lokasi = 5 txBuff. Nilai = 1 3 & tambah perintah serial_SendBufferEnd Sub & aposets masker output & paket aposparam Jenis jenis paket untuk topeng (0, 1, 2, dan lain-lain) lihat halaman 46 & nilai topeng topeng aposparam untuk diterapkan (0-255) Sub CMUCAM_setOutputMask (packetType As Byte, mask As Byte) Dim ratusan Sebagai Byte Dim tens As Byte & apossetup rentetan arahan kami secara manual txBuff. Location = 0 txBuff. Value = "O" txBuff. Location = 1 txBuff. Value = "M" txBuff. Location = 2 txBuff. Value = "" & jenis apospacket txBuff. Lokasi = 3 txBuff. Value = serial_toChar (packetType) txBuff. Location = 4 txBuff. Value = "" & aposmask untuk menerapkan txBuff. Location = 5 ratusan = mask / 100 txBuff. Value = serial_toChar (beratus-ratus) txBuff. Lokasi = 6 puluhan = (topeng-ratusan) / 10 txBuff. Value = serial_toChar (puluhan) txBuff. Lokasi = 7 txBuff. Value = serial_toChar (mask-ratusan-puluhan) & aposkar balik txBuff. Lokasi = 8 txBuff. Value = 13 & dapatkan perintah bersiri_SendBufferEnd Sub & apos ********************************************* & apos * Subrutin Bersiri Am * & apo s ********************************************** & menginisialisasi siri ini portSub serial_init () & aposinisialisasi butang untuk menghidupkan dan mematikan port bersiri (hidupkan untuk berjalan, matikan ke program) toggleSerial_Button. IOLine = 5 toggleSerial_Button. Direction = cvInput toggleSerial_Wire. Input. Link (toggleSerial_Button. Value_Wire. Oput_Oput. Oput_Out. Oput_Value). Pautan (toggleSerial_Event. Operate) toggleSerial_Wire. Operate = cvTrue & aposinitialize a event to buffer our data serialReceive_Wire. Input. Link (serialPort. Received) serialReceive_Wire. Output. Link (serialReceive_Event. Operate_Ovate. Operate_Oveate = 0 & aposinitialize serial port serial kamiPort. Baud = cv9600 & aposinitialize status bersiri kami LED serialActive_LED. IOLine = 6 serialActive_LED. Direction = cvOutput & aposwait di sini sehingga port bersiri kami diaktifkan Sementara serialPort. Operate = cvFalse WendEnd Sub & terima data kami untuk memasukkan dan menerima data kami untuk memasukkan dan menerima data kami penyelesaian paketSub serialRe ceive_Event_Code () & apos.received menjadi palsu apabila buffer 4byte kosong Sementara (serialPort. Received = cvTrue) & aposkopi bait ke buffer kami rxBuff. Value = serialPort. Value & aposcheck untuk akhir paket Jika rxBuff. Value = 13 & proses proses packet & atur semula penyangga ke awal rxBuff. Location = 0 Lain rxBuff. Location = rxBuff. Location + 1 EndIf WendEnd Sub & Aposturns on dan off port bersiri untuk pengaturcaraanSub toggleSerial_Event_Code () Sekiranya serialPort. Operate = cvFalse serialPort. Operate = cvElseAct = LVE = serialPort. Operate = cvFalse serialActive_LED = 0 End IfEnd Sub & aposconvert one digit digit to aarakFungsi serial_toChar (inVal As Byte) As Byte Dim retVal As Byte Select Case inVal Case 0 retVal = "0" Case 1 retVal = "1" Case 2 retVal = "2" Kes 3 retVal = "3" Kes 4 retVal = "4" Kes 5 retVal = "5" Kes 6 retVal = "6" Kes 7 retVal = "7" Kes 8 retVal = "8" Kes 9 retVal = "9" Akhir Pilih serial_toChar = retValEnd Fungsi & apos sen ds data yang terkandung dalam txBuff & apos Catatan: pastikan buffer mengandungi kembalinya kereta (13) di akhir !! Sub serial_SendBuffer () & apositerate melalui, menghantar setiap bait, berakhir pada kembalinya txBuff. Lokasi = 0 Sementara 1 serialPort. Value = txBuff. Value ooPIC. Delay = 1 & aposmight tidak memerlukan ini & aposee jika ia adalah kereta balik Jika txBuff. Value = 13 & aposbreak keluar dari gelung kami Return End If & aposgo ke watak seterusnya txBuff. Location = txBuff. Location + 1 WendEnd Sub

Langkah 4: Putuskan sambungan Penyambung Pengaturcaraan

Putuskan sambungan Penyambung Pengaturcaraan
Putuskan sambungan Penyambung Pengaturcaraan
Putuskan sambungan Penyambung Pengaturcaraan
Putuskan sambungan Penyambung Pengaturcaraan

Setelah penyambung pengaturcaraan terputus, pasangkan unit kabel baru seperti gambar di bawah. Penyesuai yang dibuat pada langkah 1 harus membolehkan CMUCam dipasang terus ke OOPIC

Langkah 5: Tekan Butang untuk Memulakan Komunikasi Bersiri

Butang pada IOLine 5 akan memulakan komunikasi bersiri antara CMUCam dan OOPIC. Oleh kerana port bersiri digunakan untuk pengaturcaraan dan CMUCam, mungkin ada cara terkawal untuk menukar antara keduanya.

Program tidak akan berjalan sehingga butang ini ditekan. Sekiranya anda menekan butang sekali lagi, port bersiri akan menjadi tidak aktif, yang membolehkan anda memprogramnya. LED pada IOLine 6 memaparkan status port bersiri semasa (berarti aktif, mati bermaksud siap untuk diprogramkan).

Disyorkan: