Linux上で、プログラミングせずに鳩時計のようなものを再現する、というアイデアです。
Linuxにはcronという定時実行システムがあります。
これを使うと午後3時にLinuxコマンドを実行させる、〇月〇日の朝9時に何かアプリを実行させる、などの定時実行が可能です。
これを使って音声ファイルを1時間ごとに鳴らせば、ちょっとした目覚まし時計や時報システムが作れます。
それでは鳩時計の本題です。
「ポッポー」という鳩の鳴き声のような音が時刻と同じ数鳴るような時計です。
例えば3時なら「ポッポー、ポッポー、ポッポー」と鳴る感じです。
ちなみに今回わたしはOtoLogicというサイトにあるTime_Signal-Beep02.mp3というファイルから「ポッポ―」の1回分だけ切り出して使わせて頂きました。ありがとうございます。
切り出しに使ったWindowsアプリは、Audacityです。
参考
![](https://forest.watch.impress.co.jp/library/img/review/10232/audacity.png)
Linuxには、MP3ファイルを鳴らすためのmpg321というアプリがあります。
インストールされていなければ、
sudo apt install mpg321
でインストールできます。(Debian系の場合)
例えば、 /home/pi/se に保存した hato.mp3 というファイルを鳴らすには、
mpg321 /home/pi/se/hato.mp3
とします。
mpg321では、-l (ハイフン・エル)オプションの後に繰り返す回数をつけると指定回数鳴らすこともできます。
先ほどの hato.mp3 を続けて3回鳴らすには、
mpg321 -l 3 /home/pi/se/hato.mp3
となります。
ここまでくれば鳩時計が完成したも同然です。
後はcronに対して、指定時間にこのコマンドを実行するように設定するだけです。
cronに設定を行うには、crontabという設定コマンドを使います。
Linuxのターミナル上で、
sudo crontab -e
として、cron設定画面を起動します。
毎日午後3時に3回「ポッポ―」(/home/pi/se/hato.mp3 が存在する場合)と鳴らすためのcrontab設定は以下のようになります。
0 15 * * * mpg321 -l 3 /home/pi/se/hato.mp3
ちなみにcrontabは、《 分 時 日 月 曜日 コマンド 》の順で記述をします。
「*」がある部分は、「その項目は無視する」という意味となります。上記コマンドの意味は、月や日付や曜日に関係なく毎日15時に「mpg321 -l 3 /home/pi/se/hato.mp3」というコマンドを実行しなさい、という意味です。
同じ環境で、朝の9時から夜の9時まで鳩時計を鳴らすには、以下のような感じでcrontabに記述すればOKです。
# 鳩時計
0 9 * * * mpg321 -l 9 /home/pi/se/hato.mp3
0 10 * * * mpg321 -l 10 /home/pi/se/hato.mp3
0 11 * * * mpg321 -l 11 /home/pi/se/hato.mp3
0 12 * * * mpg321 -l 12 /home/pi/se/hato.mp3
0 13 * * * mpg321 -l 1 /home/pi/se/hato.mp3
0 14 * * * mpg321 -l 2 /home/pi/se/hato.mp3
0 15 * * * mpg321 -l 3 /home/pi/se/hato.mp3
0 16 * * * mpg321 -l 4 /home/pi/se/hato.mp3
0 17 * * * mpg321 -l 5 /home/pi/se/hato.mp3
0 18 * * * mpg321 -l 6 /home/pi/se/hato.mp3
0 19 * * * mpg321 -l 7 /home/pi/se/hato.mp3
0 20 * * * mpg321 -l 8 /home/pi/se/hato.mp3
0 21 * * * mpg321 -l 9 /home/pi/se/hato.mp3
力業といってしまえばそれまでですが、ヘタなプログラムを作るよりシンプルで分かりやすいかと思います。
わたしの場合は、上記設定のように就寝中は鳴らさないような設定にしています。
さらに昼の12時だけ鳩時計ではなく違う音源にしてお昼がきたことを知らせるようにしています。
これを作った時、一番大変だったのは「ポッポ―」の音の切り出しでした(笑)
繰り返して鳴らしても違和感のないタイミングで音を切り出すのに苦労しました。
以上、Linuxのcron(定時実行システム)を使って鳩時計を再現するでした。
コメント