İçindekiler:
- Adım 1: Adaptör Kablosunun Yapılması
- Adım 2: CMUCam'da Baud Hızını Değiştirin
- Adım 3: Standart Programlama Kablosunu Bağlayın ve Kodu Yükleyin
- Adım 4: Programlama Konnektörünün Bağlantısını Kes
- Adım 5: Seri İletişimi Başlatmak için Düğmeye Basın
Video: Bir CMUCam2'yi bir OOPIC ile arayüzlemek: 5 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:21
Yazar tarafından arsinioFollow Daha fazlası:
Bir CMUCam2 ile OOPIC arasında nasıl arayüz oluşturulacağına genel bakış.
Adım 1: Adaptör Kablosunun Yapılması
1. Radioshack'e gidin ve bunlardan 2 tanesini satın alın:Male DB-9 Lehim Kupası Konnektörü2. A konektöründeki lehim pimi 5'i konektör B üzerindeki pim 5'e (konektöre dikkatlice bakarsanız işaretlenirler)3. A konektöründeki lehim pimi 2'yi konektör B üzerindeki pim 3'e (konektöre dikkatlice bakarsanız işaretlenirler)4. A konektöründeki lehim pimi 3'ü konektör B üzerindeki pim 2'ye (konektöre dikkatlice bakarsanız işaretlenirler)
Adım 2: CMUCam'da Baud Hızını Değiştirin
CMUCamera'nın baud hızını 9600 baud olarak değiştirin (0 konumuna bir jumper ekleyin).
Adım 3: Standart Programlama Kablosunu Bağlayın ve Kodu Yükleyin
Standart programlama kablosunu bağlayın ve kodunuzu yükleyin. İşte başlamanıza yardımcı olacak bazı örnek kodlar. Bu kod, LF ve FD komutlarını kullanarak hareketi izleyecektir. IOLine 7'yi (bir LED'e bağlı) değiştirir ve CMUCam'daki izleme durumu LED'ini yansıtır.
&apos******** seri port ile ilgili nesneler ********Dim serialPort As Yeni oSerialPortDim txBuff As New oBuffer27 &apos27'yi değiştirerek tamponu daha büyük/küçük yapmak içinDim rxBuff As New oBuffer10Dim serialActive_LED As New oDIO1Dim toggleSerial_Button As Yeni oDIO1Dim toggleSerial_Event Yeni Olarak oEventDim toggleSerial_Wire As New oWireDim serialReceive_Event As New oEventDim serialReceive_Wire Yeni oWire&apos******** hata ayıklama ilgili nesneler ******** Yeni oDIO1&apos olarak karart******** ****************************************&apos* Genel Alt Programlar *&apos****** ****************************************Sub main &her şeyi main_init'e sıfırlayın &çıktı maskemizi sadece kütle merkezini takip et CMUCAM_setOutputMask(2, 3) &apos ilk fark çerçevemizi CMUCAM_loadDiffFrame() &fark hesaplamasını başlat)Son Su b&aposprocesses alınan paketlerSub processPacket() Dim mx As Byte Dim my As Byte &aposcheck hem Mx hem de My için 0 olacak & 0 değillerse, konum kapalı olacak (yani &aposT 12 34) &aposbut sonra kazandılar&apost 0 kriterini karşılıyor rxBuff. Konum = 2 mx = rxBuff. Value rxBuff. Location = 4 my = rxBuff. Value &apos, kamera üzerindeki izleme LED'i ile birlikte yanıp sönmelidir If (mx = "0") And (my = "0") statLED = 0 Else statLED = 1 End IfEnd Sub'*********************************************** ****&apos* CMU Cam Fonksiyonları *&apos******************************************** *******'verilen ledi on, off, otomatik'oluşturur ledNum led sayısı (0, 1)&aposparam val off, on, auto (0, 1, 2)Fonksiyon CMUCAM_ledSet(ledNum As Byte, val As Byte) Byte &aposVString&apost yeni derleyicide doğru çalışmıyordu… &aposthe eskisinden emin değilim &apostxBuff. VString = "L0 0" &aposthe s tr$ işlevi berbat… şimdi bu oluyor txBuff. Value = serial_toChar(ledNum) txBuff. Location = 2 txBuff. Value = " " txBuff. Location = 3 txBuff. Value = serial_toChar(val) txBuff. Location = 4 txBuff = 13 serial_SendBufferEnd Sub&apossend komutu ilk farkı frameSub CMUCAM_loadDiffFrame() &aposssets komut dizimizi manuel olarak txBuff. Location = 0 txBuff. Value = "L" txBuff. Location = 1 txBuff. Value = "F. LocationBuffBalue = "F. Location" tx. Değer = 13 &komutu serial_SendBufferEnd Sub&apossandsçerçeve farklarını hesaplamaya başlar&aposparam eşik eşiği (0-9)Sub CMUCAM_startDiffCalc(thresh As Byte) Dim tens As Byte &apossetup komut dizgimizi manuel olarak txBuff. Location = 0 txBuff. Value = "Buff. Value = "Buff" 1 txBuff. Value = "D" txBuff. Location = 2 txBuff. Value = " " txBuff. Location = 3 onlarca = thresh/10 txBuff. Value = serial_toChar(onlarca) txBuff. Location = 4 onlarca = thresh./10altxBuff. Value = serial_toChar(eşik-onlar) txBuff. Location = 5 txBuff. Value = 1 3 &komutu serial_SendBufferEnd Sub&apossed the output mask&aposparam paketMaskelenecek paket tipi (0, 1, 2, vb.) bkz. sayfa 46&aposparam mask mask değeri (0-255)Sub CMUCAM_setOutputMask(packetType As Byte, mask As Byte) Dim yüzlerce Byte Dim tens As Byte &apossetup olarak komut dizimiz manuel olarak txBuff. Location = 0 txBuff. Value = "O" txBuff. Location = 1 txBuff. Value = "M" txBuff. Location = 2 txBuff. Value = " " &apospacket type tx Konum = 3 txBuff. Value = serial_toChar(packetType) txBuff. Location = 4 txBuff. Value = " " txBuff uygulamak için &aposmask. Location = 5 yüz = maske/100 txBuff. Value = serial_toChar(yüzlerce) txBuff. Location = (yüzlerce)/10 txBuff. Value = serial_toChar(onlarca) txBuff. Location = 7 txBuff. Value = serial_toChar(maske-yüzlerce-onlarca) &aposcarriage return txBuff. Location = 8 txBuff. Value = 13 &apos komutu **************************************************&apos* Genel Seri Alt Programları *&apo s***************************************************&seriyi başlatır portSub serial_init() &aposinitialize (seri bağlantı noktasını açmak ve kapatmak için bir düğme) toggleSerial_Button. IOLine = 5 toggleSerial_Button. Direction = cvInput toggleSerial_Wire. Input. Link(toggleSerial_Button. Value. Wire. Ser) toggle. Ser Link(toggleSerial_Event. Operate) toggleSerial_Wire. Operate = cvTrue verilerimizi arabelleğe almak için bir olayı başlatır = 0 seri port seri bağlantı noktamızı sıfırla paket tamamlamaSub serialRe ceive_Event_Code() &apos.received 4byte tampon boş olduğunda false olur while(serialPort. Received = cvTrue) tamponumuza gelen bayttan &aposkopi rxBuff. Value = serialPort. Value &aposcheck paketin sonu için &aposcheck Eğer rxBuff. Value = 13 &aposprocess paket processPacket() &apos arabelleği başa sıfırla rxBuff. Location = 0 Else rxBuff. Location = rxBuff. Location + 1 EndIf WendEnd Sub'programlama için seri bağlantı noktasını açar ve kapatırSub toggleSerial_Event_Code() if serialPort. Operate = cvFalse serialPort. Operate = cvT serialPort. Operate = cvFalse serialActive_LED = 0 End IfEnd Sub'tek basamaklı bir sayıyı bir karaktere dönüştürürFunction serial_toChar(Byte Olarak Değer) As Byte Dim retVal As Byte Select Case inVal Case 0 retVal = "0" Case 1 retVal = "1" Case 2 retVal = "2" Durum 3 geriDeğer = "3" Durum 4 geriDeğer = "4" Durum 5 geriDeğer = "5" Durum 6 geriDeğer = "6" Durum 7 geriDeğer = "7" Durum 8 geriDeğer = "8" Durum 9 geriDeğer = "9" End Select serial_toChar = retValEnd Function&apos sen ds txBuff&apos'ta bulunan veriler Not: arabelleğin sonunda bir satır başı (13) içerdiğinden emin olun!!Sub serial_SendBuffer() &apositerate, her baytı gönderme, satır başında bitme txBuff. Location = 0 iken 1 serialPort. Value = txBuff. Value ooPIC. Delay = 1 &aposbuna ihtiyaç duymayabilir &apossee eğer bir satır başı olsaydı &aposbreak ise txBuff. Value = 13 &aposbreak döngümüzden çıkarsa Return End Eğer &apossonraki karaktere txBuff. Location = txBuff. Location + 1 WendEnd Sub
Adım 4: Programlama Konnektörünün Bağlantısını Kes
Programlama konektörünün bağlantısı kesildiğinde, yeni kablo düzeneğini aşağıda gösterildiği gibi takın. 1. adımda yapılan adaptör, CMUCam'ın doğrudan OOPIC'e takılmasına izin vermelidir.
Adım 5: Seri İletişimi Başlatmak için Düğmeye Basın
IOLine 5 üzerindeki düğme, CMUCam ve OOPIC arasındaki seri iletişimi başlatacaktır. Seri port hem programlama hem de CMUCam için kullanıldığından, muhtemelen ikisi arasında kontrollü bir geçiş yolu olmalıdır.
Bu düğmeye basılana kadar program çalışmayacaktır. Düğmeye tekrar basarsanız, seri port inaktif hale gelecek ve programlamanıza izin verecektir. IOLine 6 üzerindeki LED, mevcut seri port durumunu gösterir (açık aktif, kapalı ise programlamaya hazır demektir).
Önerilen:
Bir Arduino'yu Kitaplık Olmadan Kayan Bir Metin Görüntülemek İçin Başka Bir Arduino Kullanarak Programlamak: 5 Adım
Bir Arduino'yu Kitaplık Olmadan Kayan Bir Metni Görüntülemek için Başka Bir Arduino Kullanarak Programlama: Sony Spresense veya Arduino Uno o kadar pahalı değil ve çok fazla güç gerektirmez. Ancak projenizin güç, alan ve hatta bütçe kısıtlaması varsa Arduino Pro Mini kullanmayı düşünebilirsiniz. Arduino Pro Micro'nun aksine, Arduino Pro Mi
ESP32 ile PWM - Arduino IDE ile ESP 32'de PWM ile LED Karartma: 6 Adım
ESP32 ile PWM | Arduino IDE ile ESP 32'de PWM ile LED Karartma: Bu talimatta Arduino IDE & PWM temel olarak herhangi bir MCU'dan analog çıkış üretmek için kullanılır ve bu analog çıkış 0V ile 3.3V (esp32 durumunda) arasında herhangi bir şey olabilir & itibaren
Bir Toplu Dosya ile Şifrelemeli Bir Usb Sürücüyü Şifreleme: 8 Adım
Toplu Dosya ile Şifrelemeli Bir Usb Sürücüsünün Parolası: Kullanıcının parola olmadan sürücüye girmesine izin vermeyecek ve istediğiniz zaman değiştirebileceğiniz bir sahip dosyası gösterecek bir program bu, yaptığım programı nasıl kullanacağınızı kolaylıkla gösterecektir
NT4e ile Bir EVO T20'ye Sınırsız Bellek Eklemek, Kullanışlı Bir Bilgisayar Yapmak için: 7 Adım
Kullanışlı Bir Bilgisayar Yapmak için NT4e ile Bir EVO T20'ye Sınırsız Bellek Ekleme: Compaq EVO T20 İnce İstemciler, 50 dolardan daha ucuza alınabilir ve temelde kısıtlı mini bilgisayarlardır; bu, biraz ücretsiz olarak kullanılabilen bir yazılımla ve bazı kurulumlarla bir bilgisayar haline getirilebilir. kullanılabilir sessiz alçak gerilim masaüstü bilgisayar. Ana konu
Bir AVR (arduino) Başka Bir Arduino İle Nasıl Programlanır: 7 Adım
Bir AVR (arduino) Başka Bir Arduino ile Nasıl Programlanır: Bu talimat aşağıdaki durumlarda yararlıdır: * arduino'nuzu atmega168 ile aldıysanız ve yerel elektronik mağazanızdan bir atmega328 satın aldıysanız. Arduino önyükleyicisi yok * arduino kullanmayan bir proje yapmak istiyorsunuz - sadece bir