Mundarija:
- Ta'minotlar
- 1 -qadam: O'chirish tizimini yaratish:
- 2 -qadam: Arduino -ni dasturlash:
- 3 -qadam: Python -ni Arduino -dan ma'lumotlarni grafikaga dasturlash:
- 4 -qadam: Xonadagi yorug'lik intensivligini tekshirishning yakuniy dasturi
- 5 -qadam: Natija:
Video: Arduino va Python Arduino Master kutubxonasi yordamida yorug'lik intensivligi: 5 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:24
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:
- Arduino
- Yorug'likka bog'liq qarshilik (LDR) va
- Python 3 kompyuteringizga o'rnatilgan.
1 -qadam: O'chirish tizimini yaratish:
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:
- LDR ning bir uchini 5V batareyaning musbat terminaliga yoki 5V Arduino piniga ulang.
- LDRning boshqa uchini A1 piniga va batareyaning salbiy terminaliga yoki Arduino GND piniga parallel ravishda ulang.
- 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:
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:
YN160 Pro LED yoritgichli yorug'lik chiroqlari, o'zgaruvchan toklar va yorug'lik chiroqlari: 8 qadam
YN160 Pro LED yoritgichli yorug'lik manbai (AC)
Sirli yorug'lik qutisi (tungi yorug'lik): 4 qadam
Sirli yorug'lik qutisi (tungi yorug'lik): Va bu juda oson qiziqarli loyiha, bu loyiha https://www.instructables.com/id/Arduino-Traffic-Lโฆ, lekin men allaqachon Men asl saytning tuzilishini o'zgartirdim, men qo'shimcha yoritgichlar qo'shaman va uni to'plash uchun poyabzal qutisini ishlataman
Dasturlashsiz yorug'lik intensivligi o'lchagichi: 7 qadam (rasmlar bilan)
Dasturlashsiz yorug'lik intensivligi o'lchagichi: Bu ko'rsatma Arduino yoki boshqa mikro -kontroller yoki dasturlashdan foydalanmasdan yorug'lik intensivligining asosiy o'lchagichini yaratish haqida. Yorug'lik intensivligini o'lchash moslamasi har xil rangdagi LEDlarning yorug'lik intensivligini ko'rsatadi. Qizil LED
Yorug'lik va tovush effektlari bilan Arduino asosidagi yorug'lik chiroqlari: 14 qadam (rasmlar bilan)
Yorug'lik va tovush effektlari bilan Arduino asosidagi Lightsaber: Salom jedi! Bu ko'rsatma kinofilmda bo'lgani kabi ko'rinadigan, ovoz chiqaradigan va bajaradigan chiroqni yasash haqida. Yagona farq - bu metallni kesolmaydi: (Bu qurilma Arduino platformasiga asoslangan va men unga juda ko'p funktsiyalar va funktsiyalarni beraman, u
Sovuq katodli yorug'lik yordamida makro fotografiya yorug'lik manbai: 9 qadam (rasmlar bilan)
Sovuq katodli chiroqlar yordamida makro fotografiya yorug'lik manbai: Yengil chodir yordamida tortishish paytida past zichlikdagi yorug'lik manbai juda foydali. LCD ekranlarda topilgan CCFL (sovuq katodli lyuminestsent nur) bu maqsad uchun juda mos keladi. CCFL va unga tegishli yorug'lik tarqatuvchi panellarni singan lapto ichida topish mumkin