สารบัญ:
- ขั้นตอนที่ 1: แนวคิดหรือแนวทางแก้ไขที่เป็นไปได้
- ขั้นตอนที่ 2: การสร้างแอสเซมบลี
- ขั้นตอนที่ 3: การออกแบบอุปกรณ์ตาบอด
- ขั้นตอนที่ 4: การเข้ารหัสคนตาบอด
- ขั้นตอนที่ 5: เสร็จสิ้นการสัมผัส
- ขั้นตอนที่ 6: การประเมินโครงการ
วีดีโอ: ที่เปิดประตูอัตโนมัติโดยใช้ EV3: 6 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
ฉันมีชุดม่านม้วนในห้องนอนของฉัน ซึ่งฉันมักจะลืมเปิดหรือปิดในตอนเช้าหรือตอนเย็น ฉันต้องการเปิดและปิดโดยอัตโนมัติ แต่จะมีการแทนที่เมื่อใดที่ฉันจะเปลี่ยน
ขั้นตอนที่ 1: แนวคิดหรือแนวทางแก้ไขที่เป็นไปได้
หลังจากดูในไซต์ต่างๆ เช่น YouTube, Instructables และ Thingiverse ฉันพบว่าวิธีแก้ปัญหาที่พบบ่อยที่สุดคือการใช้มอเตอร์แกนม้วนเก็บที่พันและคลายมู่ลี่โดยใช้สเต็ปเปอร์มอเตอร์หรือเซอร์โว ฉันพบ 2 ตัวเลือกหลักที่มีข้อดีและข้อเสียต่างๆ
แนวคิดที่ 1: วิธีสปูลซึ่งมีมอเตอร์และเฟืองอยู่ภายในสปูล มีข้อดีตรงที่เป็นวิธีที่เรียบร้อยและสง่างาม แต่มีข้อเสียคือต้องมีการดัดแปลงที่สำคัญกับมู่ลี่ สายไฟไม่สามารถใช้งานได้อีกต่อไป และการประกอบจะยากมากที่จะเข้าถึงเพื่อการบำรุงรักษาเมื่อนำมาใช้
แนวคิดที่ 2: วิธีการใช้สายไฟโดยที่มอเตอร์และเฟืองอยู่บนสายไฟ มีข้อได้เปรียบที่ง่ายกว่าและสามารถเข้าถึงแอสเซมบลีได้อย่างง่ายดาย อย่างไรก็ตาม มีข้อเสียคืออาจดูน่าเกลียดและเทอะทะ รวมทั้งความจริงที่ว่าเมื่อใช้งานจริงจะต้องติดธรณีประตู
ฉันชอบวิธีการแบบใช้สายไฟมากกว่า เนื่องจากเป็นวิธีแก้ปัญหาที่ง่ายกว่ามากซึ่งไม่ขัดขวางการใช้สายด้วยตนเอง และคนตาบอดจะไม่ต้องมีการดัดแปลงที่สำคัญใดๆ ฉันวางแผนที่จะทำให้มันเป็นความลับและกะทัดรัดที่สุดเท่าที่จะเป็นไปได้เมื่อฉันสร้างเวอร์ชันสุดท้ายด้วย ESP8266
ขั้นตอนที่ 2: การสร้างแอสเซมบลี
ฉันทำโปรเจ็กต์นี้โดยใช้ Lego mindstorms EV3 ของฉันซึ่งมีฟังก์ชันที่ฉันต้องการให้แสดงโปรเจ็กต์ใช้งานได้ และฉันคุ้นเคยกับซอฟต์แวร์ซึ่งช่วยได้มากอย่างแน่นอน เนื่องจากคนตาบอดใช้โซ่ลูกในการขับเคลื่อนสปูล ซึ่งเกียร์ของเลโก้เข้ากันไม่ได้ ฉันจึงตัดสินใจว่าทางออกที่ดีที่สุดคือการออกแบบเฟืองที่มีระยะห่างลูกบอลที่ถูกต้องด้านนอก - โดยมีรู "รูปกากบาท" มาตรฐานใน ตรงกลาง ซึ่งฉันจะพิมพ์งานออกแบบ 3 มิติ ณ จุดนี้ ฉันยังทำปุ่มปรับเทียบและติดเซ็นเซอร์วัดแสงเข้ากับหน้าต่างของฉัน รวมทั้งปุ่มเพื่อทำหน้าที่แทน
ขั้นตอนที่ 3: การออกแบบอุปกรณ์ตาบอด
ฉันถอดประกอบมู่ลี่เพื่อดูว่าข้อเหวี่ยงมีรายละเอียดอย่างไร ระหว่างการถอดประกอบ ฉันพบเฟือง 16 ฟันขนาดเล็กซึ่งยึดด้วยขดลวดปรับความตึง ซึ่งเป็นส่วนที่ฉันกำลังมองหา หลังจากออกแบบอุปกรณ์จำลองแล้ว ฉันได้เพิ่มรูที่เข้ากันได้กับเลโก้ที่จำเป็น พิมพ์ชิ้นส่วน 3 ส่วนแยกจากกัน และในที่สุดก็รวมเข้าด้วยกันด้วยซุปเปอร์กลู ตอนแรกฉันมีปัญหาในการทำให้ชิ้นส่วนเลโก้เข้ากันได้ ในแง่ที่ว่าเครื่องพิมพ์ 3 มิติของฉันไม่มีความละเอียดในการทำให้รู "x" เพียงพอ แต่ก็ไม่มีปัญหากับรูกลมทั้งสองข้าง ดังนั้นฉันจึงแทนที่ "x" ด้วยรูกลมและพิมพ์ออกมาได้ดี จากนั้น หลังจากทดสอบเพียงเล็กน้อย ผมก็พบว่ามันสามารถรองรับแรงบิดและน้ำหนักจากบลายด์ได้ ฉันจะเชื่อมโยงการออกแบบของฉันสำหรับอุปกรณ์ด้านล่างหรือคุณสามารถหาได้ใน Thingiverse ที่:
ขั้นตอนที่ 4: การเข้ารหัสคนตาบอด
ฉันต้องการรหัสที่จะเปิดและปิดม่านบังตาโดยอัตโนมัติเมื่อถึงระดับแสงที่กำหนด แต่ก็มีปุ่มลบล้างด้วยเพื่อให้คน ๆ นั้นสามารถเปิดหรือปิดม่านบังตาได้เมื่อต้องการ ฉันได้เชื่อมโยง GitHub ของฉันกับรหัสเวอร์ชันสุดท้ายที่นี่:https://github.com/TJSBearGithub/AutomaticBlindEV3Code
โค้ดสำหรับโปรเจ็กต์นี้ใช้เวลาหลายวันกว่าจะเสร็จ ฉันมีตรรกะพื้นฐานของโปรแกรมที่ทำงานอย่างถูกต้องกับเซ็นเซอร์วัดแสง อย่างไรก็ตาม ปุ่มแทนที่ชั่วขณะทำงานไม่ถูกต้อง มันเปลี่ยนสถานะของคนตาบอดเมื่อถูกกด แต่ไม่มีฟังก์ชั่น "การล็อค" ที่หมายความว่าคนตาบอดจะอยู่ในตำแหน่ง - หมายความว่าคนตาบอดจะหมุนกลับไปเป็นเหมือนเดิมทันที ฉันแก้ไขปัญหานี้โดยใช้บล็อก "รอจนกระทั่ง" ซึ่งเชื่อมโยงกับลอจิก OR ประตูที่อ่านค่าของเซ็นเซอร์วัดแสงและเซ็นเซอร์สัมผัส ซึ่งฉันจะอธิบายด้านล่าง
โค้ดเริ่มต้นโดยการปรับเทียบมอเตอร์และมู่ลี่ โดยเริ่มจากเปิดม่านบังตาจนสุดแล้วลดระดับลงจนแตะเซ็นเซอร์สัมผัสที่ด้านล่าง นับจำนวนรอบที่ต้องหมุนไปด้านล่าง ซึ่งบันทึกเป็น "RotationsNeeded" ตัวแปร. จากนั้นจะเขียน "เท็จ" ลงในตัวแปร "BlindOpen" ซึ่งใช้ในการติดตามตำแหน่งของคนตาบอด ณ จุดนี้รหัสแบ่งออกเป็น 4 ลูป
หนึ่งในลูปเหล่านี้คือลูป "Buttonstate" ซึ่งเผยแพร่สถานะของปุ่มไปยังตัวแปรที่เรียกว่า "ButtonPressed" อย่างต่อเนื่อง สิ่งนี้ทำให้ไม่จำเป็นต้องวางบล็อคปุ่มหลายอันบนสคริปต์
วงที่สองคือ "สว่างหรือมืด" ซึ่งเปรียบเทียบระดับแสงภายนอกหน้าต่างของฉันอย่างต่อเนื่องกับค่าคงที่ที่กำหนดไว้ก่อนหน้าในโค้ด หากผลลัพธ์ต่ำกว่าค่าคงที่นั้น ลูปจะเขียน "เท็จ" ไปที่ตัวแปร "ItIsLight" ในขณะที่หากอยู่เหนือค่า ลูปจะเขียนว่า "จริง"
วงที่สามประกอบด้วยรายการตัวเลขของ 3 ตัวเลือกซึ่งโดยทั่วไปจะบอกคนตาบอดว่าต้องทำอะไร 0=คนตาบอด 1=คนตาบอด 2=ไม่ทำอะไรเลยเพราะคนตาบอดอยู่ในตำแหน่งที่ถูกต้อง วนรอบเริ่มต้นด้วยการอ่านตัวแปร "BlindShould" ซึ่งระบุงานที่ถูกต้องที่คนตาบอดควรทำ จากนั้นจึงทำงานนั้น เปลี่ยนตัวแปร "BlindOpen" ให้เป็นตัวเลือกที่ถูกต้อง จากนั้นจะไม่ทำงานจนกว่าตัวแปร "BlindShould" จะเปลี่ยนไป มันซ้ำ ใช้ค่า "RotationsNeeded" และพลัง +/- 100% เพื่อเลื่อนมู่ลี่เปิดหรือปิดจนสุด
ลูปที่สี่และรอบสุดท้ายนั้นซับซ้อนที่สุด นั่นคือลูป "Decider" ซึ่งจัดการข้อมูลทั้งหมดและตัดสินใจว่าจะทำอย่างไรกับการเปลี่ยนแปลงแต่ละครั้ง ทำได้โดยใช้ "ส้อมบนถนน" ตามตรรกะที่ "กดปุ่ม", "ระดับแสง", "คนตาบอด" เป็นคำถามจริงหรือเท็จ พีชคณิตทั้งหมดมีการตอบสนองแบบฮาร์ดโค้ด ซึ่งก็คือ 0=blind down, 1=blind up or 2= do nothing - ค่านี้ถูกเขียนไปยังตัวแปร “BlindShould” ซึ่งจะถูกจัดการโดยลูปก่อนหน้า การตอบสนองบางอย่างจะรอให้ตัวแปร "ItIsLight" และ/หรือ "ButtonPressed" เปลี่ยนก่อนที่จะจบสคริปต์ นี่เป็นเพียงกรณีสำหรับปุ่มที่เปิดใช้งานการเรียงสับเปลี่ยน มิฉะนั้นจะพยายามแก้ไขตำแหน่งในทันที ซึ่งหมายความว่าคนตาบอดจะกลับมา สู่สภาพเดิม กระบวนการนี้จะถูกวนซ้ำเพื่อสร้างระบบอัตโนมัติที่มีประสิทธิภาพและค่อนข้างง่าย ซึ่งสามารถเพิ่มและแก้ไขจุดบกพร่องได้อย่างง่ายดาย วุ้ย.
ขั้นตอนที่ 5: เสร็จสิ้นการสัมผัส
หลังจากนั้นฉันตัดสินใจต่อแหล่งจ่ายไฟ 9V เข้ากับ EV3 โดยใช้เดือยและสกรูไม้เป็น "แบตเตอรี่" ทำให้ผลิตภัณฑ์ไม่พึ่งพาแบตเตอรี่และทำให้ไม่ต้องเปลี่ยนแบตเตอรี่ทุกสองสามวัน
ขั้นตอนที่ 6: การประเมินโครงการ
ฉันคิดว่าโครงการไปได้ดีโดยรวม ฉันลงเอยด้วยต้นแบบการทำงานสำหรับการประกอบมู่ลี่อัตโนมัติ ซึ่งฉันสามารถนำข้อมูลที่เกี่ยวข้องทั้งหมดที่ฉันพบระหว่างโครงการและนำไปใช้ในเวอร์ชันสุดท้าย ฉันเข้ารหัสอุปกรณ์สำเร็จแล้ว และหลังจากนั้นก็ไม่พบปัญหาใหญ่ๆ เกี่ยวกับรหัสเลย ฉันชอบที่จะทำให้อุปกรณ์ดูน่าดึงดูดยิ่งขึ้น แต่อีกครั้งหนึ่งที่เป็นการพิสูจน์แนวคิด และฉันจะพยายามทำให้มันดูดีเมื่อฉันสร้างเวอร์ชันสุดท้ายด้วย ESP8266 เมื่อฉันทำโปรเจ็กต์อีกครั้ง ฉันจะออกแบบมอเตอร์ให้นั่งข้างในมู่ลี่เพื่อให้ปกปิดได้ง่ายกว่า บทเรียนที่ใหญ่ที่สุดที่ฉันได้เรียนรู้คือการดีบักอย่างมีเหตุผลและคิดทบทวน บันทึกและทดสอบโค้ดของฉันก่อนที่จะนำไปใช้
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
AI ใน LEGO EV3 Maze-Driving Robot: 13 ขั้นตอน
AI ใน LEGO EV3 Maze-Driving Robot: นี่คือหุ่นยนต์ที่ใช้งานง่ายและเรียบง่ายพร้อมปัญญาประดิษฐ์ ออกแบบมาเพื่อสำรวจเขาวงกตและเมื่อวางไว้ที่ทางเข้า เพื่อขับผ่านไปยังทางออกและหลีกเลี่ยงทางตัน มันซับซ้อนกว่าโปรเจ็กต์ก่อนหน้าของฉันมาก ซึ่ง
Ev3 Lego Gripper / Finder Robot: 7 ขั้นตอน
Ev3 Lego Gripper/Finder Robot: สวัสดี!GrabBot เป็นหุ่นยนต์เอนกประสงค์ที่ชอบกลิ้งไปมา… เมื่อมันสะดุดกับวัตถุขนาดเล็ก มันจะหยิบมันขึ้นมาและนำมันกลับมาที่ตำแหน่งเริ่มต้น
ควบคุมมอเตอร์ EV3 ของคุณด้วย Alexa: 9 ขั้นตอน
ควบคุมมอเตอร์ EV3 ของคุณด้วย Alexa: ต้องการควบคุม LEGO EV3 ของคุณด้วยคำสั่งเสียงหรือไม่? ในโครงการนี้ คุณสามารถลองขยับมอเตอร์ EV3 ได้โดยพูดคุยกับ Alexa สิ่งที่คุณต้องมีคือ Amazon Echo Dot, บอร์ด Arduino Nano 33 IoT และ EV3 พร้อมดองเกิล WiFi และมอเตอร์ แนวคิดคือการสร้าง
Laser Cut Nerf Ball Shooting Lego EV3 รถถัง: 4 ขั้นตอน
Laser Cut Nerf Ball Shooting Lego EV3 Tank: สำหรับโครงการสุดท้ายของเทอม 1A ของฉันในวิศวกรรมเมคคาทรอนิกส์ที่มหาวิทยาลัยวอเตอร์ลู เราสร้างถังเลเซอร์ตัดด้วยชุด Lego EV3 (จำเป็น) ที่ยิงลูกบอล Nerf คำแนะนำนี้คือ ไม่ใช่รายงานการออกแบบที่สมบูรณ์ ถ้าคุณ