Raspberry Pi를 사용하여 말하는 Kiosk 터미널을 만드는 방법
12107 단어 RaspberryPiUNIX리눅스raspbian
개요
Raspberry Pi의 Web Browser(Midori)를 Fullscreen으로 기동해 Kiosk 단말화했습니다. 시계판은 FlipClock.js을 개조하여 이용하고 있습니다. 이른바 LAP(Linux/Apache/PHP) 환경입니다. 전원 및 HDMI 및 LAN 케이블이 꽂혀 있습니다. OS는 Raspbian jessie를 사용했습니다.
준비하는 물건
OS 설치 및 설정
OS는 Raspbian jessie를 사용했습니다. 공식 사이트에서 RASPBIAN JESSIE를 다운로드하고 installation guide에 따라 SD 카드를 만들었습니다.
Raspberry Pi에 SD 카드를 꽂고, 디스플레이나 키보드나 LAN 케이블을 접속해, 전원을 ON하면 기동할 것입니다.
초기 설정
시작되면 Ctrl-Alt-F1로 tty1 (터미널 화면)으로.
raspi-config
$ sudo raspi-config
$ sudo raspi-config
IP 고정
$ sudo vi /etc/dhcpcd.conf
/etc/dhcpcd.conf
...
interface eth0
static ip_address=192.168.0.39/24
static routers=192.168.0.1
static domain_name_servers=8.8.8.8
연결 테스트.
$ ping example.com
업데이트
$ sudo apt-get update
$ sudo apt-get upgrade
잠시 시간이 걸린다.
로그인 사용자 변경
이 경우 사용자
pi
에서 새 사용자 oden
로 변경했습니다.$ sudo adduser oden
$ sudo usermod -aG adm,dialout,cdrom,sudo,audio,video,plugdev,games,users,input,netdev,spi,i2c,gpio oden
$ sudo visudo
$ sudo vi /etc/systemd/system/[email protected]
$ sudo vi /etc/lightdm/lightdm.conf
$ sudo userdel -r pi
애플리케이션 설치 및 설정
설치한 애플리케이션은 다음과 같습니다.
한 번에 설치하면
$ sudo apt-get install apache2 php5 samba midori fonts-ipaexfont unclutter xautomation open-jtalk open-jtalk-mecab-naist-jdic htsengine libhtsengine-dev hts-voice-nitech-jp-atr503-m001
잠시 시간이 걸린다.
apache2/php5 설치 및 설정
$ sudo apt-get install apache2 php5
$ sudo chmod 777 /var/www/html
$ sudo vi /etc/apache2/envvars
/etc/apache2/envvars
...
#export APACHE_RUN_USER=www-data
export APACHE_RUN_USER=oden
#export APACHE_RUN_GROUP=www-data
export APACHE_RUN_GROUP=oden
...
Apache/PHP를 통해, 디스플레이의 온/오프나 음량 조절이나 Open JTalk에 말하기 위해, 기동하는 유저를
www-data
로부터 보통 유저 oden
로 변경했습니다.samba 설치 및 설정
$ sudo apt-get install samba
$ sudo vi /etc/samba/smb.conf
/etc/samba/smb.conf
...
[www]
comment = Home Directories
browseable = yes
read only = no
path = /var/www/html
force user = oden
create mask = 0775
directory mask = 0775
valid users = oden
...
화면에 표시할 파일을 samba를 통해 변경할 수 있습니다.
Kiosk 터미널
$ sudo apt-get install midori fonts-ipaexfont unclutter xautomation
$ vi ~/.config/lxsession/LXDE-pi/autostart
~/.config/lxsession/LXDE-pi/autostart
#@lxpanel --profile LXDE-pi
#@pcmanfm --desktop --profile LXDE-pi
#@xscreensaver -no-splash
@xset dpms 0 0 0
@xset s 0
@midori -e Fullscreen -a http://localhost/
화면 재로드
쉘
$ xte -x :0 'key F5'
PHP
/var/www/html/api/reload.php
<?php
header('Content-type: text/plain; charset=utf-8');
system("sleep 5; xte -x :0 'key F5'; echo \$?");
화면 켜기/끄기 및 볼륨 조절
쉘
$ amixer -c 0 sset PCM 50% #音量
$ tvservice -o #画面オフ
$ tvservice -p; sleep 1; xset -display :0 dpms force on #画面オン
PHP
/var/www/html/api/av.php
<?php
header('Content-type: text/plain; charset=utf-8');
if(isset($_GET['a'])) {
$a = intval($_GET['a']);
if ($a > 100) $a = 100;
if ($a < 10) $a = 10;
$a = (log10($a) - 1)*100;
system("amixer -c 0 sset PCM $a%");
}
if(isset($_GET['v'])) {
$v = $_GET['v'];
if ($v === "off") {
system("tvservice -o");
}
if ($v === "on") {
system("tvservice -p; sleep 1; xset -display :0 dpms force on");
}
system("xset -display :0 -q");
}
Open JTalk 설치 및 설정
$ sudo apt-get install open-jtalk open-jtalk-mecab-naist-jdic htsengine libhtsengine-dev hts-voice-nitech-jp-atr503-m001
말해 보자.
Mei 짱을 커맨드
jsay [しゃべらせたい言葉]
로 말하고 싶다.$ sudo mkdir /usr/local/share/hts_voice/mei/
$ sudo cp [ここにmei_normal.htsvoiceのパスを記入] /usr/local/share/hts_voice/mei/
$ sudo touch /usr/local/bin/jsay
$ sudo vi /usr/local/bin/jsay
$ sudo chmod +x /usr/local/bin/jsay
/usr/local/bin/jsay
#!/bin/sh
CMDNAME=`basename $0`
if [ $# -lt 1 ]; then
echo "Usage: ${CMDNAME} [ text ]" 1>&2
exit 1
fi
TMPFILE=`mktemp /tmp/tmp.XXXXXX.wav`
DIC=/var/lib/mecab/dic/open-jtalk/naist-jdic/
VOICE=/usr/local/share/hts_voice/mei/mei_normal.htsvoice
echo "$1" | open_jtalk \
-x ${DIC} \
-m ${VOICE} \
-ow ${TMPFILE} && \
aplay --quiet ${TMPFILE}
rm -f ${TMPFILE}
exit 0
쉘
$ jsay ぽぽぽぽーん
PHP
/var/www/html/api/jsay.php
<?php
if(isset($_GET['q'])) {
$q = $_GET['q'];
$q = str_replace("'", "\"", $q);
$q = mb_strimwidth($q, 0, 512, " 以下省略");
header('Content-type: text/plain; charset=utf-8');
system("jsay '$q'");
}
Reference
이 문제에 관하여(Raspberry Pi를 사용하여 말하는 Kiosk 터미널을 만드는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kou029w/items/f3d33b8c8426821855d3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)