iOS11に上げたら結構なアプリが使えない
自分のアプリをアップデートしてないのでなんとも言えないけど結構なアプリが64ビット対応されておらず非互換になってました。
設定→一般→情報→Apps から見る事が出来ます。
まれにメジャーどころが入ってるので開発されてる所大丈夫か心配。
自分のアプリをアップデートしてないのでなんとも言えないけど結構なアプリが64ビット対応されておらず非互換になってました。
設定→一般→情報→Apps から見る事が出来ます。
まれにメジャーどころが入ってるので開発されてる所大丈夫か心配。
Zeroでも音声出力をしてみたいと思いましたがAudio端子ないので調べてみました。
Raspberry Pi Zero には音声出力をするにはHDMI経由で鳴らす方法と、今回紹介するGPIO端子を利用する方法の2種類があります。
Pi Zero には、他の Pi にある PWM0(pin #40) と PWM1(pin #45) がありませんが今回使用する方法で代替えを行い利用することが出来ます。
Adafruit のサイトに詳しい方法が記載されていますのでその方法を実施してみます。
手順ではgpioを最新にしていますが手元のRaspberry Pi では既にZeroがサポートされているバージョンが導入されています。今回のバージョンは 2.32 でした。
pi@pizero1:~/Documents/PG $ gpio -v
gpio version: 2.32
Copyright (c) 2012-2015 Gordon Henderson
This is free software with ABSOLUTELY NO WARRANTY.
For details type: gpio -warranty
Raspberry Pi Details:
Type: Pi Zero, Revision: 02, Memory: 512MB, Maker: Sony
* Device tree is enabled.
* This Raspberry Pi supports user-level GPIO access.
-> See the man-page for more details
-> ie. export WIRINGPI_GPIOMEM=1
GPIOの設定を確認してみます。(gpio readall) それぞれ該当のModeが[IN]になっているのでこの値を変更します。変更するための設定プログラムをコンパイルして利用します。
先ほどのAdafruitのサイトにソースコードが掲載されていますのでその内容を gpio_alt.c として保管した後に以下のコマンドを実行してコンパイルします。
gcc -o gpio_alt gpio_alt.c
sudo chown root:root gpio_alt
sudo chmod u+s gpio_alt
sudo mv gpio_alt /usr/local/bin/
実際に以下のコマンドを実行してModeを変更します。
gpio_alt -p 13 -f 0
gpio_alt -p 18 -f 5
その結果が以下のようになります。それぞれ[ALT0]と[ALT5]になります。
次にPiのAudioをHDMIからPCMに変更します。 sudo raspi-config
を実行します。
「Advanced Opstions」→ 「Audio」→ 「Force 3.5mm (Headphone)」を選択して保管して終了します。
以下のように配線してみます。
サンプルの再生は aplay /usr/share/sounds/alsa/Front_Center.wav
で行う事ができます。音声のボリュームはAlsaツールを利用します。4dBが最大となります。
$ amixer
Simple mixer control 'PCM',0
Capabilities: pvolume pvolume-joined pswitch pswitch-joined
Playback channels: Mono
Limits: Playback -10239 - 400
Mono: Playback 400 [100%] [4.00dB] [on]
実際にAMPなしで再生してみると、、、、、ほんの僅か音声が聞こえてきました。
あまりにも小さいのアンプを間に挟んでみることにします。
こちらのアンプはQiitaのこの記事で紹介されていました秋月で売っているD級アンプモジュールを接続してみています。
接続は特に何も考慮せずにピンで止めていますが多分これが原因で盛大にノイズが乗っています。「ザザザー」
音は多少大きくなりました。キチンと半田付けしてスピーカー側に取り付けて上げる事でそれなりに使える様になるような気がします。
あまり利用している例もなかったので一般的な使い方ではないのかもしれませんがGPIOだけで色々出来るのは便利かなと思っています。次は小型化して使いやすくしておきたいですね。
温度センサーBME280の値をLCD(AQM0802A)に表示してみた。
やっている内容はシンプルで1秒毎にセンサーから値を取得し、LCDに描画させました。
結構普通に描画されています。
描画スペースが 8×2しか無いので何に使うのか悩みますがとりあえずボタンでこの機能をON/OFF出来るようにはしておきたいと思います。
ハマりました。
商品のページに確かに注釈が追記されているように、Raspberry Piでは上手く動作しません。I2Cで認識する所から上手く動かないと思います。
Raspberry PI の GPIO2番/3番がプルアップを基盤上でしているために上手く認識が出来ないというのが理由のようです。従ってこれを解消するためには、基盤上の抵抗を取り除か(Zeroではかなり厳しい位置にありますし他にも影響しそうなのであまりしたくありません)ないと行けない模様です。ハードウェアで設定されてしまうためgpioコマンドを利用してもプルアップルを変更できていません。
こちらのサイトに回避方法が掲載されています。現在この回路を持っていないので試しにSDAを「プルダウン」してみたいと思います。抵抗は2Ωx2個をGNDに接続してみます。
既に半田してしまったのだけどプルアップ用のジャンパ(PU)をしなくても良いだけかもしれない。
商品はこのサイズです
半田はかなり小さくなります。先にハンダゴテの先に半田を盛っておいてサッとポイントに塗ると上手く半田が移動してくれます。
ちょっと面倒な繋げ方になりましたが抵抗を挟んでいます。
この状態で
pi@pizero1:~ $ i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- 3e --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
見えました。
では次に以下のコマンドを実行してみます。
i2cset -y 1 0x3e 0 0x38 0x39 0x14 0x78 0x5f 0x6a i
sleep 0.3
i2cset -y 1 0x3e 0 0x0c 0x01 i
sleep 0.3
i2cset -y 1 0x3e 0 0x06 i
sleep 0.3
i2cset -y 1 0x3e 0 0x80 b
i2cset -y 1 0x3e 0x40 0x31 0x32 0x33 0x34 i
i2cset -y 1 0x3e 0 0xc0 b
i2cset -y 1 0x3e 0x40 0x41 0x42 0x43 0x44 0x45 i
無事に表示されました。
これで液晶に文字を書くことが出来るようになりました。Pythonで利用するためのライブラリとかあれば使ってみたいですし pyLCI で正しく動作するかも確認したいところです。
参考
Scroll pHat は、LEDの電光掲示板のようなガジェットです。
以前にZeroを購入した際に pHatセットで購入したのですが全く触っていなかったのでようやくピンをはんだづけして使ってみました。
LEDの生身の状態です。
光を抑えてくれるボードが付いているので付けてみました。
背面には謎の文字が
装着するとこのような感じです。
メーカーから操作をするためのサンプルコードとライブラリが提供されています。python用のものになります。
導入は以下のコマンドを実行します。~/Pimorino に導入されることになります。
curl -sS https://get.pimoroni.com/scrollphat | bash
では実際に利用してみるとこのような感じになります。
結構面白いですね。もう少し自由に使えるようになれば最小サイズの情報画面としても利用できます。
ちなみにこのボードはi2c接続となっていて
pi@pizero1:~ $ i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: 60 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
の様に認識されています。なので他のGPIOのピンは実際には使用していないと思うので上手く他のピンを活かして使いたいものです。
購入配下のサイトから出来ます