Başa dön

Arduino ve AppInventor ile Robot Kol Kontrolü

App inventor ile robot kol kontrolü yapmak için gerekli olacak kod bloğunu ve androin telefon uygulamasını yapacağımız bu yazımızda Robot kol montajından sonra robot kolun bluetooth ile uzaktan kontrolünü sağlıyor olacağız. Herşeyden önce kullanılacak malzemelerin listesini yapalım.

 

 

Robot Kol Kontrolü listesinde lipo pil ve voltaj regülatörü yerine 5V dc voltaj verebilen adaptörlerde kullanılabilir. Arduino nano yerine arduino uno veya arduino mega da kullanılabilir. HC05 yerine HC06 bluetooth modül da kullanılabilir. Buradaki değişiklikler tamamen sizin kullanmak istediğiniz ürünlere göre değişir.

 

Öncelikle App inventor ile ilgili kod bloğunu inceleyelim.

 

Robot Kol Uygulama Görüntüsü

Robot Kol Uygulama Görüntüsü

 

Robot Kol Kod Bloğu

Robot Kol Kod Bloğu

 

Resim 1 de telefonumuzda uyguluma nasıl görünecek onu ayarlıyoruz. Resim 2 de ise arka planda telefon uygulamamız nasıl çalışır mantığını kuruyoruz. 4 adet sliderin her birini kontrol eden ve bluetooth ile bağlanma durumunu ayarlayan kod bloğu bulunmaktadır.

En son vereceğimiz linkten robot kola dair tüm dökümanları indirebileceksiniz.

İlk kısmı bitirdiğimize göre artık fritzing üzerinden bağlantı şemamızı çıkaralım.

Arduino Motor Bağlantısı

Arduino Motor Bağlantısı

 

 

 

 

 

 

Buradan sonraki durumda ise kod bloğunu sizlerle paylaşacağız.

// Robocombo Teknoloji
// Erdem YILMAZ 
// Mekatronik Mühendisi

#include <Servo.h>
#include <SoftwareSerial.h>

int bluetoothTx = 0;
int bluetoothRx = 1;  // Bluetooth alıcı ve vericinin pin tanımlamasını yapıyoruz.

SoftwareSerial bluetooth(bluetoothTx, bluetoothRx);

Servo alt,ileri,yukari,grip ; //servoları tanıtıyoruz.


void setup()
{
  alt.attach(11);   // Servolarımızı Arduino'nun pwm(~) çıkışlarına bağlamamız gerekir bu pinler 3,5,6,9,10,11dir.
  ileri.attach(10);
  yukari.attach(9);
  grip.attach(6);
  Serial.begin(9600); // deneme amaçlı bilgilerin iletilip iletilmediğini görmek için açılmış serial port ekranı
  bluetooth.begin(9600);
}

void loop()
{
  if (bluetooth.available() >= 2)
  {
unsigned int pos = bluetooth.read(); 
unsigned int pos1 = bluetooth.read(); 
unsigned int gelenVeri = (pos1 * 256) + pos; 
  /* Robot kol bluetooth modülden çok fazla veri çekmesi gerekiyor. 0 ile 3180 arasında çekilecek veriler için 
   *  bluetoothtan gelen veriyi gelenVeri değişkenine atama yapmamız gerekir. Buradaki gelenVeri değişkeni ise
   *  bizim komutlarımızda kullanacağımız if değişkenimiz.
   */


    if (gelenVeri >= 1 && gelenVeri <= 180) // SAG/SOL
{ 
  int servo1 = gelenVeri; // gelenVeriyi bir değişkene tanımlayıp servo açısı olarak yazdırıyoruz.
  alt.write(servo1); // servoya açısal değer olarak gelen veri yazdırılıyor.
  delay(10); // servonun hareketini belirli ölçekde yavaşlatmak için delay
  Serial.println("alt gelen veri"); // deneme amaçlı sistemimiz sorunsuz çalışıyormu diye kontrol ediyoruz.
  Serial.println(servo1); // yolladğımız değerin doğruluğuna bakıyoruz.

}
   else if (gelenVeri >= 1000 && gelenVeri <= 1180) // ileri/geri
{  
  int servo2 = gelenVeri-1000; // yolladığımız değer +1000 olduğu için çıkarıp if döngüsünde öyle yazıyoruz.
  ileri.write(servo2);
  delay(10);
  Serial.println("ileri geri gelen veri");
  Serial.println(servo2);

}
  else if (gelenVeri >= 2000 && gelenVeri <= 2180) // ileri/geri
{
  int servo3 = gelenVeri-2000;
  yukari.write(servo3);
  delay(10);
  Serial.println("ileri geri gelen veri");
  Serial.println(servo3);

}
  else if (gelenVeri >= 3000 && gelenVeri <= 3180) // Gripper
{
  int servo4 = gelenVeri-3000;
  grip.write(servo4);
  delay(10);
  Serial.println("Gripper verisi");
  Serial.println(servo4);

}
  }
}

 

Tüm robot kol verilerine ulaşabilirsiniz.

Robocombo’dan ürünleri almak için Tıklayınız