บทความนี้ให้รายละเอียดเกี่ยวกับวิธีการสร้างป้อมปืนติดตามการเคลื่อนไหวโดยใช้ Raspberry Pi
ป้อมปืนอัดลมหรือปืนเนิร์ฟที่ติดตามการเคลื่อนไหวพร้อมโหมดการทำงานอัตโนมัติและด้วยตนเอง ควบคุมด้วย Raspberry Pi
ส่วนประกอบฮาร์ดแวร์
เครื่องมือช่างและเครื่องจักรผลิต
เรามีทรัพย์สินมีค่ามากมายที่ต้องการการปกป้อง แต่เราไม่สามารถอยู่ได้ทุกที่พร้อมๆ กัน โชคดีที่เราสามารถสร้างป้อมปืนอัตโนมัติเพื่อปกป้องทรัพย์สินล้ำค่าของเราได้แม้ในขณะที่เราไม่อยู่ ไม่ว่าจะเป็นเจ้าพอสซัมจอมกวนที่คอยทำลายสวนผักหลังบ้านของคุณ หรือสมาชิกในครอบครัวที่ล้วงเข้าไปในโหลคุกกี้ของคุณ คุณก็สามารถสร้างยามรักษาความปลอดภัยของคุณเองเพื่อป้องกันพวกมันได้
ในโปรเจกต์นี้ เราจะสร้างป้อมปืน Airsoft (หรือปืนเนิร์ฟ) แบบติดตามการเคลื่อนไหวด้วย Raspberry Pi 3 ป้อมปืนนี้ทำงานอัตโนมัติ จึงสามารถเคลื่อนที่และยิงปืนได้เมื่อตรวจจับการเคลื่อนไหว นอกจากนี้ยังมีโหมดอินเทอร์แอคทีฟที่ให้คุณควบคุมปืนได้ด้วยตนเองจากแป้นพิมพ์ เราใช้ปืน Airsoft สำหรับโปรเจกต์นี้ แต่คุณสามารถดัดแปลงโครงงานนี้ให้ใช้ปืนเนิร์ฟแทนได้อย่างง่ายดาย โปรเจกต์นี้มีขนาดเล็ก น้ำหนักเบา และใช้แบตเตอรี่เพียงอย่างเดียว
เราได้สร้างโหมดการทำงานแยกกันสองโหมด ได้แก่ โหมดอินเทอร์แอคทีฟและโหมดตรวจจับการเคลื่อนไหว โหมดอินเทอร์แอคทีฟช่วยให้คุณควบคุมป้อมปืนจากระยะไกลและสตรีมวิดีโอสดได้ โหมดตรวจจับการเคลื่อนไหวใช้ OpenCV และคอมพิวเตอร์วิชันเพื่อติดตามเป้าหมายที่เคลื่อนไหวอยู่หน้ากล้อง
เนื่องจากอุปกรณ์นี้ยิงกระสุนปืนได้ โปรดใช้มาตรการความปลอดภัยที่จำเป็นขณะใช้งานป้อมปืน ควรใช้ปืนเนิร์ฟแทนหากคุณวางแผนจะยิงคน อย่าใช้ปืนอัดลมเด็ดขาด!
ขั้นแรก ให้ใช้แผ่นใยไม้อัดความหนาแน่นปานกลาง (MDF) ขนาด 2' x 2' แล้วใช้ดินสอวาดวงกลมที่มีเส้นผ่านศูนย์กลาง 9 นิ้ว จำนวน 2 วง จากนั้นใช้เลื่อยมือหรือจิ๊กซอว์ไฟฟ้าตัดออก
วัดจุดกึ่งกลางของแผ่น MDF วงกลม แล้วทำเครื่องหมายด้วยดินสอ มอเตอร์จะถูกยึดไว้ตรงกลางวงกลมวงหนึ่ง และปลอกหุ้มแบบพิมพ์ 3 มิติจะถูกยึดไว้ตรงกลางวงกลมอีกวงหนึ่ง
สำหรับรูยึดมอเตอร์ ให้ใช้กระดาษแผ่นหนึ่งวางลงบนหน้ายึดมอเตอร์ โดยเจาะกระดาษด้วยเพลามอเตอร์ ใช้ปากกาเจาะรูบนกระดาษสำหรับรูยึดแบบเกลียวแต่ละรู จากนั้นกระดาษแผ่นนี้สามารถใช้เป็นแม่แบบสำหรับระบุตำแหน่งรูบนวงกลม MDF ได้ วางแม่แบบนี้ไว้ตรงกลางวงกลม MDF วงใดวงหนึ่ง แล้วเจาะรูยึดทั้งสี่รูโดยใช้ดอกสว่านขนาด 1/8 นิ้ว เจาะรูตรงกลางโดยใช้ดอกสว่านขนาด 5/8 นิ้ว
ใช้สกรูหัวจม M3 สี่ตัวและแหวนรองสี่ตัว ยึดมอเตอร์สเต็ปเปอร์ตัวหนึ่งเข้ากับแผ่น MDF แล้วขันให้แน่นด้วยประแจอัลเลน ใช้แผ่น MDF อีกแผ่นหนึ่ง วางหน้าแปลนแบบมีปกพิมพ์ 3 มิติไว้ตรงกลางแผ่น แล้วใช้ดินสอทำเครื่องหมายตำแหน่งเจาะสำหรับรูสกรูยึดทั้งสามรู ใช้สว่านมือหรือไขควงยึดหน้าแปลนเข้ากับแผ่นโดยใช้สกรูหัวจมเบอร์ 8 ยาวครึ่งนิ้วสามตัว จากนั้นจัดร่องของเพลามอเตอร์ให้ตรงกับร่องในหน้าแปลน แล้วกดลงไป
ต่อสายปืน
ก่อนดำเนินการขั้นตอนถัดไป ให้เตรียมปืนอัดลมหรือปืนเนิร์ฟของคุณให้พร้อมสำหรับการติดตั้งบนป้อมปืนเมื่อสร้างเสร็จ วิธีการเตรียมขึ้นอยู่กับรุ่นปืนอัดลมหรือปืนเนิร์ฟของคุณ แต่มีสองตัวเลือกที่เราพบสำหรับการต่อสายไฟเข้ากับปืน:
ตัวเลือกที่ 1:
วิธีแรก แต่อาจจะยากกว่า คือการแยกปืนออกจากกัน แล้วหาสวิตช์ที่ปิดเมื่อดึงไกปืน ถอดสายไฟออกจากสวิตช์นี้ แล้วบัดกรีเข้ากับสายไฟและสายดินที่ยาวกว่าของคุณโดยตรง แล้วจึงนำสายไฟออกจากปืน จากนั้นประกอบปืนกลับเข้าที่ สวิตช์ที่ควบคุมโดยไกปืนที่คุณเพิ่งถอดออก จะถูกแทนที่ด้วยรีเลย์ไฟฟ้าที่ควบคุมโดย Raspberry Pi ในภายหลัง แม้ว่าเราจะใช้ตัวเลือกนี้ แต่เราพบว่าการประกอบปืนกลับเข้าที่ทำได้ยากมาก
ตัวเลือกที่ 2:
ทางเลือกที่สองคือปล่อยให้ปืนของคุณอยู่ในสภาพเดิม แต่ให้บัดกรีสายไฟและสายดินเข้ากับขั้วไฟฟ้าของแบตเตอรี่แทน จากนั้นคุณจะต้องกดไกปืนค้างไว้โดยใช้เทปหรือวิธีอื่นเพื่อปิดสวิตช์ภายใน
ต่อไปเราก็พร้อมที่จะทำขาป้อมปืนสำหรับยึดปืนแล้ว รูปทรงของขาจะขึ้นอยู่กับปืนของคุณ แต่เราใช้ขาสูงประมาณ 7.9 นิ้ว ฐานกว้าง 6.3 นิ้ว และกว้างประมาณ 2 นิ้วที่ด้านบน
วาดขาที่ต้องการลงบนกระดาษ แล้วใช้กรรไกรตัดออก จากนั้นใช้กระดาษนี้เป็นแม่แบบสำหรับวาดลงบนแผ่น MDF ของคุณ ใช้เลื่อยมือ หรือเลื่อยจิ๊กซอว์ไฟฟ้า ตัดขาออกจากแผ่น MDF
ที่ขาข้างหนึ่ง ให้เจาะรูขนาด 5/8 นิ้วสำหรับแกนของมอเตอร์ตัวที่สอง โดยเจาะรูขนาด 1/8 นิ้ว จำนวนสี่รูตรงกลางสำหรับยึดมอเตอร์ตัวที่สอง เหมือนกับที่ทำกับแผ่น MDF ทรงกลม ขาอีกข้างหนึ่งจะมีรูขนาดครึ่งนิ้วสำหรับรองรับแกนหน้าแปลนที่พิมพ์แบบ 3 มิติให้หมุนเข้าด้านใน
ยึดมอเตอร์ตัวที่สองเข้ากับขา โดยให้รูขนาด 1/8 นิ้วทั้งสี่รูอยู่ตรงกลางรูขนาด 5/8 นิ้ว โดยใช้สกรู M3 สี่ตัวและแหวนรอง จากนั้นใส่ปลอกหุ้มหน้าแปลนพิมพ์ 3 มิติตัวที่สองลงบนเพลามอเตอร์
ตอนนี้ใช้ตัวยึดมุม 90 องศาทั้งสองตัวแล้วขันเข้าที่ด้านล่างของขาแต่ละข้างตามที่แสดงในภาพโดยใช้สกรูตัวใดก็ได้ที่พอดีกับรูของตัวยึดโลหะของคุณ
ตอนนี้คุณต้องคำนวณระยะห่างระหว่างขาปืนกับขาปืนแต่ละข้าง วัดความกว้างของปืน ณ จุดที่ต้องการติดตั้ง ใส่แกนหน้าแปลนที่พิมพ์ 3 มิติลงในรูขนาด 1/2 นิ้วของขาปืนอีกข้างหนึ่ง แล้วตั้งขาปืนขึ้น เว้นระยะห่างให้ความกว้างของปืนอยู่ระหว่างชิ้นส่วนหน้าแปลนทั้งสองชิ้น จากนั้นคุณสามารถวัดระยะห่างระหว่างขาปืน แล้วทำเครื่องหมายระยะห่างนี้บนแผ่น MDF วงกลม หลังจากทำเครื่องหมายบนแผ่น MDF วงกลมแล้ว ให้ขันสกรูยึดขาปืนโดยให้มอเตอร์อยู่ด้านหนึ่ง
ก่อนขันขาอีกข้างเข้าไป ให้ใช้เทปกาวสองหน้าสำหรับติดตั้งภายนอกอาคารแบบมีกาวในตัว ติดลงบนหน้าของปลอกหน้าแปลนและเพลาหน้าแปลนทั้งสองข้าง ช่วยกันวางปืนไว้ระหว่างหน้าแปลนทั้งสองข้าง แล้วยึดขาอีกข้างให้อยู่กับที่ ขณะเดียวกันก็ใช้สว่านมือขันขาเข้าไป
ใส่หมวกสเต็ปเปอร์มอเตอร์เข้ากับ Raspberry Pi ต่อสายไฟเข้าของหมวกสเต็ปเปอร์มอเตอร์เข้ากับสายไฟออกของตัวแปลงสเต็ปอัพ (แสดงทางด้านซ้ายของภาพแรกด้านล่าง)
มีขั้วมอเตอร์สเต็ปเปอร์สองขั้วอยู่บนฝาครอบมอเตอร์ ต่อสายมอเตอร์ที่ฐานป้อมปืนเข้ากับขั้ว A (แสดงทางด้านขวาของภาพแรกด้านล่าง) ต่อสายมอเตอร์แกนหมุนปืนเข้ากับขั้ว B อีกขั้วหนึ่ง
วางอุปกรณ์อิเล็กทรอนิกส์เหล่านี้ รวมถึงที่ชาร์จแบตเตอรี่แบบพกพา ไว้ที่ฐานของป้อมปืน คุณสามารถใช้สายไมโคร USB เพื่อเชื่อมต่อ Raspberry Pi และตัวแปลงไฟเพิ่มแรงดันเข้ากับที่ชาร์จแบตเตอรี่แบบพกพาได้ในภายหลังเมื่อพร้อมใช้งาน
เชื่อมต่อรีเลย์เข้ากับขั้วของมอเตอร์สเต็ปเปอร์โดยต่อสายไฟและกราวด์ของรีเลย์เข้ากับรางจ่ายไฟของขั้วของมอเตอร์สเต็ปเปอร์ (สายสีแดงและสีม่วงในภาพที่สามด้านล่าง) จากนั้นเชื่อมต่อสายสัญญาณเข้ากับพิน GPIO 22 บน Pi (สายสีส้มในภาพที่สามด้านล่าง) เชื่อมต่อเอาต์พุตของรีเลย์เข้ากับสายไฟบนปืนของคุณ
เท่านี้ก็เสร็จเรียบร้อยสำหรับงานอิเล็กทรอนิกส์ ดูวิดีโอ YouTube รวมถึงลิงก์ที่ให้มาในคำอธิบายสำหรับคำอธิบายเพิ่มเติมเกี่ยวกับการเดินสาย สิ่งสุดท้ายที่ต้องเสียบคือเว็บแคมเข้ากับ Pi โดยใช้สาย USB ตำแหน่งของเว็บแคมขึ้นอยู่กับโหมดที่ใช้: การติดตามการเคลื่อนไหวอัตโนมัติ หรือโหมดโต้ตอบ ในโหมดการติดตามการเคลื่อนไหว ให้วางกล้องบนโต๊ะให้นิ่งในขณะที่ปืนติดตามเป้าหมายที่กำลังเคลื่อนที่ ในโหมดแมนนวล คุณจะต้องพยายามจัดแนวมุมมองของกล้องให้ตรงกับทิศทางของปืน ดังนั้นในกรณีนี้ ให้หันเว็บแคมไปตามศูนย์เล็งของลำกล้องปืน วิธีนี้จะทำให้คุณเห็นทุกอย่างที่ปืนมองเห็นเมื่อคุณควบคุมและเคลื่อนย้ายมันไปรอบๆ
สำหรับคำแนะนำโดยละเอียดเกี่ยวกับการตั้งค่าและการปรับเทียบซอฟต์แวร์ โปรดดูวิดีโอ YouTube และที่เก็บ GitHub ไฟล์ README ของ GitHub ประกอบด้วยไฟล์ dependencies ทั้งหมดที่จำเป็นต่อการทำงานของโค้ด Python
ในการสื่อสารกับมอเตอร์สเต็ปเปอร์แฮท คุณจะต้องกำหนดค่า Raspberry Pi ของคุณให้รองรับการสื่อสารแบบ I2C ดูลิงก์ในคำอธิบายวิดีโอเพื่อดูคำแนะนำในการตั้งค่า Raspberry Pi ให้เป็น I2C จากนั้นคุณจะต้องติดตั้งไลบรารีสำหรับควบคุมมอเตอร์สเต็ปเปอร์แฮทจากคลังข้อมูล Adafruit GitHub
นอกจากนี้ยังมีไลบรารีอีกสองสามตัวที่คุณจำเป็นต้องติดตั้งสำหรับการประมวลผลและการรู้จำภาพ รวมถึง OpenCV และ imutils อีกครั้ง มีคำอธิบายโดยละเอียดเพิ่มเติมในวิดีโอ
เนื่องจากซอฟต์แวร์ไม่ทราบตำแหน่งของปืนเมื่อเริ่มต้นใช้งาน คุณจึงจำเป็นต้องปรับเทียบป้อมปืนเมื่อเปิดใช้งาน โปรแกรม Python จะแจ้งให้คุณใช้แป้นพิมพ์เพื่อปรับมุมเงยและมุมหันของป้อมปืน และยืนยันว่าป้อมปืนได้ระดับและอยู่กึ่งกลางแล้ว
หลังจากปรับเทียบตำแหน่งป้อมปืนแล้ว ซอฟต์แวร์จะปรับระดับแสงของกล้องและเลือกภาพอ้างอิงสำหรับการตรวจจับการเคลื่อนไหว เนื่องจากการตรวจจับการเคลื่อนไหวทำงานโดยการเปรียบเทียบภาพถัดไปกับภาพอ้างอิงเริ่มต้นสำหรับการเปลี่ยนแปลง คุณจึงควรตรวจสอบให้แน่ใจว่าไม่มีสิ่งใดเคลื่อนไหวอยู่ด้านหน้ากล้องในระหว่างการปรับเทียบภาพ
ไม่จำเป็นต้องปรับเทียบในโหมดอินเทอร์แอคทีฟ เพียงวางกล้องให้ตรงกับลำกล้องปืน แล้วใช้แป้นพิมพ์เพื่อเคลื่อนที่และยิงป้อมปืน ใช้ปุ่ม "a" และ "d" เพื่อหมุนไปทางซ้ายและขวา และปุ่ม "w" และ "s" เพื่อปรับมุมป้อมปืนขึ้นและลง กด "Enter" เพื่อยิง
ยินดีด้วย! ตอนนี้คุณมีแนวป้องกันที่แข็งแกร่งมากพอที่จะป้องกันศัตรูของคุณได้แล้ว แต่อย่าลืมว่าพลังที่ยิ่งใหญ่มาพร้อมกับความรับผิดชอบที่ยิ่งใหญ่ ขอให้สนุกและปลอดภัย!