* Simplex Repeater (Parrot Repeater) [#a7b6bc06] ** Simplex Repeaterとは [#vb58ff5a] 俗にいうオウム返しリピーター。~ 受信した音声を録音し、そのまま送り返す。~ これをRaspberry Pi 2で作ります。~ Webに掲載されている手順では足りない部分やVerが変わっている部分を補足して整理しました。 <注意>~ - アマチュア無線では使用可能です。 - 特定小電力無線では使用可能です。 - デジタル簡易無線では禁止されているようです。 - デジタル簡易無線(3R登録局)では中継動作を含み禁止されているようです。 ** RasPiとRaspbianの準備 [#h884dd3b] GUIは不要なので、下記URLからRASPBIAN JESSIE LITEをダウンロードします。 RasPi2で動かしましたが、RasPi3でもPeaterPiPry2は動くと思います。~ ただし、RasPi3ではUARTがBluetoothと喧嘩するためURATからLoginして作業するのはうまくいかない(文字化けする)かもしれません。~ その場合はとりあえずUARTでログインしてSSHを有効にして、その後の作業はSSHでやるのが良いでしょう。 https://www.raspberrypi.org/downloads/raspbian/ ダウンロードしたらZip解凍して、Win32 DiskImager等でMicroSDカードにコピーします。~ コピーが完了したら起動して、UARTまたはSSHでログインし、Updateを行います。 $ sudo apt-get update $ sudo apt-get upgrade 再起動します。 ** PeaterPiPry2のセットアップ [#d1d3bab1] PeaterPiPry2はPythonで動くスクリプトです。~ これはもともとRaspberry Pi B(初期のもの)を対象としています。 順を追って必要なモジュールをインストールしていきます。 *** PeaterPiPry2を動かす前の準備 [#b807fecd] http://www.twotonedetect.net/twotonedetect-on-a-raspberry-pi/ ここに書いてある手順でいろいろなモジュールを入れていきます。 Pythonを入れる $ sudo apt-get install python-setuptools $ sudo apt-get install python-dev Pythonのモジュール管理ツールpipを入れる $ cd $ mkdir pip $ cd pip $ wget https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz $ tar zxf pip-1.3.1.tar.gz $ cd pip-1.3.1 $ sudo python setup.py install Pythonモジュールの追加 $ sudo pip install Pycrypto $ sudo pip install Iniparse $ sudo pip install numpy pyaudioの取得とインストール $ cd $ sudo apt-get install git $ git clone http://people.csail.mit.edu/hubert/git/pyaudio.git $ sudo apt-get install libportaudio0 libportaudio2 libportaudiocpp0 portaudio19-dev $ sudo pip install pyaudio ffmpegの取得とインストール(apt-getできないので手動で入れます) $ cd $ mkdir ffmpegtemp $ cd ffmpegtemp $ sudo su # wget https://github.com/ccrisan/motioneye/wiki/precompiled/ffmpeg_2.8.3.git325b593-1_armhf.deb # dpkg -i ffmpeg_2.8.3.git325b593-1_armhf.deb # apt-get install libdc1394-22 libxvidcore-dev libav-tools libopencore-amrwb-dev libopencore-amrnb-dev # exit $ pulseaudioのインストール $ sudo apt-get install pulseaudio $ sudo apt-get install pavucontrol pulseaudioの設定ファイルの修正 $sudo vi /etc/pulse/daemon.conf ;resample-method=speex-float-3 ↑これを、 resample-method=trivial ↑こうする ** PeaterPiPyr2のインストールとセットアップ [#fe95d07d] http://www.twotonedetect.net/raspberry-pi-simplex-repeater-the-peaterpipyr/ このページに従って作業すればよいのですが、ここから取得できる本体PeaterPiPyr2.pyはBUGっていて動きません。~ 次の手順でファイルを揃えます。 まず、パッケージを取得して展開します。 $ mkdir PeaterPiPyr2 $ cd PeaterPiPyr2 $ wget http://www.twotonedetect.net/downloads/simplexrepeater/PeaterPiPyr2.tgz $ tar zxf PeaterPiPyr2.tgz BUG FIXされたPeaterPiPyr2は次のURLから取得します。 https://github.com/teopost/RepeaterPi/blob/master/PeaterPiPyr2.py 取得したPeaterPiPyr2.pyを先のアーカイブに含まれていたPeaterPiPyr2.pyと差し替えます。 PeaterPiPyr2.pyの中身をいくつか修正します。~ 使用しているUSB-AudioはCreative Sound Blaster Play!2です。 $ vi PeaterPiPyr2.py chunk = 4096 RATE = 44100 この2つの数値を変更します。~ RATEはUSB-Audioが対応しているサンプリング周波数にします。~ Sound Blaster Play!2は44100でないとエラーになります。~ chunkはバッファーの大きさを指定していて、これもある程度大きくしないとBuffer Over Flow が発生して動きません。4096か8192あたりにします。 次に、/etc/pulse/daemon.confを修正します。 $ sudo vi /etc/pulse/daemon.conf 修正前: ; default-fragments = 4 ; default-fragment-size-msec = 25 修正後: default-fragments = 10 default-fragment-size-msec = 2 この値は、録音再生時に音がザザザザと変になる場合は調整が必要です。~ デフォルトではだめでした。 最後にPeaterPiPyr2.pyのconfigファイルとTX.py RX.pyを修正します。~ TX.pyとRX.pyににはPTT出力のピン指定があります。GPIO番号ではなく物理ピン番号で指定します。 config.cfgの例 [Section1] audio_threshold = 150 ;音声検出の閾値 trigger_time = 0.2 ;録音スタートの音声時間(最低0.2秒) record_seconds = 2.0 ;最低録音時間(0秒以上、7秒以下) release_time = 2.0 ;無音検出時間(この時間以上無音が継続すると録音終了) input_device_index = 2 ;入力デバイスID output_device_index = 2 ;出力デバイスID