Mundarija:

Arduino va Python Arduino Master kutubxonasi yordamida yorug'lik intensivligi: 5 qadam
Arduino va Python Arduino Master kutubxonasi yordamida yorug'lik intensivligi: 5 qadam

Video: Arduino va Python Arduino Master kutubxonasi yordamida yorug'lik intensivligi: 5 qadam

Video: Arduino va Python Arduino Master kutubxonasi yordamida yorug'lik intensivligi: 5 qadam
Video: PYTHON ๐Ÿ DASTURLASH TILIDA OVOZLI DASTUR | GAPIRADIGAN DASTUR | JARVIS 2024, Noyabr
Anonim
Arduino va Python Arduino Master kutubxonasi yordamida yorug'lik intensivligini chizish
Arduino va Python Arduino Master kutubxonasi yordamida yorug'lik intensivligini chizish

Arduino iqtisodiy, lekin juda samarali va funktsional vosita bo'lib, uni o'rnatilgan C -da dasturlash loyihalarni zerikarli qiladi! Python -ning Arduino_Master moduli buni soddalashtiradi va bizga hisob -kitoblarni bajarishga, axlat qiymatlarini olib tashlashga va ma'lumotlarni vizual tasvirlash uchun grafik tuzishga imkon beradi.

Agar siz hali bu modul haqida bilmasangiz, uni Arduino_Master pip buyrug'i yordamida o'rnating

Xavotir olmang, agar siz ushbu moduldan qanday foydalanishni bilmasangiz, bu havolaga tashrif buyuring => Arduino_Master

Shu bilan birga, ushbu loyihaning kodi har doim ushbu ko'rsatmada mavjud bo'ladi.

Ta'minotlar

Ushbu loyiha uchun sizga quyidagilar kerak bo'ladi:

  1. Arduino
  2. Yorug'likka bog'liq qarshilik (LDR) va
  3. Python 3 kompyuteringizga o'rnatilgan.

1 -qadam: O'chirish tizimini yaratish:

O'z davrangizni qurish
O'z davrangizni qurish

Kirish ma'lumotlarini olish uchun biz Arduino A1 pinidan foydalanamiz. Batareya o'rniga Arduino -ning 5V va GND pinlaridan ham foydalanishingiz mumkin. Ulanishni quyidagicha bajaring:

  1. LDR ning bir uchini 5V batareyaning musbat terminaliga yoki 5V Arduino piniga ulang.
  2. LDRning boshqa uchini A1 piniga va batareyaning salbiy terminaliga yoki Arduino GND piniga parallel ravishda ulang.
  3. Barcha oqim GNDga tushmasligiga ishonch hosil qilish uchun rezistordan foydalaning, bu sizni Arduino A1 terminalida sezish uchun etarlicha kuchli signalni olmaslikka olib keladi. (Men 10k ohmli rezistorni ishlataman).

2 -qadam: Arduino -ni dasturlash:

Arduino_Master moduli ma'lumotlarni yuborish va qabul qilish uchun Arduino seriyali monitoridan foydalanadi. Ushbu modulni ishlatishning afzalligi shundaki, siz Arduino -ni dasturlashtirgandan so'ng, siz turli xil loyihalar uchun faqat python dasturini o'zgartirishingiz mumkin, chunki pythonda dasturlash nisbatan osonroq!

Kod:

// LDR_1 o'zgaruvchisi Arduino A1 pinini belgilash uchun ishlatiladi.

int LDR_1 = A1;

// A1 dan olingan ma'lumotlar LDR_Value_1da saqlanadi.

suzuvchi LDR_Value_1;

String kiritish;

bo'sh o'rnatish ()

{pinMode (LDR_1, INPUT); // LDR_1 INPUT pin sifatida o'rnatiladi. Serial.begin (9600); // Aloqa uzatish tezligi 9600 ga o'rnatilgan.}

bo'sh halqa ()

{if (Serial.available ()> 0) // agar ketma -ket monitorda biron bir kirish mavjud bo'lsa, davom eting. {kirish = Serial.readString (); // Kirishni satr sifatida o'qing. agar (kirish == "DATA") {LDR_Value_1 = analogRead (LDR_1) * (5.0 / 1023.0); // (5/1023) - voltda qiymat olish uchun konvertatsiya koeffitsienti. Serial.println (LDR_Value_1); // Agar kirish "DATA" ga teng bo'lsa, LDR_1 kirishini o'qing va uni Serial monitorda chop eting. } boshqa int i = 0; // agar kirish "DATA" ga teng bo'lmasa, hech narsa qilmang! }

}

3 -qadam: Python -ni Arduino -dan ma'lumotlarni grafikaga dasturlash:

Har bir LDR o'ziga xos qarshilik qiymatiga ega bo'ladi va shuni esda tutishimiz kerakki, elektron komponentlar hech qachon bir xilda ishlamaydi. Shunday qilib, avval biz yorug'likning har xil intensivligidagi kuchlanishni topishimiz kerak.

Python IDE -ga quyidagi dasturni yuklang va ishga tushiring:

Buni yorug'lik har xil intensivligi uchun qiling va grafik yordamida xulosa chiqaring, masalan, agar intensivlik 1dan past bo'lsa, xona juda qorong'i. 1 dan 2 gacha intensivlik uchun xona ancha qorong'i. 2 dan yuqori intensivlikda yorug'lik yoqiladi.

# Arduino_Master modulini import qilish

Arduino_Master importidan *

# ma'lumotlarni yig'ish

ma'lumotlar = filtr (ardata (8, siqish = Yolg'on, dinamik = To'g'ri, msg = "DATA", satrlar = 30), kutilgan_tip = 'raqam', chegara = [0, 5])

# chegarasi 5 ga o'rnatildi, chunki biz 5V batareyadan foydalanmoqdamiz.

# Qiymatlarni tuzish

Grafika (ma'lumotlar, stl = 'dark_background', label = 'Yorug'lik intensivligi')

4 -qadam: Xonadagi yorug'lik intensivligini tekshirishning yakuniy dasturi

Siz olgan ma'lumotlardan xulosa chiqarganingizdan so'ng, quyidagi dasturni yuklang va xulosangizga muvofiq chegaralarni o'zgartirganingizga ishonch hosil qiling.

# Arduino_Master modulini import qilish

Arduino_Master importidan # ma'lumotlarni yig'ish = filtr (ardata (8, siqish = Noto'g'ri, dinamik = To'g'ri, msg = "DATA", chiziqlar = 50), kutilgan_tip = 'raqam', chegara = [0, 5]) # tasniflash ma'lumotlari xulosaga asoslanib ma'lumot = i uchun diapazonda (len (ma'lumotlar)): intensivlik = ma'lumotlar agar intensivlik 1 va intensivlik = 2 bo'lsa: info.append ('Light ON') # Grafikni chizish. compGraph (ma'lumotlar, ma'lumotlar, stl = 'dark_background', label1 = 'Yorug'lik zichligi', label2 = 'Holat')

5 -qadam: Natija:

Natija
Natija

Dasturni ishga tushirish uchun bir -ikki daqiqa kerak bo'ladi, chunki siz Arduino -dan 50 lahzali qiymatlarni o'qiysiz.

Agar siz jarayonni tezlashtirishni xohlasangiz, ardata funktsiyasining chiziqlar parametrini o'zgartirishga harakat qiling. Ammo esda tutingki, kuzatuvlar qanchalik kam bo'lsa, ma'lumotlar sifati shunchalik past bo'ladi.

Eslatma: Agar yuqoridagi rasmdagi to'liq grafik ko'rinmasa, Kirish bo'limining yuqorisidagi grafikga qarang.

Tavsiya: