สารบัญ:
- ขั้นตอนที่ 1: ชิ้นส่วนและส่วนประกอบ
- ขั้นตอนที่ 2: ตัวเข้ารหัส
- ขั้นตอนที่ 3: ความไว
- ขั้นตอนที่ 4: การวัด
- ขั้นตอนที่ 5: การประกอบ
- ขั้นตอนที่ 6: รหัส
- ขั้นตอนที่ 7: แผนผัง
- ขั้นตอนที่ 8: จาก PoC สู่การผลิต
- ขั้นตอนที่ 9: แกลเลอรี่ภาพ
วีดีโอ: Measurino: การพิสูจน์แนวคิดของวงล้อวัด: 9 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:06
Measurino เพียงนับจำนวนรอบการหมุนของล้อ และระยะทางที่เดินทางจะเป็นสัดส่วนโดยตรงกับรัศมีของล้อเอง นี่คือหลักการพื้นฐานของมาตรระยะทาง และฉันได้เริ่มโครงการนี้เป็นหลักเพื่อศึกษาวิธีรักษาวงจร (จัดการโดยไมโครคอนโทรลเลอร์ Arduino) เข้ากันได้กับระยะต่างๆ ตั้งแต่มิลลิเมตรถึงกิโลเมตร และเพื่อประเมินปัญหาหรือการปรับปรุงที่เป็นไปได้
ขั้นตอนที่ 1: ชิ้นส่วนและส่วนประกอบ
- Arduino Nano rev.3
- จอแสดงผล OLED ขนาด 128 × 64 (SSD1306)
- ตัวเข้ารหัสโรตารี่แบบเพิ่มค่าโฟโตอิเล็กทริก (400P/R)
- ล้อยางสำหรับเครื่องบินรุ่น (เส้นผ่านศูนย์กลาง 51 มม.)
- 2 ปุ่มกด
- แบตเตอรี่ 9v
ขั้นตอนที่ 2: ตัวเข้ารหัส
สำหรับโครงการนี้ ฉันได้ทดสอบเครื่องเข้ารหัสแบบโรตารี่ราคาถูกหลายตัว แต่ฉันก็ละทิ้งมันทันทีเนื่องจากปัญหาด้านความแม่นยำ/ความไว ดังนั้นฉันจึงไปที่ Incremental Photoelectric Rotary Encoder ของ DFRobot - 400P/R SKU: SEN0230 นี่คือตัวเข้ารหัสแบบหมุนโฟโตอิเล็กทริกที่เพิ่มขึ้นในอุตสาหกรรมด้วยวัสดุอลูมิเนียม เปลือกโลหะ และเพลาสแตนเลส มันสร้างสัญญาณพัลส์มุมฉากสองเฟส AB ผ่านการหมุนของตะแกรงตะแกรงและออปโตคัปเปลอร์ 400 พัลส์/รอบสำหรับแต่ละเฟส และ 1600 พัลส์/รอบสำหรับเอาต์พุตแบบสองเฟส 4 ครั้ง เครื่องเข้ารหัสแบบโรตารี่นี้รองรับความเร็วสูงสุด 5000 r/min และสามารถใช้สำหรับความเร็ว มุม ความเร็วเชิงมุม และข้อมูลอื่นๆ ได้
ตัวเข้ารหัสแบบหมุนด้วยตาแมวมีเอาต์พุต NPN open collector ดังนั้นคุณจึงจำเป็นต้องใช้ตัวต้านทานแบบดึงขึ้นหรือเปิดใช้งานการดึงขึ้นของ Arduino ภายใน ใช้ชิปควบคุมแรงดันไฟฟ้า 750L05 ซึ่งมีอินพุตพลังงานช่วงกว้าง DC4.8V-24V
ขั้นตอนที่ 3: ความไว
ตัวเข้ารหัสโรตารีออปโตอิเล็กทริกนี้มีความไวสูง ซึ่งทำให้เหมาะสำหรับการควบคุมเพลาและการใช้งานการจัดตำแหน่ง แต่สำหรับจุดประสงค์ของฉัน มันสมเหตุสมผลเกินไป ด้วยล้อขนาด 51 มม. เครื่องเข้ารหัสนี้มีความไว 0.4 มม. ซึ่งหมายความว่าหากคุณมีอาการสั่นเพียงเล็กน้อย มือจะถูกบันทึก ดังนั้นฉันจึงลดความไวโดยเพิ่มฮิสเทรีซิสในรูทีนการขัดจังหวะ:
โมฆะขัดจังหวะ ()
{ ถ่านฉัน; ผม = digitalRead(B_PHASE); ถ้า (i == 1) นับ +=1; นับอื่น -=1; ถ้า (abs (นับ) >= hysteresis) { flag_A = flag_A+count; นับ = 0; } }
เคล็ดลับนี้เพียงพอที่จะให้ความมั่นคงที่ดีกับการวัด
ขั้นตอนที่ 4: การวัด
เลือกหน่วยวัดของคุณ (ทศนิยมหรืออิมพีเรียล) จากนั้นวางตำแหน่งวงล้อด้วยจุดสัมผัสที่จุดเริ่มต้นของการวัดของคุณ กดปุ่มรีเซ็ตและหมุนต่อไปจนสุด จากซ้ายไปขวา การวัดจะเพิ่มขึ้นและสรุป สำหรับจากขวาไปซ้าย การวัดจะเพิ่มขึ้นและลบออก คุณยังสามารถวัดวัตถุที่โค้งงอได้ (รูปร่างรถของคุณ ราวบันไดเวียน ความยาวของแขนจากไหล่ถึงข้อมือด้วยการงอศอก ฯลฯ)
การหมุนวงล้อเต็มเส้นผ่านศูนย์กลาง=D จะวัดความยาว D*π. ในกรณีของฉัน ด้วยล้อขนาด 51 มม. นี่คือ 16.02 ซม. และแต่ละขีดมีขนาด 0.4 มม. (ดูย่อหน้าความไว)
ขั้นตอนที่ 5: การประกอบ
PoC ถูกสร้างขึ้นบนเขียงหั่นขนมเพื่อสาธิตวงจร ทุกส่วนประกอบถูกติดตั้งไว้บนบอร์ด และตัวเข้ารหัสแบบโรตารี่เชื่อมต่อกับขั้วต่อแบบสกรู 2x2 ขั้ว แบตเตอรี่เป็นแบตเตอรี่มาตรฐาน 9v และการใช้พลังงานทั้งหมดของวงจรอยู่ที่ประมาณ 60mA
ขั้นตอนที่ 6: รหัส
สำหรับจอแสดงผล ฉันใช้ U8g2lib ซึ่งยืดหยุ่นและทรงพลังมากสำหรับจอแสดงผล OLED ประเภทนี้ ทำให้มีแบบอักษรให้เลือกมากมายและฟังก์ชันการจัดตำแหน่งที่ดี ฉันไม่ได้เสียเวลามากเกินไปในการกรอกข้อมูลให้เต็มหน้าจอ เพราะนี่เป็นเพียง Poc
ในการอ่านเอ็นโค้ดเดอร์ ฉันกำลังใช้อินเตอร์รัปต์ที่สร้างโดยหนึ่งใน 2 เฟส: ทุกครั้งที่เพลาเอนโค้ดเดอร์เคลื่อนที่ มันจะสร้างอินเตอร์รัปต์กับ Arduino ที่ผูกติดอยู่กับการเพิ่มขึ้นของแรงกระตุ้น
AttachInterrupt(digitalPinToInterrupt(A_PHASE), อินเตอร์รัปต์, RISING);
จอแสดงผลจะเปลี่ยนจากมิลลิเมตร เป็นเมตร เป็นกิโลเมตร และ (หากเลือกจากปุ่มกด) จากนิ้ว เป็นหลา เป็นไมล์ ในขณะที่ปุ่มกด RST จะรีเซ็ตการวัดเป็นศูนย์
ขั้นตอนที่ 7: แผนผัง
ขั้นตอนที่ 8: จาก PoC สู่การผลิต
เหตุใดจึงเป็นการพิสูจน์แนวคิด เนื่องจากมีการปรับปรุงหลายอย่างที่ทำได้/ควรทำก่อนสร้างอุปกรณ์ที่ใช้งานได้เต็มรูปแบบ มาดูการปรับปรุงที่เป็นไปได้ทั้งหมดในรายละเอียด:
- ล้อ. ความไว/ความแม่นยำของ Measurino ขึ้นอยู่กับล้อ ล้อที่เล็กกว่าสามารถให้ความแม่นยำที่ดีขึ้นในการวัดความยาวขนาดเล็ก (เรียงจากมิลลิเมตรเป็นเซนติเมตร) ล้อขนาดใหญ่กว่ามากพร้อมบูมส่วนต่อขยายจะช่วยให้เดินบนถนนและวัดระยะทางได้ สำหรับล้อขนาดเล็ก ต้องคำนึงถึงวัสดุ: ล้อยางเต็มตัวอาจทำให้เสียรูปเล็กน้อยและส่งผลต่อความแม่นยำ ดังนั้น ในกรณีนี้ ผมจะแนะนำล้ออะลูมิเนียม/เหล็กที่มีเทปบางๆ เพื่อหลีกเลี่ยงไม่ให้ลื่นไถล ด้วยการแก้ไขซอฟต์แวร์เล็กน้อย (เลือกเส้นผ่านศูนย์กลางล้อที่ถูกต้องด้วยสวิตช์) คุณอาจพิจารณาล้อแบบถอดเปลี่ยนได้เพื่อปรับให้เข้ากับการวัดใดๆ โดยใช้ขั้วต่อ 4 พิน (เช่น พอร์ต usb)
- ซอฟต์แวร์. ด้วยการเพิ่มปุ่มกดอื่น ซอฟต์แวร์ยังสามารถดูแลพื้นที่การวัดของสี่เหลี่ยมหรือแอมพลิจูดของมุม ฉันยังแนะนำให้เพิ่มปุ่มกด "กดค้างไว้" เพื่อหยุดการวัดในตอนท้าย หลีกเลี่ยงการขยับวงล้อโดยไม่ได้ตั้งใจก่อนที่จะอ่านค่าบนจอแสดงผล
- เปลี่ยนล้อด้วยสปูล สำหรับการวัดระยะสั้นๆ (ภายในไม่กี่เมตร) สามารถเปลี่ยนล้อด้วยหลอดสปริงที่มีเกลียวหรือเทปได้ ด้วยวิธีนี้ คุณเพียงแค่ต้องดึงเกลียว (ทำให้แกนเอ็นโค้ดเดอร์หมุน) ใช้การวัดของคุณและดูที่จอแสดงผล
- เพิ่มการแสดงสถานะแบตเตอรี่ พินอ้างอิง Arduino 3.3v (แม่นยำภายใน 1%) สามารถใช้เป็นฐานสำหรับตัวแปลง ADC ดังนั้นโดยการแปลงแอนะล็อกเป็นดิจิทัลบนพิน 3.3V (โดยเชื่อมต่อกับ A1) แล้วเปรียบเทียบการอ่านนี้กับค่าที่อ่านได้จากเซ็นเซอร์ เราสามารถคาดการณ์การอ่านที่สมจริง ไม่ว่า VIN จะเป็นอย่างไร (ตราบใดที่มันสูงกว่า 3.4V) ตัวอย่างการทำงานสามารถพบได้ในโครงการอื่นของฉัน
ขั้นตอนที่ 9: แกลเลอรี่ภาพ
แนะนำ:
การออกแบบเกมในการสะบัดใน 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 ซึ่งออกแบบมาเพื่อสร้างงานง่ายๆ ในรูปแบบที่ซับซ้อน งานของโครงการนี้คือการจับสบู่ก้อนหนึ่ง