switch (KNS) { case G1_MERHABA: easyvr.playSound(5, EasyVR::VOL_FULL); //ses yürütme motor.write(130); //motor yürütme break; yukaridaki kodda ses oynatma ve servomotor yürütme komutu var, sorunum şu; ses bitmeden motor yürümüyor ses 5 sn ise 5 sonra motor yürüyor ben ayn anda ses yürüsün motorda yürüsün istiyorum, acil bir sorun teşekkürler.
switch (KNS) { case G1_MERHABA: motor.write(130); //motor yürütme break; case G1_MERHABA: easyvr.playSound(5, EasyVR::VOL_FULL); //ses yürütme break; acaba böyle yapsam olurmu
şimdi aklima geldi
olmadı aynı koşulu iki defa kullanamıyorum
switch (KNS) { case G1_MERHABA: motor.write(130); //motor yürütme easyvr.playSound(5, EasyVR::VOL_FULL); //ses yürütme break; bu şekilde denedinizmi önce motoru başaltın sonra sesi devreye sokun.
bu seferde önce motor dönüyor sonra ses çalıyor konuşan bir robot bu ağzı oynarken ses çıkması lazım öteki türlü önce konuşuyor sonra ağzı oynuyor ![]()
yoksa her heceyi ayrı ayrı ses kaydı yapıp her hecenin arasına bir motor komutu koymam gerekicek buda çok yorucu bir iş
Merhaba mantık aynı fakat lop dışında olduğu için belki işe yarayabilir bir deneyin. void loop() { switch (KNS) { case G1_MERHABA: Sound(); //ses yürütme Motor(); //motor yürütme break; } }//loop end void Motor() { motor.write(130); //motor yürütme } void Sound() { easyvr.playSound(5, EasyVR::VOL_FULL); //ses yürütme }
tek çekirdekli hiçbir işlemci aynı anda iki işi yapamaz. ses olayı hassas bir işlemdir. gecikmeleri insan kulağı çok çabuk fark eder. ses için ayrı bir arduino kullan. bunu tıpkı bilgisayarlardaki ses kartı gibi düşünebilirsin. komutu ses kartına gönder ve unut. eğer motorda hassas işlem yapacaksa onuda ayrı bir arduino ile kontrol et.
mesela 2.arduinoya 1.arduinodan nasıl komut gönderebilirim kablolu olarak motor yürüteceğim mesela
uart üzerinde , i2c üzerinden veri gönderebilirsin kablo ile bağlantı sayesinde.
UART, I2C, SPI sec beğen kullan:)
Kullandığınız fonksiyonlar verimsiz. Kolay olsun diye işlemciyi bloke ederek yapıyorlar işlemi, diğer donanımlar atıl vaziyette duruyor. Halbu ki motor bir anlık işlemdir, beklemesi gerekmez.
2 arduino ile hallettim işimi sağolun