選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
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