Menü

Android Contolled Robotic Arm

9 Aralık 2017 - Arduino, Baskı Devre, Genel
Android Contolled Robotic Arm
4.6 (91.11%) 9 votes

Projemiz de kullandığımız robot kolun kontrolü için mikrodenetleyiciye, bluetooth modülüne, ve android uygulamaya ihtiyacımız vardı. Biz mikrodenetleyici olarak atmel mikrodenetleyicisi bulunan arduino nano kartını seçtik. bluetooth modülü olarak HC06 kullandık. Android uygulamasını da “MIT App Invertor 2” arayüzünde yaptık.

Robot kolun hazır çizimini thingiverse sitesinden (https://www.thingiverse.com/thing:1721356) aldık ve 3D printer’dan baskısını aldık. Robot kolun eklem hareketleri için servo motor olarak SG90 mikro servo motor kullandık. Servoların çektiği akım fazla olduğu için arduinodan maksimum 40ma çekebiliriz fakat servolar daha fazla çektiği için harici güç kaynağı alma ihtiyacı duyduk. Bu yüzden 12V 2.5A güç kaynağı aldık. Bu 12V’u arduino ve servolar için 5V’a düşürmemiz gerekiyordu. Bunun için de LM2596 regülatör kullandık.

 

KULLANDIĞIMIZ MALZEMELER

 

Devre şeması proteus programında (ISIS) tasarlandı. Daha sonra ARES’te baskı devre (PCB) çizimi yapıldı.

                                      

 

Ardından ARES’te çizilen pcb çizimi kuşe kağıdına tonerli yazıcıdan çıktısı alındı ve ütü yöntemi ile pcb çizimi bakır plakete aktarıldı. Daha sonra bakır plaket tuz ruhu ve perhidrol ile yapılan asite atıldı. Asitte çizilen baskı devre yolları hariç bütün bakır eridi ve baskı devremiz hazır hale geldi. Daha sonra drill ile delikleri deldik ve elektronik malzemeleri bakır plakete lehimledik.

 

PROJENİN ARDUINO KODU:

#include <Servo.h>

Servo servo1; // servonun harekti için
Servo servo2; // servonun harekti için
Servo servo3; // servonun harekti için
Servo servo4; // servonun harekti için

 

signed int pos1,pos2,pos3,pos4;
char gelenVeri;
int a,d,w,s,t,f,g,h;

void setup() {
Serial.begin(9600);

servo1.attach(4);
servo2.attach(5);
servo3.attach(11);
servo4.attach(12);

pos1=90;
servo1.write(pos1);
pos2=30;
servo2.write(pos2);
pos3=10;
servo3.write(pos3);
pos4=30;
servo4.write(pos4);

}

void loop() {

gelenVeri = Serial.read(); /* Yeni veriyi okunan Karakter degiskenine kaydet */

///////////////////////////SAĞA SOLA DÖNME////////////////////////////
if(gelenVeri==’D’)d=1;
while(d==1)
{
pos1++;
servo1.write(pos1);
if(pos1 >= 180)pos1=180;
delay(15);
}
if(gelenVeri==’A’)a=1;
while(a==1)
{
pos1–;
servo1.write(pos1);
if(pos1 <= 0)pos1=0;
delay(15);
}
///////////////////////////1.KOL İLERİ GERİ////////////////////////////
if(gelenVeri==’W’)w=1;
while(w==1)
{
pos2–;
servo2.write(pos2);
if(pos2 <= 0)pos2=0;
delay(15);
}
if(gelenVeri==’S’)s=1;
while(s==1)
{
pos2++;
servo2.write(pos2);
if(pos2 >= 60)pos2=60;
delay(10);
}

///////////////////////////2.KOL İLERİ GERİ////////////////////////////
if(gelenVeri==’T’)t=1;
while(t==1)
{
pos3++;
servo3.write(pos3);
if(pos3 >= 60)pos3=60;
delay(25);
}
if(gelenVeri==’G’)g=1;
while(g==1)
{
pos3–;
servo3.write(pos3);
if(pos3 <= 0)pos3=0;
delay(25);
}
///////////////////////////AĞZI AÇ KAPAT////////////////////////////
if(gelenVeri==’F’)f=1;
while(f==1)
{
pos4++;
servo4.write(pos4);
if(pos4 >= 90)pos4=90;
delay(10);
}
if(gelenVeri==’H’)h=1;
while(h==1)
{
pos4–;
servo4.write(pos4);
if(pos4 <= 20)pos4=20;
delay(10);
}}}

 

 

ANDROİD UYGULMASI VE BLOK DİYAGRAMI

                                                           

 

 

 

 

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Araç çubuğuna atla