Python 言語の理解

LEDのチカチカや、スイッチのパチパチは、書籍通りにやれば制御できたので(笑)、今度は言語そのもの Python3についていろいろ勉強して理解しようと思います。

今までの書籍にも Python3については触れてはいいるものの、あくまで制御のためのサンプルプログラムなので、Python3について全般的な事は置きざりになっているはずです。これから長い付き合いをしていく為に本格的に Python3で遊ぶ気になってきたので専門書を買ってみました。

「詳細!Python3入門ノート」大重美幸著 初版 第3刷

f:id:osadamao:20180213224203j:plain

 この本の中で、Python3のコーディングをタイプするならAtomというエディタが便利、と書かれており、linux版もあるようなのですが、Raspbian で使えるようにカスタマイズされたものは見つけられませんでした。(>_<)

 なので、気にせず今まで通りのスタイルで入力していく事にしました。

言語についてはココに要約を書き出していく事は止めて、古いC言語などを知っている僕が、「おや?」っと思ったことだけを書き出していこうと思っています。

 

 

Iceweaselのインストール

標準のブラウザ「Chromium」よりも使い慣れたFirefox互換の「iceweasel」を入れてみました。

 

pi@raspberrypi:~ $ sudo apt-get install iceweasel iceweasel-l10n-ja
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の追加パッケージがインストールされます:
firefox-esr firefox-esr-l10n-ja libjsoncpp1
提案パッケージ:
fonts-stix | otf-stix fonts-lmodern mozplugger
以下のパッケージが新たにインストールされます:
firefox-esr firefox-esr-l10n-ja iceweasel iceweasel-l10n-ja libjsoncpp1
アップグレード: 0 個、新規インストール: 5 個、削除: 0 個、保留: 0 個。
42.6 MB のアーカイブを取得する必要があります。
この操作後に追加で 94.7 MB のディスク容量が消費されます。
続行しますか? [Y/n] Y
取得:1 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian stretch/main armhf libjsoncpp1 armhf 1.7.4-3 [66.2 kB]
取得:2 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian stretch/main armhf firefox-esr armhf 52.6.0esr-1~deb9u1 [41.7 MB]
取得:3 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian stretch/main armhf firefox-esr-l10n-ja all 52.6.0esr-1~deb9u1 [564 kB]
取得:4 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian stretch/main armhf iceweasel all 52.6.0esr-1~deb9u1 [122 kB]
取得:5 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian stretch/main armhf iceweasel-l10n-ja all 1:52.6.0esr-1~deb9u1 [120 kB]
42.6 MB を 1分 51秒 で取得しました (383 kB/s)
以前に未選択のパッケージ libjsoncpp1:armhf を選択しています。
(データベースを読み込んでいます ... 現在 126542 個のファイルとディレクトリがインストールされています。)
.../libjsoncpp1_1.7.4-3_armhf.deb を展開する準備をしています ...
libjsoncpp1:armhf (1.7.4-3) を展開しています...
以前に未選択のパッケージ firefox-esr を選択しています。
.../firefox-esr_52.6.0esr-1~deb9u1_armhf.deb を展開する準備をしています ...
'firefox-esr による /usr/bin/firefox から /usr/bin/firefox.real への退避 (divert)' を追加しています
firefox-esr (52.6.0esr-1~deb9u1) を展開しています...
以前に未選択のパッケージ firefox-esr-l10n-ja を選択しています。
.../firefox-esr-l10n-ja_52.6.0esr-1~deb9u1_all.deb を展開する準備をしています ...
firefox-esr-l10n-ja (52.6.0esr-1~deb9u1) を展開しています...
以前に未選択のパッケージ iceweasel を選択しています。
.../iceweasel_52.6.0esr-1~deb9u1_all.deb を展開する準備をしています ...
iceweasel (52.6.0esr-1~deb9u1) を展開しています...
以前に未選択のパッケージ iceweasel-l10n-ja を選択しています。
.../iceweasel-l10n-ja_1%3a52.6.0esr-1~deb9u1_all.deb を展開する準備をしています ...
iceweasel-l10n-ja (1:52.6.0esr-1~deb9u1) を展開しています...
mime-support (3.60) のトリガを処理しています ...
desktop-file-utils (0.23-1) のトリガを処理しています ...
libc-bin (2.24-11+deb9u1) のトリガを処理しています ...
man-db (2.7.6.1-2) のトリガを処理しています ...
gnome-menus (3.13.3-9) のトリガを処理しています ...
hicolor-icon-theme (0.15-1) のトリガを処理しています ...
libjsoncpp1:armhf (1.7.4-3) を設定しています ...
firefox-esr (52.6.0esr-1~deb9u1) を設定しています ...
firefox-esr-l10n-ja (52.6.0esr-1~deb9u1) を設定しています ...
iceweasel (52.6.0esr-1~deb9u1) を設定しています ...
iceweasel-l10n-ja (1:52.6.0esr-1~deb9u1) を設定しています ...
libc-bin (2.24-11+deb9u1) のトリガを処理しています ...
pi@raspberrypi:~ $

 

これでインストールは完了です。

 

f:id:osadamao:20180212223408p:plain


メニューに追加されたFirefoxESRを起動するとFirefox初回起動時の設定インポート確認が表示されました。

 

f:id:osadamao:20180212215044p:plain

とりあえずインポートしておく。

f:id:osadamao:20180212215106p:plain

 これまた初回起動時に確認されるGoogleアカウント

 

f:id:osadamao:20180212215157p:plain

 無事画面が出ました。 

f:id:osadamao:20180212215220p:plain

 操作は慣れ親しんだものなので使いやすいですが、遅いです。

Raspbianに標準でインストールされているChromiumは、RaspberryPiのリソースに合わせてチューニングされているのでしょうか。

どちらをメインに使うかは、これから使いながら考えていくことにしたいです。

 

 

Raspberry Pi3 GPIO 制御2

先のブログにも書いたように参考にする書籍によって使用しているGPIO制御モジュールが2種類あります。

"RPi.GPIO" と "wiringpi" 

その2つの違いは何なんでしょうか。

以前に買った書籍「電子部品ごとの制御を学べる!RaspberryPi電子工作」だと "wiringpi" が使用されており、Raspberry Pi に Raspbian をインストールすればwiringpi も含まれており何もしなくても使える、という旨の事が書いてありますが、書籍の中に紹介されているサンプルプログラムをそのまま入力して実行させてみると、この様なエラーになりました。

 

>>> %Run Raspberry_Pi3_GPIO_wiringpi.py

Traceback (most recent call last):
File "/home/pi/soc/Raspberry_Pi3_GPIO_wiringpi.py", line 4, in <module>
import wiringpi as GPIO
ImportError: No module named 'wiringpi'

 

'wiringpi'が見つからない旨のエラーメッセージなので、 綴り誤りだと思って何度も確認しましたがあっているようです(笑)
ならば、という事で'wiringpi'をインストールしてみました。

 

pi@raspberrypi:~ $ pip3 search wiringpi
ledDriver (1.0) - Python LED light strip and PWM drivers using the
WiringPi2 library.
wiringpi (2.44.4) - A python interface to WiringPi 2.0 library which allows
for easily interfacing with the GPIO pins of the
Raspberry Pi. Also supports i2c and SPI.
wiringpi2 (2.32.3) - A python interface to WiringPi 2.0 library which allows
for easily interfacing with the GPIO pins of the
Raspberry Pi. Also supports i2c and SPI

 

wiringpiとwiringpi2の違いは何?全く同じ説明が書かれてます。
違いが判りませんが版数の新しいほう wiringpi を入れてみることにしました。


pi@raspberrypi:~ $ pip3 install wiringpi
Collecting wiringpi
Downloading wiringpi-2.44.4-cp35-cp35m-linux_armv7l.whl (256kB)
100% |████████████| 266kB 803kB/s Installing collected packages: wiringpi
Successfully installed wiringpi-2.44.4
pi@raspberrypi:~ $

 

インストールは難なく成功したようなので、LEDを点灯させてみます。
5秒点灯して消灯させます。

★まずはRPi.GPIOを使う例

#Raspberry Pi3 GPIO 出力1RPi.GPIOを使う実験
#ライブラリの読み込み
import RPi.GPIO as GPIO
from time import sleep
LED_PIN = 23

#初期化
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)

#出力モード設定
GPIO.setup (LED_PIN,GPIO.OUT,initial = GPIO.LOW)

#出力設定
GPIO.output (LED_PIN,GPIO.HIGH)
sleep(5)
GPIO.output (LED_PIN,GPIO.LOW)

#GPIOリセット終了
GPIO.cleanup()

 

★つぎはwiringpiを使う例

#Raspberry Pi3 GPIO 出力1wiringpiを使う実験
#ライブラリの読み込み
import wiringpi as GPIO
from time import sleep
LED_PIN = 23

#初期化
GPIO.wiringPiSetupGpio()


#出力モード設定
GPIO.pinMode (LED_PIN,GPIO.OUTPUT)

#出力設定
GPIO.digitalWrite (LED_PIN,GPIO.HIGH)
sleep(5)
GPIO.digitalWrite (LED_PIN,GPIO.LOW)

 

どちらも、ほぼ同じなのですが初期化の部分で wiringpi には、GPIO番号指定なのか物理位置番号指定なのかを宣言することや、.setwarnings のようなワーニングメッセージを抑止するようなものがありません。また、wiringpi では終るときに明確にGPIOを開放する指定が無いような気がします。それらを考えると、初心者なら wiringpi を使うよりRPi.GPIOを使った方が安全なような気がします。

 

PWMで疑似アナログ出力する場合での RPi.GPIOを使う場合とwiringpiを使う場合の違いを確認してみました。

★まずはRPi.GPIOを使う例

#Raspberry Pi3 GPIO PWM 出力 RPi.GPIOを使う実験

#ライブラリの読み込み
import RPi.GPIO as GPIO
from time import sleep

LED_PIN = 23

#初期化
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)

#出力モード設定
GPIO.setup (LED_PIN,GPIO.OUT,initial = GPIO.LOW)

#出力設定
p2 = GPIO.PWM(LED_PIN,200)
p2.start(0)

try:
    while True:
        for dc2 in range(0,101,10):
            p2.ChangeDutyCycle(dc2)
            print(dc2)
            sleep(0.3)

#例外処理
except KeyboardInterrupt:
    print ( 'CTRL + C' )
    pass

p2.stop()

#GPIOリセット終了
GPIO.cleanup()

 

★続いてwiringpiを使う例

#Raspberry Pi3 GPIO PWM 出力 wiringpiを使う実験

#ライブラリの読み込み
import wiringpi as GPIO
from time import sleep

LED_PIN = 23

#初期化
GPIO.wiringPiSetupGpio()


#出力モード設定
GPIO.pinMode (LED_PIN,GPIO.OUTPUT)

#出力設定
GPIO.softPwmCreate (LED_PIN,0,100)

try:
    while True:
        for dc2 in range(0,101,10):
            GPIO.softPwmWrite(LED_PIN,dc2)
            print(dc2)
            sleep(0.3)

#例外処理
except KeyboardInterrupt:
    print ( 'CTRL + C' )
    pass 

 

疑似アナログ出力をするケースでも RPi.GPIOを使う場合とwiringpiを使う場合の違いは、デジタル出力のケースと同じでした。

つまり あえて"wiringpi"を使った方がいい理由は僕にはわかりませんでした。

 

という事で定番のRPi.GPIOを使ってLEDを順番につけてみるスクリプトを作ってみました。

#Raspberry Pi3 GPIO 出力

#ライブラリの読み込み
import RPi.GPIO as GPIO
from time import sleep

 

#初期化
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)

 

#出力モード設定
for LED_PIN in [23,24,25,16,20,21]:
GPIO.setup (LED_PIN,GPIO.OUT,initial = GPIO.LOW)

 

#出力設定
try:
    while True:
        for LED_PIN in [23,24,25,16,20,21]:
            GPIO.output (LED_PIN,GPIO.HIGH)
            sleep(0.1)
            GPIO.output (LED_PIN,GPIO.LOW)

        sleep(0.1)

        for lp in range(3):
            for LED_PIN in [23,24,25,16,20,21]:
                GPIO.output (LED_PIN,GPIO.HIGH)

            sleep(0.1)

            for LED_PIN in [23,24,25,16,20,21]:
                GPIO.output (LED_PIN,GPIO.LOW)

            sleep(0.1)

except KeyboardInterrupt:
    print ( 'CTRL + C' )
    pass

 

#GPIOリセット終了
GPIO.cleanup()

 

f:id:osadamao:20180211142818j:plain

 

 

 

LEDの点灯制御についてはうまくできるようになったので、今度はスイッチのON、OFFを読み出すようなプログラムも整理しました。

 

#Raspberry Pi3 GPIO 入力1
#ライブラリの読み込み
import RPi.GPIO as GPIO
from time import sleep

SW_PIN = 4

#初期化
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)

#GPIO4を入力モードとして設定
GPIO.setup (SW_PIN,GPIO.IN,pull_up_down=GPIO.PUD_DOWN)

#コントロールCが押されるまでループ

try:
    while True:
        if GPIO.input(SW_PIN) == GPIO.HIGH : #GPIO.LOW または GPIO.HIGHを得る
            print ( 'SW on:GPIO' + str(SW_PIN) + ' HIGH' )
        else :
            print ( 'SW off:GPIO' + str(SW_PIN) + ' LOW' )

        sleep (1)

#例外
except KeyboardInterrupt :
    print ( 'CTRL + C' )
    pass


#GPIOのリセット終了
GPIO.cleanup()

 

 

 

 

参考にさせていただいたサイト

ag.hatenablog.com

Raspberry Pi3 GPIO 制御

RaspberryPi3で遊んでみるために今まで本を4冊購入してます。

f:id:osadamao:20180114140921j:plain

 

f:id:osadamao:20180114140927j:plain

この本で紹介されていたGPIO制御をテストするための汎用GPIOボードを購入したので、この本で紹介されていた python のプログラムで初めてLチカやスイッチ確認の実験をしました。

 

 

f:id:osadamao:20180114140934j:plain

 

プログラムに多少の違いはあるけれど、Lチカやスイッチの状態読み取りテストプログラムはどれも同じようなもの。なのですが、ふと使っているモジュールが違うことに気が付きました。

これらの書籍では RPi.GPIO を使っており、プログラムの冒頭に

import RPi.GPIO as GPIO

を記述していました。

 

ですが下の書籍では、wiringpi を使っており、冒頭に

import wiringpi as pi

を記述しています。

f:id:osadamao:20180114134907j:plain

なんか気になります。どっちが使いやすいのか考察してみたいと思います。

 

キャラクタディスプレイに文字を表示させたいだけなのに・・・

#!/usr/bin/env python
#coding:utf-8
import serial
import datetime
from time import sleep

##
# str = con.readline();
# if str != "" :
# print (str)
# sleep(0.5)
#
#
#if __name__ == '__main__' :
#    main()


con=serial.Serial('/dev/ttyAMA0',115200,timeout=0)
print (con.portstr)


while True:
    dt=datetime.datetime.now()
    print(dt)
#    print(dt.strftime("%H %M %S"))
#    con.write(dt).encode('utf-8')
#    con.write('AT'+'\r\n')

    str = con.readline();
    if str != "" :
        print (str)
    sleep(1)

 

Raspberry Pi3 の Bluetooth イヤホン接続の謎2

bluetoothのイヤホンをつないでみたくて、今度はここを参考にアップデートをしてみた。

結果:NG。

参考)https://qiita.com/nattof/items/3db73a95e63100d7580a

 

sudo apt install pulseaudio-module-bluetooth

 

ファイルの新規作成

sudo vi /etc/systemd/system/pulseaudio.service
[Unit]
Description=Pulse Audio

[Service]
Type=simple
ExecStart=/usr/bin/pulseaudio --system --disallow-exit --disable-shm

[Install]
WantedBy=multi-user.target

 

ファイルの新規作成

 sudo vi /etc/dbus-1/system.d/pulseaudio-bluetooth.conf
<busconfig>

<policy user="pulse">
<allow send_destination="org.bluez"/>
</policy>

</busconfig>

 

ファイルの末尾に追記

 sudo vi /etc/pulse/system.pa
### Automatically load driver modules for Bluetooth hardware
.ifexists module-bluetooth-policy.so
load-module module-bluetooth-policy
.endif

.ifexists module-bluetooth-discover.so
load-module module-bluetooth-discover
.endif

sudo systemctl start pulseaudio.service

sudo systemctl enable pulseaudio.service

Raspberry Pi3 の Bluetooth イヤホン接続の謎

bluetoothのイヤホンをつないでみたくて、ここを参考にアップデートをしてみた。

結果:NG。

https://qiita.com/Sam/items/5169d9f060aa31080b77


Linux raspberrypi 4.9.59-v7+ #1047 SMP Sun Oct 29 12:19:23 GMT 2017 armv7l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sat Feb 3 01:00:51 2018
pi@raspberrypi:~ $ sudo apt install pi-bluetooth blueman
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
pi-bluetooth はすでに最新バージョン (0.1.6) です。
以下の追加パッケージがインストールされます:
bluez-obexd gir1.2-appindicator3-0.1 gir1.2-notify-0.7 libappindicator3-1
libdbusmenu-glib4 libdbusmenu-gtk3-4 libical2 libindicator3-7
libpulse-mainloop-glib0 notification-daemon python3-cairo python3-gi-cairo
以下のパッケージが新たにインストールされます:
blueman bluez-obexd gir1.2-appindicator3-0.1 gir1.2-notify-0.7
libappindicator3-1 libdbusmenu-glib4 libdbusmenu-gtk3-4 libical2
libindicator3-7 libpulse-mainloop-glib0 notification-daemon python3-cairo
python3-gi-cairo
アップグレード: 0 個、新規インストール: 13 個、削除: 0 個、保留: 0 個。
2,819 kB のアーカイブを取得する必要があります。
この操作後に追加で 7,706 kB のディスク容量が消費されます。
続行しますか? [Y/n] Y
取得:1 http://archive.raspberrypi.org/debian stretch/main armhf bluez-obexd armhf 5.43-2+rpt2+deb9u2 [176 kB]
取得:2 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian stretch/main armhf libical2 armhf 2.0.0-0.5+b1 [164 kB]
取得:3 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian stretch/main armhf notification-daemon armhf 3.20.0-1 [55.4 kB]
取得:4 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian stretch/main armhf libpulse-mainloop-glib0 armhf 10.0-1+deb9u1 [43.9 kB]
取得:5 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian stretch/main armhf gir1.2-notify-0.7 armhf 0.7.7-2 [9,740 B]
取得:6 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian stretch/main armhf python3-cairo armhf 1.10.0+dfsg-5 [23.5 kB]
取得:7 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian stretch/main armhf python3-gi-cairo armhf 3.22.0-2 [328 kB]
取得:8 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian stretch/main armhf libdbusmenu-glib4 armhf 12.10.2-2 [96.8 kB]
取得:9 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian stretch/main armhf libdbusmenu-gtk3-4 armhf 12.10.2-2 [85.6 kB]
取得:10 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian stretch/main armhf libindicator3-7 armhf 0.5.0-3 [49.5 kB]
取得:11 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian stretch/main armhf libappindicator3-1 armhf 0.4.92-4+b2 [50.4 kB]
取得:12 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian stretch/main armhf gir1.2-appindicator3-0.1 armhf 0.4.92-4+b2 [38.7 kB]
取得:13 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian stretch/main armhf blueman armhf 2.0.4-1+b4 [1,698 kB]
2,819 kB を 46秒 で取得しました (60.2 kB/s)
以前に未選択のパッケージ libical2:armhf を選択しています。
(データベースを読み込んでいます ... 現在 126542 個のファイルとディレクトリがインストールされています。)
.../00-libical2_2.0.0-0.5+b1_armhf.deb を展開する準備をしています ...
libical2:armhf (2.0.0-0.5+b1) を展開しています...
以前に未選択のパッケージ bluez-obexd を選択しています。
.../01-bluez-obexd_5.43-2+rpt2+deb9u2_armhf.deb を展開する準備をしています ...
bluez-obexd (5.43-2+rpt2+deb9u2) を展開しています...
以前に未選択のパッケージ notification-daemon を選択しています。
.../02-notification-daemon_3.20.0-1_armhf.deb を展開する準備をしています ...
notification-daemon (3.20.0-1) を展開しています...
以前に未選択のパッケージ libpulse-mainloop-glib0:armhf を選択しています。
.../03-libpulse-mainloop-glib0_10.0-1+deb9u1_armhf.deb を展開する準備をしていま す ...
libpulse-mainloop-glib0:armhf (10.0-1+deb9u1) を展開しています...
以前に未選択のパッケージ gir1.2-notify-0.7:armhf を選択しています。
.../04-gir1.2-notify-0.7_0.7.7-2_armhf.deb を展開する準備をしています ...
gir1.2-notify-0.7:armhf (0.7.7-2) を展開しています...
以前に未選択のパッケージ python3-cairo を選択しています。
.../05-python3-cairo_1.10.0+dfsg-5_armhf.deb を展開する準備をしています ...
python3-cairo (1.10.0+dfsg-5) を展開しています...
以前に未選択のパッケージ python3-gi-cairo を選択しています。
.../06-python3-gi-cairo_3.22.0-2_armhf.deb を展開する準備をしています ...
python3-gi-cairo (3.22.0-2) を展開しています...
以前に未選択のパッケージ libdbusmenu-glib4:armhf を選択しています。
.../07-libdbusmenu-glib4_12.10.2-2_armhf.deb を展開する準備をしています ...
libdbusmenu-glib4:armhf (12.10.2-2) を展開しています...
以前に未選択のパッケージ libdbusmenu-gtk3-4:armhf を選択しています。
.../08-libdbusmenu-gtk3-4_12.10.2-2_armhf.deb を展開する準備をしています ...
libdbusmenu-gtk3-4:armhf (12.10.2-2) を展開しています...
以前に未選択のパッケージ libindicator3-7:armhf を選択しています。
.../09-libindicator3-7_0.5.0-3_armhf.deb を展開する準備をしています ...
libindicator3-7:armhf (0.5.0-3) を展開しています...
以前に未選択のパッケージ libappindicator3-1:armhf を選択しています。
.../10-libappindicator3-1_0.4.92-4+b2_armhf.deb を展開する準備をしています ...
libappindicator3-1:armhf (0.4.92-4+b2) を展開しています...
以前に未選択のパッケージ gir1.2-appindicator3-0.1:armhf を選択しています。
.../11-gir1.2-appindicator3-0.1_0.4.92-4+b2_armhf.deb を展開する準備をしています ...
gir1.2-appindicator3-0.1:armhf (0.4.92-4+b2) を展開しています...
以前に未選択のパッケージ blueman を選択しています。
.../12-blueman_2.0.4-1+b4_armhf.deb を展開する準備をしています ...
blueman (2.0.4-1+b4) を展開しています...
libindicator3-7:armhf (0.5.0-3) を設定しています ...
gir1.2-notify-0.7:armhf (0.7.7-2) を設定しています ...
libical2:armhf (2.0.0-0.5+b1) を設定しています ...
libpulse-mainloop-glib0:armhf (10.0-1+deb9u1) を設定しています ...
mime-support (3.60) のトリガを処理しています ...
desktop-file-utils (0.23-1) のトリガを処理しています ...
libglib2.0-0:armhf (2.50.3-2) のトリガを処理しています ...
libdbusmenu-glib4:armhf (12.10.2-2) を設定しています ...
libc-bin (2.24-11+deb9u1) のトリガを処理しています ...
bluez-obexd (5.43-2+rpt2+deb9u2) を設定しています ...
man-db (2.7.6.1-2) のトリガを処理しています ...
python3-cairo (1.10.0+dfsg-5) を設定しています ...
gnome-menus (3.13.3-9) のトリガを処理しています ...
dbus (1.10.24-0+deb9u1) のトリガを処理しています ...
hicolor-icon-theme (0.15-1) のトリガを処理しています ...
notification-daemon (3.20.0-1) を設定しています ...
libdbusmenu-gtk3-4:armhf (12.10.2-2) を設定しています ...
python3-gi-cairo (3.22.0-2) を設定しています ...
libappindicator3-1:armhf (0.4.92-4+b2) を設定しています ...
gir1.2-appindicator3-0.1:armhf (0.4.92-4+b2) を設定しています ...
blueman (2.0.4-1+b4) を設定しています ...
libc-bin (2.24-11+deb9u1) のトリガを処理しています ...
dbus (1.10.24-0+deb9u1) のトリガを処理しています ...
pi@raspberrypi:~ $ sudo apt install pulseaudio pavucontrol pulseaudio-module-bluetooth
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の追加パッケージがインストールされます:
libasound2-plugins libatkmm-1.6-1v5 libcairomm-1.0-1v5 libglibmm-2.4-1v5
libgtkmm-3.0-1v5 libpangomm-1.4-1v5 libpulsedsp libspeexdsp1
pulseaudio-utils rtkit
提案パッケージ:
pavumeter paman paprefs
以下のパッケージが新たにインストールされます:
libasound2-plugins libatkmm-1.6-1v5 libcairomm-1.0-1v5 libglibmm-2.4-1v5
libgtkmm-3.0-1v5 libpangomm-1.4-1v5 libpulsedsp libspeexdsp1 pavucontrol
pulseaudio pulseaudio-module-bluetooth pulseaudio-utils rtkit
アップグレード: 0 個、新規インストール: 13 個、削除: 0 個、保留: 0 個。
3,152 kB のアーカイブを取得する必要があります。
この操作後に追加で 14.0 MB のディスク容量が消費されます。
続行しますか? [Y/n] Y
取得:1 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian stretch/main armhf libspeexdsp1 armhf 1.2~rc1.2-1 [42.9 kB]
取得:2 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian stretch/main armhf libasound2-plugins armhf 1.1.1-1 [72.9 kB]
取得:3 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian stretch/main armhf libglibmm-2.4-1v5 armhf 2.50.0-1 [593 kB]
取得:4 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian stretch/main armhf libatkmm-1.6-1v5 armhf 2.24.2-2 [57.1 kB]
取得:5 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian stretch/main armhf libcairomm-1.0-1v5 armhf 1.12.0-1 [61.7 kB]
取得:6 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian stretch/main armhf libpangomm-1.4-1v5 armhf 2.40.1-3 [50.1 kB]
取得:7 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian stretch/main armhf libgtkmm-3.0-1v5 armhf 3.22.0-1 [903 kB]
取得:8 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian stretch/main armhf libpulsedsp armhf 10.0-1+deb9u1 [52.0 kB]
取得:9 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian stretch/main armhf pavucontrol armhf 3.0-3.1 [102 kB]
取得:10 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian stretch/main armhf pulseaudio-utils armhf 10.0-1+deb9u1 [82.8 kB]
取得:11 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian stretch/main armhf pulseaudio armhf 10.0-1+deb9u1 [1,020 kB]
取得:12 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian stretch/main armhf rtkit armhf 0.11-4 [31.2 kB]
取得:13 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian stretch/main armhf pulseaudio-module-bluetooth armhf 10.0-1+deb9u1 [83.9 kB]
3,152 kB を 32秒 で取得しました (95.9 kB/s)
以前に未選択のパッケージ libspeexdsp1:armhf を選択しています。
(データベースを読み込んでいます ... 現在 127076 個のファイルとディレクトリがインストールされています。)
.../00-libspeexdsp1_1.2~rc1.2-1_armhf.deb を展開する準備をしています ...
libspeexdsp1:armhf (1.2~rc1.2-1) を展開しています...
以前に未選択のパッケージ libasound2-plugins:armhf を選択しています。
.../01-libasound2-plugins_1.1.1-1_armhf.deb を展開する準備をしています ...
libasound2-plugins:armhf (1.1.1-1) を展開しています...
以前に未選択のパッケージ libglibmm-2.4-1v5:armhf を選択しています。
.../02-libglibmm-2.4-1v5_2.50.0-1_armhf.deb を展開する準備をしています ...
libglibmm-2.4-1v5:armhf (2.50.0-1) を展開しています...
以前に未選択のパッケージ libatkmm-1.6-1v5:armhf を選択しています。
.../03-libatkmm-1.6-1v5_2.24.2-2_armhf.deb を展開する準備をしています ...
libatkmm-1.6-1v5:armhf (2.24.2-2) を展開しています...
以前に未選択のパッケージ libcairomm-1.0-1v5:armhf を選択しています。
.../04-libcairomm-1.0-1v5_1.12.0-1_armhf.deb を展開する準備をしています ...
libcairomm-1.0-1v5:armhf (1.12.0-1) を展開しています...
以前に未選択のパッケージ libpangomm-1.4-1v5:armhf を選択しています。
.../05-libpangomm-1.4-1v5_2.40.1-3_armhf.deb を展開する準備をしています ...
libpangomm-1.4-1v5:armhf (2.40.1-3) を展開しています...
以前に未選択のパッケージ libgtkmm-3.0-1v5:armhf を選択しています。
.../06-libgtkmm-3.0-1v5_3.22.0-1_armhf.deb を展開する準備をしています ...
libgtkmm-3.0-1v5:armhf (3.22.0-1) を展開しています...
以前に未選択のパッケージ libpulsedsp:armhf を選択しています。
.../07-libpulsedsp_10.0-1+deb9u1_armhf.deb を展開する準備をしています ...
libpulsedsp:armhf (10.0-1+deb9u1) を展開しています...
以前に未選択のパッケージ pavucontrol を選択しています。
.../08-pavucontrol_3.0-3.1_armhf.deb を展開する準備をしています ...
pavucontrol (3.0-3.1) を展開しています...
以前に未選択のパッケージ pulseaudio-utils を選択しています。
.../09-pulseaudio-utils_10.0-1+deb9u1_armhf.deb を展開する準備をしています ...
pulseaudio-utils (10.0-1+deb9u1) を展開しています...
以前に未選択のパッケージ pulseaudio を選択しています。
.../10-pulseaudio_10.0-1+deb9u1_armhf.deb を展開する準備をしています ...
pulseaudio (10.0-1+deb9u1) を展開しています...
以前に未選択のパッケージ rtkit を選択しています。
.../11-rtkit_0.11-4_armhf.deb を展開する準備をしています ...
rtkit (0.11-4) を展開しています...
以前に未選択のパッケージ pulseaudio-module-bluetooth を選択しています。
.../12-pulseaudio-module-bluetooth_10.0-1+deb9u1_armhf.deb を展開する準備をして います ...
pulseaudio-module-bluetooth (10.0-1+deb9u1) を展開しています...
libcairomm-1.0-1v5:armhf (1.12.0-1) を設定しています ...
mime-support (3.60) のトリガを処理しています ...
libpulsedsp:armhf (10.0-1+deb9u1) を設定しています ...
desktop-file-utils (0.23-1) のトリガを処理しています ...
pulseaudio-utils (10.0-1+deb9u1) を設定しています ...
libc-bin (2.24-11+deb9u1) のトリガを処理しています ...
rtkit (0.11-4) を設定しています ...
man-db (2.7.6.1-2) のトリガを処理しています ...
gnome-menus (3.13.3-9) のトリガを処理しています ...
libglibmm-2.4-1v5:armhf (2.50.0-1) を設定しています ...
dbus (1.10.24-0+deb9u1) のトリガを処理しています ...
libspeexdsp1:armhf (1.2~rc1.2-1) を設定しています ...
libatkmm-1.6-1v5:armhf (2.24.2-2) を設定しています ...
libasound2-plugins:armhf (1.1.1-1) を設定しています ...
libpangomm-1.4-1v5:armhf (2.40.1-3) を設定しています ...
pulseaudio (10.0-1+deb9u1) を設定しています ...
ユーザ pulse をグループ audio に追加
libgtkmm-3.0-1v5:armhf (3.22.0-1) を設定しています ...
pulseaudio-module-bluetooth (10.0-1+deb9u1) を設定しています ...
pavucontrol (3.0-3.1) を設定しています ...
libc-bin (2.24-11+deb9u1) のトリガを処理しています ...
dbus (1.10.24-0+deb9u1) のトリガを処理しています ...
pi@raspberrypi:~ $ sudo shutdown -r now


Linux raspberrypi 4.9.59-v7+ #1047 SMP Sun Oct 29 12:19:23 GMT 2017 armv7l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sat Feb 3 09:32:36 2018
pi@raspberrypi:~ $ pulseaudio -D
E: [pulseaudio] main.c: デーモン開始に失敗しました。

pi@raspberrypi:~ $ bluetoothctl
[NEW] Controller B8:27:EB:DA:1D:6F raspberrypi [default]
[bluetooth]# scan on
Discovery started
[CHG] Controller B8:27:EB:DA:1D:6F Discovering: yes
[NEW] Device 00:1D:BA:97:A9:B5 00-1D-BA-97-A9-B5
[CHG] Device 00:1D:BA:97:A9:B5 LegacyPairing: no
[CHG] Device 00:1D:BA:97:A9:B5 Name: DRC-BT15
[CHG] Device 00:1D:BA:97:A9:B5 Alias: DRC-BT15
[CHG] Device 00:1D:BA:97:A9:B5 LegacyPairing: yes
[bluetooth]# pair 00:1D:BA:97:A9:B5
Attempting to pair with 00:1D:BA:97:A9:B5
[CHG] Device 00:1D:BA:97:A9:B5 Connected: yes
[CHG] Device 00:1D:BA:97:A9:B5 UUIDs: 00001108-0000-1000-8000-00805f9b34fb
[CHG] Device 00:1D:BA:97:A9:B5 UUIDs: 0000110b-0000-1000-8000-00805f9b34fb
[CHG] Device 00:1D:BA:97:A9:B5 UUIDs: 0000110e-0000-1000-8000-00805f9b34fb
[CHG] Device 00:1D:BA:97:A9:B5 UUIDs: 0000111e-0000-1000-8000-00805f9b34fb
[CHG] Device 00:1D:BA:97:A9:B5 ServicesResolved: yes
[CHG] Device 00:1D:BA:97:A9:B5 Paired: yes
Pairing successful
[CHG] Device 00:1D:BA:97:A9:B5 ServicesResolved: no
[CHG] Device 00:1D:BA:97:A9:B5 Connected: no
[bluetooth]# trust 00:1D:BA:97:A9:B5
[CHG] Device 00:1D:BA:97:A9:B5 Trusted: yes
Changing 00:1D:BA:97:A9:B5 trust succeeded
[bluetooth]# connect 00:1D:BA:97:A9:B5
Attempting to connect to 00:1D:BA:97:A9:B5
[CHG] Device 00:1D:BA:97:A9:B5 Connected: yes
Connection successful
[CHG] Device 00:1D:BA:97:A9:B5 ServicesResolved: yes
[DRC-BT15]# quit
[DEL] Controller B8:27:EB:DA:1D:6F raspberrypi [default]
pi@raspberrypi:~ $ speaker-test -t wav

speaker-test 1.1.3

再生デバイス: default
ストリームパラメータ: 48000Hz, S16_LE, 1 チャネル
WAV ファイル
レート 48000Hz (要求値 48000Hz)
バッファサイズ範囲 192 ~ 2097152
ピリオドサイズ範囲 64 ~ 699051
最大バッファサイズ 2097152 を使用
ピリオド数 = 4
period_size = 524288 で設定
buffer_size = 2097152 で設定
0 - Front Left
ピリオド時間 = 1.522633
0 - Front Left
ピリオド時間 = 30.037529
0 - Front Left
ピリオド時間 = 1.522920
0 - Front Left
ピリオド時間 = 1.518963
0 - Front Left
ピリオド時間 = 30.037717
0 - Front Left
ピリオド時間 = 1.521129
0 - Front Left
ピリオド時間 = 30.034256
0 - Front Left
ピリオド時間 = 1.506060
0 - Front Left
ピリオド時間 = 30.035904
0 - Front Left
ピリオド時間 = 1.521735
0 - Front Left
ピリオド時間 = 1.520872
0 - Front Left
ピリオド時間 = 30.034088
0 - Front Left
ピリオド時間 = 1.525179
0 - Front Left
ピリオド時間 = 30.037619
0 - Front Left
ピリオド時間 = 1.522189
0 - Front Left
ピリオド時間 = 30.038107
0 - Front Left
ピリオド時間 = 1.507516
0 - Front Left
ピリオド時間 = 1.511926
0 - Front Left
ピリオド時間 = 30.039014
pi@raspberrypi:~ $

 


pi@raspberrypi:~ $ cat /etc/debian_version
9.3
pi@raspberrypi:~ $