Arduino İle Yapay Zeka Tabanlı Konuşan Robot Projesi
Kendi Robotun Yap projelerimizin bu bölümünde arduino ile yapay zeka tabanlı konuşan robot yapacağız.Daha önceki projelerimizde telefondan sesli komutla kontrol ettiğimiz robotumuzu yapmıştık.Bu projemizde o robotumuzu geliştirerek, yine aynı şekilde telefondan sesli komut göndereceğiz, bize sesli cevap verecek.Bu sayede robotunuz sizinle konuşacak.
Ayrıca çocuklar için eğitici robotlar yapabilirsiniz.Örneğin renk algılayan robota entegre edip renkleri sesli olarak söyleyerek çocuklara yönelik eğitici bir robot yapabilirsiniz.
Malzemeler:
- Arduino Mega
- Hc-06 Bluetooth Modül
- L293b Motor Sürücü
- Servo Motor
- Hc-Sr04 Ultrasonik Sensör
- Hoparlör
- Wtv-020 mp3 modül
- sd kart
- Batarya
Robotumuzun şase kısmı için robot kit alabilirsiniz veya oyuncak arabanın şase ve motorlarını kullanabilirsiniz.Bizim burada yapacağımız uygulamada sesli komutla kontrol edilen robot projemize ek olarak sesli cevap verme özelliğini ekledik.Örneğin robotumuza ileri git dediğimizde cevap olarak ‘ileri gidiyorum’ diyebilecek veya adını söyle dediğimizde cevap olarak ‘benim adım robimek’ diyebilecek.Siz bu cevapları değiştirebilir istediğiniz ses dosyasını yükleyebilirsiniz.
Elektronik Devre Şeması:
Wtv020 modülde sd kart okuyucu mevcut.Modül AD4 dosya formatını desteklemektedir.Ses dosyalarını önce wav uzantılı dosya haline getiriniz ardından ad4 formatına çeviriniz.Ad4 formatına çevirmek için wtv020 mp3 modül kullanımı yazımıza bakabilirsiniz.
Yazılım Kısmı:
// SESLİ KONTROL KONUŞAN ROBOT By Robimek //Yazılım Geliştirme By Robimek //Yazılım Lisans By Robimek //www.robimek.com #include <Servo.h>// servo motor kütüphanesi #include <NewPing.h>//ultrasonik sensör kütüphanesi #include <Wtv020sd16p.h> int resetPin = 13; int clockPin = 11; int dataPin = 12; int busyPin = 10; Wtv020sd16p wtv020sd16p(resetPin,clockPin,dataPin,busyPin); String voice; //motor pinleri #define SolMotorileri 6 #define SolMotorGeri 5 #define SagMotorileri 8 #define SagMotorGeri 9 #define led 53 #define ledmavi 51 #define ledyesil 49 #define ledkirmizi 45 #define ledvcc 47 #define tx 1 #define rx 0 //sensör pinleri #define USTrigger 3 #define USEcho 2 #define Maksimum_uzaklik 100 Servo servo; //servo motor tanımlama NewPing sonar(USTrigger, USEcho, Maksimum_uzaklik);//ultrasonik sensör tanımlama //kullanılacak eleman tanımı unsigned int uzaklik; unsigned int on_uzaklik; unsigned int sol_uzaklik; unsigned int sag_uzaklik; unsigned int zaman; // program ilk çalıştığında sadece bir kez çalışacak programlar void setup() { Serial.begin(9600); //iletişim ayarı //motor çıkışları pinMode(SolMotorileri, OUTPUT); pinMode(SolMotorGeri, OUTPUT); pinMode(SagMotorileri, OUTPUT); pinMode(SagMotorGeri, OUTPUT); pinMode(led, OUTPUT); pinMode(ledkirmizi, OUTPUT); pinMode(ledmavi, OUTPUT); pinMode(ledyesil, OUTPUT); pinMode(ledvcc, OUTPUT); servo.attach(4); //servo pin tanımı wtv020sd16p.reset(); wtv020sd16p.playVoice(0); wtv020sd16p.playVoice(13); delay(10000); wtv020sd16p.playVoice(14); } // sonsuz döngü void loop() { while (Serial.available()){ //Okumak için kullanılabilir bayt olup olmadığını kontrol et delay(10); //10 milisaniye bekle char c = Serial.read(); //Seri okuma if (c == '#') {break;} // # tespit edildiğinde döngüden çık voice += c; //Ses = ses + c Steno } if (voice.length() > 0) { Serial.println(voice); if(voice == "*ileri"||voice == "*ileri git") {wtv020sd16p.playVoice(3); ileri();} else if(voice == "*geri"||voice == "*geri gel") {wtv020sd16p.playVoice(2); geri();} else if(voice == "*sağa dön"||voice == "*sağ") {wtv020sd16p.playVoice(7); sag();} else if(voice == "*sola dön"||voice == "*sol") {wtv020sd16p.playVoice(1); sol();} else if(voice == "*dur"||voice == "*arabayı durdur") {dur(); wtv020sd16p.playVoice(11);} else if(voice == "*sol ileri") {sol(); delay(100); ileri();} else if(voice == "*sağ ileri") {sag(); delay(100); ileri();} else if(voice == "*sol geri") {sol(); delay(100); geri();} else if(voice == "*sag geri") {sag(); delay(100); geri();} else if(voice == "*ileri git dur"||voice == "*biraz ileri git") {ileri(); delay(1000); dur();} else if(voice == "*geri gel dur"||voice == "*biraz geri gel") {geri(); delay(1000); dur();} else if(voice == "*sola dön dur"||voice == "*biraz sola dön") {sol(); delay(300); dur();} else if(voice == "*sağa dön dur"||voice == "*biraz sağa dön") {sag(); delay(300); dur();} else if(voice == "*sola bak"||voice == "*soluna bak") {wtv020sd16p.playVoice(8); solabak();} else if(voice == "*sağa bak"||voice == "*sağına bak"||voice == "*sabah") {wtv020sd16p.playVoice(6); sagabak();} else if(voice == "*önüne bak"||voice == "*öne bak") {wtv020sd16p.playVoice(5); onunebak();} else if(voice == "*ışığı aç"||voice == "*ledi yak") {wtv020sd16p.playVoice(4); ledyak();} else if(voice == "*ışığı kapat"||voice == "*ledi söndür") {digitalWrite(51,HIGH); digitalWrite(49,HIGH); digitalWrite(45,HIGH); digitalWrite(47,LOW);} else if(voice == "*kırmızı") {digitalWrite(45,LOW); digitalWrite(49,HIGH); digitalWrite(51,HIGH); digitalWrite(47,HIGH);} else if(voice == "*yeşil") {digitalWrite(49,LOW); digitalWrite(45,HIGH); digitalWrite(51,HIGH); digitalWrite(47,HIGH); } else if(voice == "*mavi") {wtv020sd16p.playVoice(4); digitalWrite(51,LOW); digitalWrite(49,HIGH); digitalWrite(45,HIGH); digitalWrite(47,HIGH);} else if(voice == "*mor") {digitalWrite(51,LOW); digitalWrite(49,HIGH); digitalWrite(45,LOW); digitalWrite(47,HIGH);} else if(voice == "*beyaz") {digitalWrite(51,LOW); digitalWrite(49,LOW); digitalWrite(45,LOW); digitalWrite(47,HIGH);} else if(voice == "*engel"||voice == "*engel algıla") {wtv020sd16p.playVoice(0); engel(); delay(5000); dur();} else if(voice == "*merhaba") { wtv020sd16p.playVoice(9);} else if((voice == "*müziği kapat")||(voice == "*kapat")) { wtv020sd16p.reset(); wtv020sd16p.stopVoice();} else if((voice == "*müziği aç")||(voice == "*şarkı söyle")||(voice == "*muzik")) { wtv020sd16p.playVoice(12);} voice=""; } } // robotun yön komutları void ileri() { digitalWrite(SolMotorGeri, LOW); digitalWrite(SolMotorileri, HIGH); digitalWrite(SagMotorGeri, LOW); digitalWrite(SagMotorileri, HIGH); } void geri() { digitalWrite(SolMotorileri, LOW); digitalWrite(SolMotorGeri, HIGH); digitalWrite(SagMotorileri, LOW); digitalWrite(SagMotorGeri, HIGH); } void sag() { digitalWrite(SolMotorileri, HIGH); digitalWrite(SolMotorGeri, LOW); digitalWrite(SagMotorGeri, HIGH); digitalWrite(SagMotorileri, LOW); } void sol() { digitalWrite(SolMotorGeri, HIGH); digitalWrite(SolMotorileri, LOW); digitalWrite(SagMotorileri, HIGH); digitalWrite(SagMotorGeri, LOW); } void dur() { digitalWrite(SolMotorGeri, LOW); digitalWrite(SolMotorileri, LOW); digitalWrite(SagMotorileri, LOW); digitalWrite(SagMotorGeri, LOW); } void sagabak() { servo.write(0); delay(100); } void solabak() { servo.write(180); delay(100); } void onunebak() { servo.write(90); delay(100); } void ledyak() { digitalWrite(53,HIGH); } void ledkapat() { digitalWrite(53,LOW); } // sensörün mesafe ölçümü void sensor_olcum() { delay(50); zaman = sonar.ping(); uzaklik = zaman / US_ROUNDTRIP_CM; } void engel() { delay(500); servo.write(90); sensor_olcum(); on_uzaklik = uzaklik; if(on_uzaklik > 35 || on_uzaklik == 0) { ileri(); } else { dur(); servo.write(180); delay(500); sensor_olcum(); sol_uzaklik = uzaklik; servo.write(0); delay(500); sensor_olcum(); sag_uzaklik = uzaklik; servo.write(90); delay(500); if(sag_uzaklik < sol_uzaklik) { sol(); delay(500); ileri(); } else if(sol_uzaklik < sag_uzaklik) { sag(); delay(500); ileri(); } else { geri(); } } }
Ses dosyalarının isimleri sayı şeklinde olmalıdır.Örnek yazılımda her dosyasının ismi numaralandırılmıştır.
Yazılımı buradan indirebilirsiniz. >> Konuşan Robot
Projenin çalışma videosunu ilerleyen günlerde yayınlayacağım.
koşusan robot yazılımını indiremiyorum. yardımcı olur musunuz
Çok Harika güzel bir konuşan robot. yapay zeka konuşan robot seti ücreti kaç tl yapımı ve özellikleri neler
Sizinle nasıl görüşebiliriz bize yardımcı olur musunuz videoyu da ne zaman paylaşırsınız
Konuşan robotun videosunu ne zaman paylaşırsınız malzemeleri bulamıyoruz nasıl yapılacağını bilmiyorum öğrenmek istiyoruz da
Çok fazla bilgim yok ama bu projedeki hangi kısım yapay zeka sınıfına giriyor? Söylenileni nasıl anlıyor? Projenin bu kısmını biraz açarsanız çok sevinirim.
Biz Tübitak 4006 projesi için ingilizce konuşabilen robot yapacağız.Bize az olsada yardım edebilirmisiniz ?
Hocam sizde ulasabilecgikm bir adres var mi ozel olarak konusabilecegimiz ? Biraz sorularim var acil biiraz odevim de anlamadigim kisimlar var 😅
Merhaba hocam öncelikle elinize sağlık çok yararlı bir sayfa olmuş ben bu kodda arduino’ya yüklerken
Wtv020sd16p wtv020sd16p(resetPin,clockPin,dataPin,busyPin);
kısmında şu hatayı alıyorum.
Arduino:1.8.7 (Windows 8.1), Kart:”Arduino/Genuino Uno”
kod:248:1: error: ‘Wtv020sd16p’ does not name a type
Wtv020sd16p wtv020sd16p = (resetPin,clockPin,dataPin,busyPin);
^
C:\Users\Pc\Desktop\kod\kod.ino: In function ‘void loop()’:
kod:320:2: error: expected ‘}’ before ‘else’
else if(voice == “*aÄŸrının kaç ilçesi var”||gelenses == “*aÄŸrıda kaç ilçe var”)
^
kod:320:10: error: ‘voice’ was not declared in this scope
else if(voice == “*aÄŸrının kaç ilçesi var”||gelenses == “*aÄŸrıda kaç ilçe var”)
^
kod:321:3: error: ‘wtv020sd16p’ was not declared in this scope
{wtv020sd16p.playVoice(3);
^
kod:322:2: error: expected ‘}’ before ‘else’
else if(voice == “*aÄŸrının neleri meÅŸhur”||gelenses == “*aÄŸrının nesi meÅŸhur”)
^
kod:323:3: error: ‘wtv020sd16p’ was not declared in this scope
{wtv020sd16p.playVoice(5);
^
kod:324:2: error: expected ‘}’ before ‘else’
else if(voice == “*aÄŸrının yöresel yemekleri nelerdir”gelenses||voice == “*aÄŸrının yöresel yemekleri”)
^
kod:324:19: error: unable to find string literal operator ‘operator””gelenses’ with ‘const char [40]’, ‘unsigned int’ arguments
else if(voice == “*aÄŸrının yöresel yemekleri nelerdir”gelenses||voice == “*aÄŸrının yöresel yemekleri”)
^
kod:325:3: error: ‘wtv020sd16p’ was not declared in this scope
{wtv020sd16p.playVoice(7);
^
kod:326:2: error: expected ‘}’ before ‘else’
else if(voice == “*gosteberk et”||gelenses == “*gosteerk et nedir”)
^
kod:327:3: error: ‘wtv020sd16p’ was not declared in this scope
{wtv020sd16p.playVoice(4);
^
kod:328:1: error: expected ‘}’ before ‘else’
else if(voice == “*yalancı köfte”||voice == “*yalancı köfte nedir”)
^
kod:329:3: error: ‘wtv020sd16p’ was not declared in this scope
{wtv020sd16p.playVoice(12);
^
kod:330:2: error: expected ‘}’ before ‘else’
else if(voice == “*hengel”||voice == “*hengel nedir”)
^
kod:331:3: error: ‘wtv020sd16p’ was not declared in this scope
{wtv020sd16p.playVoice(14);
^
kod:332:2: error: expected ‘}’ before ‘else’
else if(voice == “*haşıl”||voice == “*haşıl nedir”)
^
kod:333:3: error: ‘wtv020sd16p’ was not declared in this scope
{wtv020sd16p.playVoice(13);
^
kod:334:2: error: expected ‘}’ before ‘else’
else if(voice == “*beyaz bal”||voice == “*beyaz bal nedir”)
^
kod:335:3: error: ‘wtv020sd16p’ was not declared in this scope
{wtv020sd16p.playVoice(11);
^
kod:336:2: error: expected ‘}’ before ‘else’
else if(voice == “*alabalık”||voice == “alabalık nedir”)
^
kod:337:3: error: ‘wtv020sd16p’ was not declared in this scope
{wtv020sd16p.playVoice(10);
^
kod:338:2: error: expected ‘}’ before ‘else’
else if(voice == “*eriÅŸte”||voice == “*eriÅŸte nedir”)
^
kod:339:3: error: ‘wtv020sd16p’ was not declared in this scope
{wtv020sd16p.playVoice(16);
^
kod:340:2: error: expected ‘}’ before ‘else’
else if(voice == “*piÅŸi”||voice == “*piÅŸi nedir”)
^
kod:341:3: error: ‘wtv020sd16p’ was not declared in this scope
{wtv020sd16p.playVoice(6);
^
kod:342:2: error: expected ‘}’ before ‘else’
else if(voice == “*hasude”||voice == “*hasude nedir”)
^
kod:343:3: error: ‘wtv020sd16p’ was not declared in this scope
{wtv020sd16p.playVoice(9);
^
kod:344:2: error: expected ‘}’ before ‘else’
else if(voice == “*çiriÅŸ ketesi”||voice == “*çiriÅŸ ketesi nedir”)
^
kod:345:3: error: ‘wtv020sd16p’ was not declared in this scope
{wtv020sd16p.playVoice(20);
^
kod:346:2: error: expected ‘}’ before ‘else’
else if(voice == “*saç kavurma”||voice == “*saç kavurma nedir”)
^
kod:347:3: error: ‘wtv020sd16p’ was not declared in this scope
{wtv020sd16p.playVoice(8);
^
kod:348:2: error: expected ‘}’ before ‘else’
else if(voice == “*kete”||voice == “*kete nedir”)
^
kod:349:3: error: ‘wtv020sd16p’ was not declared in this scope
{wtv020sd16p.playVoice(18);
^
kod:350:2: error: expected ‘}’ before ‘else’
else if(voice == “*ayran aşı”||voice == “*ayran aşı nedir”)
^
kod:351:3: error: ‘wtv020sd16p’ was not declared in this scope
{wtv020sd16p.playVoice(15);
^
kod:352:2: error: expected ‘}’ before ‘else’
else if(voice == “*halise”||voice == “*halise nedir”)
^
kod:353:3: error: ‘wtv020sd16p’ was not declared in this scope
{wtv020sd16p.playVoice(19);
^
kod:354:2: error: expected ‘}’ before ‘else’
else if(voice == “*kuymak”||voice == “*kuymak nedir”)
^
kod:355:3: error: ‘wtv020sd16p’ was not declared in this scope
{wtv020sd16p.playVoice(17);
^
kod:356:2: error: expected ‘}’ before ‘else’
else if(voice == “*aÄŸrı dağı”||voice == “*aÄŸrı dağı nedir”)
^
kod:357:3: error: ‘wtv020sd16p’ was not declared in this scope
{wtv020sd16p.playVoice(21);
^
kod:358:2: error: expected ‘}’ before ‘else’
else if(voice == “*ishak paÅŸa”||voice == “*ishak paÅŸa sarayı”||voice == “*ishak paÅŸa sarayı nedir”)
^
kod:359:3: error: ‘wtv020sd16p’ was not declared in this scope
{wtv020sd16p.playVoice(22);
^
kod:360:2: error: expected ‘}’ before ‘else’
else if(voice == “*balık gölü”||voice == “*balık gölü nedir”)
^
kod:361:3: error: ‘wtv020sd16p’ was not declared in this scope
{wtv020sd16p.playVoice(23);
^
kod:362:2: error: expected ‘}’ before ‘else’
else if(voice == “*nuhun gemisi”||voice == “*nuhun gemisi”)
^
kod:363:3: error: ‘wtv020sd16p’ was not declared in this scope
{wtv020sd16p.playVoice(24);
^
kod:364:1: error: expected ‘}’ before ‘else’
else if(voice == “*buz maÄŸarası”||voice == “*buz maÄŸrası nedir”)
^
kod:365:3: error: ‘wtv020sd16p’ was not declared in this scope
{wtv020sd16p.playVoice(25);
^
kod:366:2: error: expected ‘}’ before ‘else’
else if(voice == “*kaplıca”||voice == “*diyadin kaplıcaları”||voice == “*diyadin kaplıcaları nedir”)
^
kod:367:3: error: ‘wtv020sd16p’ was not declared in this scope
{wtv020sd16p.playVoice(26);
^
kod:368:1: error: expected ‘}’ before ‘else’
else if(voice == “*abdigör köftesi”||voice == “*abdigör köftesi nedir”)
^
kod:369:3: error: ‘wtv020sd16p’ was not declared in this scope
{wtv020sd16p.playVoice(35);
^
kod:370:2: error: expected ‘}’ before ‘else’
else if(voice == “*kendini tanıt”||voice == “*tanıt”)
^
kod:371:3: error: ‘wtv020sd16p’ was not declared in this scope
{wtv020sd16p.playVoice(34);
^
kod:374:8: error: ‘ileri’ was not declared in this scope
ileri();}
^
kod:377:7: error: ‘geri’ was not declared in this scope
geri();}
^
kod:380:6: error: ‘sag’ was not declared in this scope
sag();}
^
kod:383:6: error: ‘sol’ was not declared in this scope
sol();}
^
kod:385:7: error: ‘dur’ was not declared in this scope
{dur();
^
kod:389:10: error: ‘solabak’ was not declared in this scope
solabak();}
^
kod:392:10: error: ‘sagabak’ was not declared in this scope
sagabak();}
^
kod:395:11: error: ‘onunebak’ was not declared in this scope
onunebak();}
^
kod:398:9: error: ‘ledyak’ was not declared in this scope
ledyak();}
^
kod:405:2: error: expected ‘}’ before ‘else’
else if(voice == “*kırmızı”)
^
kod:411:2: error: expected ‘}’ before ‘else’
else if(voice == “*yeÅŸil”)
^
kod:417:2: error: expected ‘}’ before ‘else’
else if(voice == “*mavi”)
^
kod:425:8: error: ‘engel’ was not declared in this scope
engel();
^
kod:427:6: error: ‘dur’ was not declared in this scope
dur();}
^
exit status 1
‘Wtv020sd16p’ does not name a type
This report would have more information with
“Show verbose output during compilation”
option enabled in File -> Preferences.
incelerseniz çok iyi olur. İyi Formlar:)
Arduino mega yerine uno kullanabilirmiyiz
Mega yerine uno modelini kullansak olur mu
Abi baska bir mp3 modulu kullasak olurmu
Farklı bir mp3 modül kullanabilir miyim bulamıyorum wtv 020. Herhangi bir değişiklik yapmaya gerek var mı
Merhabalar, robot yapimi isinde yeniyim de yardimci olursaniz sevinirim. Servo motor devir sayısı kaç olmali ya da mikro servo motor kullansak çalışır mı? Sd kartı nerde kullanacağiz onu anlamadim bir de elektronik devre şemasındaki sağdaki kırmızı yazilar nedir? Teşekkurler
Merhaba sd kart ses dosyalarını kaydetmek ve lazım olduğunda buradan bu dosyaları alıp çalmak için kullanılıyor. İyi çalışmalar.
Abi bluetooth kontrolü icin hangi programi kullanıcaz bir de ne ceşit hoparlör kullanılir
Kütüphane dosyasına ihtiyaç varmı?
Ben çok şey yaparım ama ekonomik durumum yok ve arduinom yok yoksa patentini alacağım şeyler de yaparım bende bi arduino olsa var ya
hocam herzaman olduğu gibi bu projenizde çalıştı. Hocam size bir sorum olacak proje hocam siteisnde
RFİD VE LCD İLE KARTLI GİRİŞ SİSTEMİ size ait bu projeyi olulumuzda taşımalı eğtim olduğu için kullanmak istiyoruz. bunla ilgili biekaç sorum olacak
1-en fazla kaç kart tanıtabilirim
2- master karta gerek var mı?
3- kart numarası yerine isim yazabilir miyim yada kart numarasını değiştirip öğrenci numarsını ekleyebilirmiyim.
Hocam bu konuda yardımcı olursanız çok sevinirim çünkü öğrenciler servisle köyden geliyor ama okulda yok servis şoförü ben getirdim diyor öğrenci okula hiç girmemiş okula getirmek yerine başka yerde bırakmış bu konularda bizim için bu proje kolaylık sağlayacak yukardaki işlemleri yapıyorsa özelikle kart ismi konusunda aydınlatırsanız sevinirim Şimdiden teşekkürler…
Kart sınırlaması yok. Kart numarası değiştirilemez. Desteklediği kartlar; mifare1 S50, mifare1 S70 mifare ultralight, mifare pro ve mifare desfire. Bu kartlardan alıp her öğrenci için bir kart tanımlayın. kart tanımlamasında öğrencinin adını soyadını numarası gibi bilgileri ekleyebilirsiniz. Nasıl bir sistem istediğiniz hakkında detaylı bilgi verirseniz yardımcı olurum.Bu numaradan bana ulaşabilirsiniz . 0538 665 48 24
Işın kılıcı ile ilgili bir çalışma yapabildinizmi. Ses dosyalarını göndermiştim.
merhaba. hayirli isler dilerim size. bende elektronikle. ugrasiyorum. sizlerin sayenizde. arduino.
robot yapmayi. ögreniyoruz. allah. sizden razi. olun. sizin sayenizde. bilgi. sahibi. oluyoruz. tesekkurler.
sizden sunu soracaktim. bu yaptiginiz arduino uno. yaptiginiz. konusan. robot. program. cizimi.
ucretinizi. ilk once. alirsiniz. 1 saat icinde. tabi size bagli. turkiyede. cok kisileerle. alis veris. yaptim.
hotmail. adresin. varsa. sizin konusmak. isterdim. ben yardimi. severim. . sizde. oylesiniz. bir istegin.
olursa. cekilme. bide sunu.soracaktim. CD video. anlatimi. varmi. arduino yazilim. icin. arduino. kitabi.
2 tane turkiyeden.. ismarladim. isvece. 1 haftada. geldi. allaha. emanet olun. isleriniz.den basarilar. dilerim.
merhaba, Olumlu yorumlarınız için teşekkürler. mail adresim >> sezgingul@outlook.com.tr
mp3 sd kart hoparlör ve batarya ne işe yarıyor
mp3 modül ses dosyalarını çalmak için kullanıldı. Sd karta ses dosyalarını yükledim. Hoparlör malum ses çıkışı için. Elektronik sistem malum bataryasız çalışmaz 🙂
artekit sayfasında ingilizce çeviriye göre, tera term kullanılarak port açılması ve herhangi bir tuşa basılarak program ile sound .bin dosyasının binary halinde yükleneceğinden söz ediyor. Ancak, debug yapılmadan bu yükleme nasıl oluyor. Bu mümkün mü? Bu konuyu çözemedim. Yükleme yapamadım. söz konusu STM de teraterm için sürücü mü var? Bilmiyorum. Ben işleri fazla bilmiyorum. Sizler uzmanı olduğunuz için bana yardım edeceğinizi umuyorum. Başka yardım alacak kimseyi tanımıyorum.Lütfen yardımcı olur musunuz?
Dediğim gibi stm ile hiç çalışmadım. Projenizde tam olarak ne yapmak istiyorsunuz yazarsanız farklı yöntemle de çözebiliriz .
Bu sitenin sayfasındaki “artekit.eu/diy-lightsaber-audio-board/” lightsaber projesini yapmak istedim. fakat ses dosyasını(sound.bin) yükleyemedim. Parçaları aynı siteden satın aldım ve şemayı tam olarak uyguladım. Fakat olmadı. parçalardan biri zarar mı gördü.Bilmiyorum.
Aslında arduino ile lightsaber (Işın kılıcı) yapabilecek hazır kod ve şema bulabilsem bunu yapacağım.İnternette çok araştırdım.Hepi uyduruk, derleniyor fakat sistem olarak çalışmıyor.Çoğunun da şeması yok. Selamlar.
ışın kılıcının ses efektlerini arduinoda rahatlıkla yapabilirsin. ivmeölçer kullanarak belli bir eğimde ses dosyasını çaldırabilir efekt verebilirsin. Sd karttan ses dosya çalma uygulamasına buradan bakabilirsin. http://www.robimek.com/arduino-ile-sd-karttan-mp3-ses-dosyasi-calma/
Ben kod yazmasını bilmiyorum bana ışın kılıcı ses ve ışığı(ledlerin yanması) için hazır kod lazım. yardımcı olabilir misiniz?
Yani, örneğin çubuğun üzerine 10 tane tek sıra dizili led, kılıç şeklini hitap edecek ve çubuğu sağa sola salladığında da ses çıkacak. Bu şekilde mi ?
İlgilendiğin ve zaman ayırdığın için çok teşekkür ederim. Başarılarının devam etmesini yürekten diliyorum.
Butona basıldığında sistem açılacak, açılışta ledler sıralı yanacak ve açılış sesi çıkacak, ardında motor sesine benzeyen bir ses sürekli çıkacak(Yani çalacak), sağa sola salarken sallama sesi çıkacak, tekrar butona bastığında sistem kapanacak, kapanırken ledler sıralı olarak sönecek ve kapanma sesi çıkacak, yani toplamda 5 veya altı ses sistemde olacak.(Elimde, AXL345 ve MPU-6050 Accelerometer + Gyro Accelerometer, arduino nano, USB li WT588, WTV020, SD okuyucu modul, MiniDvPlayer ,74hc595 entegre var bu bileşenlere rağmen doğru dürüst çalışan bir kod ve şema olmadığı için hiç birşey yapamadım.
Ses dosyası çalmak için mp3 module gerek yok. Sadece sd kart okuyucu ile yapılıyor. Birde mp3 modüller çok iyi çalışmıyor zaten. Bahsettiğin projeyi yapım aşamaları ile ayrıntılı olarak yakın zamanda sitede paylaşacağım. Ses dosyaları varsa mail adresine gönderin. mail: maker.robimek@gmail.com
Sezgin GÜL çalışmalarınızda başarılar dilerim.
STM32F103T8 -M3 mikroişlemcili bir board ve SST25VF080B serial flash birbirine bağlı olarak tera term ile program kodları ve sound.bin dosyası rs232 TTL çevirici ile TX ve RX yolu kullanılarak nasıl yüklenir. sound.bin dosyasının serial Flash’a yüklenmesi gerekiyor.
STM kullanmadım bilgim yok fakat bu sayfada anlatmış >> artekit.eu/diy-lightsaber-audio-board/
Bunun yapay zekası ile alakası varmı 😀 İf , else ile yapılacak emirleri tanımlamışsınız peki düzgün çalışıyor mu benimkinde duraksamalar meydana gelip sadece ilk söylediğim kelimenin tanımladığımız karşılığını söyleyip duruyor.
Yapay zeka sınırlı tanımlamalar yapılarak karar verme işlemidir. Buradaki projede öğrenilmiş yapay zeka var. Sistem düzgün çalışıyor. İlerleyen günlerde video atacağım. Aynı şeyi söylüyorsa replay modunda kalmıştır.
Sezgin hocam bir konuda yardımınızı istiyorum mümkünse. Robot teknolojisi konuşumu bilemiyorum ama tarımsal üretim aşamalarında bitkilerde görülebilecek hastalık, zararlı ve besin eksikliklerini tespit etmek için portatif, kamerası yardımıyla foto çekip hafızasında bulunan resimlerle eşleştirme yapabilecek ve ilaç, gübre vs. tavsiyesinde bulunabilecek (sesli sistem olabilir) bir şey tasarlamak ve projelendirmek istiyoruz. Bu bir okul projesi olacak ve yardımcı olursanız çok sevinirim.
Ömer bey sizin projeniz çok kompleks bir sistem yapılabilir fakat ticarileşme yönü olduğundan çok fazla bilgi veremeyeceğim. Genel hatlarıyla toprak nem sensörleri ve çeşitli kimyasal ölçüm sensörleri mevcut onları araştırabilirsin. Resim işleme ve karşılaştırmayı matlab ile yaptırabilirsin.
Sezgin bey sizce sakıncası olmazsa projenin adını “SEZGİN” olarak düşünüyoruz. Projede düşünülen cihaz asistan olarak görev çalışacak yapıda olacak. Yani kamerası aracılığıyla çekilen fotoğraf sayesinde veritabanına kaydedilmiş foto ve bilgilere yapay zeka olarak ulaşıp yorum yapacak ve bunu sesli olarak kullanıcıya aktaracak. Elde taşınabilir bir alet şeklinde olması avantaj sağlayacaktır diye düşünüyorum. Fotograf makinesi veya cep telefonu gibi bir cihaz olarak düşünülebilir. Özellikle sera üretimi yapılan bölgelerde üreticiye avantaj sağlayabileceği kanaatindeyim. Ticari boyutu noktasında hevesli kişiler varsa yapsınlar bence. İlkokul bilim projesi olarak prototip bize yeterli olacak. Bu noktalar üzerinden bize yardımcı olursanız seviniriz.
İsimde sıkıntı olmaz 🙂 Lakin projenin kapsamı geniş.İşin içine yapay zeka girmesi ayrı bir kısım. Onun yapılabilirliği uzun vadeli Ayrıca arduino resim işleyemiyor. Raspberry pi kullanman gerekir.İlk okul bilim projesi düzeyine göre bu proje çok üstte kalır 🙂 Prototip için siz araştırma yapınız Arduino kullanırsanız matlab gibi bir programda resim işlersiniz. Tabi konuşma kısmı da C# ile yapılabilir Daha doğrusu ikisini de aynı programa entegre edebilirsin. Araştır biraz nette çok kaynak var. İngilizce kaynaklardan araştırmanda fayda var daha çok şey bulursun 🙂 Yardım edebilirim ama şu aralar çok yoğunum.
ömer hocam matlab ortamında görüntü anlık görüntü veya dosyaların olduğu klasörden 2 tanesini karşılaştırmasını yapan matlab gui arayüzünü kullanılarak yapılabilinir ama kullandığınız bilgisayarda matlaba öncelikli olarak görüntülerin olduğu dosyayı tanıtmanız gerekmektedir harici bir kamera kullanmak istiyorsanız bilgisayarın işletim sistemi buna izin vermemektedir ancak webcam kamera kullanabilirsiniz yoksa mecburen laptop kamerasını kullanmak zorunda kalacaksınız.
Merhaba siparişlerim geldi projeye başlamaya kalktım ama aldıgım modul
http://www.es.co.th/Schemetic/PDF/DFPLAYER_MINI.PDF budur, projeye bununla devam edebilirmiyim neleri değistirmem gerekir, baglantı ve program tarafında tesekkurler
Şu şekilde düzenlemeler yapman gerekecek. Sensörün kütüphanesi ekleyin. Aşağıdaki örnek kodda bakarak düzenleyin. // softwareserial kütüphanesş // mp3 modul kutuphanesi
#include
#include
void setup () {
Serial.begin (9600);
mp3_set_serial (Serial); //mp3 modül serial haberleşmesi
mp3_set_volume (10); // ses seviyesi
}
void loop () {
mp3_play (1); // 0001.mp3 dosyasının çalınması
delay (10000); //10 saniye çalma işlemi
mp3_play (5); //0005.mp3 dosyasının çalınması
delay (5000); // 5 saniye çalma işlemi
}
Modüle ses dosyalarını mp3 uzantılı olacak şekilde atman gerekir ve dosya isimleri 0001.mp3 şeklinde 4 haneli olmalıdır.Örnek kodda da gördüğün gibi. Bağlantılarda vcc 5v, gnd gnd, tx rx , rx tx pinlerine takılacak hoparlör pinleri de spk_1 artı uç ve spk_2 ise eksi uca takılacak.Datasheet e bakarsan o pinlerin hangileri olduğu yazıyor.
İyi çalışmalar
Teşekkürler , mp3 parçaları şu şekilde çalıyor , ama sizin yazdığınız gibi içindeki ilgili parçaları nasıl çağırabileceğimi bulamadım .
#include
#include
SoftwareSerial mySerial(10, 11); // RX, TX
//
void setup () {
Serial.begin (9600);
mySerial.begin (9600);
mp3_set_serial (mySerial); //set softwareSerial for DFPlayer-mini mp3 module
mp3_set_volume (20);
}
//
void loop () {
mp3_play (1);
delay (10000);
mp3_play (3);
delay (10000);
mp3_play (2);
delay (10000);
}
—————————————
((çalışan kısım yukarısı)) ama sizin yazdığınız gibi ilgili dosyaları nasıl çağıracağımı bulamadım
while (Serial.available()){ //Okumak için kullanılabilir bayt olup olmadığını kontrol et
delay(10); //10 milisaniye bekle
char c = Serial.read(); //Seri okuma
if (c == ‘#’) {break;} // # tespit edildiğinde döngüden çık
voice += c; //Ses = ses + c Steno
}
if (voice.length() > 0) {
Serial.println(voice);
if(voice == “*ileri”||voice == “*ileri git”)
{wtv020sd16p.playVoice(3);
ileri();}
else if(voice == “*geri”||voice == “*geri gel”)
{wtv020sd16p.playVoice(2);
geri();}
else if(voice == “*sağa dön”||voice == “*sağ”)
{wtv020sd16p.playVoice(7);
sag();}
else if(voice == “*sola dön”||voice == “*sol”)
{wtv020sd16p.playVoice(1);
sol();}
else if(voice == “*dur”||voice == “*arabayı durdur”)
{dur();
wtv020sd16p.playVoice(11);}
else if(voice == “*sol ileri”)
{sol();
delay(100);
ileri();}
else if(voice == “*sağ ileri”)
{sag();
delay(100);
ileri();}
else if(voice == “*sol geri”)
{sol();
delay(100);
geri();}
else if(voice == “*sag geri”)
{sag();
delay(100);
geri();}
else if(voice == “*ileri git dur”||voice == “*biraz ileri git”)
{ileri();
delay(1000);
dur();}
else if(voice == “*geri gel dur”||voice == “*biraz geri gel”)
{geri();
delay(1000);
dur();}
else if(voice == “*sola dön dur”||voice == “*biraz sola dön”)
{sol();
delay(300);
dur();}
else if(voice == “*sağa dön dur”||voice == “*biraz sağa dön”)
{sag();
delay(300);
dur();}
else if(voice == “*sola bak”||voice == “*soluna bak”)
{wtv020sd16p.playVoice(8);
solabak();}
else if(voice == “*sağa bak”||voice == “*sağına bak”||voice == “*sabah”)
{wtv020sd16p.playVoice(6);
sagabak();}
else if(voice == “*önüne bak”||voice == “*öne bak”)
{wtv020sd16p.playVoice(5);
onunebak();}
else if(voice == “*ışığı aç”||voice == “*ledi yak”)
{wtv020sd16p.playVoice(4);
ledyak();}
else if(voice == “*ışığı kapat”||voice == “*ledi söndür”)
/*
mp3_play (); //start play
mp3_play (1); //play “mp3/0001.mp3”
mp3_next (); //play next
mp3_prev (); //play previous
mp3_set_volume (uint16_t volume); //0~30
mp3_set_EQ (); //0~5
mp3_pause ();
mp3_stop ();
void mp3_get_state (); //send get state command
void mp3_get_volume ();
void mp3_get_u_sum ();
void mp3_get_tf_sum ();
void mp3_get_flash_sum ();
void mp3_get_tf_current ();
void mp3_get_u_current ();
void mp3_get_flash_current ();
void mp3_single_loop (boolean state); //set single loop
void mp3_DAC (boolean state);
void mp3_random_play ();
*/
Bu örneğe göre diğer komutları da ekleyebilirsin.
while (Serial.available()){ //Okumak için kullanılabilir bayt olup olmadığını kontrol et
delay(10); //10 milisaniye bekle
char c = Serial.read(); //Seri okuma
if (c == ‘#’) {break;} // # tespit edildiğinde döngüden çık
voice += c; //Ses = ses + c Steno
}
if (voice.length() > 0) {
Serial.println(voice);
if(voice == “*ileri”||voice == “*ileri git”)
{mp3_play (1); // çalınacak dosya
ileri();}
eğer çalışmassa mp3_play (1); den sonra delay komutu ile çalma süresini ekle
Merhaba videosunu çektinizmi ? Bekliyoruz. Başarılar
Videosu kısa zaman içinde yayınlanacaktır.
Merhaba birde Android için hangi programı kullanmalıyız.
Bu programı kullanın >> play.google.com/store/apps/details?id=robotspace.simplelabs.amr_voice
Emeğiniz için teşekkürler, malzeme siparişlerimi verdim, gelince uygulayacağım .
Rica ederim Takıldığınız noktada sorabilirsiniz.
Arduino mega yerine uno r3 kullansak sıkıntı olur mu?
Uno kullanabilirsiniz sıkıntı olmaz.