สารบัญ:

การทำพล็อตความเข้มของแสงโดยใช้ Arduino และ Arduino Master Library ของ Python: 5 ขั้นตอน
การทำพล็อตความเข้มของแสงโดยใช้ Arduino และ Arduino Master Library ของ Python: 5 ขั้นตอน

วีดีโอ: การทำพล็อตความเข้มของแสงโดยใช้ Arduino และ Arduino Master Library ของ Python: 5 ขั้นตอน

วีดีโอ: การทำพล็อตความเข้มของแสงโดยใช้ Arduino และ Arduino Master Library ของ Python: 5 ขั้นตอน
วีดีโอ: AI ตรวจจับและจำแนกสิ่งของแบบรวดเร็วแม่นยำ | Object Detection with Python 2024, ธันวาคม
Anonim
การพล็อตความเข้มของแสงโดยใช้ Arduino และ Arduino Master Library ของ Python
การพล็อตความเข้มของแสงโดยใช้ Arduino และ Arduino Master Library ของ Python

Arduino เป็นเครื่องมือที่ประหยัดแต่มีประสิทธิภาพสูงและใช้งานได้จริง การเขียนโปรแกรมใน Embedded C ทำให้กระบวนการทำโปรเจ็กต์น่าเบื่อหน่าย! โมดูล Arduino_Master ของ Python ทำให้สิ่งนี้ง่ายขึ้น และช่วยให้เราทำการคำนวณ ลบค่าขยะ และพล็อตกราฟสำหรับการแสดงข้อมูลด้วยภาพ

หากคุณยังไม่รู้เกี่ยวกับโมดูลนี้ ให้ติดตั้งโดยใช้คำสั่ง pip install Arduino_Master

ไม่ต้องกังวลหากคุณไม่ทราบวิธีใช้โมดูลนี้ โปรดไปที่ลิงก์นี้ => Arduino_Master

อย่างไรก็ตาม รหัสสำหรับโครงการนี้จะอยู่ในคำแนะนำนี้เสมอ

เสบียง

สำหรับโครงการนี้ คุณจะต้องมีสิ่งต่อไปนี้:

  1. Arduino
  2. ตัวต้านทานแบบพึ่งพาแสง (LDR) และ
  3. Python 3 ติดตั้งบนคอมพิวเตอร์ของคุณ

ขั้นตอนที่ 1: สร้างวงจรของคุณ:

สร้างวงจรของคุณ
สร้างวงจรของคุณ

เราจะใช้พิน A1 ของ Arduino เพื่อรับข้อมูลอินพุต คุณสามารถใช้พิน 5V และ GND ของ Arduino แทนแบตเตอรี่ได้ ทำการเชื่อมต่อดังนี้:

  1. เชื่อมต่อปลายด้านหนึ่งของ LDR เข้ากับขั้วบวกของแบตเตอรี่ 5V หรือขา 5V ของ Arduino
  2. เชื่อมต่อปลายอีกด้านของ LDR ขนานกับพิน A1 และขั้วลบของแบตเตอรี่หรือพิน GND ของ Arduino
  3. ใช้ตัวต้านทานเพื่อให้แน่ใจว่ากระแสทั้งหมดไม่ไหลไปยัง GND ซึ่งจะส่งผลให้คุณไม่ได้รับสัญญาณที่แรงพอที่จะสัมผัสที่ขั้ว A1 ของ Arduino (กำลังใช้ตัวต้านทาน 10k โอห์ม)

ขั้นตอนที่ 2: การเขียนโปรแกรม Arduino ของคุณ:

โมดูล Arduino_Master ใช้ Serial Monitor ของ Arduino เพื่อส่งและรับข้อมูล ข้อดีของการใช้โมดูลนี้คือ เมื่อคุณตั้งโปรแกรม Arduino ของคุณแล้ว คุณสามารถเปลี่ยนโปรแกรม python เพียงอย่างเดียวสำหรับโครงการต่างๆ ได้ เนื่องจากการเขียนโปรแกรมใน python นั้นค่อนข้างง่ายกว่า!

รหัส:

// ตัวแปร LDR_1 ใช้เพื่อระบุพิน A1 ของ Arduino

int LDR_1 = A1;

// ข้อมูลที่ได้รับจาก A1 จะถูกเก็บไว้ใน LDR_Value_1

ลอย LDR_Value_1;

อินพุตสตริง;

การตั้งค่าเป็นโมฆะ ()

{ โหมดพิน (LDR_1, อินพุต); // LDR_1 ถูกตั้งค่าเป็นพิน INPUT Serial.begin(9600); // Communication baudrate ตั้งไว้ที่ 9600 }

วงเป็นโมฆะ ()

{ if(Serial.available()>0) // หากมีอินพุตใดในมอนิเตอร์ซีเรียล ให้ดำเนินการต่อ { อินพุต = 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 แล้วพิมพ์บน Serial Monitor } อื่น ๆ int i=0; // ถ้าอินพุตไม่เท่ากับ "DATA" ไม่ต้องทำอะไร ! }

}

ขั้นตอนที่ 3: การเขียนโปรแกรม Python เพื่อสร้างกราฟข้อมูลจาก Arduino:

LDR แต่ละตัวและทุกตัวจะมีค่าความต้านทานของมันเอง และเราต้องจำไว้ว่าไม่มีส่วนประกอบอิเล็กทรอนิกส์ใดที่ทำงานเหมือนกันทุกประการ ดังนั้นก่อนอื่นเราต้องหาแรงดันไฟฟ้าที่ความเข้มแสงต่างกัน

อัปโหลดโปรแกรมต่อไปนี้ไปยัง python IDE ของคุณและเรียกใช้:

ทำเช่นนี้สำหรับความเข้มของแสงต่างๆ และใช้กราฟสรุป เช่น ถ้าความเข้มน้อยกว่า 1 ห้องมืดเกินไป สำหรับความเข้มระหว่าง 1 ถึง 2 ห้องจะมืดมาก สำหรับความเข้มที่มากกว่า 2 ไฟจะเปิดขึ้น

# การนำเข้าโมดูล Arduino_Master

จากการนำเข้า Arduino_Master *

#กำลังรวบรวมข้อมูล

data=filter(ardata(8, squeeze=False, dynamic=True, msg="DATA", lines=30), expect_type='num', limit=[0, 5])

# จำกัด ตั้งไว้ที่ 5 เนื่องจากเราใช้แบตเตอรี่ 5V

#พล็อตค่า

กราฟ (data, stl='dark_background', label='Light Intensity')

ขั้นตอนที่ 4: โปรแกรมสุดท้ายเพื่อตรวจสอบความเข้มของแสงในห้อง

หลังจากที่ได้ข้อสรุปจากข้อมูลที่คุณได้รับแล้ว ให้อัปโหลดโปรแกรมต่อไปนี้และตรวจดูให้แน่ใจว่าได้เปลี่ยนขีดจำกัดตามข้อสรุปของคุณ

# การนำเข้าโมดูล Arduino_Master

จากการนำเข้า Arduino_Master # การรวบรวมข้อมูล data=filter(ardata(8, squeeze=False, dynamic=True, msg="DATA", lines=50), expect_type='num', limit=[0, 5]) #การจัดประเภทข้อมูล ขึ้นอยู่กับข้อมูลสรุป = สำหรับฉันในช่วง (len (ข้อมูล)): ความเข้ม = ข้อมูล ถ้าความเข้ม 1 และความเข้ม = 2: info.append ('Light ON') # การพล็อตกราฟ compGraph(ข้อมูล, ข้อมูล, stl='dark_background', label1='Light Intensity', label2='State')

ขั้นตอนที่ 5: ผลลัพธ์:

ผลลัพธ์
ผลลัพธ์

โปรแกรมจะใช้เวลาหนึ่งหรือสองนาทีในการทำงาน เนื่องจากคุณกำลังอ่านค่า 50 ค่าทันทีจาก Arduino

หากคุณต้องการเร่งกระบวนการให้ลองเปลี่ยนพารามิเตอร์ lines ของฟังก์ชัน ardata แต่จำไว้ว่ายิ่งการสังเกตน้อยเท่าไร คุณภาพของข้อมูลก็จะยิ่งน้อยลงเท่านั้น

หมายเหตุ: หากมองไม่เห็นกราฟทั้งหมดในรูปด้านบน ให้ดูกราฟด้านบนส่วนบทนำ

แนะนำ: