Robotik Kodlama

Robotik Kodlama
Ana Sayfa

İLGİNİZİ ÇEKEBİLECEK LİNKLER :

29 Temmuz 2021 Perşembe

Robotik kodlama

Robotik Kodlama


Nedir şu Robotik kodlama ?  Çocukların ve konu dışı herkesin anlayabileceği sade bir dille...



Robotik Kodlama




Tech. Elct. Bahadır ÖZGEN
Electronic Robotic Coding Research and Development 1975 - ∞
Learn Forever
If you want, let's learn together...

#Arduino
#Robotikkodlama
#programlama
#mblock
#elektronik
#blokprogramlama
#algoritma
#scratch
#arduinoeğitim
#mitappinventor
#appinventor
#arduinoblocks
#ogretmen
#öğretmen
#eğitim
#egitim
#roboticcode
#roboticcode2020
#robotik

6 Temmuz 2021 Salı

Arduino ile IR kod bulma

 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 

Ultraviyole, Kızılötesi ve Görünür Radyasyon Tehlikeleri - Işık, elektromanyetik radyasyon olarak tanımlanır - bir radyan enerji biçimi. Ultraviyole ışınları, kızılötesi ışınlar, radyo dalgaları ve X ışınları dahil olmak üzere birçok enerji türü vardır. Radyan enerji tayfının sadece çok küçük bir kısmını görüyoruz - bu kısma görünür ışık denir.

Her radyasyon türünün kendine özgü dalga boyu vardır. UV, görünür ışık ve IR dalga boyları çok küçüktür ve nanometre (nm), yani bir metrenin milyarda biri olarak ölçülür. Yukarıdaki şekil, görünür ışık bölgesini ve ultraviyole, mavi ışık ve kızılötesi enerjisinin insan gözüne zarar verebileceği üç bölgeyi göstermektedir. Radyasyon insan gözünü nasıl etkiler?

Kornea, ultraviyole radyasyondan (öncelikle uzak UV) ve ayrıca orta kızılötesi radyasyondan etkilenir. Yakın UV ve esas olarak orta IR olan kızılötesi radyasyonun etkileri yoluyla lenste hasar meydana gelebilir. Diğer tehlikeli radyasyon türleri kornea veya lens tarafından emilmez, ancak doğrudan retinaya odaklanır Bu, mavi ışığın tehlikeli kısmı (fotokimyasal hasar) ve yakın kızılötesi için geçerli olabilir. Retinanın iyileşme kapasitesi çok sınırlıdır; düşük enerji seviyelerinin bile retina hasarına neden olduğu gösterilmiştir.

Açık havada çalışma durumunda ek faktörler dikkate alınmalıdır. Parlak güneş ışığında, parlama zayıflaması önemli bir gereklilik olabilir. Gözü parlamanın etkilerinden kurtaran bir filtre, güneş ışığının önemli ölçüde kızılötesine yakın bileşeninin yanı sıra UV ve mavi ışığa karşı da koruma sağlamalıdır (güneş enerjisinin yaklaşık %46'sı dünya yüzeyine ulaşır).

IR'ye maruz kalmaktan başka komplikasyonlar ortaya çıkabilir. Aslında. kızılötesi radyasyon, foto-kimyasal hasar eşiklerini düşürmek için mavi ışıkla birlikte hareket edebilir. Benzer şekilde, kornea ve lens kendi kan kaynakları tarafından soğutulmadığından, IR bu organların UV hasar eşiklerini düşürebilir. IR'ye karşı koruma, radyasyonun retina üzerindeki ısı yükünü azaltarak göz yorgunluğunu da azaltabilir. Aşağıdaki şekil radyasyonun gözü nasıl etkilediğini göstermektedir.









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("*****************");
  		}
}

ANA SAYFAYA DÖN

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.



30 Haziran 2021 Çarşamba

Arduino Akıllı telefon bluetooth ile sıcaklık ve nem

 


İş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.

Malzeme

  • akıllı telefon
  • Arduino UNO'su
  • 5V Pil
  • Sıcaklık sensörü LM35
  • Bluetooth modülü HC-06

kod

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.

ev ölçümü için android uygulama mucidi 2uygulama mucidi 2 ev ölçüm çizik

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. 

ANA SAYFAYA DÖN

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.


MAX7219 8X8 DOT LCD ile Ses Şiddetine göre Emojiler ve Rastgele Sayı Üretme

MAX7219 Dot Matrix LCD ile Ses Şiddetine Göre Emojiler

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.

  1. Arduino üzerindeki 5V pini breadboard üzerinde “+” hatta, GND pini ise breadboard üzerinde “-” hatta bağlanır.
  2. Dot Matrix’in VCC pini “+” hatta, GND pini “-” hatta, DIN 5 nolu dijital pine, CS 4 nolu dijital pine, CLK 3 nolu dijital pine bağlanır.
  3. Ses Sensörü’nün VCC pini “+” hatta, GND pini “-” hatta, OUT pini 9 nolu dijital pine bağlanır.

Kod:

#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]);
}
}

  • Yukarıdaki bağlantı yapıldığında ve kodlar Arduino Uno’ya yüklendiğinde çalışma tamamlanmış olacaktır.
  • Bu uygulamada ses sensöründen ses algılandığında Dot Matrix’te üzgün surat ifadesi, ses algılanmadığında ise gülen surat ifadesi görülecektir.
  • Aynı zamanda serial ekranda ses algılandığında “ses var”, algılanmadığında ise “ses yok” uyarısı alacaksınız.

Dot Matrix Display’de Random Sayı Üretme

Bağlantılar şekildeki gibi yapılır.

  1. Arduino üzerindeki GND pini breadboard üzerinde “-” hatta bağlanır.
  2. Butonlar şekildeki gibi breadboarda yerleştirildikten sonra bir bacakları “-” hatta bağlanır.
  3. Boşta kalan bacağı Arduino Uno üzerinde A0’a diğer butonun boşta kalan bacağını ise A1 pinine bağlayın.
  4. 7 segment breadboarda yerleştirildikten sonra alt kısımdaki pinleri ilk pin boşta kalacak şekilde sağdan sola doğru sırasıyla, 7 – breadboard üzerinde herhangi bir yere – 6 – 5 nolu pinlere bağlanır.
  5. Üstteki pinler ise sağda sola doğru 8 ve 9 nolu pinlere bağlanır. Ortadaki pin şekildeki gibi bir önceki breadboard üzerinde herhangi bir yere takılan pinin hizzasına bağlanır. Boşta kalan diğer pinler ise sağdan sola doğru sırasıyla 4 ve 3 nolu pinlere bağlanır.
  6. Herhangi bir yere bağlanan pinlerin hizzasında Arduino’nun 5V pinine bir hat çekilir.
  7. Kodları yüklediğiniz takdirde 7 Segment çalışmaz ise 5V’a çekilen hat , “-” hat ile değiştirilmelidir.

Kod:

#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);
}
}
}

  • Yukarıdaki bağlantı yapıldığında ve kodlar Arduino Uno’ya yüklendiğinde çalışma tamamlanmış olacaktır.
  • Bu uygulama çalıştığında 7 Segment 0 rakamını gösterecektir.
  • Butonlardan biri resetleme biri sayı üretme butonudur. Bunların hangileri olduğu bağlantıyı nasıl yaptığınıza bağlıdır.
  • Bir butona basınca 7 Segment saymaya başlayacak ve random bir sayıda duracaktır.
  • Diğer butona basınca segment resetlenecektir.

ANA SAYFAYA DÖN

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.