Skip to main content

Serial Event Arduino Processing - 3 Potlu Rgb Arayüzü Kontrolü

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 (:


Comments

Popular posts from this blog

Artificial Horizon and Compass Using Arduino-Processing-MPU6050

Hi everyone, Today we will realize our artificial horizon using Arduino, Processing and MPU 6050 IMU. In this application I use Arduino Uno, If you should use different card, you should examine i2c communication for your card. For Arduino Uno connections will be like that: MPU6050 Pins       Arduino Uno Pins Vcc                        3.3V Gnd                       Gnd SCL                       A5 SDA                      A4 INT                       2 (Digital Pin) This my MPU6050, if you want more information about it: http://www.invensense.com/mems/gyro/documents/PS-MPU-6000A-00v3.4.pdf After it we connecting the MPU6050 to Arduino. If our Arduino-MPU6050 sy...

Onuncu Yıl Marşı - Arduino

Bir önceki çalışmamızda sizlere Arduino'nun hazır melodilerinden dinletiler sunmuştuk. Bu gün ise sınırları biraz daha zorlayıp Nokia 3310 Besteleyici deneyimime güvendiğim için kodları kurcalayarak bestelediğim Onuncu Yıl Marşı'nı bayrak sallayarak dinletmek istiyorum. Eğer gerçekten Onuncu Yıl Marşı olarak dinlerseniz öyle oluyor, lütfen biraz ön yargı :) (3310'nun besteleyisinden kat be kat zor bir iş olduğunu itiraf etmeliyim) Servo ucuna bağladığım bayrağı sürekli olarak bir sağa bir sola sallama isteğim, Tone.h kütüphanesinin Servo.h kütüphanesini yanında barındırmak istememesi üzerine sekteye uğradı. Timer hatası sebebiyle bunu yapamadım, fakat yılmadım servo'yu direkt melodi sinyalinin geldiği bacağa bağladım. Bu ise her ne kadar dolu dolu bir bayrak sallayış olmasa da gönlümüzü etmeye yetiyor :) Gerekli malzemeler: Servo Hoparlör Bağlantı Kabloları Olmazsa olmazımız bayrağımız. Bağlantının nasıl yapılacağına gelecek olursak Hoparlörün si...

Görüntü işleme için Uçuş Denemesi

Merhabalar, Bu çalışmamızda havandan görüntü almak isteyen veyahut bu görüntüleri işlemek isteyen arkadaşlara referans olsun diye iki adet video paylaşacağım. Videoları kişisel bilgisayarınıza indirip görüntü işleme açısından çalışmalar yapabilirsiniz. Diğer taraftan yerde belirlediğimiz bir nesnenin boyutunun irtifa değerlerine göre ekranda kapladığı piksel değişimini inceleyebilirsiniz. Ya da en azından belirli irtifa değerlerinden nesneler ve insanların nasıl göründüğü hakkında genel kültür olur :) İlk videoda 70cm x 70cm beyaz bir levha kullanıldı, diğer taraftan oturan, ayakta ve yürüyen insan figürleri de videoda mevcut. Bunların çeşitli irtifa değerlerine göre dikey şekilde konumlandırılmış, yere doğru bakan kameradan nasıl göründüğü konusunda fikir sahibi olmanıza sebep olacağını düşünmekteyim. İkinci videoda 30-100 metre arasında dolaşan (genelinde 45 metre civarında) bir insansız hava aracından alınan görüntüler mevcut. Aşağı konumlandırılmış hedefler 70 cm x ...