Projemiz; Arduino ile programlanan,
joystickler vasıtasıyla sağa-sola, yukarıya-aşağıya ve ileriye geriye hareket
edebilen, kıskacı ile cisimleri tutup bırakabilen eklemli mekanik robot koldur.
Robot kolun parçaları 3D yazıcı ile üretilmiştir. Eklemler ve dönüşler için 4
Adet Servo Motor kullanılmıştır. Montaj işlemleri vidalar, cıvatalar, somunlar
yardımıyla tamamlandıktan sonra, gerekli kodlar yüklenerek proje
tamamlanmıştır.
1.
Arduino Robot Kol Kiti
|
3.
Arduino
Uno Başlangıç Seti
|
4.
2 Adet Joystick Modülü
|
#include <Servo.h>
Servo myservo1; // 4 adet servo motor kullanıldı
Servo myservo2;
Servo myservo3;
Servo myservo4;
int butonDurum = 0;
int pozisyon_x1=0; // Joystick1`den
okunan analog değerler bu değişkenlerde tutulacak
int pozisyon_y1=0;
int butonPin = 2; // Joystick
buton pini arduino bağlantısı (Joystick SW çıkışı)
const int x1_pin=0; // Joystick
in x ve y eksenleri 0 ve 1. pinlere bağlanacak
const int y1_pin=1;
int pozisyon_x2=0; // Joystick2`den
okunan analog değerler bu değişkenlerde tutulacak
int pozisyon_y2=0;
const int x2_pin=3; // Joystick
in x ve y eksenleri 3 ve 4. pinlere bağlanacak
const int y2_pin=4;
void setup() {
myservo1.attach(9); // ileri geri hareket eden motor -sağ motor
myservo2.attach(10); // yukarı aşağı hareket eden motor- sol motor
myservo3.attach(11); // kıskaç
myservo4.attach(6); // alttaki
motor
pinMode(butonPin, INPUT_PULLUP);
Serial.begin(9600); // Seri haberleşme başladı
}
void loop() {
pozisyon_y2 = analogRead(y2_pin); //0. pinden analog veri okundu
pozisyon_y2 = map(pozisyon_y2, 0, 1023, 50, 133); //0-1023 değeri 50-133 değerine çekildi
myservo1.write(pozisyon_y2); // Elde
edilen 50-133 arası açı değeri servoya gönderildi
delay(100); // Servonun uygun konuma gelmesi için kısa
bir gecikme
pozisyon_y1 = analogRead(y1_pin); //1. pinden analog veri okundu
pozisyon_y1 = map(pozisyon_y1, 0, 1023, 0,
90); //0-1023 değeri 0-90 değerine çekildi
myservo2.write(pozisyon_y1); // Elde edilen 0-90 arası açı değeri servoya gönderildi
delay(100);
butonDurum
= digitalRead(butonPin);
if
(butonDurum==1){
myservo3.write(175); // Buton kullanılarak kıskaç açılır.
}
else{
myservo3.write(115);
}
pozisyon_x1 = analogRead(x1_pin); //4. pinden analog veri okundu
pozisyon_x1 = map(pozisyon_x1, 0, 1023, 0, 180); //0-1023 değeri 0-180
değerine çekildi
myservo4.write(pozisyon_x1);
// Elde edilen 0-180 arası açı değeri
servoya gönderildi
delay(100);
// Servonun uygun konuma gelmesi için kısa
bir gecikme
Yorumlar
Yorum Gönder
Yorumlarımızda genel ahlak kurallarınının dışına çıkmayalım, lütfen.