Robot Köpek/Kedi Yapım Serüvenim. (Proje tabanlı öğrenme)

Kedi fena durmuyor ,birde hareketleri tamamlarsanız çok güzel proje olacak.
İki motoru aynı anda hareket ettirip,aynı anda görevi tamamlamalarını istiyorsanız linear interpolasyon kullanacaksınız.Yani uzun mesafe hareket edecek motoru hızını baz alıp,yavas hareket edecek motorun hızını ona göre uyduracaksınız.Hareket mesafeleri belli,hızlı çalışacak motorun hızı belli(önceden siz seçeceksiniz) yavaş çalışacak moturun hızı basit şekilde yol=hız*zaman hesaplaması ile bulunulabilinir.
Bir döngü tamamlanmadan diger döngüye girmiyor yazmışsınız,aynen öyle.Bu sorunu çözmek için her iki hareketide aynı döngü içinde tanımlamalısınız.,veya bagımsız çalışan iki adet pwm üreteci kullanmalısınız.
Kusura bakmayın,arduio ile pek muhatap olmadıgım için örnek kod yazıp atamıyorum.
Gerçi bu makinayı arduino ile yapmak oldukca zor,bence yanınıza bir tane stm32 veya pic programlama bilen bir ögrenciyi destek alsanız işiniz daha kolay olur.
Kolay gelsin,başarılar.
 
Demek istediğinizi anladım. Hız ile oynamak mantıklı gibi ama ben for döngüsüne delay ekleyerek zaten motorları yavaşlatmak için kullanıyorum. Ama bunu bir düşüneceğim.



motorları aynı anda hareket ettirmek için Kodum hali hazırda şu şekilde.

0 pindeki servo 135 dereceden 100 dereceye

1 pindeki servo 45 dereceden 80 a gidecek olsun. Burada ikisininde alacağı yol 35 derece yani aynı olması önemli.



for (int i = 135; i>100; i--)

setPwm(0,0,i); //0 pindeki servoyu i açısına götürür

setPwm(1,0,(180-i)); //1 pindeki servo i açısına götür.

delay(10);
Böylece motorun birinin açısı artarken diğeri azalıyor. Hemde yavaş hareket etmiş oluyorlar.

//Bu arada gelecekten gelip kodu kopyalamayı düşünen kişi bu kod çalışmaz. setPwm den önce adafruitkütüphanesinde tanımladığın değişkeni yazman gerekiyor. Ben pwm olarak tanımlamıştım.
pwm.setPWM(motorpin, 0, (map komutuyla açı)) şeklinde olmalı
 
Son düzenleme:
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için onları kabul etmelisiniz. Daha fazla bilgi edin…