สารบัญ:
- ขั้นตอนที่ 1: ชิ้นส่วนและส่วนประกอบ
- ขั้นตอนที่ 2: เซ็นเซอร์
- ขั้นตอนที่ 3: การทำงานและการวางตำแหน่งเซนเซอร์
- ขั้นตอนที่ 4: การปรับเทียบออฟเซ็ต
- ขั้นตอนที่ 5: รหัส
- ขั้นตอนที่ 6: แผนผัง
- ขั้นตอนที่ 7: สิ่งที่แนบมา/เคสและการประกอบ
วีดีโอ: คุณสูงแค่ไหน?: 7 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:06
ติดตามการเติบโตของลูกของคุณด้วยเครื่องวัดระยะดิจิตอล
ในช่วงวัยเด็ก แม่ของฉันเคยชินกับการเอาส่วนสูงของฉันและเขียนลงในกระดาษโน้ตเพื่อติดตามการเจริญเติบโตของฉันเป็นระยะๆ แน่นอนว่าที่บ้านไม่มีเครื่องวัดระยะ ฉันกำลังยืนพิงกำแพงหรือวงกบประตูขณะที่เธอเอาเทปวัดมา ตอนนี้ฉันมีหลานสาวที่เพิ่งเกิด และเมื่อเธอเริ่มเดิน พ่อแม่ของเธอจะสนใจที่จะติดตามส่วนสูงของเธออย่างแน่นอน ดังนั้น แนวคิดของเครื่องวัดระยะดิจิตอลจึงถือกำเนิดขึ้น
มันถูกสร้างขึ้นรอบ ๆ Arduino Nano และเซ็นเซอร์ "Time of Flight" ซึ่งวัดว่าแสงเลเซอร์ขนาดเล็กใช้เวลานานเท่าใดในการสะท้อนกลับไปที่เซ็นเซอร์
ขั้นตอนที่ 1: ชิ้นส่วนและส่วนประกอบ
- Arduino Nano Rev 3
- CJMCU 530 (VL53L0x) เลเซอร์เซนเซอร์
- KY-040 ตัวเข้ารหัสแบบหมุน
- จอแสดงผล SSD1306 OLED 128x64
- ออดแบบพาสซีฟ
- ตัวต้านทาน 2x10KΩ
ขั้นตอนที่ 2: เซ็นเซอร์
ST Microelectronics VL53L0X เป็นโมดูลการวัดระยะด้วยเลเซอร์ Time-of-Flight (ToF) รุ่นใหม่ที่บรรจุอยู่ในบรรจุภัณฑ์ขนาดเล็ก ให้การวัดระยะทางที่แม่นยำไม่ว่าแสงสะท้อนเป้าหมายจะแตกต่างจากเทคโนโลยีทั่วไปอย่างไร
สามารถวัดระยะทางสัมบูรณ์ได้ถึง 2 เมตร เลเซอร์ภายในไม่สามารถมองเห็นได้ด้วยตาเปล่า (ความยาวคลื่น 940 นาโนเมตร) และสอดคล้องกับมาตรฐานล่าสุดในแง่ของความปลอดภัย รวมอาร์เรย์ของ SPAD (ไดโอดถล่มโฟตอนเดี่ยว)
การสื่อสารกับเซ็นเซอร์ทำได้ผ่าน I2C เนื่องจากโครงการนี้รวมถึง I2C อีกตัวที่ติดตั้ง (OLED) ตัวต้านทานแบบดึงขึ้น 2 x 10KΩจึงจำเป็นสำหรับสาย SCL และ SDA
ฉันใช้ CJMCU-530 ซึ่งเป็นโมดูลฝ่าวงล้อมที่มี VL53L0X โดย ST Microelectronics
ขั้นตอนที่ 3: การทำงานและการวางตำแหน่งเซนเซอร์
เมื่อสร้างและทดสอบแล้ว ควรติดตั้งอุปกรณ์ไว้ที่กึ่งกลางของโครงประตู เนื่องจากหากคุณติดตั้งใกล้กับผนังหรือสิ่งกีดขวางมากเกินไป ลำแสงเลเซอร์ IR จะถูกรบกวนและสร้างปรากฏการณ์ทางสายไขว้ในการวัด อีกทางเลือกหนึ่งคือการติดตั้งอุปกรณ์ผ่านแกนต่อเพื่อเคลื่อนออกจากผนัง แต่จะไม่สะดวกกว่า
ใช้การวัดความยาวที่ถูกต้องระหว่างพื้นกับเซ็นเซอร์อย่างระมัดระวัง (เพื่อตั้งค่าชดเชย) และปรับเทียบอุปกรณ์ (ดูขั้นตอนถัดไป) เมื่อปรับเทียบแล้ว อุปกรณ์จะสามารถใช้งานได้โดยไม่ต้องปรับเทียบอีกครั้ง เว้นแต่คุณจะย้ายไปยังตำแหน่งอื่น
เปิดอุปกรณ์และวางตัวเองไว้ด้านล่างในตำแหน่งที่ตรงและมั่นคง การวัดจะดำเนินการเมื่ออุปกรณ์ตรวจพบความยาวคงที่นานกว่า 2.5 วินาที เมื่อถึงจุดนั้นก็จะปล่อยเสียงดนตรี "ความสำเร็จ" และคงมาตรการไว้บนจอแสดงผล
ขั้นตอนที่ 4: การปรับเทียบออฟเซ็ต
ดังที่กล่าวไว้ก่อนหน้านี้ คุณต้องตั้งค่าที่ถูกต้อง (เป็นเซนติเมตร) สำหรับออฟเซ็ต ระยะห่างระหว่างอุปกรณ์วัดกับพื้น สามารถทำได้โดยการกดปุ่มเข้ารหัสแบบหมุน (ซึ่งมีสวิตช์ปุ่มกด) เมื่อเปิดใช้งานโหมดการปรับเทียบแล้ว ให้ตั้งระยะห่างที่เหมาะสมโดยหมุนปุ่ม (ตามเข็มนาฬิกาเพิ่มเซนติเมตร ลบทวนเข็มนาฬิกา) ช่วงออฟเซ็ตตั้งแต่ 0 ถึง 2.55 ม.
เสร็จแล้วก็กดปุ่มอีกครั้ง ออดภายในจะถูกสร้างขึ้นสองโทนที่แตกต่างกันเพื่อให้คุณได้รับคำติชม โหมดการปรับเทียบมีระยะหมดเวลา 1 นาที: หากคุณไม่ตั้งค่าชดเชยภายในระยะหมดเวลานี้ อุปกรณ์จะออกจากโหมดการปรับเทียบและกลับสู่โหมดการวัดโดยไม่ต้องเปลี่ยนค่าชดเชยที่เก็บไว้ ออฟเซ็ตจะถูกเก็บไว้ในหน่วยความจำ EEPROM ของ Arduino เพื่อเก็บไว้ผ่านการปิดระบบในภายหลัง
ขั้นตอนที่ 5: รหัส
ST Microelectronics ได้เปิดตัวไลบรารี API เต็มรูปแบบสำหรับ VL53L0X รวมถึงการตรวจจับท่าทางสัมผัส สำหรับอุปกรณ์ของฉัน ฉันพบว่าใช้ไลบรารี VL53L0X ของ Pololu สำหรับ Arduino ได้ง่ายขึ้น ไลบรารีนี้มีจุดมุ่งหมายเพื่อให้เป็นวิธีที่เร็วและง่ายขึ้นในการเริ่มต้นใช้งาน VL53L0X กับคอนโทรลเลอร์ที่เข้ากันได้กับ Arduino ตรงกันข้ามกับการปรับแต่งและรวบรวม API ของ ST สำหรับ Arduino
ฉันได้ตั้งค่าเซ็นเซอร์ให้อยู่ในโหมดความแม่นยำสูงและโหมด LONG RANGE เพื่อให้มีอิสระมากขึ้นในการติดตั้งความสูงและการตั้งค่าออฟเซ็ต ซึ่งจะส่งผลให้ความเร็วในการตรวจจับช้าลง ซึ่งเพียงพอสำหรับวัตถุประสงค์ของอุปกรณ์นี้
ออฟเซ็ตจะถูกเก็บไว้ในหน่วยความจำ EEPROM ของ Arduino ซึ่งค่าจะถูกเก็บไว้เมื่อปิดบอร์ด
ในส่วนลูป การวัดใหม่จะถูกเปรียบเทียบกับอันก่อนหน้า และหากผ่านไป 2.5 วินาทีในการวัดเดียวกัน (และหากไม่ใช่ค่า Offrange หรือ Timeout) การวัดจะถูกหักออกจากออฟเซ็ตและแสดงอย่างต่อเนื่องบนจอแสดงผล. เพลงสั้นที่ "สำเร็จ" เล่นโดย Buzzer เพียโซ เพื่อแจ้งให้ผู้ใช้ทราบทางเสียง
ขั้นตอนที่ 6: แผนผัง
ขั้นตอนที่ 7: สิ่งที่แนบมา/เคสและการประกอบ
เนื่องจากผมไม่สามารถตัดหน้าต่างสี่เหลี่ยมบนกล่องทางการค้าได้เป็นที่รู้จักกันดี ผมจึงใช้เส้นทางในการออกแบบเคสด้วย CAD และส่งไปพิมพ์ 3D ไม่ใช่ตัวเลือกที่ถูกที่สุด แต่ก็ยังเป็นวิธีแก้ปัญหาที่สะดวก เนื่องจากมีความเป็นไปได้ที่จะมีความแม่นยำและยืดหยุ่นมากในการจัดตำแหน่งของส่วนประกอบทั้งหมด
ชิปเลเซอร์ขนาดเล็กติดตั้งโดยไม่มีกระจกปิดใดๆ เพื่อหลีกเลี่ยงปัญหาสัญญาณขวางและมาตรการเอาแน่เอานอนไม่ได้ หากคุณต้องการติดตั้งเลเซอร์หลังฝาครอบ คุณจะต้องดำเนินการตามขั้นตอนการสอบเทียบที่ซับซ้อนตามที่รายงานในเอกสารประกอบของ ST Microelectronics
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: 3 ขั้นตอน
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: ในบทช่วยสอนนี้ ฉันจะแสดงขั้นตอนสำคัญในการติดตั้งปลั๊กอิน WordPress ให้กับเว็บไซต์ของคุณ โดยทั่วไป คุณสามารถติดตั้งปลั๊กอินได้สองวิธี วิธีแรกคือผ่าน ftp หรือผ่าน cpanel แต่ฉันจะไม่แสดงมันเพราะมันสอดคล้องกับ
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): 8 ขั้นตอน
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): ตัวแปลงสัญญาณเสียงล้ำเสียง L298N Dc ตัวเมียอะแดปเตอร์จ่ายไฟพร้อมขา DC ตัวผู้ Arduino UNOBreadboardวิธีการทำงาน: ก่อนอื่น คุณอัปโหลดรหัสไปยัง Arduino Uno (เป็นไมโครคอนโทรลเลอร์ที่ติดตั้งดิจิตอล และพอร์ตแอนะล็อกเพื่อแปลงรหัส (C++)
เครื่อง Rube Goldberg 11 ขั้นตอน: 8 ขั้นตอน
เครื่อง 11 Step Rube Goldberg: โครงการนี้เป็นเครื่อง 11 Step Rube Goldberg ซึ่งออกแบบมาเพื่อสร้างงานง่ายๆ ในรูปแบบที่ซับซ้อน งานของโครงการนี้คือการจับสบู่ก้อนหนึ่ง