สารบัญ:
- เสบียง
- ขั้นตอนที่ 1: สร้างตัวชี้
- ขั้นตอนที่ 2: แนบพอยน์เตอร์กับเซอร์โวอาร์ม
- ขั้นตอนที่ 3: ตัด Backer
- ขั้นตอนที่ 4: ติดตั้ง Servo กับ Backer
- ขั้นตอนที่ 5: พิมพ์มาตราส่วน
- ขั้นตอนที่ 6: ใช้มาตราส่วนกับ Backer
- ขั้นตอนที่ 7: การประกอบไฟฟ้า
- ขั้นตอนที่ 8: การประกอบขั้นสุดท้าย / การสอบเทียบ
- ขั้นตอนที่ 9: รหัส 1
- ขั้นตอนที่ 10: รหัส 2
- ขั้นตอนที่ 11: สรุป
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
บทนำ
ก่อนที่ LED และหน้าจอคอมพิวเตอร์จะเป็นวิธีการทั่วไปในการแสดงข้อมูล วิศวกรและนักวิทยาศาสตร์ต้องพึ่งพามิเตอร์วัดแบบแอนะล็อก อันที่จริง พวกมันยังคงใช้อยู่ในห้องควบคุมหลายห้องมาจนถึงทุกวันนี้ เพราะพวกเขา:
- ทำได้ค่อนข้างใหญ่
- ให้ข้อมูลได้อย่างรวดเร็ว
ในโครงการนี้ เราจะใช้เซอร์โวเพื่อสร้างมิเตอร์แอนะล็อกอย่างง่าย แล้วใช้เป็นโวลต์มิเตอร์แบบ DC โปรดทราบว่าชิ้นส่วนต่างๆ สำหรับโครงการนี้ รวมถึง TINKERplate มีอยู่ที่นี่:
Pi-Pates.com/TINKERkit
เสบียง
- TINKERplate Pi-Plate ที่เชื่อมต่อกับ Raspberry Pi ที่รัน Raspian และติดตั้งโมดูล Pi-Plate Python 3 ดูเพิ่มเติมที่:
- สายจัมเปอร์ตัวผู้ถึงตัวผู้ 5 สาย
- เซอร์โวมอเตอร์ 9G
- นอกจากนี้ คุณจะต้องใช้เทปกาวสองหน้า กระดาษแข็งหนาสำหรับรองลูกศร และกระดาษสีขาว หมายเหตุ: เราตัดสินใจที่จะทำให้เครื่องวัดอนาล็อกของเรามีความทนทานมากขึ้น ดังนั้นเราจึงใช้เครื่องพิมพ์ 3 มิติเพื่อสร้างตัวชี้และเศษกระจกบางส่วนสำหรับสำรอง
ขั้นตอนที่ 1: สร้างตัวชี้
ขั้นแรกให้ตัดตัวชี้ที่ยาว 100 มม. จากกระดาษแข็ง (ใช่ เราใช้เมตริกในบางครั้ง) นี่คือไฟล์ STL หากคุณมีสิทธิ์เข้าถึงเครื่องพิมพ์ 3 มิติ: https://www.thingiverse.com/thing:4007011 สำหรับตัวชี้ที่เรียวไปที่ปลายแหลม ให้ลองใช้สิ่งนี้:
ขั้นตอนที่ 2: แนบพอยน์เตอร์กับเซอร์โวอาร์ม
เมื่อคุณสร้างตัวชี้แล้ว ให้ใช้เทปสองหน้าติดเข้ากับแขนข้างใดข้างหนึ่งที่มาพร้อมกับเซอร์โวมอเตอร์ จากนั้นกดแขนลงบนเพลา
ขั้นตอนที่ 3: ตัด Backer
ตัดกระดาษแข็งที่มีความกว้างประมาณ 200 มม. สูง 110 มม. จากนั้นตัดรอยบากขนาดเล็ก 25 มม. คูณ 12 มม. ที่ขอบด้านล่างสำหรับเซอร์โวมอเตอร์ คุณจะต้องชดเชยรอยบากประมาณ 5 มม. ทางด้านขวาของศูนย์กลางเพื่อชดเชยตำแหน่งเพลาบนเซอร์โว ด้านบน คุณจะเห็นว่าลูกแก้วของเรามีหน้าตาเป็นอย่างไร ก่อนที่เราจะตัดส่วนบนและดึงฟิล์มป้องกันออก โปรดทราบว่าเราใช้เลื่อยเลือยตัดโลหะและเดรเมลในการตัดรอย
ขั้นตอนที่ 4: ติดตั้ง Servo กับ Backer
ถัดไป เลื่อนเซอร์โวเข้าที่โดยมีแถบยึดที่ด้านล่าง ใช้สกรูยึดที่มาพร้อมกับเซอร์โวเป็นหมุดยึดให้เข้าที่ คุณอาจต้องใช้ดินสอคมเพื่อเจาะรูในตำแหน่งเหล่านี้ก่อน ถ้าคุณใช้กระดาษแข็งหรือสว่านที่มีดอกสว่านขนาด 1/16 นิ้ว ถ้าคุณใช้ไม้หรืออะคริลิก โปรดทราบว่าเราทำให้รอยบากกว้างเกินไปจนทำให้เกิดการขันสกรู ขวาที่พลาดรูแล้วถูกเสียบเข้าไปในช่องว่างอย่าเป็นเหมือนเรา
ขั้นตอนที่ 5: พิมพ์มาตราส่วน
พิมพ์มาตราส่วนที่แสดงด้านบน ตัดตามเส้นประโดยสังเกตตำแหน่งของเส้นแนวตั้งและแนวนอนรอบๆ รอยบาก ใช้เส้นเหล่านั้นเพื่อจัดแนวมาตราส่วนรอบเพลาของเซอร์โว สำเนาสเกลนี้สามารถดาวน์โหลดได้ที่นี่: https://pi-plates/downloads/Voltmeter Scale.pdf
ขั้นตอนที่ 6: ใช้มาตราส่วนกับ Backer
ดึงชุดแขน/ตัวชี้ออกจากเพลาเซอร์โว และจัดตำแหน่งแผ่นกระดาษโดยให้มาตราส่วนอยู่บนวัสดุสำรองที่มีรอยบากจากขั้นตอนที่สาม จัดตำแหน่งให้เส้นรอบรอยบากอยู่ตรงกลางเซอร์โว เราจะเปิดพอยน์เตอร์อีกครั้งหลังจากที่เราเปิดเครื่องเซอร์โวมอเตอร์
ขั้นตอนที่ 7: การประกอบไฟฟ้า
ติดเซอร์โวมอเตอร์และ "ลีด" เข้ากับแผ่น TINKERplate ของ Pi-Plate โดยใช้แผนภาพด้านบนเป็นแนวทาง เมื่อประกอบมิเตอร์แล้ว สายสีแดงและสีดำที่เชื่อมต่อกับบล็อกแอนะล็อกทางด้านซ้ายจะเป็นโพรบโวลต์มิเตอร์ของคุณ วางสายสีแดงบนขั้วบวกและสายสีดำบนขั้วลบของอุปกรณ์ที่คุณต้องการวัด
ขั้นตอนที่ 8: การประกอบขั้นสุดท้าย / การสอบเทียบ
- หลังจากทำการเชื่อมต่อทางไฟฟ้าแล้ว ให้ทำตามขั้นตอนต่อไปนี้:
- เปิดเครื่อง Raspberry Pi แล้วเปิดหน้าต่างเทอร์มินัล
- สร้างเซสชันเทอร์มินัล Python3 โหลดโมดูล TINKERplate และตั้งค่าโหมดของช่อง I/O ดิจิทัล 1 เป็น 'เซอร์โว' คุณควรได้ยินเซอร์โวเคลื่อนไปที่ตำแหน่ง 90 องศา
- ดันแขนเซอร์โวกลับเข้าที่เพลาโดยให้ตัวชี้ชี้ตรงขึ้นที่ตำแหน่ง 6V
- พิมพ์ TINK.setSERVO(0, 1, 15) เพื่อย้ายเซอร์โวไปที่ตำแหน่ง 0V ถ้ามันไม่ค่อยลงที่ 0 ให้พิมพ์อีกครั้งแต่ใช้มุมที่ต่างออกไป เช่น 14 หรือ 16 คุณอาจพบว่าการสั่งเซอร์โวให้ขยับไปมาทีละน้อยไม่มีผลกับตัวชี้ - นี่เป็นเพราะ เกี่ยวกับปัญหาทางกลทั่วไปเกี่ยวกับเฟืองที่เรียกว่าฟันเฟือง ซึ่งเราจะพูดถึงด้านล่าง เมื่อคุณมีมุมที่วางตัวชี้ไว้ที่ 0V แล้ว ให้จดเป็นค่า LOW ของคุณ
- พิมพ์ TINK.setSERVO(0, 1, 165) เพื่อย้ายเซอร์โวไปที่ตำแหน่ง 12V อีกครั้ง ถ้ามันไม่ค่อยลงที่ 12 ให้พิมพ์อีกครั้งแต่ด้วยมุมที่ต่างกัน เช่น 164 หรือ 166 เมื่อคุณมีมุมที่วางตัวชี้ไว้ที่ 12V แล้ว ให้เขียนเป็นค่าสูงของคุณ
ขั้นตอนที่ 9: รหัส 1
โปรแกรม VOLTmeter.py จะแสดงในขั้นตอนต่อไป คุณสามารถพิมพ์ด้วยตนเองโดยใช้ Thonny IDE บน Raspberry Pi หรือคัดลอกด้านล่างลงในโฮมไดเร็กตอรี่ของคุณ หมายเหตุบรรทัดที่ 5 และ 6 - นี่คือที่ที่คุณเสียบค่าการปรับเทียบที่ได้รับในขั้นตอนสุดท้าย สำหรับเรามันคือ:
lLimit=12.0 #ค่าต่ำของเรา
hLimit=166.0 #ค่าสูงของเรา
เมื่อบันทึกไฟล์แล้ว ให้เรียกใช้โดยพิมพ์: python3 VOLTmeter.py แล้วกดปุ่มในหน้าต่างเทอร์มินัล หากสายโพรบของคุณไม่สัมผัสสิ่งใด ตัวชี้จะเคลื่อนไปยังตำแหน่ง 0 โวลต์บนสเกล ที่จริงแล้ว คุณอาจเห็นเข็มขยับไปมาเพียงเล็กน้อยเมื่อดึงสัญญาณรบกวน 60Hz จากไฟในบริเวณใกล้เคียง การติดโพรบสีแดงเข้ากับขั้ว +5V บนบล็อกแอนะล็อกจะทำให้ตัวชี้กระโดดไปที่เครื่องหมาย 5 โวลต์บนมิเตอร์
ขั้นตอนที่ 10: รหัส 2
นำเข้า piplates. TINKERplate เป็น TINK
เวลานำเข้า TINK.setDEFAULTS(0) #คืนพอร์ตทั้งหมดกลับเป็นสถานะเริ่มต้น TINK.setMODE(0, 1, 'เซอร์โว') #set พอร์ต Digital I/O 1 เพื่อขับเคลื่อนเซอร์โว lLimit=12.0 #ขีดจำกัดล่าง = 0 โวลต์ hLimit=166.0 #ขีดจำกัดบน = 12 volts while(True): analogIn=TINK.getADC(0, 1) #read analog channel 1 #ปรับข้อมูลให้เป็นมุมในช่วง lLimit ถึง hLimit angle=analogIn*(hLimit -lLimit)/12.0 TINK.setSERVO(0, 1, lLimit+angle) #set servo angle time.sleep(.1) #delay และทำซ้ำ
ขั้นตอนที่ 11: สรุป
ดังนั้นเราจึงใช้เทคโนโลยีใหม่เพื่อสร้างสิ่งที่ล้ำสมัยในทศวรรษ 1950 ขึ้นมาใหม่ อย่าลังเลที่จะสร้างเครื่องชั่งของคุณเองและแบ่งปันกับเรา
สิ่งนี้เริ่มต้นจากโครงการง่ายๆ แต่เพิ่มขึ้นอย่างรวดเร็วเมื่อเราคิดถึงการปรับแต่งเพิ่มเติม นอกจากนี้ คุณอาจพบว่าบางครั้งตัวชี้อาจไปไม่ตรงจุด ด้วยเหตุผลสองประการ:
- มีชุดเกียร์อยู่ภายในเซอร์โวมอเตอร์ที่เมื่อประกอบเข้าด้วยกัน จะประสบปัญหาทั่วไปที่เรียกว่าฟันเฟือง คุณสามารถอ่านเพิ่มเติมเกี่ยวกับเรื่องนี้ได้ที่นี่
- เรายังสงสัยว่าเซอร์โวมอเตอร์ของเราไม่ได้เป็นเส้นตรงตลอดช่วงทั้งหมด
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการทำงานภายในของเซอร์โวมอเตอร์ โปรดอ่านเอกสารนี้ และหากต้องการดูโครงการและส่วนเสริมเพิ่มเติมสำหรับ Raspberry Pi โปรดเยี่ยมชมเว็บไซต์ของเราที่ Pi-Plates.com