สารบัญ:

เข็มทิศ LED และเครื่องวัดระยะสูง: 7 ขั้นตอน (พร้อมรูปภาพ)
เข็มทิศ LED และเครื่องวัดระยะสูง: 7 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: เข็มทิศ LED และเครื่องวัดระยะสูง: 7 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: เข็มทิศ LED และเครื่องวัดระยะสูง: 7 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: เครื่องวัดความสูง ความดันอากาศอุณหภูมิ เข็มทิศ 4in1 2024, กรกฎาคม
Anonim
Image
Image
แผนภาพวงจรและ PCB
แผนภาพวงจรและ PCB

วัตถุที่มีไฟ LED ดึงดูดใจฉันเสมอ ดังนั้นโครงการนี้จึงรวมเซ็นเซอร์เข็มทิศดิจิตอลยอดนิยม HMC5883L เข้ากับ LED 48 ดวง โดยการวางไฟ LED ในวงกลม ไฟ LED ซึ่งให้แสงสว่างคือทิศทางที่คุณกำลังมุ่งหน้าไป ทุกๆ 7.5 องศาจะขับ LED ใหม่ซึ่งให้ผลลัพธ์โดยละเอียด

บอร์ด GY-86 ยังมีเซ็นเซอร์ความดันบรรยากาศ MS5611 ด้วยความช่วยเหลือของเซ็นเซอร์นี้ คุณสามารถคำนวณระดับความสูงได้ เนื่องจากความละเอียดสูงจึงเหมาะอย่างยิ่งสำหรับเครื่องวัดระยะสูง

เซ็นเซอร์ MPU6050 บนบอร์ด GY-86 มีทั้งมาตรความเร่งแบบ 3 แกนและไจโรสโคปแบบ 3 แกน ไจโรสโคปสามารถวัดความเร็วของตำแหน่งเชิงมุมเมื่อเวลาผ่านไป มาตรความเร่งสามารถวัดความเร่งโน้มถ่วง และใช้คณิตศาสตร์ตรีโกณมิติสามารถคำนวณมุมที่เซ็นเซอร์วางตำแหน่งได้ เมื่อรวมข้อมูลมาตรความเร่งและไจโรสโคป คุณจะได้รับข้อมูลเกี่ยวกับการวางแนวเซ็นเซอร์ สามารถใช้สำหรับการชดเชยความเอียงสำหรับเข็มทิศ HMC5883L (ที่ต้องทำ)

วิดีโอแนะนำสั้น ๆ ในคำแนะนำนี้จะอธิบายรายละเอียดว่ามันทำงานอย่างไร ขั้นตอนการสอบเทียบเป็นไปโดยอัตโนมัติเพื่อรับประกันความสำเร็จ อุณหภูมิมีอยู่ในเซลเซียส (ค่าเริ่มต้น) หรือฟาเรนไฮต์

มีความสุข !!

ขั้นตอนที่ 1: เครื่องวัดระยะสูง

Image
Image

เครื่องวัดระยะสูงใช้เซ็นเซอร์ความดันบรรยากาศ MS5611 สามารถกำหนดระดับความสูงได้ตามการวัดความดันบรรยากาศ ยิ่งสูง ความดันยิ่งต่ำ เมื่อเริ่มต้น เครื่องวัดระยะสูงจะใช้ความดันระดับน้ำทะเลเริ่มต้นที่ 1013.25 mbar การกดปุ่มที่พิน 21 แรงกดที่ตำแหน่งของคุณจะถูกใช้เป็นข้อมูลอ้างอิง ด้วยวิธีนี้ทำให้สามารถวัดความสูงของสิ่งของได้โดยประมาณ (เช่น เมื่อขับรถขึ้นเนิน)

โปรเจ็กต์นี้ใช้สูตรที่เรียกว่า "Hypsometric formula" สูตรนี้ใช้อุณหภูมิเพื่อชดเชยการวัด

float alt=((powf(แหล่งที่มา / ((float) P / 100.0), 0.19022256) - 1.0) * ((float) TEMP / 100 + 273.15)) / 0.0065;

คุณสามารถหาข้อมูลเพิ่มเติมเกี่ยวกับสูตรไฮโซเมตริกได้ที่นี่:

สูตรไฮโปเมทริก

ข้อมูลการสอบเทียบจากโรงงานและอุณหภูมิเซ็นเซอร์จะอ่านจากเซ็นเซอร์ MS5611 และนำไปใช้กับโค้ดเพื่อให้ได้การวัดที่แม่นยำที่สุด ระหว่างการทดสอบ ฉันพบว่าเซ็นเซอร์ MS5611 มีความไวต่อการไหลของอากาศและความแตกต่างของความเข้มของแสง ต้องเป็นไปได้เพื่อให้ได้ผลลัพธ์ที่ดีกว่าในวิดีโอแนะนำนี้

ขั้นตอนที่ 2: อะไหล่

1 x Microchip 18f26k22 ไมโครคอนโทรลเลอร์ 28-PIN PDIP

3 x MCP23017 เครื่องขยายสัญญาณ I/O 16 บิต 28 พิน SPDIP

48 x LED's 3mm

1 x โมดูล GY-86 พร้อมเซ็นเซอร์ MS5611, HMC5883L และ MPU6050

1 x SH1106 OLED 128x64 I2C

1 x ตัวเก็บประจุเซรามิก 100nF

ตัวต้านทาน 1 x 100 โอห์ม

ขั้นตอนที่ 3: แผนภาพวงจรและ PCB

แผนภาพวงจรและ PCB
แผนภาพวงจรและ PCB

ทุกอย่างพอดีกับ PCB ด้านเดียว ค้นหาไฟล์ Eagle และ Gerber ที่นี่ เพื่อให้คุณสร้างเองหรือสอบถามผู้ผลิต PCB

ฉันใช้เข็มทิศ LED และเครื่องวัดระยะสูงในรถของฉันและใช้อินเทอร์เฟซ OBD2 เป็นแหล่งจ่ายไฟ ไมโครคอนโทรลเลอร์พอดีกับขั้วต่อ

ขั้นตอนที่ 4: วิธีจัดแนว LED ให้สมบูรณ์แบบในวงกลมในไม่กี่วินาทีด้วยซอฟต์แวร์การออกแบบ Eagle PCB

คุณต้องเห็นคุณสมบัติที่ดีจริงๆ ใน Eagle PCB Design Software ซึ่งช่วยให้คุณประหยัดเวลาในการทำงาน ด้วยคุณสมบัติ Eagle นี้ คุณสามารถจัดแนว LED ให้เป็นวงกลมได้อย่างสมบูรณ์แบบในไม่กี่วินาที

เพียงคลิกที่แท็บ "ไฟล์" จากนั้น "เรียกใช้ ULP" จากที่นี่ คลิกที่ "cmd-draw.ulp" เลือก "ย้าย" "ขั้นองศา" และ "วงกลม" กรอกชื่อ LED แรกในฟิลด์ "ชื่อ" กำหนดพิกัดของจุดศูนย์กลางของวงกลมบนตารางที่ช่อง "X center coord" และ "Y center coord" ในโครงการนี้มีไฟ LED 48 ดวงดังนั้น 360 หารด้วย 48 ทำให้ 7.5 สำหรับฟิลด์ "มุมขั้น" รัศมีของวงกลมนี้คือ 1.4 นิ้ว กด Enter และคุณมีวงกลม LED ที่สมบูรณ์แบบ

ขั้นตอนที่ 5: กระบวนการสอบเทียบเข็มทิศ

Image
Image

HMC5883L มี ADC 12 บิตที่ช่วยให้ทิศทางของเข็มทิศมีความแม่นยำ 1 ถึง 2 องศาเซลเซียส แต่ก่อนที่จะให้ข้อมูลที่ใช้งานได้ จะต้องมีการปรับเทียบ เพื่อให้โปรเจ็กต์นี้ทำงานได้อย่างราบรื่น มีวิธีการสอบเทียบที่ให้ค่าออฟเซ็ต x และ y ไม่ใช่วิธีการที่ซับซ้อนที่สุด แต่ก็เพียงพอสำหรับโครงการนี้ ขั้นตอนนี้จะเสียค่าใช้จ่ายเพียงไม่กี่นาทีและให้ผลลัพธ์ที่ดี

โดยการโหลดและเรียกใช้ซอฟต์แวร์นี้ คุณจะได้รับคำแนะนำในกระบวนการสอบเทียบนี้ จอแสดงผล OLED จะบอกคุณเมื่อกระบวนการจะเริ่มและสิ้นสุดเมื่อใด กระบวนการสอบเทียบนี้จะขอให้คุณหมุนเซ็นเซอร์ 360 องศาโดยถือให้แบนสนิท (ในแนวนอนกับพื้น) ติดตั้งบนขาตั้งกล้องหรืออะไรทำนองนั้น การทำเช่นนี้โดยถือไว้ในมือของคุณไม่ได้ผล ในตอนท้าย ออฟเซ็ตจะแสดงบน OLED หากคุณเรียกใช้ขั้นตอนนี้หลายครั้ง คุณต้องเห็นผลลัพธ์ที่เกือบเท่ากัน

นอกจากนี้ ข้อมูลที่รวบรวมยังมีให้ผ่าน RS232 ผ่านพิน 27 (9600 บอด) เพียงใช้โปรแกรมเทอร์มินัลเช่น Putty และรวบรวมข้อมูลทั้งหมดในไฟล์บันทึก ข้อมูลนี้สามารถนำเข้าได้อย่างง่ายดายใน Excel จากที่นี่ คุณสามารถดูได้ง่ายขึ้นว่าออฟเซ็ตของ HMC5883L ของคุณเป็นอย่างไร

ออฟเซ็ตใส่ใน EEPROM ของไมโครคอนโทรลเลอร์ สิ่งเหล่านี้จะถูกโหลดเมื่อเริ่มต้นซอฟต์แวร์เข็มทิศและเครื่องวัดระยะสูง ซึ่งคุณจะพบในขั้นตอนที่ 7

ขั้นตอนที่ 6: ชดเชยการปฏิเสธแม่เหล็กของตำแหน่งของคุณ

Image
Image
การประกวดเซนเซอร์
การประกวดเซนเซอร์

มีทิศเหนือแม่เหล็กและทิศเหนือทางภูมิศาสตร์ (ขั้วโลกเหนือ) เข็มทิศของคุณจะเป็นไปตามเส้นสนามแม่เหล็กของโลก ดังนั้นให้ชี้ไปที่ทิศเหนือของแม่เหล็ก ความแตกต่างระหว่างทิศเหนือแม่เหล็กและทิศเหนือทางภูมิศาสตร์เรียกว่าการปฏิเสธแม่เหล็ก ที่ตำแหน่งของฉัน ความลาดเอียงเพียง 1 องศา 22 นาที ดังนั้นจึงไม่คุ้มที่จะชดเชยสิ่งนี้ ที่อื่น ความเอียงนี้อาจสูงถึง 30 องศา

ค้นหาความลาดเอียงของสนามแม่เหล็ก ณ ตำแหน่งของคุณ

หากคุณต้องการชดเชยสิ่งนี้ (เป็นทางเลือก) คุณสามารถเพิ่มการปฏิเสธ (องศาและนาที) ใน EEPROM ของไมโครคอนโทรลเลอร์ ที่ตำแหน่ง 0x20 คุณสามารถเพิ่มองศาในรูปแบบเลขฐานสิบหกที่มีลายเซ็น มีการลงนามเพราะอาจเป็นการปฏิเสธเชิงลบได้เช่นกัน ที่ตำแหน่ง 0x21 คุณสามารถเพิ่มนาทีในรูปแบบเลขฐานสิบหกได้เช่นกัน

ขั้นตอนที่ 7: รวบรวมรหัส

Image
Image

รวบรวมซอร์สโค้ดนี้และตั้งโปรแกรมไมโครคอนโทรลเลอร์ของคุณ รหัสนี้คอมไพล์ถูกต้องด้วย MPLABX IDE v5.20 และ XC8 คอมไพเลอร์ v2.05 ในโหมด C99 (รวมถึงไดเร็กทอรี C99) นอกจากนี้ยังมีไฟล์ hex เพื่อให้คุณสามารถข้ามขั้นตอนการคอมไพล์ได้ ตรวจสอบให้แน่ใจว่าคุณยกเลิกการเลือกช่องทำเครื่องหมาย "เปิดใช้งานข้อมูล EEPROM" เพื่อป้องกันไม่ให้ข้อมูลการสอบเทียบ (ดูขั้นตอนที่ 5) ถูกเขียนทับ ตั้งโปรแกรมเมอร์ของคุณไว้ที่ 3.3 โวลต์!

การเชื่อมต่อพิน 27 กับกราวด์คุณจะได้อุณหภูมิเป็นฟาเรนไฮต์

ขอบคุณ Achim Döbler สำหรับไลบรารีกราฟิก µGUI ของเขา

การประกวดเซนเซอร์
การประกวดเซนเซอร์

รองชนะเลิศการประกวดเซนเซอร์

แนะนำ: