25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Dejvino 87a1ab2e2c Readme with HW image 11 달 전
bin Add continuous announcement server. 3 년 전
etc/systemd/system Add Human Activity Sensor 3 년 전
sounds Add static sound. Add predefined announcements and helper scripts. 3 년 전
toolkit Add Human Activity Sensor 3 년 전
README.md Readme with HW image 11 달 전
hw.jpg Readme with HW image 11 달 전

README.md

Announcement Box

Linux box with a loudspeaker and an emergency light to be used for announcements and notifications.

Hardware

Hardware

Overview

  • SBC with GPIOs and sound output :: OrangePi Zero with an expansion board
  • PA system
    • speaker :: 30W, 4 Ohms horn loudspeaker
    • sound amplifier :: mono 18W sound amplifier
    • relay module :: 12V low trigger relay
  • Warning Light system
    • warning light :: 12V 10W rotary orange warning light
    • relay module :: 12V low trigger relay
  • System Activity Light system
    • indicator LED
  • Human Activity Sensor system
    • PIR module

Building

TBD

Software

Overview

  • Operating System - Linux :: Armbian Bullseye for the OrangePi Zero
  • PA System
    • Voice Synthesizer :: Festival / ESpeak

Installation

Run as root:

cp toolkit/* /usr/local/bin/

cp etc/systemd/system /etc/systemd/system
systemctl enable --now system-activity-light.service 
systemctl enable --now human-activity-sensor.service

Implementation Notes

Armbian + OrangePi Zero Installation

Enable analog soundcard

sudo armbian-config
# System > Hardware > [*] analog-codec

Software Dependencies

OS Packages
apt install mplayer espeak-ng
GPIO toolkit
# upstream:
#git clone https://github.com/orangepi-xunlong/wiringOP
# enhanced:
git clone https://github.com/Dejvino/wiringOP
cd wiringOP
./build clean
./build

PA System

Enabling mixed sound output

cat ~/.asoundrc
pcm.!default plug:dmix

Text to Speech

## Festival
# reading
...
# to file
text2wave text.txt > wave.wav

## ESpeak
# voices:
ls /usr/lib/arm-linux-gnueabihf/espeak-data/voices/
# reading
espeak -f text.txt -p 40 -s 160 -v "en-us"
# to file
espeak -f text.txt -p 40 -s 160 -k15 -g 1 -w wave.wav
# using SSML (e.g.: https://www.xml.com/pub/a/2004/10/20/ssml.html)
espeak -f ssml.txt -m

Converting into a low-quality broadcast audio

sox infile.wav outfile.wav downsample echo 0.5 1 1 1

Human Activity Sensor

Reading File Timestamp

stat /var/tmp/human_last_seen --format=%Y