Robotik Kodlama
Robotik Kodlama |
Robotik Kodlama
Robotik Kodlama |
Arduino ile IR kod bulma
Merhaba konunun tam anlaşılabilmesi için biraz fen bilgisi konularına girmemiz eksik bilgilerimizi tamamlamamız ve bilmediklerimizi öğrenmemiz açısından oldukça verimli olacaktır.Bu nedenle önce Işık ve gözümüzün ışık konusunda özelliklerini gözden geçirerek kumanda kodlarını çözelim ve arduino programlayalım.
Radyo, VHF, UHF, Radar, Kızılötesi, Ultraviyole, X-ışınları, Gama ve Kozmik dalga boyları…
Yukarıda gördüğünüz gibi, Kızılötesi ve Ultraviyole dalga boyları arasındaki ek, küçük görünür ışık spektrumunda bulunur. (Kabaca 380 nm ile 780 nm arasında). Görünür spektrumun tamamına bakıldığında beyaz olarak algılanır.
Işık bir DALGADIR!
Işık bir PARÇACIKTIR!
Büyük ışık tartışması, ışığın dalga boyu mu yoksa parçacık mı olduğu üzerine odaklanmıştır. Işık bir dalga boyudur çünkü testler dalga boyu olarak tepki verdiğini göstermiştir. Veya diğer testlerde ışık, bir parçacık gibi davrandığı için ışık bir parçacıktır.
Sonuçta İKİ tarafın da haklı olduğu belirlendi. Işık hem dalga boyu hem de parçacık gibi davrandı. Gerçekleştirmeyle kendinden geçmiş olan fenomen, yüksek, telaffuz edilmesi zor bir terimle adlandırıldı: Wavicle!
Işık dalgalarına fotonlar denir. Yanınızdaki kişiye bir parti flama atın. (Söz konusu atılan flama için tutuklanırsa, NextDayFlyers söz konusu atılan flamanın herhangi bir katılımını reddeder). Flama, atılan yöne doğru çıkıntı yapar ve hedeflenen kurban… hata… test deneğinden seker. Açılırken, rulodaki bellek akışın dalgalı olmasına neden olur. Bu bir WAVICLE!
Flama daha güçlü bir şekilde fırlatırsanız kurban… özne morarabilir. (nasıl bildiğimi sormayın, sadece teorik). Fotondaki enerjiyi arttırmak aynı etkiye neden olabilir. Alımını bastırır ve hasara neden olabilir.
Güneş, görünmeyen spektrumun her iki tarafındaki diğer tüm dalga boyları arasında tüm görünür spektrumu yayar. Gökyüzümüzdeki güneş sarıdır. Güneşe bakarsak, güneşe bakmazsak, gözlemciye ulaşan fotonlar onları boğar ve beyaz olmasına neden olur. Güneşe bakmak da kalıcı hasara neden olur.
“Güneşten yayılan güneş ışığı tüm görünür spektrumu içeriyorsa ve tüm spektrum beyaz olarak algılanıyorsa, güneş neden gökyüzümüzde sarı?”
Gökyüzü mavi olduğu için güneş sarıdır.
Güneş uzayda beyazdır. NASA, uzayda çalışan astronotların üzerine düşen güneş ışığı görüntülerini gösterdiğinde, beyaz ışıkta aydınlanırlar. Arka plan alanı siyah kalır. Bunun nedeni, nesne üzerinde parlayan tüm görünür spektrum ve nesneye ulaşmadan önce spektrumun hiçbir parçasının dağılmaması veya yansıtılmamasıdır.
Güneş ışığı dünyanın atmosferine girdiğinde, atmosferin gazlı yapısı tayfın mavi kısmını yayar ve onu çeşitli yönlere gönderir. Güneş ışığının kalan kısmı eksi mavi spektrum, daha küçük dalga boyundaki fotonlar, sarı olarak algılanır. Mavi spektrum, gaz halindeki atmosferimizi mavi renge aydınlatan çeşitli yönlerde birçok kez bölünür. Dev bir floresan ampulün içinde yaşıyoruz.
Kalan güneş ışığı gözlemciye yaklaştıkça, dağılacak daha az mavi kalır. Ufka baktığımızda, zemin seviyesinde daha az mavi spektrum nedeniyle mavi daha açık ve solgun hale gelir. Spektrumun geri kalanı gözlemciye sarı görünür.
Güneş batarken, güneş ışığı, ışığın dünyaya girdiği açı nedeniyle gözlemciye ulaşmak için atmosferin daha fazla içinden geçer. İster doğal olarak meydana gelen ister insan kaynaklı kirlilik olsun, havadaki parçacıklarla birleştiğinde, güneş ışığı mavi ve yeşil dalga boylarından daha kısa dalga boylu fotonları yayar. Parçacıklar diğer dalga boylarını emer ve kırmızı spektrumu yansıtır, böylece güneş etrafındaki gökyüzünü kırmızı aydınlatır.
Işık kaynağını ve içerdiği renk dalga boylarını bilmek, tasarımcının bir tasarımdan algılanan rengi, başka bir deyişle nasıl görüneceğini tahmin etmesine olanak tanır.
IR dalga boyu ve göz sağlığımız
TV'den, Uydu alıcısından, DVD oynatıcılardan, Ses sistemlerine vb. kadar cihazların çoğu, IR uzaktan kumandalar kullanılarak kablosuz olarak kontrol edilir.
Eğer piyasadan satın aldığınız herhangi bir kumanda ile herhangi bir cihazı kontrol etmek isterseniz ve IR tabanlı bir proje yapmak istiyorsanız; daha sonra, uzaktan kumanda tarafından cihaz veya cihazdaki IR alıcısına gönderilen kodları çözmüş ve biliyor olmalısınız
Çeşitli platformlarda çeşitli projeler yapıyoruz ve sadece Arduino kullanarak her zaman herhangi bir cihazın, konsolun vb. kodlarına ihtiyacımız var.
IR uzaktan kumandada bir düğme ve IR LED takılı bir mikro denetleyici bulunur. Bir düğmeye basıldığında, bir mikro denetleyici düğmeyi tanımlar ve ilgili modüle edilmiş sinyalleri (kodları) IR LED'e gönderir. Ardından IR LED, cihazdaki IR alıcısına gönderir.
Cihazdaki sistem sinyalleri (kodları) demodüle eder ve buna karşılık gelen işlevi kontrol eder ve yürütür. Her fonksiyonun farklı bir kodu vardır.
IR ile çalışan her cihazın farklı işlevler için farklı kodları vardır.
Kızılötesi (IR) ışığı göremeyiz çünkü dalga boyları bizim spektrumumuzda değildir.
#include <IRremote.h> //including infrared remote header file<br> int RECV_PIN = 11; // the pin where you connect the output pin of IR sensor IRrecv irrecv(RECV_PIN); decode_results results; void setup() { Serial.begin(9600); irrecv.enableIRIn(); } void loop() { if (irrecv.decode(&results)) { int value = results.value; Serial.println(" "); Serial.print("Code: "); Serial.println(results.value); //prints the value a a button press Serial.println(" "); irrecv.resume(); // Receive the next value Serial.println("*****************"); } }
Bahadır ÖZGEN
Electronic Robotic Coding Research and Development 1975 - ∞
Learn Forever
If you want, let's learn together...
https://roboticcode2020.blogspot.com/
bahadirozgen1975@gmail.com
facebook robotic.code
instagram @roboticcode
Sayfalarımı ziyaret ettiğiniz için teşekkür ederim.Bu sitede mevcut olan içerikler kendi oluşturduğum projeler yazı,resim ve videolardan oluşmaktadır.İçerik oluşturmak çok uzun sürdüğü için bazı projelerde yurtdışı kaynaklardan faydalandım.Buradaki amacım ticari değildir.Kaynağı belli olan ve bizim kaynağına ulaşabildiğimiz materyal (yazı, fotoğraf, resim, video v.b.) için ilgili konularda fotoğraflarda logo varsa v.b. not olarak gösterilecektir.Sitemizde yayınlanan tüm içerik, bizim tarafımızdan ve internet üzerinden youtube, facebook ve blog gibi paylaşıma sunulmuş kaynak sitelerden alındığı için, sitemiz yasal yükümlülüğe tabi tutulamaz. Sitemizde telif haklarının size ait olduğu bir içerik varsa ve bunu kaldırmamızı isterseniz, iletişim sayfamızdan bizimle iletişime geçtiğiniz takdirde içerik yayından kaldırılacaktır.Bu konu ve modüller ile uğraşarak, ileride çok güzel makine ve elektronik aletler yapabilirsiniz.
Robotiğin ilginç bir dalı, mevcut nesneleri daha akıllı hale getirmektir, bu da günlük hayatımıza yardımcı olur. Bu alan adı domotik (özellikle ev için) ve IoT (Nesnelerin İnterneti) olarak bilinir.
İşte evinizin sıcaklığını ölçmekten ve akıllı telefonunuzdaki verileri toplamaktan oluşan küçük bir ev projesi. Bluetooth modülü, çoklu veri ile başa çıkma yolu ile seri iletişim ve App Inventor 2 ile yapılmış bir akıllı telefon Android uygulaması kullandığımız basit bir projedir.
Not: Fritzing'de görüntülenen modül bir HC-05'tir ancak HC-06 ile aynı pin çıkışına sahiptir.
Sıcaklık aralığını ve voltaj ile sıcaklık arasındaki dönüştürme kuralını bulmak için LM35 sensörünün veri sayfasını araştırıyoruz . Ölçülen voltajı fiziksel bir değere çevirebilme. Sıcaklık ölçüldüğünde, Bluetooth modülü aracılığıyla akıllı telefona gönderilir. Çoklu verilerle başa çıkmak için veriler, deşifre etmeyi kolaylaştıran bir ayırıcı ile bir String'de birleştirilir.
.
#include <SoftwareSerial.h> SoftwareSerial HC06(2,3); // Constants #define DELAY 1000 // Delay between two measurements in ms // Parameters const int sensorPin = A0; // Pin connected to sensor // Variables float voltage, temperature; void setup(void) { Serial.begin(9600); HC06.begin(9600); } void loop(void) { voltage= analogRead(sensorPin) * (5.0 / 1023.0); // Convert digital value to voltage temperature=100*voltage; // conversion from V to °C Serial.print("Sensor reading = "); Serial.println(temperature); // the temperature reading // Send voltage and temperature value to app HC06.print(voltage); HC06.print("x"); HC06.print(temperature); delay(DELAY); }
Ev Ölçüm Uygulaması
App mucit 2 kullanarak basit bir uygulama oluşturduk.Arduino'dan gelen veriler Android uygulamasına metin olarak gönderiliyor. Sensörden değerleri elde etmek için metnin “x” ayırıcısına göre bölünmesi gerekir. Ortaya çıkan liste öğeleri daha sonra ilgili etiketlerde görüntülenir.
Bluetooth modülü, telefonunuzdaki Bluetooth cihazları listesinde saklanmalıdır. Bluetooth modülü HC-05 veya HC-06, uygulamayı kullanmadan önce bir kez eşleştirilmelidir.
Bahadır ÖZGEN
Electronic Robotic Coding Research and Development 1975 - ∞
Learn Forever
If you want, let's learn together...
https://roboticcode2020.blogspot.com/
bahadirozgen1975@gmail.com
facebook robotic.code
instagram @roboticcode
Sayfalarımı ziyaret ettiğiniz için teşekkür ederim.Bu sitede mevcut olan içerikler kendi oluşturduğum projeler yazı,resim ve videolardan oluşmaktadır.İçerik oluşturmak çok uzun sürdüğü için bazı projelerde yurtdışı kaynaklardan faydalandım.Buradaki amacım ticari değildir.Kaynağı belli olan ve bizim kaynağına ulaşabildiğimiz materyal (yazı, fotoğraf, resim, video v.b.) için ilgili konularda fotoğraflarda logo varsa v.b. not olarak gösterilecektir.Sitemizde yayınlanan tüm içerik, bizim tarafımızdan ve internet üzerinden youtube, facebook ve blog gibi paylaşıma sunulmuş kaynak sitelerden alındığı için, sitemiz yasal yükümlülüğe tabi tutulamaz. Sitemizde telif haklarının size ait olduğu bir içerik varsa ve bunu kaldırmamızı isterseniz, iletişim sayfamızdan bizimle iletişime geçtiğiniz takdirde içerik yayından kaldırılacaktır.Bu konu ve modüller ile uğraşarak, ileride çok güzel makine ve elektronik aletler yapabilirsiniz.
Arduino kurulumu gerçekleştirildikten sonra araçlar menüsünden doğru kartın seçilmesi gerekmektedir.
Kart seçilmediğinde “Karta yüklenirken bir sorun oluştu.” benzeri bir hata alabilirsiniz.
Arduino kurulumu gerçekleştirildikten sonra araçlar menüsünden doğru portun seçilmesi gerekmektedir. Bu port Arduino Uno’nun bilgisayara bağlandığı usb porttur. Farklı şekilde bilgisayarınızda usb driver yüklenmemiş olabilir. Bu gibi hatalarda “Port bulunamadı.” gibi hatalar almanız muhtemeldir.
#include "LedControl.h" | |
int DIN = 5; | |
int CS = 4; | |
int CLK = 3; | |
int Sound_Out=9; | |
byte gulumseyen[8]= {0x3C,0x42,0xA5,0x81,0xA5,0x99,0x42,0x3C}; | |
byte uzgun[8]= {0x3C,0x42,0xA5,0x81,0x99,0xA5,0x42,0x3C}; | |
LedControl lc=LedControl(DIN,CLK,CS,0); | |
void setup(){ | |
pinMode(Sound_Out,INPUT); | |
lc.shutdown(0,false); //Max72xx açılır | |
lc.setIntensity(0,1); // parklaklıhı ayarlar | |
lc.clearDisplay(0); // ekranı temizler | |
Serial.begin(9600); | |
} | |
void loop(){ | |
if(digitalRead(Sound_Out)==1) | |
{ | |
printByte(gulumseyen); | |
Serial.print("Ses yok"); | |
delay(100); | |
} | |
else | |
{ | |
printByte(uzgun); | |
Serial.print("Ses var"); | |
delay(5000); | |
} | |
} | |
void printByte(byte character []) | |
{ | |
int i = 0; | |
for(i=0;i<8;i++) | |
{ | |
lc.setRow(0,i,character[i]); | |
} | |
} |
Bağlantılar şekildeki gibi yapılır.
#define resett 15 | |
#define dice 14 | |
char digit[6]={0x02, 0x79, 0x24, 0x30, 0x19, 0x12}; | |
int pin[7]={9,8,7,6,5,4,3}; //displayin bağlantı pinleri | |
void setup() | |
{ | |
for(int i=0;i<7;i++) | |
pinMode(pin[i], OUTPUT); | |
pinMode(dice, INPUT); | |
pinMode(resett, INPUT); | |
digitalWrite(dice, HIGH); | |
digitalWrite(resett, HIGH); | |
int temp=0x40; | |
for(int i=0;i<7;i++) | |
{ | |
int temp1=temp&0x01; | |
digitalWrite(pin[i], temp1); | |
temp=temp>>1; | |
} | |
delay(1000); | |
} | |
void loop() | |
{ | |
int temp=rand(); //rastgele seçilen bir sayının temp değiş. atanması | |
if(digitalRead(dice)==0) | |
{ | |
int k=temp%6; | |
temp=digit[k]; | |
wait(); | |
for(int i=0;i<7;i++) | |
{ | |
int temp1=temp&0x01; | |
digitalWrite(pin[i], temp1); | |
temp=temp>>1; | |
} | |
delay(200); | |
} | |
if(digitalRead(resett)==0) | |
{ | |
temp=0x40; | |
for(int i=0;i<7;i++) | |
{ | |
int temp1=temp&0x01; | |
digitalWrite(pin[i], temp1); | |
temp=temp>>1; | |
} | |
} | |
} | |
void wait() | |
{ | |
for(int m=0;m<10;m++) | |
{ | |
for(int k=0;k<6;k++) | |
{ | |
int ch=digit[k]; | |
for(int l=0;l<7;l++) | |
{ | |
char tem2=ch&0x01; | |
digitalWrite(pin[l], tem2); | |
ch=ch>>1; | |
} | |
delay(50); | |
} | |
} | |
} |
Bahadır ÖZGEN
Electronic Robotic Coding Research and Development 1975 - ∞
Learn Forever
If you want, let's learn together...
https://roboticcode2020.blogspot.com/
bahadirozgen1975@gmail.com
facebook robotic.code
instagram @roboticcode
Sayfalarımı ziyaret ettiğiniz için teşekkür ederim.Bu sitede mevcut olan içerikler kendi oluşturduğum projeler yazı,resim ve videolardan oluşmaktadır.İçerik oluşturmak çok uzun sürdüğü için bazı projelerde yurtdışı kaynaklardan faydalandım.Buradaki amacım ticari değildir.Kaynağı belli olan ve bizim kaynağına ulaşabildiğimiz materyal (yazı, fotoğraf, resim, video v.b.) için ilgili konularda fotoğraflarda logo varsa v.b. not olarak gösterilecektir.Sitemizde yayınlanan tüm içerik, bizim tarafımızdan ve internet üzerinden youtube, facebook ve blog gibi paylaşıma sunulmuş kaynak sitelerden alındığı için, sitemiz yasal yükümlülüğe tabi tutulamaz. Sitemizde telif haklarının size ait olduğu bir içerik varsa ve bunu kaldırmamızı isterseniz, iletişim sayfamızdan bizimle iletişime geçtiğiniz takdirde içerik yayından kaldırılacaktır.Bu konu ve modüller ile uğraşarak, ileride çok güzel makine ve elektronik aletler yapabilirsiniz.