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
devre şemasını paylaşabilirmisiniz hocam
YanıtlaSilhocam buton2 joysticki nereye bağlayacağız 3.pine mi? kodlarda olmadığı için devre şeması da yok bu haliyle tam çalışmıyor
YanıtlaSil