İçindekiler:

Arduino ve Python'un Arduino Ana Kitaplığını Kullanarak Işık Yoğunluğu Çizimi: 5 Adım
Arduino ve Python'un Arduino Ana Kitaplığını Kullanarak Işık Yoğunluğu Çizimi: 5 Adım

Video: Arduino ve Python'un Arduino Ana Kitaplığını Kullanarak Işık Yoğunluğu Çizimi: 5 Adım

Video: Arduino ve Python'un Arduino Ana Kitaplığını Kullanarak Işık Yoğunluğu Çizimi: 5 Adım
Video: diamond tema ifşa oluyor 2024, Kasım
Anonim
Arduino ve Python'un Arduino Ana Kitaplığını Kullanarak Işık Yoğunluğu Çizimi
Arduino ve Python'un Arduino Ana Kitaplığını Kullanarak Işık Yoğunluğu Çizimi

Arduino, ekonomik ancak oldukça verimli ve işlevsel bir araç olduğundan, onu Gömülü C'de programlamak, proje yapma sürecini sıkıcı hale getirir! Python'un Arduino_Master modülü bunu basitleştirir ve hesaplamalar yapmamıza, gereksiz değerleri kaldırmamıza ve verilerin görsel bir temsili için bir grafik çizmemize izin verir.

Bu modülü henüz bilmiyorsanız, pip install Arduino_Master komutunu kullanarak kurun.

Bu modülü nasıl kullanacağınızı bilmiyorsanız endişelenmeyin, bu bağlantıyı ziyaret edin => Arduino_Master

Ancak, bu projenin kodu bu talimatta her zaman mevcut olacaktır.

Gereçler

Bu proje için aşağıdakilere ihtiyacınız olacak:

  1. Arduino
  2. Bir Işık Bağımlı Direnç (LDR) ve
  3. Python 3 bilgisayarınızda yüklü.

Adım 1: Devrenizi İnşa Etmek:

Devrenizi İnşa Etmek
Devrenizi İnşa Etmek

Giriş verilerini almak için Arduino'nun A1 pinini kullanacağız. Pil yerine Arduino'nun 5V ve GND pinlerini de kullanabilirsiniz. Bağlantıyı aşağıdaki gibi yapın:

  1. LDR'nin bir ucunu 5V pilin pozitif terminaline veya Arduino'nun 5V pinine bağlayın.
  2. LDR'nin diğer ucunu, pilin A1 pinine ve negatif terminaline veya Arduino'nun GND pinine paralel olarak bağlayın.
  3. Tüm akımın GND'ye akmadığından emin olmak için bir direnç kullanın; bu, Arduino'nun A1 terminalinde algılamak için yeterince güçlü bir sinyal alamamanıza neden olur. (10k ohm'luk bir direnç kullanıyorum).

Adım 2: Arduino'nuzu Programlama:

Arduino_Master modülü, veri göndermek ve almak için Arduino'nun Seri Monitörünü kullanır. Bu modülü kullanmanın avantajı, Arduino'nuzu bir kez programladığınızda, python'da programlama nispeten daha kolay olduğu için python programını farklı projeler için tek başına değiştirebilirsiniz!

Kod:

// LDR_1 değişkeni Arduino'nun A1 pinini belirtmek için kullanılır.

int LDR_1 = A1;

// A1'den alınan veriler LDR_Value_1 içinde saklanacak.

kayan LDR_Value_1;

Dizi girişi;

geçersiz kurulum()

{ pinMode(LDR_1, GİRİŞ); // LDR_1, INPUT pini olarak ayarlanır. Seri.başla(9600); // İletişim baud hızı 9600 olarak ayarlanmıştır. }

boşluk döngüsü()

{ if(Serial.available()>0) // seri monitörde herhangi bir giriş varsa devam edin. { input=Serial.readString(); // Girdiyi string olarak oku. if(input=="DATA") { LDR_Value_1=analogRead(LDR_1) * (5.0 / 1023.0); // (5 / 1023), Volt cinsinden değer almak için dönüştürme faktörüdür. Serial.println(LDR_Value_1); // Giriş "DATA"ya eşitse, LDR_1'den girişi okuyun ve Seri Monitörde yazdırın. } başka int i=0; // giriş "DATA"ya eşit değilse hiçbir şey yapmayın ! }

}

Adım 3: Python'u Arduino'dan Grafik Verileri için Programlama:

Her LDR'nin kendi direnç değerleri olacaktır ve hiçbir elektronik bileşenin çalışma sırasında tam olarak aynı olmadığını hatırlamamız gerekir. Bu nedenle önce farklı ışık yoğunluklarındaki voltajı bulmalıyız.

Aşağıdaki programı python IDE'nize yükleyin ve çalıştırın:

Bunu farklı ışık yoğunlukları için yapın ve grafiği kullanarak bir sonuç çıkarın, örneğin yoğunluk 1'den azsa, oda çok karanlıktır. 1 ile 2 arasındaki yoğunluk için oda oldukça karanlıktır. 2'den büyük yoğunluk için ışık açılır.

# Arduino_Master modülünü içe aktarma

Arduino_Master'dan içe aktarma *

# veri toplama

data=filter(ardata(8, sıkmak=Yanlış, dinamik=Doğru, msg="DATA", satırlar=30), beklenen_type='num', limit=[0, 5])

# 5V pil kullandığımız için limit 5 olarak ayarlanmıştır.

# Değerlerin çizilmesi

Graph(data, stl='dark_background', label='Işık Yoğunluğu')

Adım 4: Bir Odadaki Işığın Yoğunluğunu Kontrol Etmek İçin Son Program

Aldığınız verilerden bir sonuca vardıktan sonra aşağıdaki programı yükleyin ve sonuca göre limitleri değiştirdiğinizden emin olun.

# Arduino_Master modülünü içe aktarma

Arduino_Master'dan içe aktar # veri toplama verisi=filter(ardata(8, sıkma=Yanlış, dinamik=Doğru, msg="DATA", satır=50), beklenen_tip='num', limit=[0, 5]) #sınıflandırma veri sonuca dayalı bilgi= i in range(len(data)): yoğunluk=veri ise yoğunluk 1 ve yoğunluk=2: info.append('Işık AÇIK') # Grafiğin Çizilmesi. compGraph(data, info, stl='dark_background', label1='Işık Yoğunluğu', label2='Durum')

Adım 5: Sonuç:

Sonuç
Sonuç

Arduino'dan 50 anlık değer okuduğunuz için programın çalışması bir veya iki dakika sürecektir.

İşlemi hızlandırmak istiyorsanız, ardata işlevinin satır parametresini değiştirmeyi deneyin. Ancak, gözlemler ne kadar az olursa, verilerin kalitesinin de o kadar az olacağını unutmayın.

Not: Yukarıdaki resimdeki grafiğin tamamı görünmüyorsa Giriş bölümünün üzerindeki grafiğe bakın.

Önerilen: