Merhabalar;
Bu çalışmamızda Arduino - Processing kardeşlerin ilişki durumunu inceleyeceğiz. Arduino'nun düz mantığı ve Processing dilinin o cafcaflı dünyası bir çok çalışmada bu veriyi buraya nasıl aktaracağım sorusunu akıllara getiriyor. Çünkü bir çok kişi önce Arduino üzerinde belirli bir yetkinliğe ulaştıktan sonra Processing ile hemhal oluyor, tabi bu da aynı tarz yazılım olsalar da insana güvenli bölgeden uzaklaşmış hissi veriyor.
Öncelikle yapacağımız çalışmadan kısaca bahsedecek olursam,
üç adet potansiyometremiz var ve Processing'de bir nesneyi boyamamıza yarayan fill komutunun üç adet girdisi olan kırmızı, yeşil ve mavi renklerini kontrol etmeye çalışacağız.
Daha önceleri yaptığımız Rgb LED çalışmasının arayüzlü formatı olarak düşüne bilirsiniz.
Arduino üzerinde yapacağımız bağlantılar gayet basit, tabi pek emin değilseniz daha önceki çalışmalarıma bakabilirsiniz. Burada yaptığımız analog girişlerimizden A0, A1 ve A2'den potansiyometre verilerini okumaya çalışmak.
Koda gelecek olursak ilk olarak Arduino IDE'den başlıyoruz. Kodumuz da bağlantılarımız gibi gayet basit. Birinci kısımda analog pinlerimizi belirlerken ikinci kısımda seri haberleşmeyi uygun bulduğumuz baud rate'de aktif hale getiriyoruz. Son olarak üçüncü kısımda belirlediğimiz analog pinlerden verileri intiger olarak, deger0,1 ve 2 olmak üzere map komutunu da kullanarak istediğimiz ebatlara aldıktan sonra hizaya diziyoruz.
Koda direkt ulaşmak için:
int potPin0 = A0;
int potPin1 = A1;
int potPin2 = A2;
void setup()
{
Serial.begin(9600);
}
void loop()
{
int deger0 = map(analogRead(potPin0),0, 1023, 0, 255);
Serial.print(deger0);
Serial.print(" ");
int deger1 = map(analogRead(potPin1),0, 1023, 0, 255);
Serial.print(deger1);
Serial.print(" ");
int deger2 = map(analogRead(potPin2),0, 1023, 0, 255);
Serial.println(deger2);
delay(500);
}
İkinci kısımda Processing kodu üzerinde çalışmamıza devam ediyoruz.
Bu kısımda ilk olarak genel tanımlamaları yapıyoruz, bunları kullanacağımız verilere hangi türde ihtiyacımız olduğu düşünerek karar veriyoruz.
İkinci kısımda Arduino'muzun bağlı olduğu portu Processing'e belirtiyoruz. Serial list ile portlarımızı listelerken uygun olanı sıra numarasına bakarak new serial komutunu kullanarak belirtiyoruz.
Üçüncü kısım programımıza şekli boyattığımız ve tabi şeklin de ebat ve konumunu belirttiğimiz yer.
Son olarak Serial event kısmı ile Arduino'da paket yaptığımız veri topluluğunu işimize yaracak şekille parçalara ayırıp gerekli yerlere gönderiyoruz.
Koda direkt ulaşmak için:
import processing.serial.*;
Serial port;
int kirmizi;
int yesil;
int mavi;
int k,y,m;
void setup()
{
size(500,500);
println(Serial.list());
port = new Serial(this, Serial.list()[0], 9600);
port.bufferUntil('\n');
}
void draw()
{
background(0);
fill(kirmizi,yesil,mavi);
ellipse(250, 250, 500, 500);
}
void serialEvent(Serial myPort) {
String input = myPort.readStringUntil('\n');
if(input != null) {
input = trim(input);
String[] values = split(input, " ");
if(values.length == 3) {
int k = int(values[0]);
int y = int(values[1]);
int m = int(values[2]);
kirmizi = k;
yesil = y;
mavi = m;
}
}
}
İyi çalışmalar (:
Bu çalışmamızda Arduino - Processing kardeşlerin ilişki durumunu inceleyeceğiz. Arduino'nun düz mantığı ve Processing dilinin o cafcaflı dünyası bir çok çalışmada bu veriyi buraya nasıl aktaracağım sorusunu akıllara getiriyor. Çünkü bir çok kişi önce Arduino üzerinde belirli bir yetkinliğe ulaştıktan sonra Processing ile hemhal oluyor, tabi bu da aynı tarz yazılım olsalar da insana güvenli bölgeden uzaklaşmış hissi veriyor.
Öncelikle yapacağımız çalışmadan kısaca bahsedecek olursam,
üç adet potansiyometremiz var ve Processing'de bir nesneyi boyamamıza yarayan fill komutunun üç adet girdisi olan kırmızı, yeşil ve mavi renklerini kontrol etmeye çalışacağız.
Daha önceleri yaptığımız Rgb LED çalışmasının arayüzlü formatı olarak düşüne bilirsiniz.
Arduino üzerinde yapacağımız bağlantılar gayet basit, tabi pek emin değilseniz daha önceki çalışmalarıma bakabilirsiniz. Burada yaptığımız analog girişlerimizden A0, A1 ve A2'den potansiyometre verilerini okumaya çalışmak.
Koda gelecek olursak ilk olarak Arduino IDE'den başlıyoruz. Kodumuz da bağlantılarımız gibi gayet basit. Birinci kısımda analog pinlerimizi belirlerken ikinci kısımda seri haberleşmeyi uygun bulduğumuz baud rate'de aktif hale getiriyoruz. Son olarak üçüncü kısımda belirlediğimiz analog pinlerden verileri intiger olarak, deger0,1 ve 2 olmak üzere map komutunu da kullanarak istediğimiz ebatlara aldıktan sonra hizaya diziyoruz.
Koda direkt ulaşmak için:
int potPin0 = A0;
int potPin1 = A1;
int potPin2 = A2;
void setup()
{
Serial.begin(9600);
}
void loop()
{
int deger0 = map(analogRead(potPin0),0, 1023, 0, 255);
Serial.print(deger0);
Serial.print(" ");
int deger1 = map(analogRead(potPin1),0, 1023, 0, 255);
Serial.print(deger1);
Serial.print(" ");
int deger2 = map(analogRead(potPin2),0, 1023, 0, 255);
Serial.println(deger2);
delay(500);
}
İkinci kısımda Processing kodu üzerinde çalışmamıza devam ediyoruz.
Bu kısımda ilk olarak genel tanımlamaları yapıyoruz, bunları kullanacağımız verilere hangi türde ihtiyacımız olduğu düşünerek karar veriyoruz.
İkinci kısımda Arduino'muzun bağlı olduğu portu Processing'e belirtiyoruz. Serial list ile portlarımızı listelerken uygun olanı sıra numarasına bakarak new serial komutunu kullanarak belirtiyoruz.
Üçüncü kısım programımıza şekli boyattığımız ve tabi şeklin de ebat ve konumunu belirttiğimiz yer.
Son olarak Serial event kısmı ile Arduino'da paket yaptığımız veri topluluğunu işimize yaracak şekille parçalara ayırıp gerekli yerlere gönderiyoruz.
Koda direkt ulaşmak için:
import processing.serial.*;
Serial port;
int kirmizi;
int yesil;
int mavi;
int k,y,m;
void setup()
{
size(500,500);
println(Serial.list());
port = new Serial(this, Serial.list()[0], 9600);
port.bufferUntil('\n');
}
void draw()
{
background(0);
fill(kirmizi,yesil,mavi);
ellipse(250, 250, 500, 500);
}
void serialEvent(Serial myPort) {
String input = myPort.readStringUntil('\n');
if(input != null) {
input = trim(input);
String[] values = split(input, " ");
if(values.length == 3) {
int k = int(values[0]);
int y = int(values[1]);
int m = int(values[2]);
kirmizi = k;
yesil = y;
mavi = m;
}
}
}
İyi çalışmalar (:
Comments
Post a Comment