สารบัญ:

CribSense: Baby Monitor แบบไร้สัมผัสแบบวิดีโอ: 9 ขั้นตอน (พร้อมรูปภาพ)
CribSense: Baby Monitor แบบไร้สัมผัสแบบวิดีโอ: 9 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: CribSense: Baby Monitor แบบไร้สัมผัสแบบวิดีโอ: 9 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: CribSense: Baby Monitor แบบไร้สัมผัสแบบวิดีโอ: 9 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: Позвольте мне дать вам Raspberry Pi [Обновление для создателя № 13] 2024, พฤศจิกายน
Anonim
CribSense: เครื่องตรวจสอบเด็กแบบไร้สัมผัสแบบวิดีโอ
CribSense: เครื่องตรวจสอบเด็กแบบไร้สัมผัสแบบวิดีโอ
CribSense: เครื่องตรวจสอบเด็กแบบไร้สัมผัสแบบวิดีโอ
CribSense: เครื่องตรวจสอบเด็กแบบไร้สัมผัสแบบวิดีโอ

CribSense เป็นเครื่องเฝ้าดูเด็กแบบไร้สัมผัสแบบวิดีโอที่คุณสามารถทำเองได้โดยไม่ทำลายธนาคาร

CribSense เป็นการนำ Video Magnification ไปใช้ C++ ที่ปรับแต่งให้ทำงานบน Raspberry Pi 3 Model B ได้ ในช่วงสุดสัปดาห์ คุณสามารถตั้งค่าจอภาพสำหรับทารกบนเปลได้ ซึ่งจะส่งสัญญาณเตือนหากทารกของคุณหยุดเคลื่อนไหว เป็นโบนัส ซอฟต์แวร์ทั้งหมดใช้งานได้ฟรีสำหรับวัตถุประสงค์ที่ไม่ใช่เชิงพาณิชย์และสามารถขยายได้ง่าย

สามารถดูที่เก็บเต็มรูปแบบที่มีไฟล์ต้นฉบับและเอกสารประกอบได้ที่

แม้ว่าเราคิดว่า CribSense ค่อนข้างสนุก แต่สิ่งสำคัญคือต้องจำไว้ว่านี่ไม่ใช่อุปกรณ์ความปลอดภัยที่ผ่านการรับรองและไม่เข้าใจผิด นั่นคือต้องมีการกำหนดค่าอย่างเหมาะสมและมีสภาพแวดล้อมที่มีการควบคุมอย่างดีจึงจะสามารถทำงานได้ ตัวอย่างเช่น หากไม่ได้รับการปรับเทียบอย่างดีและ/หรือสภาพแวดล้อมในวิดีโอไม่เอื้อต่อการขยายภาพ คุณอาจไม่สามารถใช้งานได้ เราสร้างโปรเจ็กต์นี้เป็นโปรเจ็กต์สนุกๆ เพื่อดูว่าเราจะมีซอฟต์แวร์ที่มีการประมวลผลสูง เช่น การขยายวิดีโอที่ทำงานบนฮาร์ดแวร์ที่จำกัดการประมวลผลอย่าง Raspberry Pi ได้ดีเพียงใด ผลิตภัณฑ์จริงใด ๆ จะต้องมีการทดสอบมากกว่าที่เราทำ ดังนั้น หากคุณใช้โปรเจ็กต์นี้ ให้ลองดูว่ามันคืออะไร: การสำรวจการขยายวิดีโอสั้น ๆ บน Pi

สิ่งที่คุณต้องการ:

Raspberry Pi + กล้อง + เครื่องมือกำหนดค่า:

  • Raspberry Pi 3 รุ่น B
  • 5V 2.5A ไมโคร USB พาวเวอร์ซัพพลาย
  • โมดูลกล้อง Raspberry Pi NoIR V2
  • การ์ด MicroSD (เราใช้การ์ด 16GB Class 10)
  • สายแพรสำหรับกล้อง Raspberry Pi (12")
  • ลำโพงที่มีอินพุต 3.5 มม.
  • จอภาพ HDMI
  • แป้นพิมพ์ USB
  • เมาส์ USB
  • [ตัวเลือก] Raspberry Pi Heatsink (หากคุณกังวลเกี่ยวกับความร้อน คุณสามารถติดหนึ่งในอุปกรณ์เหล่านี้บน Pi ของคุณ)

วงจร IR LED สำหรับการทำงานในที่แสงน้อย:

  • [3x] 1N4001 ไดโอด
  • ตัวต้านทาน 1 โอห์ม 1W
  • ไฟ LED IR 1W
  • สายไฟ 2 เส้นสำหรับต่อ LED เข้ากับ Pi
  • หัวแร้ง

แชสซี:

  • เข้าถึงเครื่องพิมพ์ 3D (ปริมาณการสร้างขั้นต่ำ = 9.9" L x 7.8" W x 5.9" H) เพื่อพิมพ์แชสซีของเรา อย่างไรก็ตาม คุณสามารถสร้างของคุณเองได้
  • กาว (กาวชนิดใดก็ได้ แต่แนะนำให้ใช้กาวร้อนสำหรับการสร้างต้นแบบ)

ขั้นตอนที่ 1: ข้อกำหนดเบื้องต้น

ก่อนที่คุณจะเริ่มคำแนะนำทีละขั้นตอน คุณควรติดตั้ง Raspbian เวอร์ชันล่าสุดบนการ์ด SD ของคุณแล้ว และตรวจดูให้แน่ใจว่า Pi ของคุณทำงานได้ คุณจะต้องเปิดใช้งานโมดูลกล้องก่อนจึงจะสามารถเข้าถึงกล้องได้

ขั้นตอนที่ 2: การติดตั้งซอฟต์แวร์ CribSense

CribSense ขึ้นอยู่กับ autoconf, libtool, OpenCV และ libcanberra ตลอดจนเครื่องมือซอฟต์แวร์ทั่วไป

  • autoconf และ libtool ใช้เพื่อกำหนดค่า makefiles โดยอัตโนมัติและสร้างสคริปต์สำหรับ CribSense บนหลายแพลตฟอร์ม (เช่น Linux, OSX และ Raspberry Pi)
  • OpenCV เป็นแพ็คเกจคอมพิวเตอร์วิทัศน์ที่ทรงพลังซึ่งใช้ในการประมวลผลภาพและเป็นพื้นฐานของการขยายวิดีโอและโค้ดตรวจจับการเคลื่อนไหว มีการสนับสนุนที่ดี ใช้งานง่ายและมีประสิทธิภาพที่ดี
  • libcanberra เป็นห้องสมุดที่เรียบง่ายสำหรับเล่นเสียงของเหตุการณ์ ใช้สำหรับเล่นเสียงปลุกสำหรับ CribSense

เยี่ยมชมแต่ละหน้าเพื่อดูรายละเอียดทั้งหมด

ติดตั้งสิ่งเหล่านี้โดยเปิดเทอร์มินัลบน Pi ของคุณและเรียกใช้:

sudo apt-get ติดตั้ง git build-essential autoconf libtool libopencv-dev libcanberra-dev

ถัดไป คุณต้องตั้งค่าไดรเวอร์กล้องให้โหลดอัตโนมัติโดยเพิ่ม bcm2835-v4l2 เป็น `/etc/modules-load.d/modules.conf' modules.conf ของคุณควรมีลักษณะดังนี้:

# /etc/modules: โมดูลเคอร์เนลที่จะโหลดในเวลาบูต

# # ไฟล์นี้มีชื่อของโมดูลเคอร์เนลที่ควรโหลด # ในขณะบูต หนึ่งรายการต่อบรรทัด บรรทัดที่ขึ้นต้นด้วย "#" จะถูกละเว้น i2c-dev bcm2835-v4l2

เมื่อไฟล์ได้รับการแก้ไขแล้ว คุณต้องรีบูต Pi ของคุณ CribSense ใช้ไดรเวอร์นี้เพื่อดึงเฟรมจาก NoIR Camera โดยตรง

จากนั้น คุณสามารถโคลนที่เก็บโดยเรียกใช้:

โคลน git

ถัดไป ย้ายไปยังที่เก็บและสร้างซอฟต์แวร์โดยเรียกใช้

cd CribSense

./autogen.sh --prefix=/usr --sysconfdir=/etc --disable-debug ทำให้ sudo ทำการติดตั้ง sudo systemctl daemon-reload

ขอแสดงความยินดี คุณได้ติดตั้งซอฟต์แวร์ที่จำเป็นทั้งหมดแล้ว!

การกำหนดค่า

CribSense สามารถปรับแต่งได้ผ่านไฟล์การกำหนดค่า INI อย่างง่าย หลังจากรัน "make install" ไฟล์คอนฟิกูเรชันจะอยู่ที่ /etc/cribsense/config.ini คุณสามารถดูและแก้ไขพารามิเตอร์เหล่านี้ได้โดยเรียกใช้

sudo nano /etc/cribsense/config.ini

คำอธิบายสั้น ๆ ของแต่ละพารามิเตอร์มีอยู่ในการกำหนดค่าเริ่มต้น แต่มีรายละเอียดเพิ่มเติมที่ https://lukehsiao.github.io/CribSense/setup/config/ เราจะหารือเกี่ยวกับการสอบเทียบและการกำหนดค่าที่ส่วนท้ายของคู่มือนี้

Running CribSense

CribSense ได้รับการออกแบบให้ทำงานเมื่อเริ่มต้นโดยใช้บริการ systemd ในขณะที่คุณเชื่อมต่อกับ Raspberry Pi ด้วยแป้นพิมพ์และเมาส์ คุณควรตรวจสอบให้แน่ใจว่าพารามิเตอร์การกำหนดค่าใช้ได้กับเปลของคุณ คุณอาจต้องปรับพารามิเตอร์เหล่านี้ใหม่หากคุณย้าย

ขณะที่คุณกำลังปรับค่าพารามิเตอร์ คุณสามารถเรียกใช้ cribsense ได้ตามต้องการจากบรรทัดคำสั่งโดยการรัน

cribsense --config /etc/cribsense/config.ini

เมื่อคุณพอใจแล้ว คุณสามารถเปิดใช้งานการทำงานอัตโนมัติได้ด้วยการเรียกใช้

sudo systemctl เปิดใช้งาน cribsense

คุณสามารถหยุด cribsense ไม่ให้ทำงานโดยอัตโนมัติด้วยการวิ่ง

sudo systemctl ปิดการใช้งาน cribsense

ภาพรวมซอฟต์แวร์

ซอฟต์แวร์ CribSense คือหัวใจและจิตวิญญาณของโครงการนี้ เราเห็นการสาธิตการขยายวิดีโอที่ยอดเยี่ยมจาก MIT และต้องการลองใช้อัลกอริทึมที่คล้ายกันบน Raspberry Pi สิ่งนี้ต้องการการเร่งความเร็วมากกว่า 10 เท่าจากการทำงานของ tbl3rd ในการใช้งานการขยายวิดีโอ C++ ของเขาเพื่อที่จะทำงานแบบเรียลไทม์บน Pi การเพิ่มประสิทธิภาพที่จำเป็นเป็นแนวทางในการออกแบบซอฟต์แวร์ของเรา

ในระดับสูง CribSense จะวนซ้ำผ่านเครื่องสถานะซอฟต์แวร์ ขั้นแรก จะแบ่งเฟรมวิดีโอระดับสีเทาขนาด 640x480 แต่ละเฟรมออกเป็น 3 ส่วนแนวนอน (640x160) เพื่อให้มีตำแหน่งแคชที่ดีขึ้น จากนั้นจะขยายแต่ละแถบในเธรดแยกกัน และติดตามการเคลื่อนไหวที่เห็นในเฟรม หลังจากตรวจสอบการเคลื่อนไหวเป็นเวลาหลายวินาที มันจะกำหนดพื้นที่หลักของการเคลื่อนไหวและครอบตัดเฟรม ซึ่งจะช่วยลดจำนวนพิกเซลทั้งหมดที่อัลกอริทึมต้องดำเนินการ จากนั้น CribSense จะตรวจสอบปริมาณการเคลื่อนไหวในสตรีมที่ครอบตัดและส่งเสียงเตือนหากไม่มีการเคลื่อนไหวใด ๆ ในระยะเวลาที่กำหนดได้ CribSense จะเปิดมุมมองอีกครั้งเป็นระยะเพื่อตรวจสอบแบบเต็มเฟรม ในกรณีที่ทารกได้เคลื่อนไหวและครอบตัดใหม่รอบๆ พื้นที่หลักที่เคลื่อนไหวใหม่

กำลังขยายวิดีโอใช้เพื่อเพิ่มอัตราส่วนสัญญาณต่อสัญญาณรบกวนของการเคลื่อนไหวที่ละเอียดอ่อน เช่น การหายใจของทารก ไม่จำเป็นสำหรับการเคลื่อนไหวที่ใหญ่ขึ้น แต่สามารถช่วยในการเคลื่อนไหวที่ละเอียดอ่อนได้ โปรดทราบว่าการใช้งานของเรานั้นอิงตามอัลกอริธึมที่อธิบายไว้ในเอกสารของ MIT อย่างหลวม ๆ และไม่มีประสิทธิภาพเท่ากับรหัสที่เป็นกรรมสิทธิ์ของพวกเขา

การเพิ่มประสิทธิภาพ เช่น การทำมัลติเธรด การครอบตัดแบบปรับได้ และการเพิ่มประสิทธิภาพคอมไพเลอร์ทำให้เราเร็วขึ้นประมาณ 3x, 3x และ 1.2x ตามลำดับ สิ่งนี้ทำให้เราบรรลุความเร็ว 10 เท่าที่จำเป็นในการรันแบบเรียลไทม์บน Pi

รายละเอียดทั้งหมดสามารถพบได้ในหน้า Software Architecture ของที่เก็บ CribSense

หากคุณสนใจในการขยายวิดีโอโปรดไปที่หน้าของ MIT

ขั้นตอนที่ 3: เตรียมฮาร์ดแวร์ให้พร้อม: เชื่อมต่อกล้องของคุณ

เตรียมฮาร์ดแวร์ให้พร้อม: เชื่อมต่อกล้องของคุณ
เตรียมฮาร์ดแวร์ให้พร้อม: เชื่อมต่อกล้องของคุณ

ขั้นแรก คุณต้องสลับสายขนาด 6 นิ้ว ที่มาพร้อมกับกล้องเป็นสายขนาด 12 นิ้ว ในการดำเนินการนี้ คุณสามารถทำตามบทช่วยสอนนี้เกี่ยวกับวิธีเปลี่ยนสายกล้องได้

โดยสรุป คุณจะเห็นแถบผลัก/ดึงที่ด้านหลังของกล้องซึ่งคุณสามารถดึงออกเพื่อปลดสายดิ้นได้ เปลี่ยนสายสั้นเป็นสายยาวและดันแถบกลับเข้าไป

คุณจะสังเกตเห็นว่าเรามีสายเคเบิลขนาด 24 นิ้วในรูปภาพของเรา มันยาวเกินไป สายเคเบิลขนาด 12 นิ้วในรายการวัสดุนั้นมีความยาวที่เหมาะสมกว่ามาก

ขั้นตอนที่ 4: เตรียมฮาร์ดแวร์ให้พร้อม: IR LED

เตรียมฮาร์ดแวร์ให้พร้อม: IR LED
เตรียมฮาร์ดแวร์ให้พร้อม: IR LED
เตรียมฮาร์ดแวร์ให้พร้อม: IR LED
เตรียมฮาร์ดแวร์ให้พร้อม: IR LED
เตรียมฮาร์ดแวร์ให้พร้อม: IR LED
เตรียมฮาร์ดแวร์ให้พร้อม: IR LED

CribSense นั้นค่อนข้างง่ายที่จะสร้าง และส่วนใหญ่ประกอบด้วยชิ้นส่วนที่มีจำหน่ายในท้องตลาด ดังที่เห็นในภาพด้านบน มีส่วนประกอบฮาร์ดแวร์หลัก 5 ชิ้น โดยมีเพียง 2 ชิ้นเท่านั้นที่ผลิตขึ้นเอง หน้านี้จะอธิบายวิธีการสร้างวงจร IR LED และหน้าถัดไปจะกล่าวถึงวิธีสร้างแชสซี

สำหรับส่วนนี้ คุณต้องเตรียมหัวแร้ง สายไฟ ไดโอด IR LED และตัวต้านทาน เราจะสร้างวงจรที่แสดงในรูปที่ 2 หากคุณยังใหม่ต่อการบัดกรี นี่คือคำแนะนำที่ดีที่จะตามทันคุณ ในขณะที่คู่มือนี้กล่าวถึงการบัดกรีผ่านรู คุณสามารถใช้เทคนิคพื้นฐานเดียวกันเพื่อเชื่อมต่อส่วนประกอบเหล่านี้เข้าด้วยกันดังแสดงในรูปที่ 3

เพื่อให้แสงสว่างเพียงพอในเวลากลางคืน เราใช้ IR LED ซึ่งไม่สามารถมองเห็นได้ด้วยตาเปล่าแต่มองเห็นได้ด้วยกล้อง NoIR IR LED ไม่กินไฟมากเมื่อเทียบกับ Raspberry Pi ดังนั้นเราจึงเปิด IR LED ไว้เพื่อความเรียบง่าย

ใน Pi รุ่นก่อนหน้า เอาต์พุตสูงสุดของพินเหล่านี้คือ 50mA Raspberry Pi B+ เพิ่มขึ้นเป็น 500mA อย่างไรก็ตาม เราเพียงแค่ใช้พินจ่ายไฟ 5V เพื่อความเรียบง่าย ซึ่งสามารถจ่ายไฟได้สูงถึง 1.5A แรงดันไฟไปข้างหน้าของ IR LED อยู่ที่ประมาณ 1.7 ~ 1.9V ตามการวัดของเรา แม้ว่า IR LED สามารถดึง 500mA ได้โดยไม่ทำลายตัวเอง แต่เราลดกระแสไฟลงเหลือประมาณ 200mA เพื่อลดความร้อนและการใช้พลังงานโดยรวม ผลการทดลองยังแสดงให้เห็นว่า IR LED นั้นสว่างเพียงพอสำหรับกระแสไฟอินพุต 200mA เพื่อเชื่อมช่องว่างระหว่าง 5V และ 1.9V เราใช้ไดโอด 1N4001 สามตัวและตัวต้านทาน 1 โอห์มในอนุกรมกับ IR LED แรงดันตกคร่อมลวด ไดโอด และตัวต้านทานประมาณ 0.2V, 0.9V (สำหรับแต่ละอัน) และ 0.2V ตามลำดับ ดังนั้นแรงดันไฟฟ้าเหนือ IR LED คือ 5V - 0.2V - (3 * 0.9V) - 0.2V = 1.9V การกระจายความร้อนเหนือ LED คือ 0.18W และ 0.2W บนตัวต้านทาน ซึ่งทั้งหมดนี้อยู่ในเรตติ้งสูงสุด

แต่เรายังไม่เสร็จ! เพื่อให้พอดีกับตัวเครื่องที่พิมพ์ 3 มิติ เราต้องการให้เลนส์ IR LED ยื่นออกมาจากแชสซีของเรา และให้บอร์ด PCB ล้างด้วยรู โฟโตไดโอดขนาดเล็กที่ด้านล่างขวาจะขวางทาง เพื่อแก้ไขปัญหานี้ เราแยกชิ้นส่วนออกแล้วพลิกไปด้านตรงข้ามของกระดานดังแสดงในสองภาพสุดท้าย ไม่จำเป็นต้องใช้โฟโตไดโอดเนื่องจากเราต้องการให้ไฟ LED เปิดอยู่เสมอ เพียงแค่สลับไปด้านตรงข้ามจะทำให้วงจร LED เดิมไม่เปลี่ยนแปลง

เมื่อทำการบัดกรีกับสายไฟ ตรวจสอบให้แน่ใจว่าสายไฟนั้นมีความยาวอย่างน้อย 12 นิ้ว และมีส่วนหัวของพินที่สามารถเลื่อนผ่าน GPIO ของ Pi ได้

ขั้นตอนที่ 5: เตรียมฮาร์ดแวร์ให้พร้อม: แชสซี

เตรียมฮาร์ดแวร์ให้พร้อม: Chassis
เตรียมฮาร์ดแวร์ให้พร้อม: Chassis
เตรียมฮาร์ดแวร์ให้พร้อม: Chassis
เตรียมฮาร์ดแวร์ให้พร้อม: Chassis
เตรียมฮาร์ดแวร์ให้พร้อม: Chassis
เตรียมฮาร์ดแวร์ให้พร้อม: Chassis

ไฟล์ต้นฉบับ:

  • กรณี STL
  • เคส Makerbot
  • ปก STL
  • ปก Makerbot

เราใช้แชสซีที่พิมพ์ 3 มิติอย่างง่ายเพื่อติดตั้ง Pi กล้องและไฟ LED การใช้แชสซีของเราเป็นทางเลือก แต่แนะนำให้ป้องกันไม่ให้เด็กเล็กสัมผัสวงจรอิเล็กทรอนิกส์ที่เปิดอยู่ เปลแต่ละเตียงมีความแตกต่างกัน ดังนั้นโครงเครื่องของเราจึงไม่มีขายึด ตัวเลือกการติดตั้งหลายแบบอาจรวมถึง:

  • เคเบิ้ลไทร์
  • 3M ล็อคคู่
  • เวลโคร
  • เทป

หากคุณมีสิทธิ์เข้าถึง MakerBot Replicator (รุ่นที่ 5) คุณสามารถดาวน์โหลดไฟล์.makerbot สำหรับเคสและปิดลงใน MakerBot Replicator แล้วพิมพ์ ใช้เวลาประมาณ 6 ชั่วโมงในการพิมพ์เคสและ 3 ชั่วโมงในการพิมพ์ปก หากคุณกำลังใช้เครื่องพิมพ์ 3 มิติประเภทอื่น โปรดอ่านต่อไป

ต้องใช้ปริมาณการสร้างขั้นต่ำ 9.9" (L) x 7.8" (W) x 5.9" (H) เพื่อพิมพ์ CribSense หากคุณไม่มีสิทธิ์เข้าถึงเครื่องพิมพ์ 3D ที่มีปริมาณการสร้างนี้ คุณสามารถใช้การพิมพ์ 3D ออนไลน์ได้ บริการ (เช่น Shapeways หรือ Sculpteo) เพื่อพิมพ์ CribSense ความละเอียดการพิมพ์ขั้นต่ำคือ 0.015" หากคุณกำลังใช้เครื่องพิมพ์ 3D ประเภทการผลิตเส้นใยหลอมรวม หมายความว่าเส้นผ่านศูนย์กลางหัวฉีดของคุณต้องมีขนาด 0.015 นิ้วหรือเล็กกว่า เครื่องพิมพ์ที่มีความละเอียดในการพิมพ์ต่ำกว่า (เส้นผ่านศูนย์กลางหัวฉีดที่ใหญ่กว่า) อาจใช้งานได้ แต่ Raspberry Pi อาจไม่พอดีกับตัวเครื่อง เราขอแนะนำ PLA (กรดโพลิแลกติก) เป็นวัสดุการพิมพ์ที่ต้องการ พลาสติกชนิดอื่นอาจใช้งานได้ แต่ Raspberry Pi อาจไม่พอดีกับกรณีหากค่าสัมประสิทธิ์การขยายตัวทางความร้อนของพลาสติกที่เลือกมีขนาดใหญ่กว่าของ PLA หากเครื่องพิมพ์ 3D ของคุณมี แผ่นทำความร้อนให้ปิดฮีตเตอร์ก่อนดำเนินการต่อ

การวางแนวรุ่นบนฐานพิมพ์ของเครื่องพิมพ์เป็นสิ่งสำคัญสำหรับการพิมพ์ที่ประสบความสำเร็จ โมเดลเหล่านี้ได้รับการออกแบบมาอย่างพิถีพิถัน ดังนั้นจึงไม่จำเป็นต้องพิมพ์ด้วยวัสดุรองรับ จึงช่วยประหยัดพลาสติกและปรับปรุงคุณภาพการพิมพ์ ก่อนดำเนินการต่อ ให้ดาวน์โหลดไฟล์ 3D สำหรับเคสและหน้าปก เมื่อพิมพ์โมเดลเหล่านี้ คอของ CribSense จะต้องวางราบบนฐานรองพิมพ์ เพื่อให้แน่ใจว่ามุมยื่นทั้งหมดในรุ่นไม่เกิน 45 องศา จึงไม่จำเป็นต้องใช้วัสดุรองรับ สำหรับคำแนะนำเกี่ยวกับการวางแนวโมเดล 3 มิติในปริมาณการสร้างของเครื่องพิมพ์ของคุณ โปรดดูคู่มือการใช้งานที่มาพร้อมกับเครื่องพิมพ์ 3D ของคุณ ตัวอย่างการวางแนวของเคสและฝาครอบแสดงไว้ด้านบน

นอกจากการวางคอของ CribSense ให้ราบกับฐานรองแล้ว คุณอาจสังเกตเห็นว่ารุ่นต่างๆ หมุนไปรอบๆ แกนตั้ง อาจจำเป็นเพื่อให้พอดีกับรุ่นภายในปริมาณการสร้างของเครื่องพิมพ์ 3D ของคุณ การหมุนนี้เป็นทางเลือก หากความยาวของวอลลุมบิวด์ของคุณยาวพอที่จะรองรับ CribSense

ขั้นตอนที่ 6: เตรียมฮาร์ดแวร์ของคุณให้พร้อม: การประกอบ

เตรียมฮาร์ดแวร์ให้พร้อม: การประกอบ
เตรียมฮาร์ดแวร์ให้พร้อม: การประกอบ
เตรียมฮาร์ดแวร์ให้พร้อม: การประกอบ
เตรียมฮาร์ดแวร์ให้พร้อม: การประกอบ
เตรียมฮาร์ดแวร์ให้พร้อม: การประกอบ
เตรียมฮาร์ดแวร์ให้พร้อม: การประกอบ
เตรียมฮาร์ดแวร์ให้พร้อม: การประกอบ
เตรียมฮาร์ดแวร์ให้พร้อม: การประกอบ

เมื่อคุณมีฮาร์ดแวร์ทั้งหมดพร้อมแล้ว คุณสามารถเริ่มประกอบได้ สามารถใช้กาวใดก็ได้ในกระบวนการนี้ แต่เราขอแนะนำกาวร้อนด้วยเหตุผลหลักสองประการ กาวร้อนแห้งเร็ว คุณจึงไม่ต้องรอนานเพื่อให้กาวแห้ง นอกจากนี้ กาวร้อนยังสามารถถอดออกได้หากคุณทำผิดพลาด ในการลบกาวร้อนที่แห้ง ให้แช่กาวร้อนในแอลกอฮอล์ถู (ไอโซโพรพิล) เราขอแนะนำให้ใช้ความเข้มข้น 90% ขึ้นไป แต่ความเข้มข้น 70% จะยังคงใช้ได้ การแช่กาวร้อนที่แห้งในไอโซโพรพิลแอลกอฮอล์จะทำให้พันธะระหว่างกาวกับพื้นผิวด้านล่างอ่อนลง ช่วยให้คุณลอกกาวออกได้อย่างหมดจด เมื่อแช่กาวในไอโซโพรพิลแอลกอฮอล์ ควรปิดและถอดปลั๊ก Raspberry Pi อย่าลืมปล่อยให้ทุกอย่างแห้งก่อนที่จะทากาวร้อนอีกครั้งและบูต Raspberry Pi

รูปภาพทั้งหมดสำหรับขั้นตอนเหล่านี้อยู่ในลำดับและปฏิบัติตามขั้นตอนข้อความ

  1. ใส่ Raspberry Pi ลงในแชสซี คุณจะต้องงอเล็กน้อยเพื่อให้พอร์ตเสียงเข้า แต่เมื่อเสียบเข้าไปแล้ว แจ็คเสียงจะเก็บเข้าที่ เมื่อเข้าที่แล้ว ตรวจสอบให้แน่ใจว่าพอร์ตทั้งหมดยังสามารถเข้าถึงได้ (เช่น คุณสามารถเสียบสายไฟได้)
  2. จากนั้น ใช้กาวร้อนติด Pi เข้าที่แล้วติดกล้องเข้ากับ Pi มีรูสกรูเช่นกันหากคุณต้องการใช้
  3. ตอนนี้ติด LED และกล้องเข้ากับฝาครอบด้านหน้า (ในภาพ) เริ่มต้นด้วยการติดกาวกล้อง NoIR กับรูกล้องด้วยความร้อน ตรวจสอบให้แน่ใจว่ากล้องอยู่ในขนาดพอดีตัวและจัดวางเข้ากับตัวเครื่อง อย่าใช้กาวมากเกินไป มิฉะนั้น คุณจะไม่สามารถใส่กล้องเข้าไปในเคสหลักได้ ตรวจสอบให้แน่ใจว่าได้เปิด Pi และดูที่กล้อง (เช่น `raspistill -v`) เพื่อให้แน่ใจว่ามีมุมที่ดีและมีมุมมองที่ดี หากไม่เป็นเช่นนั้น ให้เอากาวร้อนออกแล้วเปลี่ยนตำแหน่ง
  4. ถัดไป ติด IR LED เข้ากับรูที่คอของฝาครอบ คอทำมุม 45 องศาเพื่อให้แสงด้านข้างเปล ซึ่งส่งผลให้มีเงามากขึ้นในสถานการณ์ที่มีแสงน้อย ซึ่งจะเพิ่มความเปรียบต่างให้กับภาพมากขึ้น ทำให้ตรวจจับการเคลื่อนไหวได้ง่ายขึ้น
  5. ต่อสายไฟ IR LED เข้ากับหมุดส่วนหัวของ Raspberry Pi ตามที่แสดงในภาพแผนผัง
  6. บรรจุสายเคเบิลลงในแชสซีในลักษณะที่ไม่ย่นหรือตึง สุดท้ายเราพับสายแบบหีบเพลงเพราะสายอ่อนของกล้องยาวเกินไป
  7. เมื่อใส่ทุกอย่างเข้าที่แล้ว ให้ติดกาวร้อนรอบขอบที่ทั้งสองชิ้นมาบรรจบกัน แล้วปิดผนึกให้เข้าที่

ขั้นตอนที่ 7: การปรับเทียบ

Image
Image
การสอบเทียบ
การสอบเทียบ

รายละเอียดเกี่ยวกับพารามิเตอร์การกำหนดค่าสามารถพบได้ในเอกสารที่เก็บ CribSense ดูวิดีโอเพื่อดูตัวอย่างวิธีปรับเทียบ CribSense หลังจากที่คุณตั้งค่าทุกอย่างแล้ว

นี่คือตัวอย่างไฟล์การกำหนดค่า:

[io]; การกำหนดค่า I/O

; อินพุต = path_to_file; ไฟล์อินพุตที่จะใช้ input_fps = 15; fps ของอินพุต (สูงสุด 40, 15 แนะนำหากใช้กล้อง) full_fps = 4.5; fps ที่สามารถประมวลผลแบบเต็มเฟรมได้ crop_fps = 15; fps ที่เฟรมที่ครอบตัดสามารถประมวลผลได้ กล้อง = 0; กล้องที่จะใช้ความกว้าง = 640; ความกว้างของความสูงของวิดีโออินพุต = 480; ความสูงของอินพุตวิดีโอ time_to_alarm = 10; ต้องรอกี่วินาทีโดยไม่มีการเคลื่อนไหวก่อนที่จะมีเสียงเตือน [ครอบตัด]; Adaptive Cropping Settings ครอบตัด = true; จะครอบตัด frames_to_settle = 10 หรือไม่ # เฟรมรอหลังจากรีเซ็ตก่อนประมวลผล roi_update_interval = 800; # เฟรมระหว่างการคำนวณ ROI ใหม่ roi_window = 50; # เฟรมเพื่อตรวจสอบก่อนเลือก ROI [เคลื่อนไหว]; การตั้งค่าการตรวจจับการเคลื่อนไหว erode_dim = 4; ขนาดของเคอร์เนลกัดเซาะ dilate_dim = 60; มิติของเคอร์เนลขยาย diff_threshold = 8; ความแตกต่างของ abs ที่จำเป็นก่อนที่จะรับรู้ระยะเวลาการเปลี่ยนแปลง = 1; # เฟรมเพื่อรักษาการเคลื่อนไหวก่อนที่จะตั้งค่าสถานะจริง pixel_threshold = 5; # พิกเซลที่ต้องแตกต่างกันเพื่อตั้งค่าสถานะเป็นการเคลื่อนไหว show_diff = false; แสดงความแตกต่างระหว่าง 3 เฟรม [กำลังขยาย]; การตั้งค่าการขยายวิดีโอขยาย = 25; % กำลังขยายที่ต้องการค่าคัทออฟต่ำ = 0.5; ความถี่ต่ำของแบนด์พาส คัตออฟสูง = 1.0; ความถี่สูงของแบนด์พาส เกณฑ์ = 50; เกณฑ์เฟสเป็น % ของ pi show_magnification = เท็จ; แสดงเฟรมผลลัพธ์ของแต่ละการขยาย [debug] print_times = false; พิมพ์เวลาวิเคราะห์

การปรับเทียบอัลกอริทึมเป็นความพยายามซ้ำๆ โดยไม่มีวิธีแก้ปัญหาที่แน่นอน เราขอแนะนำให้คุณทดลองกับค่าต่างๆ รวมกับคุณลักษณะการดีบัก เพื่อค้นหาชุดค่าผสมของพารามิเตอร์ที่เหมาะสมกับสภาพแวดล้อมของคุณมากที่สุด ก่อนที่คุณจะเริ่มการปรับเทียบ ตรวจสอบให้แน่ใจว่าได้ตั้งค่า show_diff และ show_magnification เป็น true

ตามแนวทางนี้ การเพิ่มกำลังขยายและค่า phase_threshold จะเพิ่มจำนวนการขยายที่ใช้กับวิดีโออินพุต คุณควรเปลี่ยนค่าเหล่านี้จนกว่าคุณจะเห็นการเคลื่อนไหวที่คุณต้องการติดตามในเฟรมวิดีโออย่างชัดเจน หากคุณเห็นสิ่งประดิษฐ์ การลด phase_threshold ในขณะที่คงการขยายเสียงแบบเดิมไว้อาจช่วยได้

พารามิเตอร์การตรวจจับการเคลื่อนไหวช่วยชดเชยเสียงรบกวนเมื่อตรวจจับบริเวณที่มีการเคลื่อนไหว erode_dim และ dilate_dim จะใช้เพื่อปรับขนาดขนาดของเมล็ด OpenCV ที่ใช้ในการกัดเซาะและขยายการเคลื่อนไหวเพื่อให้เสียงถูกกัดเซาะออกไปในตอนแรก จากนั้นสัญญาณเคลื่อนไหวที่เหลือจะขยายออกอย่างมีนัยสำคัญเพื่อให้บริเวณที่เคลื่อนไหวชัดเจน อาจต้องปรับพารามิเตอร์เหล่านี้ด้วยหากเปลของคุณอยู่ในการตั้งค่าคอนทราสต์สูงมาก โดยทั่วไป คุณจะต้องใช้ erode_dim ที่สูงขึ้นสำหรับการตั้งค่าคอนทราสต์สูง และ erode_dim ที่ต่ำกว่าสำหรับคอนทราสต์ต่ำ

หากคุณเรียกใช้ CribSense ด้วย show_diff = true และคุณสังเกตเห็นว่าเอาต์พุตของตัวสะสมมากเกินไปเป็นสีขาว หรือตรวจพบส่วนที่ไม่เกี่ยวข้องอย่างสมบูรณ์ของวิดีโอเป็นการเคลื่อนไหว (เช่น ไฟกะพริบ) ให้เพิ่ม erode_dim จนกระทั่งเฉพาะบางส่วนของวิดีโอ สอดคล้องกับลูกน้อยของคุณเป็นส่วนที่ใหญ่ที่สุดของสีขาว รูปแรกแสดงตัวอย่างที่มิติการกัดเซาะต่ำเกินไปสำหรับปริมาณการเคลื่อนไหวในเฟรม ขณะที่รูปถัดไปแสดงเฟรมที่ปรับเทียบมาอย่างดี

เมื่อปรับเทียบแล้ว ตรวจสอบให้แน่ใจว่าได้ตั้งค่า pixel_threshold เป็นค่าที่ "การเคลื่อนที่ของพิกเซล" รายงานเฉพาะค่าสูงสุดของการเคลื่อนที่ของพิกเซลเท่านั้น ไม่ใช่ทั้งหมด (ซึ่งหมายความว่าคุณจำเป็นต้องตัดสัญญาณรบกวนออก) ตามหลักการแล้ว คุณจะเห็นผลลัพธ์เช่นนี้ในเทอร์มินัลของคุณ ซึ่งมีรูปแบบเป็นระยะที่ชัดเจนซึ่งสอดคล้องกับการเคลื่อนไหว:

[ข้อมูล] การเคลื่อนไหวของพิกเซล: 0 [ข้อมูล] ประมาณการการเคลื่อนไหว: 1.219812 Hz

[ข้อมูล] การเคลื่อนไหวของพิกเซล: 0 [ข้อมูล] การเคลื่อนไหวประมาณการ: 1.219812 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 0 [ข้อมูล] การเคลื่อนไหวประมาณการ: 1.219812 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 0 [ข้อมูล] ประมาณการการเคลื่อนไหว: 1.219812 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 44 [ข้อมูล] ประมาณการการเคลื่อนไหว: 1.219812 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 0 [ข้อมูล] ประมาณการการเคลื่อนไหว: 1.219812 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 161 [ข้อมูล] ประมาณการการเคลื่อนไหว: 1.219812 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 121 [ข้อมูล] ประมาณการการเคลื่อนไหว: 0.841416 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 0 [ข้อมูล] ประมาณการการเคลื่อนไหว: 0.841416 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 86 [ข้อมูล] ประมาณการการเคลื่อนไหว: 0.841416 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 0 [ข้อมูล] ประมาณการการเคลื่อนไหว: 0.841416 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 0 [ข้อมูล] การเคลื่อนไหวประมาณการ: 0.841416 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 0 [ข้อมูล] การประมาณการเคลื่อนไหว: 0.841416 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 0 [ข้อมูล] ประมาณการการเคลื่อนไหว: 0.841416 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 0 [ข้อมูล] ประมาณการการเคลื่อนไหว: 0.841416 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 0 [ข้อมูล] ประมาณการการเคลื่อนไหว: 0.841416 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 0 [ข้อมูล] ประมาณการการเคลื่อนไหว: 0.841416 Hz [ข้อมูล] Pixel Movem ent: 0 [info] Motion Estimate: 0.841416 Hz [info] Pixel Movement: 0 [info] Motion Estimate: 0.841416 Hz [info] Pixel Movement: 0 [info] Motion Estimate: 0.841416 Hz [info] การเคลื่อนไหวของพิกเซล: 0 [ข้อมูล] ประมาณการการเคลื่อนไหว: 0.841416 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 0 [ข้อมูล] ประมาณการการเคลื่อนไหว: 0.841416 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 0 [ข้อมูล] ประมาณการการเคลื่อนไหว: 0.841416 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 0 [ข้อมูล] ประมาณการการเคลื่อนไหว: 0.841416 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 0 [ข้อมูล] การเคลื่อนไหวประมาณการ: 0.841416 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 97 [ข้อมูล] การเคลื่อนไหวประมาณการ: 0.841416 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 74 [ข้อมูล] ประมาณการการเคลื่อนไหว: 0.839298 Hz [ข้อมูล] พิกเซล การเคลื่อนไหว: 0 [ข้อมูล] การเคลื่อนไหวโดยประมาณ: 0.839298 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 60 [ข้อมูล] การเคลื่อนไหวประมาณการ: 0.839298 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 0 [ข้อมูล] ประมาณการการเคลื่อนไหว: 0.839298 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 0 [ข้อมูล] การเคลื่อนไหวประมาณการ: 0.839298 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 0 [ข้อมูล] การประมาณการเคลื่อนไหว: 0.839298 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 0 [ข้อมูล] การเคลื่อนไหวประมาณการ: 0.839298 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 48 [ข้อมูล] การเคลื่อนไหว ประมาณการ: 0.839298 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 38 [ข้อมูล] ประมาณการการเคลื่อนไหว: 0.839298 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 29 [ข้อมูล] การเคลื่อนไหวประมาณการ: 0.839298 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 28 [ข้อมูล] ประมาณการการเคลื่อนไหว: 0.839298 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 22 [ข้อมูล] การเคลื่อนไหวประมาณการ: 0.839298 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 0 [ข้อมูล] ประมาณการการเคลื่อนไหว: 0.839298 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 0 [ข้อมูล] ประมาณการการเคลื่อนไหว: 0.839298 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 0 [ข้อมูล] ประมาณการการเคลื่อนไหว: 0.839298 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 0 [ข้อมูล] ประมาณการการเคลื่อนไหว: 0.839298 Hz

หากผลลัพธ์ของคุณมีลักษณะดังนี้:

[ข้อมูล] การเคลื่อนไหวของพิกเซล: 921 [ข้อมูล] ประมาณการการเคลื่อนไหว: 1.352046 Hz

[ข้อมูล] การเคลื่อนไหวของพิกเซล: 736 [ข้อมูล] การเคลื่อนไหวโดยประมาณ: 1.352046 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 666 [ข้อมูล] ประมาณการการเคลื่อนไหว: 1.352046 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 663 [ข้อมูล] ประมาณการการเคลื่อนไหว: 1.352046 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 1196 [ข้อมูล] ประมาณการการเคลื่อนไหว: 1.352046 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 1235 [ข้อมูล] ประมาณการการเคลื่อนไหว: 1.352046 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 1187 [ข้อมูล] ประมาณการการเคลื่อนไหว: 1.456389 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 1115 [ข้อมูล] ประมาณการการเคลื่อนไหว: 1.456389 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 959 [ข้อมูล] ประมาณการการเคลื่อนไหว: 1.456389 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 744 [ข้อมูล] การเคลื่อนไหวโดยประมาณ: 1.456389 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 611 [ข้อมูล] ประมาณการการเคลื่อนไหว: 1.456389 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 468 [ข้อมูล] การเคลื่อนไหวโดยประมาณ: 1.456389 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 371 [ข้อมูล] ประมาณการการเคลื่อนไหว: 1.456389 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 307 [ข้อมูล] ประมาณการการเคลื่อนไหว: 1.456389 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 270 [ข้อมูล] ประมาณการการเคลื่อนไหว: 1.456389 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 234 [ข้อมูล] ประมาณการการเคลื่อนไหว: 1.456389 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 197 [ข้อมูล] ประมาณการการเคลื่อนไหว: 1.456389 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 179 [ข้อมูล] ประมาณการการเคลื่อนไหว: 1.456389 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 164 [ข้อมูล] การเคลื่อนไหวประมาณการ: 1.456389 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 239 [ข้อมูล] ประมาณการการเคลื่อนไหว: 1.456389 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 733 [ข้อมูล] การเคลื่อนไหวโดยประมาณ: 1.456389 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 686 [ข้อมูล] การเคลื่อนไหวประมาณการ: 1.229389 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 667 [ข้อมูล] ประมาณการการเคลื่อนไหว: 1.229389 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 607 [ข้อมูล] ประมาณการการเคลื่อนไหว: 1.229389 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 544 [ข้อมูล] ประมาณการการเคลื่อนไหว: 1.229389 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 499 [ข้อมูล] ประมาณการการเคลื่อนไหว: 1.229389 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 434 [ข้อมูล] ประมาณการการเคลื่อนไหว: 1.229389 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 396 [ข้อมูล] ประมาณการการเคลื่อนไหว: 1.229389 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 375 [ข้อมูล] การเคลื่อนไหวประมาณการ: 1.229389 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 389 [ข้อมูล] ประมาณการการเคลื่อนไหว: 1.229389 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 305 [ข้อมูล] ประมาณการการเคลื่อนไหว: 1.312346 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 269 [ข้อมูล] การประมาณการเคลื่อนไหว: 1.312346 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 1382 [ข้อมูล] การเคลื่อนไหว E กระตุ้น: 1.312346 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 1086 [ข้อมูล] ประมาณการการเคลื่อนไหว: 1.312346 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 1049 [ข้อมูล] ประมาณการการเคลื่อนไหว: 1.312346 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 811 [ข้อมูล] ประมาณการการเคลื่อนไหว: 1.312346 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 601 [ข้อมูล] ประมาณการการเคลื่อนไหว: 1.312346 Hz [ข้อมูล] การเคลื่อนไหวของพิกเซล: 456 [ข้อมูล] ประมาณการการเคลื่อนไหว: 1.312346 Hz

ปรับ pixel_threshold และ diff_threshold จนกว่าจะเห็นเพียงจุดสูงสุด และการเคลื่อนที่ของพิกเซลจะเป็น 0 มิฉะนั้น

ขั้นตอนที่ 8: การสาธิต

Image
Image

นี่คือตัวอย่างเล็กๆ น้อยๆ เกี่ยวกับวิธีการทำงานของ CribSense คุณจะต้องจินตนาการว่าสิ่งนี้ติดอยู่ที่ด้านข้างของเปล

เมื่อคุณวาง CribSense ไว้เหนือเปล คุณจะต้องปรับระยะห่างระหว่างทารกกับกล้องให้เหมาะสม ตามหลักการแล้วหน้าอกของทารกจะเต็มน้อยกว่า 1/3 ของกรอบ เด็กไม่ควรอยู่ไกลเกินไป มิฉะนั้นวิดีโอความละเอียดต่ำจะพยายามหารายละเอียดมากพอที่จะขยาย หากกล้องอยู่ใกล้เกินไป กล้องอาจมองไม่เห็นลูกของคุณหากพวกเขาม้วนหรือเคลื่อนออกจากเฟรม ในทำนองเดียวกัน หากเด็กอยู่ใต้ผ้าห่ม "กางเต็นท์" ซึ่งมีการสัมผัสกันอย่างจำกัดระหว่างผ้าห่มกับหน้าอกของเด็ก อาจตรวจจับการเคลื่อนไหวได้ยาก เหน็บพวกเขาเป็นอย่างดี!

คุณจะต้องคำนึงถึงสภาพแสงรอบๆ เปลของคุณด้วย หากเปลของคุณอยู่ติดกับหน้าต่าง คุณอาจได้รับเงาที่เคลื่อนไหวหรือเปลี่ยนค่าแสงเมื่อดวงอาทิตย์ถูกเมฆบัง หรือมีการเคลื่อนไหวนอกหน้าต่าง ที่ไหนสักแห่งที่มีแสงสม่ำเสมอจะดีที่สุด

สำหรับการทำงานที่มากขึ้น เราคิดว่าอาจมีใครบางคนสามารถปรับปรุงซอฟต์แวร์ของเราเพื่อให้การปรับเทียบเป็นกระบวนการที่ราบรื่นยิ่งขึ้น ในอนาคต สามารถเพิ่มคุณสมบัติเพิ่มเติม เช่น การแจ้งเตือนแบบพุชได้

ขั้นตอนที่ 9: การแก้ไขปัญหา

คุณอาจพบปัญหาทั่วไปบางประการขณะตั้งค่า CribSense เช่น มีปัญหาในการสร้าง/รันโปรแกรม หรือไม่ได้ยินเสียงใดๆ โปรดจำไว้ว่า CribSense ไม่ใช่เครื่องดูแลเด็กที่น่าเชื่อถืออย่างสมบูรณ์ เรายินดีรับการมีส่วนร่วมในที่เก็บ GitHub ของเราในขณะที่คุณทำการปรับปรุง!

ต่อไปนี้คือเคล็ดลับในการแก้ปัญหาที่เราได้รวบรวมไว้ขณะสร้าง CribSense

ไม่มีการตั้งปลุก

  • ลำโพงของคุณใช้งานได้หรือไม่?
  • คุณสามารถเล่นเสียงอื่นจาก Pi นอกการเตือน CribSense ได้หรือไม่?
  • หาก Pi ของคุณพยายามเล่นเสียงผ่าน HDMI แทนที่จะเป็นพอร์ตเสียง ตรวจสอบหน้าการกำหนดค่าเสียง Raspberry Pi เพื่อให้แน่ใจว่าคุณได้เลือกเอาต์พุตที่ถูกต้อง
  • ซอฟต์แวร์ CribSense ตรวจจับการเคลื่อนไหวหรือไม่ หาก CribSense ทำงานในพื้นหลัง คุณสามารถตรวจสอบด้วย journalctl -f ในเทอร์มินัล
  • หาก CribSense ตรวจจับการเคลื่อนไหวได้มาก คุณอาจต้องปรับเทียบ CribSense

IR LED ไม่ทำงาน

  • คุณเห็นสีแดงจางๆ เมื่อคุณดูที่ IR LED หรือไม่ ควรมองเห็นวงแหวนสีแดงจางๆ เมื่อไฟ LED เปิดอยู่
  • ตรวจสอบขั้วของการเชื่อมต่อ หาก +5V และ GND กลับด้าน จะไม่ทำงาน
  • เชื่อมต่อ LED กับแหล่งจ่ายไฟที่มีขีดจำกัดแรงดัน/กระแส 5V/0.5A โดยปกติควรใช้ 0.2A ที่ 5V หากไม่เป็นเช่นนั้น LED ของคุณอาจทำงานผิดปกติ

CribSense ตรวจจับการเคลื่อนไหวแม้ว่าจะไม่มีทารกก็ตาม

  • คุณได้สอบเทียบ CribSense อย่างถูกต้องหรือไม่?
  • จำไว้ว่า CribSense กำลังมองหาการเปลี่ยนแปลงในค่าพิกเซล

    • มีเงาเคลื่อนไหวอยู่ภายในเฟรมหรือไม่?
    • มีการกะพริบหรือเปลี่ยนแสงหรือไม่?
    • CribSense ติดตั้งบนพื้นผิวที่มั่นคงหรือไม่ (เช่น สิ่งที่จะไม่สั่นสะเทือนหากผู้คนเดินผ่านไปมา)
    • มีแหล่งที่มาของการเคลื่อนไหวอื่นๆ ในเฟรมหรือไม่ (กระจกที่สะท้อนแสง ฯลฯ)

CribSense ตรวจไม่พบการเคลื่อนไหวแม้ว่าจะมีการเคลื่อนไหวอยู่ก็ตาม

  • คุณได้สอบเทียบ CribSense อย่างถูกต้องหรือไม่?
  • มีอะไรขวางทางกล้องหรือเปล่า
  • คุณสามารถเชื่อมต่อกับกล้องจาก Raspberry Pi ได้เลยหรือไม่? ตรวจสอบโดยเรียกใช้ raspistill -v ในเทอร์มินัลเพื่อเปิดกล้องบน Pi สักครู่
  • หากคุณดูที่ sudo systemctl status cribsense แสดงว่า CribSense ทำงานอยู่จริงหรือไม่
  • ทารกของคุณอยู่ใต้ผ้าห่มที่ "กางเต็นท์" ขึ้นเพื่อไม่ให้สัมผัสกับเด็กหรือไม่? หากมีช่องว่างอากาศที่ชัดเจนระหว่างผ้าห่มกับเด็ก ผ้าห่มอาจปิดบังการเคลื่อนไหว
  • คุณเห็นการเคลื่อนไหวไหมหากคุณขยายวิดีโอให้มากขึ้น
  • คุณเห็นการเคลื่อนไหวไหมหากคุณปรับคัทออฟความถี่ต่ำและความถี่สูง
  • หากสิ่งนี้เกิดขึ้นเฉพาะในที่แสงน้อย คุณแน่ใจหรือไม่ว่าการปรับเทียบของคุณทำงานในสภาวะแสงน้อย

CribSense ไม่ได้สร้าง

คุณติดตั้งการพึ่งพาทั้งหมดหรือไม่

ฉันไม่สามารถเรียกใช้ cribsense จาก commandline

  • คุณพิมพ์อะไรผิดโดยไม่ได้ตั้งใจเมื่อคุณรัน./autogen.sh --prefix=/usr --sysconfdir=/etc --disable-debug ระหว่างการสร้างซอฟต์แวร์ของคุณหรือไม่
  • มี cribsense อยู่ใน /usr/bin ?
  • เส้นทางใดที่ให้ไว้หากคุณเรียกใช้ " which cribsense" ?

แนะนำ: