Jump to content

Tüm Aktiviteler

Bu akış otomatik güncelleniyor     

  1. Daha eskiler
  2. senoleker

    Çizgi izleyen robot

    "İlk proje" ne olmalı? Tabii ki çizgi izleyen robot. Belki yanıp sönen led de yapabilirdik ilk proje olarak ama, onları proje bölümünde değil de, kendi alt bölümlerinde yapmayı daha uygun gördük. Donanım olarak Arduino UNO'nun daha ucuz olan CH340 arabirimli modelini tercih ettik. Tabii siz elinizde olan bir Arduino kullanabilirsiniz. Çünkü bu proje için çok miktarda I/O ve bellek gerekmiyor. Ayrıca iki tane tekerlekli ve redüktörlü DC motor, motorları sürmek için L298N motor sürücü ile devrenin "gözü" olarak da TCRT5000 üçlü sensor kullandık. Önce piyasada bulunan yazılımlara baktık ve doğrusu bu yazılımı kullanmak içimize sinmedi. Çünkü üç gözlü sensorda, sensorun özelliğini kullanabilmek için kalınlığı iki göz arasındaki mesafeden daha fazla olan bir bant kullanmak gerekli. Aksi halde robotumuzu bant görmediğinde de hareket edecek şekilde programlamak zorunda kalırız ve bu da çok dengesiz sonuçlara yol açar. Yazdığımız bu program aslında gerçek bir "çizgi izleyen robot" için halen uygun değil. Çünkü dört başı mamur bir şey yazdık diyebilmek için, robot çizgiden çıktığında hangi açı ile çıktığını hesabedip ona göre bir rota düzeltme yapmalı. Biz ise diğer public yazılımlardaki gibi sadece gözlerin durumunu motorlara aktaracak bir kod tasarladık. Motorlarımızı LN298'e bağlarken ikisini de aynı yönde bağlamalıyız. Eğer motorları ters bağladıysak tekerler geri doğru dönecektir. Bu durumda ya motorların bağlantılarını değiştirmelisiniz ya da koddaki digitalWrite(L298N_RightB,LOW); digitalWrite(L298N_LeftB,LOW); digitalWrite(L298N_RightA,HIGH); digitalWrite(L298N_LeftA,HIGH); kısmını digitalWrite(L298N_RightB,HIGH); digitalWrite(L298N_LeftB,HIGH); digitalWrite(L298N_RightA,LOW); digitalWrite(L298N_LeftA,LOW); olarak değiştirmelisiniz. Böylece motorlara uygulanacak gerilimin yönünü değiştirmiş olursunuz, kablo söküp takmaya gerek kalmaz. TCRT5000 sensoru, beyaz yüzey için 0, siyah yüzey için 1 değerini verir. Eğer pistimizi siyah (koyu renkli) yaptıysak ve çizgimizi beyaz (açık renk) yaptıysak, okuyacağımız değerler ters gelecektir. Bu yüzden sensor okuma kısmını //TCRT5000 okuma int d1 = 1-digitalRead(TCRT_Left); int d2 = 1-digitalRead(TCRT_center); int d3 = 1-digitalRead(TCRT_right); olarak yazmalıyız. Ama pistimiz açık renk ve çizgimiz koyu renkli ise, o zaman sensor okuma kısmındaki "1-" leri kaldıracağız: //TCRT5000 okuma int d1 = digitalRead(TCRT_Left); int d2 = digitalRead(TCRT_center); int d3 = digitalRead(TCRT_right); Böylece koda fazlaca dokunmadan pist seçimimizi yapmak imkanımız olacak. Sensorlardan hem orta hem de yanlardan biri çizgiyi görüyorsa, robotumuz çizgiden çıkmak üzere sayılır, bu sırada daha düzgün bir hareker için, eğer iki göz birden çizgiyi görüyorsa kenardaki gözün çizgiyi görmediğini varsayacağız. Bunun için koda: //Sensorların iki tanesi birden çizgiyi görüyorsa if ((d1+d2)==2) d1=0; if ((d2+d3)==2) d3=0; ekledik. Bundan sonrası motorlar dönecek mi, dönecekse ikisi de mi dönecek, birisi dönecekse hangisi dönecek buna karar vermekten ibaret. Öncelikle motorların dönmesi için tek bir gözün (yukarıda orta ve bir kenar görürse bire indirgemiştik) çizgi görmesi gerek. Böyle değilse, yani üç göz ya da iki kenar çizgi görüyorsa, ya da hiç biri çizgi görmüyorsa motoru çevirmiyoruz. Bunu da bir if komutu ile sağlıyoruz: if ((d1+d2+d3)==1) Burada d1,d2 ve d3 gözler. Bunların toplamı 1 olmalı. Yani sadece bir göz çizgiyi görüyor olmalı. Aksi halde hiç bir motoru çevirmiyoruz. Böylece kenara koyduğumuzda robot saçma sapan hareket etmeyecek, hareketsiz duracaktır. Eğer bu şart sağlanıyorsa, iki motor birden ya da motorların biri dönmelidir. Bunu da basit bir toplama işlemi ile gerçekleştiriyoruz: analogWrite(L298N_RightS,(d1+d2)*hiz); analogWrite(L298N_LeftS,(d2+d3)*hiz); Programın başında "hiz" değerimizi tanımlamıştık. Örneğin 100-150 gibi bir hız değeri verebilirsiniz. Burada d2 değeri 1 ise her iki teker, d1 veya d3 değeri 1 ise, ilgili teker dönecek, böylece robotumuz çizgiyi izlemiş olacaktır. Bağlantılar: TCRT'nin sol ucunu Arduino'nun 10 numaralı ucuna, orta ucunu 11 numaraya, sağ ucunu ise 12 numaraya bağlıyoruz. Motor sürücünün ENA ve ENB pinlerindeki jumper cap'leri çıkartıyoruz. Sonra sırasıyla ENA-IN1-IN2-IN3-IN4-ENAB uçlarını Arduino'nun sırasıyla , 9-7-6-5-4-3 uçlarına bağlıyoruz. Besleme uçlarını ise besleme planınınıza göre yapabilirsiniz. Robotun deneme videosunu aşağıdaki linkten izleyebilirsiniz. https://youtu.be/2WsJSOnJRbw Arduino kodlarını da aşağıdaki linkten indirebilirsiniz. CizgiRobot.ino
  3. senoleker

    tof sensörü ile mesafe ölçümü

    Aktif derken, çalışıp çalışmadığını anlamayı mı kastediyorsunuz? Eğer öyle ise, mikrokontrolcünün i2c portuna bağlayıp cevap verip vermediğini, veriyorsa cevapların anlamlı olup olmadığını kontrol etmelisiniz. Eğer çalışmıyorsa büyük ihtimalle i2c haberleşmesi kilitlenecektir. Devrenizi kurdunuz mu? Mikrokontrolcüye bir yazılım koydunuz mu? Daha önce i2c protokolünü kullandınız mı?
  4. nbanuu

    tof sensörü ile mesafe ölçümü

    Msp430g2553 ile VL53L0X uzaklık sensorunu kullanmak istiyoruz fakat aktif olup olmadığını anlayamıyoruz,nerden anlayabiliriz?
  5. senoleker

    tof sensörü ile mesafe ölçümü

    Hangi microcontroller ve hangi TOF sensoru kullanıyorsunuz? Bu tür sensorlar genellikle I2C ile çalışır. I2C ile daha önce çalıştınız mı? Kullandığınız sensorun datasheet'i elinizde var değil mi? En işe yarar kaynak genelleikle datasheetlerdir.
  6. Oyyzz22

    tof sensörü ile mesafe ölçümü

    merhabalar,tof(time of flight) sensörünü nasıl aktif edebilirim?
  7. ceyda_20

    iki msp430 arasında bluetooth veri akışı

    tamam ben bunları deneyeyim ilginiz için teşekkürler :)
  8. senoleker

    iki msp430 arasında bluetooth veri akışı

    Doğrusunu isterseniz devrenizin nasıl bir şey olduğunu kafamda canlandıramadım. Sizdeki HC05 modülü ile de çalıştığıma emin değilim. Ama geçmiş HC05 ve HC06 tecrübelerime dayanarak şunları söyleyebilirim: Bir kere HC05'e teraterm'i Bluetooth üzerinden bağlamıyorsunuz umarım. AT komutları için, HC05'in Bluetooth tarafının bağlı olMaması gerek. AT komutunu verdiğinizde OK gelmesi için AT'den sonra <cr><lf> (enter) göndermelisiniz ve bunlar arasında zaman geçmemeli. Yani klavyeden yazarak yaparsanız modüllerin çoğunda cevap alamazsınız. Sizdeki modül de muhtemelen böyledir. Teraterm'i kullanmadığım için nasıl yapıldığını bilmiyorum ama, bir yerlerinde makro tanımlama olmalı. Bu tür işlerde kendim bir program yazmadıysam şu çok basit programı kullanıyorum: https://hw-server.com/terminal-terminal-emulation-program-rs-232 Burada AT#013#010 olarak (AT<cr><lf>) diye bir makro tanımlayıp onu göndermeyi deneyin isterseniz.
  9. senoleker

    ESP8266 ile buluta veri gönderme

    Belki de seri kütüphanesi kullanmadan yapabilirsiniz. Doğrusunu isterseniz ben msp serisi ile hiç çalışmadım. Ama sonuçta yapılması gereken şeyler belli. Bir kere UART için kesme (interrupt) kullanmanız gerekmez burada. Daha karmaşık uygulamalarda bu fayda sağlasa da görünüşe göre sizin projenizde işleri karıştırmak dışında işe yaramayacak. İlk yapılması gereken, TX pinini çıkış, RX pinini giriş olarak set etmek. Sonra baudrate üreticinin kaydedicilerini ayarlamak. 9600 bps kullanacağınıza göre, bunun için gerekli değerleri hesaplayıp ilgili kaydedicilere koymak gerek. Bundan sonra da göndereceğiniz verileri byte byte UART kaydedicisine koyacaksınız. Her bir byte gönderildikten sonra, bir sonraki byte'ı register'a koyacaksınız. Bunlar, genel hatları ile yapmanız gerekenler ama mikrokontrolcü özelinde bunların ayrıntılarına hakim değilim. http://www.mcu-turkey.com/msp430-launchpad-msp430g2553-donanimsal-uart-kullanimi/ sayfasında UART'ın set edilmesi ayrıntılı olarak anlatılmış gibi görünüyor. İsterseniz burayı bir inceleyin, takıldığınız nokta olursa devam ederiz.
  10. zeynep_35

    ESP8266 ile buluta veri gönderme

    Hayır , serial kütüphanem yok ben kontrol edeceğim . Sadece uart için kütüphane eklemem gerekiyor. 9600 hızında iletişim kuracağım. Uart ile ilgili fazla bilgim yok biraz araştırdım sadece.Gerekli ayarları yaptım . Thingspeak te hesap açıp kanal oluşturdum . 2adet analog veri ölçümü yaptım. (sıcaklık ve mesafe ) Elimde verileri göndermek için kod yok . Bir de IAR da kodlar derlenmiyor uart.h ve uart.c kütüphaneleri sürekli errror veriyor.
  11. ceyda_20

    iki msp430 arasında bluetooth veri akışı

    evet hc 05 i msp ile bilgisayara bağladık tera term programında AT gönderdiğinde OK cevabı gelmiyor bir türlü bide ardiuno ile denedim ama cevap alamıyorum
  12. senoleker

    iki msp430 arasında bluetooth veri akışı

    Neyin AT modunu kastediyorsunuz? HC05'in AT modunu mu? HC05'i bilgisayara nasıl bağladınız? TTL ile mi?
  13. ceyda_20

    iki msp430 arasında bluetooth veri akışı

    tera term de AT modunu nası aktif edebilirim deniyorum bütün herşeyi ama bir sonuca varamadım
  14. ceyda_20

    iki msp430 arasında bluetooth veri akışı

    sıcaklık kısmını çalıştırdım teşekkürler iki msp yi haberleştireceğim bluetooth ile uart için kütüphane yüklememe gerek var mı ? teşekkürler
  15. senoleker

    ESP8266 ile buluta veri gönderme

    Kullandığınız programlama dilinde serial kütüphanesi var mı? Yoksa tamamen sizin kontrol etmeniz mi gerekiyor? Siz kontrol edecekseniz, UART protokolü nasıl çalışır bilginiz var mı? Örneğin baudrate üretici için ayarları yapmakla ve pinleri seçmekle başlayacaksınız. Hangi hızda iletişim kuracaksınız?
  16. senoleker

    iki msp430 arasında bluetooth veri akışı

    MSP'de yazdığınız ve çalışmayan kodu buraya atar mısınız? Çalışmadı derken ne oldu?
  17. zeynep_35

    ESP8266 ile buluta veri gönderme

    esp8266 wifi modülü kullanarak msp430g2553 ile thingspeak e 2 adet analog veri (sıcaklık , mesafe bilgisi ) göndermek istiyorum . Modül uart protokolü ile haberleşiyor. Sıcaklık ölçümü ile ilgili kod elimde mevcut fakat modül uart kullandığı için bilgiyi nasıl aktaracağımı anlamadım. İnternette msp ile kod yok , hep arduino kodları var . Yardımcı olur musunuz ?
  18. ceyda_20

    iki msp430 arasında bluetooth veri akışı

    lm35 ile ölçütüğüm sıcaklığı bluetooth üzerinden diğer diğer msp ye atacağım.HC 05 modülü kullanıyorum iki adet .gönderdiğim veriyi bir ekran veya seven segment üzerinde göstereceğim.internetten araştırdım ama hep ardiuno ile yapılmış birde sıcaklık ölçümü için kodu çalıştıramadım bu konuda bana yardımcı olur musunuz ?
  19. Musa Acar

    arduino ile servo motor sürme.

    yardımlarınız için teşekkür ederim. sg 90 yapacağım iş için biraz güçsüz kaldı, şimdi mg 995 360 ° derece servo ile deneme yapacağım... #include <Servo.h> Servo sg90; int pos=0; int pozisyon=0; void setup() { sg90.attach(9); } void loop() { for(pos = 0; pos <= 180; pos ++) { sg90.write(pos); delay(30); } delay(3000); for(pos = 180; pos >= 0; pos --) { sg90.write(pos); delay(30); } delay(3000); }
  20. şenol eker

    arduino ile servo motor sürme.

    Doğrudan 180 ve sonra da sıfır yapmak yerine birer birer arttırarak araya da bekleme koyarak istediğin hızı ayarlayabilirsin örneğin. Şunun gibi bir şey deneyebilirsin: for(pos = 0; pos <= 180; pos ++){ sg90.write(pos); delay(30); } delay(3000) for(pos = 180; pos >= 0; pos --){ sg90.write(pos); delay(30); } Bunları loop() { içine yazmalısın. } Ben denemedim. Denedikten sonra sonucu bildirirsen sevinirim.
  21. Musa Acar

    arduino ile servo motor sürme.

    merhabalar. Arduino ile servo motor sürerken istediğim açılara servo motoru yönlendirip orada bir süre bekletebiliyorum. Ancak belirlediğim açılara servo motoru döndürürkenki hızını yavaşlatmam gerekiyor . if döngüsü içerisinde iken hızı yavaş oluyor ancak if döngüsü içerisinde de servoyu istediğim açıda bekletemiyorum. Kısacası aşağıda paylaştığım basit kod ile servoyu 0 ile 180 derece arası döndürüyorum ancak dönüşlerdeki hızı nasıl düşürürüm. #include <Servo.h> #include <Servo.h> Servo sg90; int pos = 0; int pozisyon=0; void setup() { sg90.attach(9); } void loop() { sg90.write(180); delay(3000); sg90.write(0); delay(3000); }
  22. şenol eker

    Forum Kuralları

    Forumda paylaşımda bulunmadan önce forum kurallarını kabul etmelisiniz. Forum kuralları, ihtiyaç duyuldukça değiştirilebilir, ilaveler yapılabilir. Forumda siyasi, dînî, futbol gibi tartışmaya sebep olabilecek konulardaki yorumlara kesinlikle izin verilmemektektir. DevreForum kullanıcı haklarına ve yazar uygulamaları emeğine saygı duyar. illegal içerikleri paylaşmaz, paylaşımlara aracılık etmez ve bu tür davranışlarda bulunanlara izin vermez. İllegal yazılım veya içerik kullanan, DevreForum forumlarında bunu dile getiren, diğer kullanıcıları illegal kullanıma özendiren hesaplar uyarılır. Bu davranışlara devam haklinde bu hesaplar kalıcı olarak kapatılır. Sadece kaynağından paylaşılan linklere izin verilir onun dışında foruma iliştirilen veya yüklenen illegal içeriklere izin verilmez ve silinir. Türkçe diline saygı duyar dilimizi doğru kullanıma teşvik eder bu konuda gerekli olması durumunda kullanıcılar uyarılır. Sorular uygun başlıklar altında sorulmalı kararsız kalınan durumlarda uygun genel kategorilerde konu açılabilir. DevreForum forumlarında kullanıcıların içeriklerinin değiştirilmesi, taşınması ve tamamen silinmesini hakkını saklı tutar. Sorular belirli kişilere yönelik sorulamaz, cevap alınmaya zorlanamaz. Konu başlıkları konuyu özetleyecek şekilde oluşturulmalı konu başlıklarında "çok acil", "acil yardım", "lütfen yardım" ifadeler kesinlikle kullanılmaz bu tür konular kapatılır veya silinir. Mesaj başlıkları tamamen büyük harflerden oluşturulamaz ve mesaj içeriği gözü rahatsız edici yazı tipi veya boyutu kullanılamaz. İçerik ortalama veya diğer mesajlara tezat oluşturacak şekilde oluşturulamaz. Özel mesajla adından da anlaşılacağı gibi özel durumlar hariç forumla ilgili sorular sorulamaz. bu tür özel mesajlar silinir ve görmezden gelinebileceği gibi ısrarcı durumda olanların özel mesaj hakkı kapatılır. Açılan konuların yönetim veya kullanıcılar tarafından cevaplanma zorunluluğu yoktur. DevreForum kuralları burada belirtildiği gibidir. DevreForum'a üye olmuş veya üye olmayı kabul etmiş her kullanıcı bu kuralları kabul etmiş sayılır.
  23. şenol eker

    Tanıtım İsteği Kuralları

    Bir ürün hakkında tanıtım / inceleme yapılmasını talep etmek için bu bölüme istek yapmalısınız. Örneğin: gibi. Bu bölümde inceleme /tanıtım istekleri dışında konular açılmamalıdır. Ürünle ilgili tartışmalar için "bilgi alışverişi" bölümündeki ilgili başlık altına konu açabilir, veya orada ilgili konu varsa devam edebilirsiniz.
  1. Daha fazla aktivite göster
×

Önemli Bilgilendirme

Facebook / Twitter / Google hesabınızla kolayca kaydolup cevap verebilir, soru sorabilir, istekte bulunabilirsiniz.
Devam etmeniz, forum kurallarını kabul ettiğiniz anlamına gelir.            Forum Kuralları