สารบัญ:

พูดถึงซานตาโบลโมลด์: 5 ขั้นตอน
พูดถึงซานตาโบลโมลด์: 5 ขั้นตอน

วีดีโอ: พูดถึงซานตาโบลโมลด์: 5 ขั้นตอน

วีดีโอ: พูดถึงซานตาโบลโมลด์: 5 ขั้นตอน
วีดีโอ: 7 มหาปีศาจจากคัมภีร์ไบเบิล ต้นกำเนิดของบาปทั้งมวล 2024, พฤศจิกายน
Anonim
พูดถึงซานตาโบลโมลด์
พูดถึงซานตาโบลโมลด์
พูดถึงซานตาโบลโมลด์
พูดถึงซานตาโบลโมลด์

โครงงานนี้อธิบายวิธีการตกแต่งที่เล่นไฟล์เสียงเมื่อมีคนเดินผ่าน สามารถทำได้ง่ายด้วยคอมพิวเตอร์ที่สามารถเรียกใช้โปรแกรม Motion และกล้องบางชนิดได้ ในกรณีนี้ ฉันใช้โบลโมลด์ซานตาคลอสสูง 20 นิ้ว ฉันติดตั้ง Raspeberry PI กับโมดูลกล้องในหน้าต่างโรงรถของฉัน และชี้ไปที่โบลโมลด์ซานต้า ฉันซ่อนลำโพงกลางแจ้งที่ขับเคลื่อนด้วยไฟไว้ในโบลว์โมลด์ และฉันใช้สาย aux ขนาด 25 ฟุต จัดอันดับสำหรับการใช้งานกลางแจ้งจาก PI ไปยังลำโพงนี้ ฉันตั้งค่าโปรแกรม Motion บน Pi เพื่อเล่นไฟล์เสียง Ho Ho Ho ที่ส่งเสียงโดยซานต้าทุกครั้งที่ตรวจพบการเคลื่อนไหวโดยใช้กล้อง ทำได้ค่อนข้างง่ายและสนุกดี

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

เสบียง

  • คอมพิวเตอร์ที่ติดตั้งโปรแกรม Motion

    ฉันใช้ Raspberry PI (RPI) 3 รุ่น B

  • กล้องติดคอมพิวเตอร์หรือกล้องเครือข่าย

    • กล้องอะไรก็ได้ที่โปรแกรม Motion ใช้ได้
    • กล้อง USB
    • กล้องเครือข่าย
    • ฉันใช้โมดูลกล้องนี้ที่ติดเข้ากับ RPI. โดยตรง
  • ลำโพงกลางแจ้ง

    • เชื่อมต่อผ่านพอร์ต aux
    • ยูเอสบี
    • ฉันใช้ Sony SRS-XB01. เครื่องนี้
  • ของประดับตกแต่ง เช่น แม่พิมพ์เป่า อะไรก็ได้จริงๆ

    ฉันใช้โบลเวอร์ซานตาคลอสคล้ายกับอันนี้มาก

ขั้นตอนที่ 1: ตั้งค่า RPI. ของคุณ

ตั้งค่า RPI. ของคุณ
ตั้งค่า RPI. ของคุณ

ขั้นตอนนี้มีไว้สำหรับผู้เริ่มต้นใช้งานเป็นส่วนใหญ่ วิดีโอนี้อธิบายวิธีตั้งค่า Raspberry PI (RPI) ได้ดีกว่าที่ฉันทำได้ ฉันยังจะแนะนำเช่นเดียวกับในวิดีโอ การเชื่อมต่อ USB ไร้สาย แป้นพิมพ์ + เมาส์ และจอภาพภายนอกสำหรับการตั้งค่า เมื่อตั้งค่าแล้ว ฉันเรียกใช้เหมืองในโรงรถของฉันโดยไม่ต้องใช้แป้นพิมพ์ + เมาส์และจอภาพภายนอก แต่ฉันปล่อยไว้ในดองเกิล WIFi เพื่อให้สามารถ ssh เข้าไปและรีบูตและ/หรือทำการเปลี่ยนแปลงได้

ขั้นตอนที่ 2: แนบกล้องกับ RPI

ติดกล้องเข้ากับ RPI
ติดกล้องเข้ากับ RPI

ทำตามคำแนะนำเพื่อตั้งค่ากล้องสำหรับ RPI ฉันใช้โมดูลกล้องจาก Adafruit Industries

  • เสียบและยึดสายแพจากโมดูลกล้องเข้ากับพอร์ตกล้องระหว่างพอร์ตอีเทอร์เน็ตและพอร์ต HDMI โดยให้หน้าสัมผัสเศษไม้หันไปทางพอร์ต HDMI และเทปสีน้ำเงินหันเข้าหาพอร์ตอีเทอร์เน็ต
  • หากคุณมีจอภาพแนบอยู่และกำลังเรียกใช้ UI (Xserver) ให้เรียกใช้เครื่องมือการกำหนดค่า Raspberry Pi

    หาก SSH ระยะไกลเข้าสู่ rpi จากคอมพิวเตอร์เครื่องอื่น ให้เรียกใช้ rasp-config ในเทอร์มินัลของคุณ ซึ่งจะเริ่ม UI ของเทอร์มินัล

  • ใน Raspberry Config ใต้แท็บ Interfaces ให้เปิดใช้งาน Camera
  • บันทึกและรีบูต RPI
  • เมื่อรีบูตให้รันคำสั่งด้านล่างในเทอร์มินัล ทั้งที่ตรวจพบและเปิดใช้งานควรกลับมาเป็น = 1

vgencmode get_camera

โมดูล PI Camera ของคุณควรใช้งานได้แล้ว

คำแนะนำออนไลน์

ขั้นตอนที่ 3: ตั้งค่าและทดสอบเสียง

ตั้งค่าและทดสอบเสียง
ตั้งค่าและทดสอบเสียง

ในขั้นต้นสำหรับโครงการนี้ ฉันเพียงแค่เรียกใช้สาย aux จาก PI ไปยังลำโพงขนาดเล็กที่ใช้พลังงานจากแบตเตอรี่ ที่เกิดขึ้นมีไฟฟ้าสถิตจำนวนมากและแบตเตอรี่หมดอย่างรวดเร็ว แต่ฉันเสียบอุปกรณ์ USB ที่ขยายเสียงและวิ่งสาย aux จากพอร์ตเอาท์พุต aux ไปที่ลำโพงกลางแจ้งที่ทนฝนและแดด สิ่งนี้ลบไฟฟ้าสถิตย์และดังขึ้นและไม่ต้องกังวลกับแบตเตอรี่ RPI ของฉันรู้จักอุปกรณ์ USB โดยอัตโนมัติโดยไม่จำเป็นต้องติดตั้งไดรเวอร์

PI OS มาพร้อมกับโปรแกรมที่เรียกว่า aplay แต่ฉันชอบโปรแกรมเล่นของซอฟต์แวร์ Sox มากกว่า ดังนั้นคำแนะนำเหล่านี้จะติดตั้ง Sox และใช้คำสั่ง play

ติดตั้ง Sox

ในเทอร์มินัลบน RPI ให้รันคำตอบต่อไปนี้ว่าใช่สำหรับข้อความแจ้งใด ๆ

sudo apt-get ติดตั้ง sox

ทดสอบเสียง

ดาวน์โหลดไฟล์เสียงที่เข้ากันได้ที่มีขนาดเล็กและบันทึกลงในคอมพิวเตอร์ของคุณ ฉันใช้ santaho3.mp3 ที่บันทึกไว้ในโฮมไดเร็กทอรี pi ของฉัน ในการทดสอบเสียงให้เชื่อมต่อลำโพงของคุณกับ RPI และเรียกใช้คำสั่งนี้:

เล่น santaho3.mp3

  • หากคุณได้ยินไฟล์เสียงที่กำลังเล่นอยู่ในลำโพง แสดงว่าเสียงของคุณกำลังทำงานอยู่
  • คุณอาจต้องเปลี่ยนเสียงภายในจาก HDMI เป็นอนาล็อก

    คำแนะนำที่นี่

  • หากใช้อุปกรณ์เสียง USB ให้สร้างไฟล์ในโฮมไดเร็กตอรี่ชื่อ.asoundrc

    • ใส่เนื้อหาด้านล่างแล้วรีบูต เริ่มการทดสอบเสียง
    • pcm.!default {

      พิมพ์ hw card 1 } ctl.!default { พิมพ์ hw card 1 }

ขั้นตอนที่ 4: ตั้งค่าการตรวจจับการเคลื่อนไหวเพื่อเล่นไฟล์เสียง

ตั้งค่าการตรวจจับการเคลื่อนไหวเพื่อเล่นไฟล์เสียง
ตั้งค่าการตรวจจับการเคลื่อนไหวเพื่อเล่นไฟล์เสียง

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

ติดตั้ง Motion

ในเทอร์มินัลบน RPI ให้เรียกใช้คำสั่งด้านล่างโดยตอบใช่สำหรับข้อความแจ้งใดๆ รอให้เสร็จสิ้น

sudo apt-get ติดตั้งการเคลื่อนไหว

ใช้เวลาในการเพิ่มผู้ใช้การเคลื่อนไหวที่เพิ่มใหม่ในกลุ่มเสียงเพื่อให้ได้รับอนุญาตให้เล่นเสียงโดยป้อนคำสั่งต่อไปนี้

usermod -a -G เสียงเคลื่อนไหว

กำหนดค่าการเคลื่อนไหวสำหรับการตรวจจับ

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

ในเทอร์มินัลให้แก้ไขไฟล์ /etc/motion/motion.conf เป็นผู้ใช้ขั้นสูง

sudo nano /etc/default/motion

ในเทอร์มินัลให้แก้ไขไฟล์ /etc/motion/motion.conf เป็นผู้ใช้ขั้นสูง

sudo nano /etc/motion/motion.conf

ทำและบันทึกการแก้ไขต่อไปนี้ ส่วนใหญ่เป็นค่าเริ่มต้น ฉันไม่คิดว่าในกรณีของฉัน รายการ mmal_xxx จะมีผลกระทบใดๆ แต่ฉันปล่อยไว้ในกรณีที่มีคนต้องการ - พวกเขาก็ไม่เป็นอันตรายเช่นกัน การกำหนดค่านี้จะตรวจจับการเคลื่อนไหวของกล้องในช่วงเวลา 40 วินาที ไม่บันทึกภาพหรือวิดีโอ และตั้งค่าเว็บเซิร์ฟเวอร์และเซิร์ฟเวอร์การสตรีมสำหรับกล้องที่ได้รับการปกป้องด้วยการตรวจสอบสิทธิ์พื้นฐานโดยใช้ชื่อผู้ใช้และรหัสผ่าน

ภูตบน

process_id_file /var/run/motion/motion.pid

setup_mode ปิด logfile /var/log/motion/motion.log log_level 6 log_type all videodevice /dev/video0 v4l2_palette 17 อินพุต -1 ปกติ 0 ความถี่ 0 power_line_frequency -1 หมุน 0 flip_axis ไม่มีความกว้าง 320 ความสูง 240 เฟรมเรต 2 ขั้นต่ำ_frame_time 0 netcam_keepalive ปิด netcam_tolerant_check off rtsp_uses_tcp บน mmalcam_name vc.ril.camera auto_brightness ปิดความสว่าง 0 ความคมชัด 0 ความอิ่มตัว 0 เฉดสี 0 roundrobin_frames 1 roundrobin_skip 1 สวิตช์ตัวกรองปิดเกณฑ์ 500 threshold_tune ปิด noise_level 22 noise_tune เมื่อ despeckle_filter EedDl smart_mask_capture ต่ำสุด_capture 0 เหตุการณ์ 0 เหตุการณ์ output_pictures off output_debug_pictures ปิดคุณภาพ 75 picture_type jpeg ffmpeg_output_movies ปิด ffmpeg_output_debug_movies ปิด ffmpeg_bps 400000 ffmpeg_variable_bitrate 0 ffmpeg_video_codec mp4 ffmpeg_duplicate_framesext ไทม์ไทม์ off_interval_coden_pefps apshot_interval 0location_motion_mode ปิดlocation_motion_style กล่อง text_right %Y-%m-%d\n%T-%q text_changes ปิด text_event %Y%m%d%H%M%S text_double off target_dir /var/lib/motion snapshot_filename %v- %Y%m%d%H%M%S-snapshot picture_filename %v-%Y%m%d%H%M%S-%q movie_filename %v-%Y%m%d%H%M%S timelapse_filename %Y%m%d-timelapse ipv6_enabled off stream_port 8481 stream_quality 80 stream_motion ปิด stream_maxrate 1 stream_localhost ปิด stream_limit 0 stream_auth_method 1 stream_authentication: webcontrol_port 8480 webcontrol_localhost off webcontrol_html_output on webcontrol_authentication track_auto track_step_angle เงียบบน on_event_start /usr/bin/play -q --multi-threaded /var/lib/motion/notify`shuf -i 1-5 -n 1`.mp3 2>/dev/null

คัดลอกไฟล์เสียงไปยังไฟล์เสียงไปยังไดเร็กทอรีโฮมของการเคลื่อนไหวและเปลี่ยนการอนุญาตในไฟล์เพื่อให้ Motion เป็นเจ้าของ แต่ทุกคนสามารถอ่านได้

sudo cp /home/pi/santaho.mp3 /var/lib/motion/mtn_dtct_ntfy.mp3

sudo chown โมชั่น /var/lib/motion/mtn_dtct_ntfy.mp3

sudo chmod a+r /var/lib/motion/mtn_dtct_ntfy.mp3

รีบูตอุปกรณ์ RPI เมื่อบูตแล้วให้เรียกใช้

sudo systemctl สถานะ motion.service

ผลลัพธ์ควรมีบรรทัดที่ระบุว่า:

ใช้งานอยู่: ใช้งานอยู่ (ทำงาน) ตั้งแต่

หากคุณเห็นการเคลื่อนไหวนี้กำลังทำงานอยู่ หากไม่ตรวจสอบ /var/log/motion เพื่อดูรายละเอียด ลองวิ่ง:

sudo systemctl start motion.service

ทดสอบการตรวจจับการเคลื่อนไหวและการเล่นเสียง

เกือบเสร็จแล้ว. เพียงแค่ต้องตรวจสอบว่ามีการตรวจพบการเคลื่อนไหวหรือไม่และเสียงจะเล่นเมื่อเป็นเช่นนั้น

ในเทอร์มินัล ให้ทำดังต่อไปนี้เพื่อดูข้อความต่อท้ายไฟล์บันทึก

หาง -f /var/log/motion

ตอนนี้:

  • โบกอะไรบางอย่างหน้ากล้องช้าๆ
  • ไฟล์บันทึกควรส่งออกที่ตรวจพบการเคลื่อนไหว
  • หวังว่าไฟล์เสียงจะเล่นผ่านลำโพง
  • หากเป็นเช่นนั้น ให้วาง RIP ไว้ในหน้าต่างโดยให้เลนส์กล้องหันไปทางตำแหน่งที่จะตรวจจับการเคลื่อนไหว
  • วางลำโพงกลางแจ้งในหรือใกล้การตกแต่ง
  • เมื่อคนเดินผ่านมาจะทักทาย

การแก้ไขปัญหา

หากสิ่งต่าง ๆ ไม่ทำงาน

  • ตรวจสอบอีกครั้งว่ากล้องทำงานโดยดำเนินการ:

    • raspistill -o test.jpg
    • ls -l test-j.webp" />
  • ตรวจสอบอีกครั้งว่าเสียงทำงานโดยดำเนินการ

    • เล่น /var/lib/motion/ mtn_dtct_ntfy.mp3
    • ถ้าไม่ได้ยินไฟล์เสียง

      • ตรวจสอบว่าอุปกรณ์ส่งออกเป็นการตั้งค่าลำโพงของคุณ (อนาล็อกหรือ USB)
      • ตรวจสอบระดับเสียง
      • ตรวจสอบสิทธิ์ในไฟล์เสียงว่ามี 3 'r's ในสตริงการอนุญาต (เช่น rw*rw*rw*)
  • หากสิ่งอื่นล้มเหลว แสดงว่าการเคลื่อนไหวอาจไม่ได้รับการตั้งค่าอย่างถูกต้อง

    หากเป็นกรณีนี้การค้นหาออนไลน์บางอย่างน่าจะช่วยได้เพราะมีความช่วยเหลือมากมาย

ขั้นตอนที่ 5: ความคิดเห็นเพิ่มเติม

ความคิดเห็นเพิ่มเติม
ความคิดเห็นเพิ่มเติม

เล่นไฟล์เสียงสุ่ม

เบื่อกับเสียงเดิมๆ ซ้ำแล้วซ้ำเล่า มิกซ์มันซะ!

  • บันทึกไฟล์เสียงหลายไฟล์ที่มีชื่อเดียวกันแต่ต่อท้ายตัวเลขตามลำดับ:

    soundFile1.mp3, soundFile2.mp3, soundFile3.mp3, soundFile4.mp3, soundFile5.mp3,

  • เปลี่ยนรายการ /etc/motion/motion.conf on_event_start ดังนี้

    on_event_start play -q --multi-threaded soundFile`shuf -i 1-5 -n 1`.mp3 2>/dev/null

  • ออกและบันทึกไฟล์
  • เริ่มบริการการเคลื่อนไหวใหม่

    sudo systemctl รีสตาร์ท motion.service

  • ส่วน `shuf -i 1-5 -n 1' (เหล่านี้คือเครื่องหมายย้อนกลับ) จะแทรกตัวเลขสุ่มตั้งแต่ 1 ถึง 5 ลงในชื่อไฟล์ที่กำลังเล่น
  • ดังนั้นเมื่อตรวจพบการเคลื่อนไหว ไฟล์เสียงใดไฟล์หนึ่งจาก 5 ไฟล์จะเล่น

พูดแทนการเล่น

ความสนุกอีกอย่างหนึ่งคือการตั้งค่า Text-to-Speech และให้คอมพิวเตอร์พูดประโยคกับคนที่เดินผ่านไปมา ฉันชอบใช้ MaryTTS เป็นเครื่องยนต์ ตั้งค่าและเริ่มเซิร์ฟเวอร์ Mary TTS และเปลี่ยนบรรทัด on_event_start ที่กล่าวถึงข้างต้นเพื่อส่งสิ่งที่จะพูดกับเซิร์ฟเวอร์ married tts (เช่น marytts/bin/marytts-submit-text "สวัสดีเพื่อน")

การใช้กล้องเครือข่าย IP (ไร้สายหรืออย่างอื่น)

โปรแกรมเคลื่อนไหวสามารถรองรับกล้อง IP เครือข่ายได้อย่างง่ายดายโดยใช้ netcam_url และการตั้งค่า netcam_xxx อื่นๆ การค้นหาออนไลน์อย่างง่ายควรให้ข้อมูลที่จำเป็น

บลูทู ธ

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

จำกัดการจับภาพเคลื่อนไหวให้อยู่ในพื้นที่ที่เล็กลง

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

แนะนำ: