Arduino İle Hexbug Örümcek Kontrolü
Kendi Robotunu Yap projelerimizin bu bölümünde hexbug örümcek robotun kontrol sistemini arduino tabanlı kontrol sistemine çevirerek çeşitli fonksiyonlar ile kontrolünü sağlayacağız.Kontrol sistemini hem telefon ile hem de bilgisayar ile sağlayarak projemizi tamamlayacağız.Arduino İle Hexbug Örümcek Kontrolü projemize başlayalım.
Malzemeler:
- Hexbug Spider (XL)
- Arduino Nano
- Hc-06 Bluetooth Modül
- L293b Motor Sürücü
- 6v Batarya
Elektronik Kısım:
Öncelikle hexbug örümceğin pil kapağındaki vidayı çıkartıyoruz.Üzerinde 3 adet pil, toplamda 4.5 volt ile çalışabiliyor.Pil yatağının üzerinde 3 adet vida bulunuyor.Vidaları da çıkartarak devresine ulaşıyoruz.Biz 6v batarya kullanacağımızdan kendi pil bağlantısını kesiyoruz.Hexbug örümceğin hareket etmesini sağlayan 2 tane dc motor bulunuyor.Bunlardan birisi yürüme hareketini diğeri ise yönlendirme hareketini yapıyor.
Devrenin üzerinde motor girişlerini görebilirsiniz.Yukarıdaki şekildeki gibi o pinlere kablolar lehimleyerek kendi motor sürücümüze bağlayacağız.Devre üzerinde M1 ve M2 olarak yazıyor kolaylıkla bağlantılarını yapabilirsiniz.Üstteki motor pinleri sağ sol hareketi, alttaki motor pinleri ise ileri geri hareketi yapmasını sağlıyor.
Motor pin bağlantılarını yaptık ve arduinoya motorları bağladık.Şimdi hc-06 bluetooth modülü de aduinoya bağlıyoruz.Daha sonra bataryayı motor sürücüye bağlayalım.Arduino güç beslemesini motor sürücü üzerinden yapabilirsiniz.
Bütün devre bağlantılarını yaptıktan sonra gelelim kontrol sistemine.Örümceği iki şekilde kontrol edeceğiz.Birincisi android telefondan ikinci de bilgisayardan yazdığımız robot konsol programı ile kontrolünü sağlayacağız.
Android Telefondan Kontrolü:
Telefondan kontrolümüzü için öncelikle uygulamamızı aşağıdaki bağlantıdan indirelim.
Şimdi uygulamamıza göre arduino yazılımını oluşturuyoruz.Uygulamada yün butonlarına basınca gönderilen karakterlere göre yazılıma o karakterleri ekleyerek kontrolünü sağlayacağız.
Telefon Kontrolü İçin Arduino Yazılımı:
//Yazılım geliştirme by Robimek - 2015 //Yazılım lisans by Robimek char val; #define motorileri 9 #define motorgeri 10 #define motorsol 11 #define motorsag 12 int S; void setup() { Serial.begin(9600); pinMode(motorileri,OUTPUT); pinMode(motorgeri,OUTPUT); pinMode(motorsol,OUTPUT); pinMode(motorsag,OUTPUT); digitalWrite(motorileri,LOW); digitalWrite(motorgeri,LOW); digitalWrite(motorsol,LOW); digitalWrite(motorsag,LOW); } void loop() { if (Serial.available()) { delay(100); while(Serial.available() > 0){ val = Serial.read(); }if (val == 'S') { dur(); } if (val == 'F') { ileri(); }if (val == 'R') { geri(); }if (val == 'B') { sag(); }if (val == 'L') { sol(); }if (val == 'G') { solileri(); }if (val == 'H') { solgeri(); }if (val == 'I') { sagileri(); }if (val == 'J') { saggeri(); } } } void dur() { digitalWrite(motorileri,LOW); digitalWrite(motorgeri,LOW); digitalWrite(motorsol,LOW); digitalWrite(motorsag,LOW); } void ileri() { digitalWrite(motorileri,HIGH); digitalWrite(motorgeri,LOW); digitalWrite(motorsol,LOW); digitalWrite(motorsag,LOW); } void geri() { digitalWrite(motorileri,LOW); digitalWrite(motorgeri,HIGH); digitalWrite(motorsol,LOW); digitalWrite(motorsag,LOW); } void sol() { digitalWrite(motorileri,LOW); digitalWrite(motorgeri,LOW); digitalWrite(motorsol,HIGH); digitalWrite(motorsag,LOW); } void sag() { digitalWrite(motorileri,LOW); digitalWrite(motorgeri,LOW); digitalWrite(motorsol,LOW); digitalWrite(motorsag,HIGH); } void sagileri() { digitalWrite(motorileri,HIGH); digitalWrite(motorgeri,LOW); digitalWrite(motorsol,LOW); digitalWrite(motorsag,HIGH); } void solileri() { digitalWrite(motorileri,HIGH); digitalWrite(motorgeri,LOW); digitalWrite(motorsol,HIGH); digitalWrite(motorsag,LOW); } void saggeri() { digitalWrite(motorileri,LOW); digitalWrite(motorgeri,HIGH); digitalWrite(motorsol,LOW); digitalWrite(motorsag,HIGH); } void solgeri() { digitalWrite(motorileri,LOW); digitalWrite(motorgeri,HIGH); digitalWrite(motorsol,HIGH); digitalWrite(motorsag,LOW); }
Telefondan kontrol için yazılımı arduinoya yüklüyoruz.Uygulamamızı açtığımızda bluetootha bağlanıp örümceği kontrol edebiliriz.
Bilgisayardan kontrolünü visual basic de yaptığımız örümcek robot kontrolü arayüz ile sağlayacağız.Öncelikle programımızı aşağıdaki linkten indirelim.
Programda butonlardan gönderilen verileri yazılıma ekleyerek arduino kodumuzu oluşturuyoruz.
Bilgisayardan Kontrolü İçin Arduino Yazılımı:
//Yazılım Geliştirme By Robimek - 2015 //Yazılım Lisans By Robimek char val; #define motorileri 9 #define motorgeri 10 #define motorsol 11 #define motorsag 12 void setup() { Serial.begin(9600); pinMode(motorileri,OUTPUT); pinMode(motorgeri,OUTPUT); pinMode(motorsol,OUTPUT); pinMode(motorsag,OUTPUT); digitalWrite(motorileri,LOW); digitalWrite(motorgeri,LOW); digitalWrite(motorsol,LOW); digitalWrite(motorsag,LOW); } void loop() { if (Serial.available()) { delay(100); while(Serial.available() > 0){ val = Serial.read(); }if (val == '9') { dur(); } if (val == '2') { ileri(); }if (val == '1') { geri(); }if (val == '4') { sag(); }if (val == '3') { sol(); }if (val == '5') { solileri(); }if (val == '8') { solgeri(); }if (val == '6') { sagileri(); }if (val == '7') { saggeri(); } } } void dur() { digitalWrite(motorileri,LOW); digitalWrite(motorgeri,LOW); digitalWrite(motorsol,LOW); digitalWrite(motorsag,LOW); } void ileri() { digitalWrite(motorileri,HIGH); digitalWrite(motorgeri,LOW); digitalWrite(motorsol,LOW); digitalWrite(motorsag,LOW); } void geri() { digitalWrite(motorileri,LOW); digitalWrite(motorgeri,HIGH); digitalWrite(motorsol,LOW); digitalWrite(motorsag,LOW); } void sol() { digitalWrite(motorileri,LOW); digitalWrite(motorgeri,LOW); digitalWrite(motorsol,HIGH); digitalWrite(motorsag,LOW); } void sag() { digitalWrite(motorileri,LOW); digitalWrite(motorgeri,LOW); digitalWrite(motorsol,LOW); digitalWrite(motorsag,HIGH); } void sagileri() { digitalWrite(motorileri,HIGH); digitalWrite(motorgeri,LOW); digitalWrite(motorsol,LOW); digitalWrite(motorsag,HIGH); } void solileri() { digitalWrite(motorileri,HIGH); digitalWrite(motorgeri,LOW); digitalWrite(motorsol,HIGH); digitalWrite(motorsag,LOW); } void saggeri() { digitalWrite(motorileri,LOW); digitalWrite(motorgeri,HIGH); digitalWrite(motorsol,LOW); digitalWrite(motorsag,HIGH); } void solgeri() { digitalWrite(motorileri,LOW); digitalWrite(motorgeri,HIGH); digitalWrite(motorsol,HIGH); digitalWrite(motorsag,LOW); }
Yazılımı yükleyerek bilgisayardan bluetooth üzerinden örümceği kontrol edebiliriz.
Kendi Robotunu Yap projelerimizin bu bölümünde de Hexbug örümceği hem telefondan hem de bilgisayardan kontrolünü sağladık.İsterseniz ultrasonik sensör takarak engele çarpmayan otonom hareket eden robota da çevirebilirsiniz.Bir sonraki projede görüşmek üzere.. İyi çalışmalar…
Merhaba ben bu projeyi yapmaya başladım ama hexbug xl değil normalini aldım ve örümceğin kendi işlemcisinde sadece 1 tane m1 m2 var ve oraya motorlar bağlı ben sürücüyü nereye bağlıyacağım bulamadım birde kendi işlemcisini kullanmadan bağlama yapabilirmiyiz ?
hocam merhaba bu örümceği sesle kontrol etmek için nasıl bir koda ihtiyacımız var acaba?
merhaba emre, buradaki projeden faydalanabilirsin >> http://www.robimek.com/sesli-komutlarla-kontrol-edilen-robot-voice-control-robot/
hocam ben yeniyimde acaba void setup() kısmında neden digitalwrite ‘lar yazılmış
robotun ilk çalışma anında motorları durma modunda tanımladım. O yüzden digitalWrite ile motor pinini low konumuna aldım.
çok saolun hocam