สารบัญ:
- ขั้นตอนที่ 1: รหัส
- ขั้นตอนที่ 2: อุปกรณ์อิเล็กทรอนิกส์
- ขั้นตอนที่ 3: การสร้าง: กล้องและไฟเรืองแสง IR
- ขั้นตอนที่ 4: การก่อสร้าง: ท่อน้ำ
- ขั้นตอนที่ 5: การก่อสร้าง: เล็งเซอร์โว
- ขั้นตอนที่ 6: การก่อสร้าง: การติดตั้งพาวเวอร์ซัพพลาย พัดลม Raspberry Pi และ Proto-board
- ขั้นตอนที่ 7: การก่อสร้าง: Proto Board
- ขั้นตอนที่ 8: การสร้าง: กล้อง Raspberry Pi
- ขั้นตอนที่ 9: รายการชิ้นส่วน
วีดีโอ: Water Blaster ติดตามอัตโนมัติ: 9 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
กวางกินกุหลาบกระตุ้นให้ฉันสร้างปืนฉีดน้ำเพื่อติดตามเป้าหมายเพื่อช่วยยับยั้งสัตว์ร้ายที่โลภ… Water Blaster นี้ใช้การตรวจจับการเคลื่อนไหวแบบวิดีโอเพื่อเล็งเซอร์โวและกระตุ้นให้น้ำพุ่งไปที่เป้าหมายในเวลาสั้นๆ โดยจะยิงหลังจากที่เป้าหมายที่ได้รับนั้นหยุดนิ่งเป็นเวลาสองสามวินาทีเท่านั้น (การหน่วงเวลาสามารถปรับได้ในโค้ด) ฉันไม่สนหรอกว่ากวางจะแค่เดินผ่านไปหรือเปล่า แต่ถ้าพวกมันหยุดกินขนมล่ะก็ sploosh!
นี่คือวิดีโอของฉันในการทดสอบ Water Blaster:
Water Blaster เป็นกล่องแบบสแตนด์อโลนที่สามารถเชื่อมต่อจากระยะไกล (ผ่าน wi-fi/VNC) จากคอมพิวเตอร์เครื่องใดก็ได้ในเครือข่ายของคุณ เพื่อตรวจสอบสิ่งที่กำลังทำ ระบบจะถ่ายภาพทุกครั้งที่มีการทริกเกอร์ เพื่อให้คุณดูได้ในภายหลังว่าสิ่งใดถูกโจมตี
ฉันใช้ Raspberry Pi, NoIR cam, IR illuminator, เซอร์โวเชิงเส้นมาตรฐาน และวาล์วน้ำเพื่อสร้างวัน/คืน เป้าหมายติดตาม water blaster โค้ดนี้เขียนด้วยภาษา Python และยืมมาจากตัวอย่างโค้ดประมวลผลรูปภาพ cv2 ของ Adrian Rosebrock คุณสามารถดูการเขียนของเขาได้ที่:
www.pyimagesearch.com/2015/06/01/home-surv…
เนื่องจากฉันกำลังไล่ตามเป้าหมายที่ค่อนข้างใหญ่ (กวาง) ปัญหาของฉันจึงค่อนข้างง่าย ฉันต้องการการเล็งในแนวนอนเท่านั้นเพื่อที่ฉันจะได้ใช้เซอร์โวเพียงตัวเดียว การรอให้กวางยืนนิ่งช่วยให้ฉันขจัดสิ่งกระตุ้นที่ผิดพลาดได้มากมาย นี่คือความพยายาม rev-0 ของฉันและฉันพบบางสิ่งที่ฉันจะแก้ไขหากฉันสร้างอย่างอื่น ฉันได้สังเกตสิ่งเหล่านี้ในการเขียนรายละเอียดที่ตามมา
ขั้นตอนที่ 1: รหัส
Water Blaster ใช้ Raspberry Pi 3 ในการแปรรูป สำหรับการจับภาพวิดีโอ กล้อง NoIR Raspberry Pi จะใช้ร่วมกับไฟเรืองแสง IR สำหรับวิดีโอตอนกลางคืน แพ็คเกจ OpenCV/cv2 Python ใช้เพื่อจับภาพและประมวลผลข้อมูลภาพและคำนวณพิกัดเป้าหมาย ไลบรารี pigpio ใช้เพื่อควบคุม gpio สำหรับการทำงานของเซอร์โวที่เสถียร การใช้แพ็คเกจ RPi. GPIO ปกติส่งผลให้เซอร์โวสั่นคลอน หมายเหตุ: เมื่อใช้ไลบรารี pigpio คุณต้องเรียกใช้ pigpio daemon เพิ่มสิ่งนี้ลงในไฟล์เริ่มต้น /etc/rc.local ของ Pi สำหรับ pigpio lib และอินเทอร์เฟซกล้อง Raspberry Pi:
/etc/rc.local# ตั้งค่า /dev/video0 เพื่อลิงก์ไปยัง Raspberry Pi ในตัวกล้อง interfacemodprobe bcm2835-v4l2# เริ่ม pigpio daemon สำหรับ Raspberry Pi IO control librarypigpiod
ดู https://pypi.python.org/pypi/pigpi สำหรับรายละเอียดเพิ่มเติม
ชื่อซอร์สโค้ด: water_blaster.py และแนบมาด้านล่าง
ข้อจำกัดความรับผิดชอบ: ฉันยังใหม่กับการเข้ารหัส Python ดังนั้นอย่าถือว่าเป็นรูปแบบการเข้ารหัส Python ที่ยอดเยี่ยม!
อัลกอริทึมพื้นฐานมีดังนี้:
- หยิบกรอบอ้างอิงวิดีโอเริ่มต้น ซึ่งจะใช้เพื่อเปรียบเทียบกับการตรวจจับการเคลื่อนไหว
- คว้าอีกกรอบ
- แปลงเฟรมเป็นสเกลสีเทา ปรับขนาด เบลอ
- คำนวณความแตกต่างจากหน้าต่างอ้างอิง
- กรองความแตกต่างเล็กน้อย รับพิกัดของส่วนต่างที่ใหญ่ที่สุด
- ตั้งเวลา หากพิกัดเป้าหมายไม่เปลี่ยนแปลงเป็นเวลาสองสามวินาที ให้ถ่ายภาพสิ่งที่เรากำลังจะยิงและกระตุ้นวาล์วน้ำเพื่อให้เกิดการระเบิดของน้ำ กวาดเซอร์โวไปมาสักสองสามองศาเพื่อระเบิด "ปืนลูกซอง"
- หากเราได้รับทริกเกอร์สามตัวเร็วเกินไป ปิดใช้งานการถ่ายภาพ หยุดชั่วคราว จากนั้นอัปเดตหน้าต่างอ้างอิง เนื่องจากเราอาจถ่ายภาพที่เงาหรือแสงระเบียงที่เพิ่งเปิด…
- อัปเดตหน้าต่างอ้างอิงทุก ๆ สองสามนาทีเพื่อพิจารณาการเปลี่ยนแปลงความถี่ต่ำ (ดวงอาทิตย์ขึ้น/ตก มืดครึ้มเคลื่อนเข้ามา ฯลฯ)
ฉันใช้กลไกการเล็งในแนวนอนเท่านั้น แต่มีการติดตั้งเซอร์โวแบบแพน/เอียงหลายตัวบน EBay และมันจะง่ายต่อการเพิ่มเซอร์โวอีกตัวสำหรับควบคุมการเล็งแนวตั้งหากคุณต้องการการกำหนดเป้าหมายที่แม่นยำยิ่งขึ้น
ฉันตั้งค่า Raspberry Pi ให้ทำงานเป็นเซิร์ฟเวอร์ VNC จากนั้นเชื่อมต่อผ่าน VNC จากแล็ปท็อปของฉันเพื่อเริ่มโปรแกรมและตรวจสอบวิดีโอและบันทึก cd ลงในไดเร็กทอรีที่คุณเก็บ water_blaster.py และเรียกใช้โดยพิมพ์:
./python water_blaster.py
มันจะเปิดหน้าต่างมอนิเตอร์วิดีโอ เริ่มไฟล์บันทึกชื่อ "./log_[date]_[time] และสร้างไดร์ย่อยชื่อ "trigger_pictures" ซึ่งเก็บไฟล์-j.webp
ต่อไปนี้คือหมายเหตุบางประการเกี่ยวกับการตั้งค่า VNC บน Raspberry Pi ของคุณ:
ครั้งแรกที่ฉันตั้งค่า Raspberry Pi ฉันใช้จอภาพภายนอก/แป้นพิมพ์/เมาส์เพื่อตั้งค่าต่างๆ ที่นั่นฉันเปิดใช้งานเซิร์ฟเวอร์ VNC ที่การกำหนดค่า RasPi (โลโก้ราสเบอร์รี่ / การตั้งค่า / การกำหนดค่า Raspberry Pi / อินเทอร์เฟซ / ตรวจสอบตัวเลือก VNC) หลังจากนั้น เมื่อบูทเครื่องขึ้นมา จะช่วยให้คุณสามารถเชื่อมต่อกับการแสดงผล:0 ผ่านไคลเอ็นต์ VNC (ด้วยข้อมูลประจำตัวเดียวกันกับผู้ใช้เริ่มต้น "pi")
ในโหมดหัวขาด จะมีค่าเริ่มต้นเป็นจอแสดงผลความละเอียดขนาดเล็กมาก (เนื่องจากตรวจไม่พบจอแสดงผลใดๆ) หากต้องการบังคับให้มีความละเอียดที่ใหญ่กว่า ให้เพิ่มสิ่งนี้ใน /boot/config.txt แล้วรีสตาร์ท:
# ใช้ถ้าคุณมี display# hdmi_ignore_edid=0xa5000080hdmi_group=2# 1400x1050 w/ 60Hz#hdmi_mode=42# 1356x768 w/ 60Hzhdmi_mode=39
ข้อมูลเพิ่มเติม:
ขั้นตอนที่ 2: อุปกรณ์อิเล็กทรอนิกส์
ข้อกำหนดทางอิเล็กทรอนิกส์ของ Water Blaster นั้นน้อยมากโดยใช้ Raspberry Pi 3 gpio เพื่อขับเคลื่อนเซอร์โว วาล์วน้ำ และไฟ IR ผ่านบัฟเฟอร์ทรานซิสเตอร์แบบแยก (สร้างขึ้นบนบอร์ดโปรโตขนาดเล็ก) กล้อง NoIR มาตรฐานเสียบเข้ากับ Raspberry Pi โดยตรง
ชื่อของแผนผังคือ: water_blaster_schematic.pdf และแนบมาด้านล่าง
ฉันใช้แหล่งจ่ายไฟเฉพาะ 5v/2.5A สำหรับ Raspberry Pi และแหล่งจ่ายไฟ 12v/1A สำหรับขับไฟ IR และวาล์วน้ำ แหล่งจ่ายไฟ 12v ยังขับตัวควบคุม 5v เพื่อจ่ายพลังงานให้กับเซอร์โว 5v สิ่งนี้ทำขึ้นเพื่อแยกกำลังควบคุมมอเตอร์ "ที่มีเสียงดัง" ออกจากแหล่งจ่าย Raspberry Pi 5v การจ่ายไฟ 12v/1A กลับกลายเป็นว่าถึงขีดจำกัดแล้ว (จริง ๆ แล้วมากกว่าเล็กน้อยเมื่อฉันเพิ่มพัดลม) รหัสจะปิดไฟ IR ก่อนที่จะเปิดรีเลย์วาล์วน้ำเพื่อให้กระแสดึงอยู่ภายในช่วง… มันจะดีกว่าถ้าคุณใช้แหล่งจ่าย 1.5A ตรวจสอบให้แน่ใจว่าได้เชื่อมต่อขั้วต่อกราวด์ของอุปกรณ์จ่ายไฟทั้งหมดเข้าด้วยกัน
โมดูลกล้องเป็นรุ่น NoIR มาตรฐานที่เสียบเข้ากับ Raspberry Pi โดยตรง เป็นกล้อง Raspberry Pi ที่ถอดฟิลเตอร์ IR ออกแล้ว ทำให้สามารถใช้กับไฟส่องอินฟราเรดเพื่อถ่ายวิดีโอตอนกลางคืนได้
เซอร์โวที่ใช้คือเซอร์โวเชิงเส้นขนาด 5v ขนาดมาตรฐานที่มีแรงบิด 3-4 กก.-ซม.
IR illuminator เป็นวงแหวน LED 48 ดวงราคาประหยัดที่ฉันพบใน EBay ในราคาประมาณ $4 ไม่แข็งแรงมากและสามารถส่องสว่างได้ไกลถึง 15 ฟุตเท่านั้น หากคุณมีงบประมาณเพิ่มขึ้น การได้รับไฟส่องสว่างที่แรงขึ้นจะเป็นการปรับปรุงที่ดี
ฉันเพิ่ม "debug-switch" ลงใน gpio23 รหัสตรวจสอบสถานะของสวิตช์และหากกดจะเป็นการปิดใช้งานรีเลย์วาล์วน้ำสำหรับการทดสอบไฟแห้ง ฉันคิดว่าฉันจะทำมากกว่านี้ด้วยสวิตช์นั้น แต่ไม่ได้ใช้งานเลยจริงๆ ฉันจะลบมันและรหัสที่ค้นหา …
ขั้นตอนที่ 3: การสร้าง: กล้องและไฟเรืองแสง IR
ฉันใช้กล่องกระสุนพลาสติกของ Harbor Freight เป็นตู้ ส่วนใหญ่ฉันต้องการสิ่งที่กันน้ำได้เนื่องจากสเปรย์น้ำ / น้ำไหลบ่าจำนวนมากหลีกเลี่ยงไม่ได้ มีรู/ช่องเจาะจำนวนมากแต่ถูกบังด้วยกันสาด พลาสติกใส หรือเจาะใต้ส่วนที่ยื่นออกมาเพื่อระบายน้ำ เมื่อมองย้อนกลับไป ฉันควรใช้กล่องโลหะที่มีฮีทซิงค์ติดอยู่กับส่วนประกอบกำลังสูงภายใน การทำเช่นนี้ฉันคิดว่าฉันสามารถหลีกเลี่ยงการเพิ่มพัดลมได้ กล่องพลาสติกเป็นฉนวนเกินไปและทำให้อุณหภูมิภายในสูงขึ้นมากเกินไป
หน้าต่างเล็ก ๆ ถูกตัดออกในตอนท้ายเพื่อให้กล้องมองออกไป และติดตั้งไฟอินฟราเรดไว้ในกล่องใส่เลนส์พลาสติกเก่าที่ฉันวางไว้
ขั้นตอนที่ 4: การก่อสร้าง: ท่อน้ำ
ช่องเติมน้ำเข้าในวาล์วน้ำ 12v ที่เชื่อมต่อกับท่อไวนิล OD ขนาด ¼” ID x 3/8” ซึ่งจะเชื่อมต่อกับท่อหนามขนาด ¼” กับขั้วต่อ PVC แบบสวมพอดี ¾ และติดกาวเข้ากับฝาน้ำ PVC ขนาด ¾” ที่มีรูขนาด 1/16” ที่เจาะสำหรับกระแสน้ำ ฉันต้องการเก็บรีเลย์ของวาล์วน้ำให้พ้นจากสภาพอากาศจึงติดตั้งไว้ในกล่อง มีอันตรายที่อาจเกิดรอยรั่วได้ แต่ฉันได้เจาะรูระบายน้ำที่ด้านล่างของกล่องและติดตั้งอุปกรณ์อิเล็กทรอนิกส์ในระดับสูง เพื่อลดโอกาสที่น้ำจะเกิดความเสียหายต่ออุปกรณ์อิเล็กทรอนิกส์หากเกิดขึ้น แผนผังที่น่าพึงพอใจน้อยกว่า แต่ปลอดภัยกว่าคือการติดตั้งวาล์วที่ด้านนอกและเรียกใช้สายรีเลย์ 12v ด้านใน แผ่นพลาสติกใสเหนือเซอร์โวเป็นวิธีที่สะดวกในการติดตั้งปลายสายยาง และป้องกันไม่ให้น้ำหยดลงบนเซอร์โว พัดลมเป็นความคิดภายหลังเนื่องจากกล่องร้อนมากเกินไป ฉันสร้างกันสาดเล็กน้อยเพื่อกันไม่ให้น้ำหยดเข้ามา
ขั้นตอนที่ 5: การก่อสร้าง: เล็งเซอร์โว
รูถูกตัดที่ด้านบนของกล่องและติดตั้งเซอร์โวเล็งและปิดผนึกด้วยซิลิกอนเพื่อป้องกันไม่ให้น้ำไหลออก
ขั้นตอนที่ 6: การก่อสร้าง: การติดตั้งพาวเวอร์ซัพพลาย พัดลม Raspberry Pi และ Proto-board
อุปกรณ์จ่ายไฟสองตัว (5v และ 12v) ต่อเข้ากับสายไฟเส้นเดียวที่ออกจากด้านข้างของกล่อง Raspberry Pi และบอร์ดโปรโตติดตั้งอยู่ที่ด้านข้างของกล่องใกล้กับด้านบน สังเกตรูระบายน้ำที่ด้านล่างและรูระบายอากาศที่เจาะตามขอบด้านบน พัดลมติดตั้งอยู่ตรงข้าม Raspberry Pi ไม่มีสวิตช์เปิด/ปิดเนื่องจากฉันไม่ต้องการที่จะสนับสนุนให้ปิด Raspberry Pi โดยไม่มีคำสั่ง "sudo shutdown now" อย่างเป็นทางการ (เช่น ไม่ต้องการให้ปิดเครื่องง่ายเกินไป)
ขั้นตอนที่ 7: การก่อสร้าง: Proto Board
บอร์ดโปรโตประกอบด้วยตัวควบคุม 5v, ฝาปิดตัวกรอง, ทรานซิสเตอร์กำลัง (ที่ขับเคลื่อนเซอร์โวและวาล์วน้ำ) และสวิตช์ดีบัก
ขั้นตอนที่ 8: การสร้าง: กล้อง Raspberry Pi
กล้อง Raspberry Pi เชื่อมต่อโดยตรงกับ Raspberry Pi ผ่านสายริบบิ้นและติดตั้งบนแผ่นพลาสติกใสที่ปิดช่องมองที่ด้านหน้าของกล่อง
ขั้นตอนที่ 9: รายการชิ้นส่วน
โครงการจบลงด้วยต้นทุนประมาณ 120 เหรียญ ค่าใช้จ่ายส่วนใหญ่ของโครงการคือ Raspberry Pi, กล้อง, เซอร์โวและแหล่งจ่ายไฟ ฉันพบชิ้นส่วนส่วนใหญ่ใน EBay หรือ Amazon และชิ้นส่วนประปาที่ร้านฮาร์ดแวร์ในพื้นที่
- Raspberry Pi 3 (อเมซอน) $38
- กล้อง NoIR (อีเบย์) $30
- 5v อะนาล็อกเซอร์โว (แรงบิด 4 กก. ซม.) (อีเบย์) $10
- พาวเวอร์ซัพพลายแบบติดผนัง 5v/2.4A (อีเบย์) $8
- วาล์วน้ำ 12v ½” (อีเบย์) $5
- ท่อ, ข้อต่อท่อ (Osh) $5
- กล่องกระสุนพลาสติก (ขนส่งสินค้าทางท่าเรือ) $5
- พาวเวอร์ซัพพลายแบบติดผนัง 12v/1.5A (อีเบย์) $5
- ไฟเรืองแสงอินฟราเรด (อีเบย์) $4
- อื่น ๆ. ส่วนประกอบ (ตัวต้านทาน สวิตช์ ไดโอด) $2
- พัดลมซีพียู (อีเบย์) $2
- Proto Board, Standoffs, Screws (อีเบย์) $2
- (2) เพาเวอร์ทรานซิสเตอร์ (2n5296) (อีเบย์) $1
- เครื่องปรับลม 5v (LM7805) (อีเบย์) $1
- พลาสติกใส 3/32” (Tap Plastics Misc. Bin) $1
- สายไฟ (Osh) $1
ร้านค้า/ไซต์ที่ฉันซื้อสินค้า:
- Alice1101983 เว็บไซต์อีเบย์:
- เว็บไซต์ 2bevoque EBay:
- ขนส่งสินค้าทางเรือ
- ฮาร์ดแวร์ซัพพลายออร์ชาร์ด
- อเมซอน
- แตะพลาสติก
แนะนำ:
Bubble Blaster: 7 ขั้นตอน
Bubble Blaster: ในคำแนะนำนี้ คุณจะได้เรียนรู้วิธีสร้าง Bubble Blaster นี้จะขึ้นอยู่กับขลุ่ยฟอง อย่าลืมลงคะแนนสำหรับคำแนะนำนี้ฉันหวังว่าคุณจะสนุกกับมัน
Nerf Blaster ที่เปิดใช้งาน Bluetooth: 7 ขั้นตอน
Nerf Blaster ที่เปิดใช้งาน Bluetooth: ฉันรู้สึกได้รับแรงบันดาลใจจากโปรเจ็กต์ของ Colin Furze และตัดสินใจสร้างเวอร์ชั่นของตัวเองสำหรับ Remix Challenge การออกแบบที่ฉันใช้นั้นคล้ายคลึงกัน แต่มีความชำนาญมากกว่า และมีโมดูล Bluetooth ที่ช่วยให้สามารถควบคุมป้อมปืนจากโทรศัพท์ของฉันได้ นี่คือ
Rainbow Blaster: 8 ขั้นตอน (พร้อมรูปภาพ)
Rainbow Blaster: Rainbow Blaster ฉันมีความคิดที่จะทำอุปกรณ์มือถือเพื่อ 'ฉีด' ผง Holi หลังจากทำการทดลองไปเล็กน้อย Rainbow Blaster ก็ถือกำเนิดขึ้น! อุปกรณ์ประกอบด้วยขวดกดบีบพลาสติก 5 ขวดที่มีหลอดกาลักน้ำ (หลอด) อยู่ภายใน
ESP-12 Infra Red Blaster: 7 ขั้นตอน
ESP-12 Infra Red Blaster: บลาสเตอร์ควบคุมระยะไกลอินฟาเรดโดยใช้ esp8266 ส่งรหัสควบคุมระยะไกลที่ได้รับจากเว็บที่รองรับอุปกรณ์เอาต์พุตหลายตัว สร้างขึ้นในหน้าเว็บทั่วไปสำหรับการทดสอบเป็นหลัก การใช้งานปกติคือผ่านข้อความ POST ซึ่งอาจมาจากหน้าเว็บหรือจาก IFTT
The True Ghetto Blaster: 5 ขั้นตอน
The True Ghetto Blaster: สิ่งนี้เคยเกิดขึ้นกับคุณหรือไม่? คุณกำลังนั่งอยู่ในห้องที่มีเสียงดังพร้อมขวดน้ำพลาสติก ปืนกาวร้อน และหัวแร้งทุกที่ และคุณก็ไม่ได้ยินเสียงเพลงของคุณใช่ไหม อย่ากลัว! คุณสามารถใช้เครื่องมือ DIY ที่วางไว้อย่างสะดวกเพื่อสร้างรี