LoginSignup
2
1

More than 5 years have passed since last update.

ev3devでmindstorm-EV3のスピーカーを使ってしゃべらせてみる

Last updated at Posted at 2016-12-27

はじめに

ev3devを使ってmindstorm-EV3インテリジェントブロックのLEDを制御する方法を紹介します。
この記事は、EV3にev3devをインストールし、SSH接続できている状態であることを前提にしています。環境構築ができていない方はこちらの記事を参考にしてください。

mindstorm-EV3をLinuxで制御しよう! ev3dev OSのインストールととSSH接続

beepコマンドで音を鳴らそう

beepコマンドで音の周波数や再生時間を指定することができます。
周波数は1以上20000未満を指定できます。あまり周波数を高くすると、人間の耳には聞こえなくなってしまいますので、まずは400Hz低度で試してみましょう。また、再生時間をミリ秒単位で指定できます。

# beep # 440 Hzの音を200ms再生
# beep -f [周波数/Hz] -l [再生時間/ms]
robot@ev3dev:~$ beep -f 440 -l 200 

きらきら星を演奏させてみる

きらきら星を演奏するシェルスクリプトファイルを作ってstar.shとして保存しましょう。

star.sh
#!/bin/sh

beep -f 262 -l 180 -d 20 -r 2 \
-n -f 392 -l 180 -d 20 -r 2 \
-n -f 440 -l 180 -d 20 -r 2 \
-n -f 392 -l 380 -d 20 \
-n -f 349 -l 180 -d 20 -r 2 \
-n -f 330 -l 180 -d 20 -r 2 \
-n -f 294 -l 180 -d 20 -r 2 \
-n -f 262 -l 400

実行
robot@ev3dev:~$ sh star.sh

デバイスファイルを使う方法

音の再生

beepコマンド以外にも、デバイスファイルを使って音を再生することが可能です。

# 440 Hzの音を200ms再生
robot@ev3dev:~$ echo 440 200 >  /sys/devices/platform/snd-legoev3/tone
# 1000Hzの音を再生(連続)
robot@ev3dev:~$ echo 1000 >  /sys/devices/platform/snd-legoev3/tone
# 再生停止
robot@ev3dev:~$ echo 0 >  /sys/devices/platform/snd-legoev3/tone

ボリュームの調整

音量を調整することができます。デフォルトの音量は75に設定されていて、最小0最大100の範囲で設定可能です。

#デフォルトのボリューム(75)
robot@ev3dev:~$ cat /sys/devices/platform/snd-legoev3/volume
75
#ボリュームを100に設定
robot@ev3dev:~$ echo 100 >  /sys/devices/platform/snd-legoev3/volume

テキストをしゃべらせる

本題です。
espeakコマンドとwavファイルを再生するaplayコマンドを組み合わせて、EV3をしゃべらせてみましょう。

robot@ev3dev:~$ espeak "hello, I am an EV3." --stdout | aplay
Playing WAVE 'stdin' : Signed 16 bit Little Endian, Rate 22050 Hz, Mono

「hello, I am an EV3.」ev3がしゃべりました。男性の声でしたね。
女性の声にしたいならこうです。

# 女性声バージョン
robot@ev3dev:~$ espeak -ven-us+f4 -s170 "hello, I am an EV3." --stdout | aplay
Playing WAVE 'stdin' : Signed 16 bit Little Endian, Rate 22050 Hz, Mono

音声をwavファイルとして保存したい

先程のEV3がしゃべった音声をファイルとして保存するのは簡単です。

# hello.wavとして保存
robot@ev3dev:~$ espeak "hello, I am an EV3." --stdout >> hello.wav

再生

robot@ev3dev:~$ aplay hello.wav
Playing WAVE 'hello.wav' : Signed 16 bit Little Endian, Rate 22050 Hz, Mono

参考

ev3dev 公式ページ

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1