Daftar Isi:

Menghubungkan CMUCam2 ke OOPIC: 5 Langkah
Menghubungkan CMUCam2 ke OOPIC: 5 Langkah

Video: Menghubungkan CMUCam2 ke OOPIC: 5 Langkah

Video: Menghubungkan CMUCam2 ke OOPIC: 5 Langkah
Video: Tutorial Belajar Eagle PCB Part 33 : Memastikan routing berhasil 100% Tombol Autorouter 2024, Juli
Anonim

Oleh arsinioIkuti Lainnya oleh penulis:

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

Tinjauan tentang cara menghubungkan CMUCam2 ke dan OOPIC.

Langkah 1: Membuat Kabel Adaptor

Membuat Kabel Adaptor
Membuat Kabel Adaptor

1. Goto radioshack dan beli 2 ini: Konektor Solder Cup DB-9 Pria2. solder pin 5 pada konektor A ke pin 5 pada konektor B (jika diperhatikan baik-baik konektornya ada tandanya)3. solder pin 2 pada konektor A ke pin 3 pada konektor B (jika diperhatikan dengan seksama pada konektor, ada tandanya)4. solder pin 3 pada konektor A ke pin 2 pada konektor B (jika Anda perhatikan dengan seksama pada konektor, mereka ditandai)

Langkah 2: Ubah Baud Rate di CMUCam

Ubah Baud Rate di CMUCam
Ubah Baud Rate di CMUCam

Ubah baud rate CMUCamera menjadi 9600 baud (tambahkan jumper ke posisi 0).

Langkah 3: Hubungkan Kabel Pemrograman Standar dan Unggah Kode

Hubungkan Kabel Pemrograman Standar dan Kode Unggah
Hubungkan Kabel Pemrograman Standar dan Kode Unggah

Hubungkan kabel pemrograman standar dan unggah kode Anda. Berikut adalah beberapa contoh kode untuk Anda mulai. Kode ini akan melacak gerakan menggunakan perintah LF dan FD. Ini akan mengaktifkan IOLine 7 (dihubungkan ke LED) dan mencerminkan LED status pelacakan pada CMUCam.

&apos********* objek terkait port serial ******** Redupkan serialPort Sebagai Baru oSerialPortDim txBuff As New oBuffer27 &aposubah 27 untuk membuat buffer lebih besar/lebih kecilDim rxBuff As New oBuffer10Dim serialActive_LED As New oDIO1Dim toggleSerial_Button As oDIO1Dim baru toggleSerial_Event Sebagai oEventDim Baru toggleSerial_Wire As New oWireDim serialReceive_Event As New oEventDim serialReceive_Wire As New oWire&apo******* men-debug objek terkait ********Dim statLED Sebagai oDIO1&apos Baru********* **************************************&apos* Subrutin Generik *&apo****** ****************************************Sub utama &menginisialisasi semuanya main_init &mengatur topeng keluaran kami ke hanya mengikuti pusat massa CMUCAM_setOutputMask(2, 3) &aposload bingkai perbedaan awal kita CMUCAM_loadDiffFrame() &apostmulai perhitungan selisih CMUCAM_startDiffCalc(10)End SubSub main_init &aposialisasikan status LED statLED. IOLine = 7 statLED. Direction = cvOutput serial_init kami)Akhir Su b&aposproses menerima paketSub prosesPaket() Dim mx As Byte Redupkan As Byte saya &aposperiksa untuk Mx dan My menjadi 0 &diajukan jika bukan 0, lokasi akan mati (yaitu &apost 12 34) &apostapi kemudian mereka menang&apost memenuhi kriteria 0 rxBuff. Location = 2 mx = rxBuff. Value rxBuff. Location = 4 my = rxBuff. Value &aposthe led harus berkedip serentak dengan LED tracking pada kamera If (mx = "0") Dan (my = "0") statLED = 0 Else statLED = 1 End IfEnd Sub&apos****************************************** ****&apo* Fungsi Cam CMU *&apo*************************************** *******&mengatur led yang diberikan ke on, off, automatic&aposparam ledJumlah led (0, 1)&aposparam val off, on, auto (0, 1, 2)Fungsi CMUCAM_ledSet(ledNum As Byte, val As Byte) Karena Byte &aposVString tidak&apost bekerja tepat di kompilator baru… &apostidak yakin tentang yang lama &apostxBuff. VString = "L0 0" &apossetup string perintah kami secara manual txBuff. Location = 0 txBuff. Value = "L" txBuff. Location = 1 &aposthe s tr$ fungsi menyebalkan…jadi sekarang ini terjadi txBuff. Value = serial_toChar(ledNum) txBuff. Location = 2 txBuff. Value = " " txBuff. Location = 3 txBuff. Value = serial_toChar(val) txBuff. Location = 4 txBuff = 13 &mengirim perintah serial_SendBufferEnd Sub&mengajukan perbedaan awal frameSub CMUCAM_loadDiffFrame() &mengatur string perintah kita secara manual txBuff. Location = 0 txBuff. Value = "L" txBuff. Location = 1 txBuff. Value = "F" txBufft. Value = 13 &mengirim perintah serial_SendBufferEnd Sub&aposstarts menghitung perbedaan frame&aposparam ambang batas (0-9)Sub CMUCAM_startDiffCalc(thresh As Byte) Dim tens As Byte &apossetup string perintah kami secara manual txBuff. Location = 0 txBuff. Value = "F. Buff. 1 txBuff. Value = "D" txBuff. Location = 2 txBuff. Value = " " txBuff. Location = 3 tens = thresh/10 txBuff. Value = serial_toChar(puluhan) txBuff. Location = 4 puluhan = thresh/10 txBuff. Value = serial_toChar(thresh-puluhan) txBuff. Location = 5 txBuff. Value = 1 3 &apossend perintah serial_SendBufferEnd Sub&apossets output mask&aposparam packetJenis paket yang akan di-mask (0, 1, 2, dll) lihat halaman 46&aposparam mask nilai untuk diterapkan (0-255)Sub CMUCAM_setOutputMask(packetType As Byte, mask As Byte) Redupkan ratusan As Byte Dim tens As Byte &apossetup string perintah kita secara manual txBuff. Location = 0 txBuff. Value = "O" txBuff. Location = 1 txBuff. Value = "M" txBuff. Location = 2 txBuff. Value = " " &apospacket ketik 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(ratusan) txBuff =Location = 6 tens. (mask-ratusan)/10 txBuff. Value = serial_toChar(puluhan) txBuff. Location = 7 txBuff. Value = serial_toChar(mask-ratusan-puluhan) &aposcarriage return txBuff. Location = 8 txBuff. SubsendoChar(perintah-sambungan-ratusan-puluhan) &aposcarriage return txBuff. Location = 8 txBuff. *********************************************&apos* Subrutin Serial Umum *&apo s**********************************************&menginisialisasi serial portSub serial_init() &aposialisasikan tombol untuk menghidupkan dan mematikan port serial (nyalakan untuk menjalankan, matikan untuk program) toggleSerial_Button. IOLine = 5 toggleSerial_Button. Direction = cvInput toggleSerial_Wire. Input. Link(toggleSerial_Button. Value) toggleSerial_Wire. Tautan(toggleSerial_Event. Operate) toggleSerial_Wire. Operate = cvTrue &aposialisasikan acara untuk menyangga data serialReceive_Wire. Input. Link(serialPort. Received) serialReceive_Wire. Output. Link(serialReceive_Event. Operate) serialReceive_Wire. Operate kami = 0 &menginisialisasi port serial serialPort. Baud = cv9600 &mengaposinisialisasi status serial LED serialActive_LED. IOLine = 6 serialActive_LED. Direction = cvOutput &apostunggu di sini sampai port serial kita diaktifkan Sementara serialPort. Operate = cvFalse WendEnd Sub&aposkopi data ke buffer penerimaan kita penyelesaian paketSub serialRe ceive_Event_Code() &apos.received menjadi false ketika buffer 4byte kosong Sementara(serialPort. Received = cvTrue) &aposkopi byte ke buffer kami rxBuff. Value = serialPort. Value &aposperiksa akhir paket If rxBuff. Value = 13 &aposproses paket prosesPacket() &aposreset buffer ke awal rxBuff. Location = 0 Else rxBuff. Location = rxBuff. Location + 1 EndIf WendEnd Sub&menyalakan dan mematikan port serial untuk pemrogramanSub toggleSerial_Event_Code() If serialPort. Operate = cvFalse serialPort. Operate serialActive_True = 1 ElseActive_True serialPort. Operate = cvFalse serialActive_LED = 0 End IfEnd Sub&aposmengubah satu digit angka menjadi karakterFungsi 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" Kasus 3 retVal = "3" Kasus 4 retVal = "4" Kasus 5 retVal = "5" Kasus 6 retVal = "6" Kasus 7 retVal = "7" Kasus 8 retVal = "8" Kasus 9 retVal = "9" End Select serial_toChar = Fungsi retValEnd&apos sen ds data yang terdapat dalam txBuff&apos Catatan: pastikan buffer berisi carriage return (13) di akhir!!Sub serial_SendBuffer() &apositerate through, mengirimkan setiap byte, end on carriage return txBuff. Location = 0 While 1 serialPort. Value = txBuff. Nilai ooPIC. Delay = 1 &mungkin tidak membutuhkan ini &apossee jika itu adalah carriage return If txBuff. Value = 13 &aposbreak out of our loop Return End If &aposgo ke karakter berikutnya txBuff. Location = txBuff. Location + 1 WendEnd Sub

Langkah 4: Putuskan Konektor Pemrograman

Lepaskan Konektor Pemrograman
Lepaskan Konektor Pemrograman
Lepaskan Konektor Pemrograman
Lepaskan Konektor Pemrograman

Setelah konektor pemrograman terputus, pasang unit kabel baru seperti yang ditunjukkan di bawah ini. Adaptor yang dibuat pada langkah 1 harus memungkinkan CMUCam untuk langsung dicolokkan ke OOPIC

Langkah 5: Tekan Tombol untuk Inisialisasi Komunikasi Serial

Tombol pada IOLine 5 akan memulai komunikasi serial antara CMUCam dan OOPIC. Karena port serial digunakan untuk pemrograman dan CMUCam, mungkin harus ada cara yang terkontrol untuk beralih di antara keduanya.

Program tidak akan berjalan sampai tombol ini ditekan. Jika Anda menekan tombol lagi, port serial akan menjadi tidak aktif, memungkinkan Anda untuk memprogramnya. LED pada IOLine 6 menampilkan status port serial saat ini (on berarti aktif, mati berarti siap untuk pemrograman).

Direkomendasikan: