RaspberryPi ZeroでGPIOを使って音声出力するお話
RaspberryPi Zero(W)は3.5φジャックがないので、音声出力はHDMIかGPIOを利用して頑張るしかありません。GPIOを使って音声出力するお話は、既にいくつかの方々がまとめられています。
Raspberry Pi Zero のGPIOを利用した音声出力 – Roguer
https://learn.adafruit.com/adding-basic-audio-ouput-to-raspberry-pi-zero/pi-zero-pwm-audio
が、外部ソースについて説明がなかったりリンク切れしてたりしたので、ちょっと補足しておきます。
最も簡単な方法
dtoverlayを使用します。/boot/config.txt
に、以下を追加します。ちなみに/boot/config.txt
は、ラズパイSDをPCに挿すと見えます。
# GPIO18とGPIO13の組み合わせ dtoverlay=pwm-2chan,pin=18,func=2,pin2=13,func2=4
あるいは、
# GPIO12とGPIO13の組み合わせ dtoverlay=pwm-2chan,pin=12,func=4,pin2=13,func2=4
既にdtoverlayが別に定義されている場合はどうすればいいの?
ただ下に書き足してください。こんな感じで。
dtoverlay=dwc2 dtoverlay=pwm-2chan,pin=18,func=2,pin2=13,func2=4
gpio_altを利用して実行時に書き換える方法
WiringPiとgpio_altを使ってPWMが利用可能になるよう動的に変更します。詳しい手順は冒頭のリンク先を参照してください。下記はWiringPiとgpio_altのインストール方法補足です。
WiringPi
drogon氏のプロジェクトの1つです。Adafruitのページではtar.gzをbootの下に入れようみたいな説明を書いていますが、普通にgit cloneしても構わないと思います。
このページのトップに書いてある通り、git clone git://git.drogon.net/ + project name.
なので、
git clone git://git.drogon.net/wiringPi
でcloneできます。tar.gzで欲しい場合はsnapshotをクリックするとダウンロードできます。
2018. 2. 28追記
wiring-piは、apt-getでもインストールできるようです。
$ sudo apt-get install wiringpi
gpio_alt
konsuktaner氏のプロジェクトの1つです。githubに置いてあります。
README.mdに書いてある通り、gccでビルドすると、gpio_altのバイナリが生成できます。WiringPiについても書いてあるので、実はここを紹介すれば終わりとも言えなくもない。
gccを利用するので、動かない場合はsudo apt-get install build-essential
を実行しましょう。
何をしてるのかの解説
ちょっとした解説を書きました。PWMとALTの話です。