Სარჩევი:

სინათლის ინტენსივობის შეთქმულება არდუინოს და პითონის არდუინოს სამაგისტრო ბიბლიოთეკის გამოყენებით: 5 ნაბიჯი
სინათლის ინტენსივობის შეთქმულება არდუინოს და პითონის არდუინოს სამაგისტრო ბიბლიოთეკის გამოყენებით: 5 ნაბიჯი

ვიდეო: სინათლის ინტენსივობის შეთქმულება არდუინოს და პითონის არდუინოს სამაგისტრო ბიბლიოთეკის გამოყენებით: 5 ნაბიჯი

ვიდეო: სინათლის ინტენსივობის შეთქმულება არდუინოს და პითონის არდუინოს სამაგისტრო ბიბლიოთეკის გამოყენებით: 5 ნაბიჯი
ვიდეო: სინათლის ინტენსივობის გავლენა გლუკოზის წარმოქმნაზე 2024, ნოემბერი
Anonim
სინათლის ინტენსივობის შეთქმულება არდუინოს და პითონის არდუინოს სამაგისტრო ბიბლიოთეკის გამოყენებით
სინათლის ინტენსივობის შეთქმულება არდუინოს და პითონის არდუინოს სამაგისტრო ბიბლიოთეკის გამოყენებით

Arduino არის ეკონომიური, მაგრამ ძალიან ეფექტური და ფუნქციონალური ინსტრუმენტი, მისი ჩაშენებული C პროგრამირება ხდის პროექტების დამღლელ პროცესს! პითონის Arduino_Master მოდული ამარტივებს ამას და საშუალებას გვაძლევს გამოვთვალოთ, ამოიღოთ ნაგვის მნიშვნელობები და დავხატოთ გრაფიკი მონაცემთა ვიზუალური წარმოდგენისთვის.

თუ ჯერ არ იცით ამ მოდულის შესახებ, დააინსტალირეთ ის ბრძანების პიპის გამოყენებით install Arduino_Master

არ ინერვიულოთ, თუ არ იცით როგორ გამოიყენოთ ეს მოდული, ეწვიეთ ამ ბმულს => Arduino_Master

ამასთან, ამ პროექტის კოდი ყოველთვის ხელმისაწვდომი იქნება ამ ინსტრუქციებში.

მარაგები

ამ პროექტისთვის დაგჭირდებათ შემდეგი:

  1. არდუინო
  2. მსუბუქი დამოკიდებული რეზისტორი (LDR) და
  3. თქვენს კომპიუტერში დაინსტალირებულია პითონი 3.

ნაბიჯი 1: შექმენით თქვენი წრე:

შექმენით თქვენი წრე
შექმენით თქვენი წრე

ჩვენ ვიყენებთ Arduino– ს პინ A1– ს შეყვანის მონაცემების მისაღებად. თქვენ ასევე შეგიძლიათ გამოიყენოთ არდუინოს 5V და GND ქინძისთავები ბატარეის ნაცვლად. გააკეთეთ კავშირი შემდეგნაირად:

  1. შეაერთეთ LDR- ის ერთი ბოლო 5V ბატარეის დადებით ტერმინალთან ან Arduino- ს 5V პინთან.
  2. შეაერთეთ LDR– ის მეორე ბოლო პარალელურად pin A1– თან და ბატარეის უარყოფითი ტერმინალი ან Arduino– ს GND პინი.
  3. გამოიყენეთ რეზისტორი, რომ დარწმუნდეთ, რომ მთელი დენი არ მიედინება GND– ში, რაც გამოიწვევს თქვენ არ მიიღოთ საკმარისად ძლიერი სიგნალი Arduino– ს A1 ტერმინალზე. (მე ვიყენებ რეზისტორს 10k ohms).

ნაბიჯი 2: თქვენი არდუინოს დაპროგრამება:

Arduino_Master მოდული იყენებს Arduino– ს სერიულ მონიტორს მონაცემების გასაგზავნად და მისაღებად. ამ მოდულის გამოყენების უპირატესობა ის არის, რომ თქვენი Arduino- ს პროგრამირების შემდეგ, თქვენ შეგიძლიათ შეცვალოთ პითონის პროგრამა მარტო სხვადასხვა პროექტებისთვის, ვინაიდან პითონში პროგრამირება შედარებით ადვილია!

კოდი:

// LDR_1 ცვლადი გამოიყენება Arduino– ს პინის A1 აღნიშვნისათვის.

int LDR_1 = A1;

// A1– დან მიღებული მონაცემები შეინახება LDR_Value_1– ში.

float LDR_Value_1;

სიმებიანი შეყვანა;

ბათილად დაყენება ()

{pinMode (LDR_1, INPUT); // LDR_1 დაყენებულია როგორც INPUT pin. სერიული.დაწყება (9600); // კომუნიკაციის ბაუდატი დაყენებულია 9600 -ზე.}

ბათილი მარყუჟი ()

{if (Serial.available ()> 0) // თუ რაიმე შეყვანაა შესაძლებელი სერიულ მონიტორზე, მაშინ გააგრძელეთ. {input = Serial.readString (); // წაიკითხეთ შეყვანა სტრიქონის სახით. if (input == "DATA") {LDR_Value_1 = analogRead (LDR_1) * (5.0 / 1023.0); // (5 /1023) არის კონვერტაციის ფაქტორი ვოლტში მნიშვნელობის მისაღებად. Serial.println (LDR_Value_1); // თუ შეყვანა უდრის "DATA" - ს, მაშინ წაიკითხეთ LDR_1– დან შეყვანილი და დაბეჭდეთ იგი სერიულ მონიტორზე. } else int i = 0; // თუ შეყვანა არ არის ტოლი "DATA", არაფერი გააკეთო! }

}

ნაბიჯი 3: პითონის დაპროგრამება მონაცემების გრაფიკიდან არდუინოდან:

თითოეულ LDR- ს ექნება საკუთარი წინააღმდეგობის მნიშვნელობა და უნდა გვახსოვდეს, რომ ელექტრონულ კომპონენტებს არა აქვთ იდენტური მოქმედება. ამრიგად, ჯერ უნდა ვიპოვოთ ძაბვა სინათლის სხვადასხვა ინტენსივობაზე.

ატვირთეთ შემდეგი პროგრამა თქვენს პითონის IDE- ში და გაუშვით:

გააკეთეთ ეს სინათლის სხვადასხვა ინტენსივობისთვის და გრაფიკის გამოყენებით გამოიტანეთ დასკვნა, მაგალითად, თუ ინტენსივობა 1 -ზე ნაკლებია, ოთახი ძალიან ბნელია. ინტენსივობისთვის 1 -დან 2 -მდე, ოთახი მნიშვნელოვნად ბნელია. 2 -ზე მეტი ინტენსივობისთვის შუქი ჩართულია.

# Arduino_Master მოდულის იმპორტი

Arduino_Master იმპორტიდან *

# მონაცემების შეგროვება

მონაცემები = ფილტრი (ardata (8, squeeze = False, dynamical = True, msg = "DATA", lines = 30), expect_type = 'num', limit = [0, 5])

# ლიმიტი არის 5, რადგან ჩვენ ვიყენებთ 5 ვ ბატარეას.

# ღირებულებების შედგენა

გრაფიკი (მონაცემები, stl = 'dark_background', label = 'Light intensity')

ნაბიჯი 4: საბოლოო პროგრამა ოთახში სინათლის ინტენსივობის შესამოწმებლად

მიღებული მონაცემებიდან დასკვნის გაკეთების შემდეგ ატვირთეთ შემდეგი პროგრამა და დარწმუნდით, რომ შეცვალეთ ლიმიტები თქვენი დასკვნის მიხედვით.

# Arduino_Master მოდულის იმპორტი

Arduino_Master იმპორტიდან # მონაცემების შეგროვება = ფილტრი (ardata (8, squeeze = False, dynamical = True, msg = "DATA", lines = 50), expect_type = 'num', limit = [0, 5]) # მონაცემების კლასიფიკაცია საფუძველზე დასკვნა info = for i in range (len (მონაცემები)): ინტენსივობა = მონაცემები თუ ინტენსივობა 1 და ინტენსივობა = 2: info.append ('Light ON') # გრაფიკის შედგენა. compGraph (მონაცემები, ინფორმაცია, stl = 'dark_background', label1 = 'სინათლის ინტენსივობა', label2 = 'მდგომარეობა')

ნაბიჯი 5: შედეგი:

შედეგი
შედეგი

პროგრამას დასჭირდება ერთი ან ორი წუთი, რადგან თქვენ კითხულობთ 50 მყისიერ მნიშვნელობას არდუინოსგან.

თუ გსურთ პროცესის დაჩქარება სცადეთ ardata ფუნქციის ხაზების პარამეტრის შეცვლა. მაგრამ გახსოვდეთ, რომ რაც უფრო ნაკლები დაკვირვებაა, მით ნაკლები იქნება მონაცემების ხარისხი.

შენიშვნა: თუ ზემოთ მოცემულ სურათზე სრული გრაფიკი არ ჩანს, მიმართეთ დიაგრამას შესავალი განყოფილების ზემოთ.

გირჩევთ: