2017年11月14日火曜日

Pimoroni Button SHIMを動かしてみる

Pimoroni Button SHIMを実際に動かしてみる

ロングピンヘッダーソケットを取り付けたPimoroni Button SHIMの準備が整ったので、Raspberry Pi Zero Wのチェックも兼ねて動かしてみます。

OS Raspbianの準備

Raspbianは、GUI環境のDESKTOP版と、CLIのみの軽量なLITE版があります。
迷った時は、大は小を兼ねるのでDESKTOP版がオススメですが、その分サイズも大きく書き込みに時間がかかり大容量SDカードも必要になるのでLITE版もメリットがあります。
今回は、GUIを使わないのでLITE版を使います。
OSはディスクイメージファイルになって、公式ページのDOWNLOADSからダウンロードします。
DOWNLOAD ZIPとDownload Torrentの2種類のダウンロード方法があって悩ましいのですが、BitTorrentを使われてる方ならDownload Torrentのほうが若干早いです。BitTorrentは、ちょっと小難しい話になるので今回は割愛します。

イメージの展開はEtcherを使うと簡単です。
アプリをインストールした後起動し、ダウンロードしたイメージファイル(ZIPを展開した後のファイル)👉SDカードを指定👉実行
この他にも色々な方法がありますが、簡単で早くて対応OSもWindows・mac・Linuxに対応していて、さらにコマンドライン版もあるのでオススメです。

次に、起動前の/bootパーティションの設定を行います。
Raspberry Pi Zero Wは、OTGスレーブモードと呼ばれるUSB直結でSSH接続できる機能があるのでその設定から。

  1. SDカードの/bootパーティション(WindowsならSDカードを差した時に見られるドライブ)にssh.txtというファイルを作ります。中は空っぽでOKです。0バイトでも1バイトでも構いません。作り方はテキストエディタなりコマンドラインなりで適当に作ってください。
  2. config.txtの最後にdtoverlay=dwc2の1行を追記します。
  3. cmdline.txtの末尾に、改行せずスペースを1つ入れてmodules-load=dwc2,g_etherを追記します。

無線LANの設定もしちゃいます。/bootパーティションにwpa_supplicant.confというファイル名で下記の内容のファイルを作ります。

country=JP
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
  ssid="[SSID名]"
  psk="[パスフレーズ]"
}
起動時にこのファイルが/etc/wpa_supplicant/wpa_supplicant.confに上書きムーブされ、/bootに作ったファイルは消えます。

これで、OSの入ったSDカードの作成は終わりです。
OTGスレーブモードで起動する場合、Windowsはそのままでは認識しません。あらかじめ、AppleのiTunesかBonjourをインストールしておいてください。
macOSはそのままで大丈夫です。Linuxは、、、わかりません😅

Raspberry Pi Zero Wを起動

出来上がったSDカードをRaspberry Pi Zero Wに挿し、PCに接続して起動します。
最新版では、初回起動時にSDカードの容量最大までパーティションの拡張処理をするので少々時間がかかります。以前は、raspi-configでやらないとしてくれなかったのですが。
本体の緑色LEDの点滅が収まって、点きっぱなしになったら起動完了。
SSHクライアントアプリでraspberry.localにアクセスすると接続出来ます。
コマンドライン版なら

ssh pi@raspberry.local
これで繋がります。初期パスワードはraspberryです。
raspberry.localのraspberryはホスト名なので、起動後にraspi-configなどで変更した場合はその名前になります。

I²Cの設定と確認

Pimoroni Button SHIMは、I²C(あいすくえあどしーorあいあいしー)接続のボタン・LEDボードで、TCA9554A I/O エクスパンダが使われています。
Raspberry Piの学習で良くある、GPIOにLEDやスイッチを繋いで操作するモノとは違い、4線接続だけで5つのボタンと1つのフルカラーLEDを操作できる便利なボードです。
Raspbianは、初期状態でI²Cが無効になっているのでその設定をします。

raspi-configを起動します。
sudo raspi-config
すると、画像のような画面が出てきますのでInterfacing Optionsを選んでエンターを押します。

次に、I2Cを選んでエンターを押します。

I2Cを有効にする?と聞かれるので矢印キーでYESを選んでエンターを押します。
するとちょっと間があき、有効になった確認画面が出るのでエンター。
最初の画面に戻るのでESCキーを押し、再起動するか?と聞かれるのでそこで再起動してください。

再起動してSSHで再接続したら、今度はi2c-toolsをインストールします。
sudo apt-get install i2c-tools -y
完了したら、そのままi2cdetectを実行。
i2cdetect -y 1
画像のように3fという表示が出てれば、Raspberry Pi Zero WにButton SHIMが認識されています。
もし、表示されていない場合は何らかの不具合です。

Pimoroni Button SHIMの商品ページ下に、Softwareという説明があります。
そこのButton SHIM Python libraryのリンクを押すと、Githubに移動します。
その下の説明にあるFull installの指示に従って、サクッとインストールします。

curl https://get.pimoroni.com/buttonshim | bash
完了するまで少し時間がかかります。終わるとPimoroniというディレクトリが作られます。
試しにサンプルプログラムを動かしてみましょう。
python Pimoroni/button-shim/examples/rainbow.py
実行すると画面にButton SHIM: rainbow.py~とメッセージが表示されます。
そこでButton SHIMのボタンA~Eをそれぞれ押すと、ボタンごとにLEDが点灯して色が変わります。
終わらせるときは、CTRL+Cを押すとプロンプトに戻ります。

サンプルプログラムは、rainbow.pyを含めて全部で3つあります。
volume.pyは、音量を変えたりミュートしたりする事ができます。なお、EボタンのHold to power offは、ボタン長押しするとLEDが点滅するだけで何も起きません。
keyboard.pyは、SSH接続では何も起こらないのですが、モニタを接続しているとキーボード入力と同じようにボタンごとにA~Eが入力されます。ただし、使うためには準備が必要で、

sudo pip install evdev
このコマンドを実行してevdev Pythonパッケージをインストールしなくてはならないのと、
実行にroot権限が必要なのでsudoを付けなくてはなりません。
sudo python Pimoroni/button-shim/examples/keyboard.py

なんとなくボタンが追加されるだけだろうと、軽い気持ちで注文購入したPimoroni Button SHIMでしたが、使ってみると結構面白く、またとても難しいです。
提供されるライブラリは、標準でボタンを押したとき、放したとき、長押しした時の3つのイベントが使えます。
サンプルコードでは5つあるボタンを個別に押して使っていますが、工夫すると複数ボタン同時押しに機能を持たせる事も可能です。
また、Raspberry Pi Zero/Wにはイヤホンマイク端子がありませんが、HDMI接続すれば映像と一緒に音声も出力できます。そこで、Pygameモジュール集を使い、ボタンを押した時に効果音を付けるだけでもピコピコ鳴って楽しいです。

1つ忘れていましたが、作業が終わって電源を切る時はシャットダウンしてください。

sudo shutdown -h now
そのまま電源切っても平気な場合がありますが、アプリによってはちゃんと終了処理してあげないと、次回起動時に立ち上がらなくなる事があります。
何らかの事情でシャットダウン出来ずにそのまま電源を切ってしまったときに、起動しようとしたらエラーが出て起動できなくなる事があります。そうした緊急事態に備えて、何か冒険したい時は安定して使える状態のSDカードをイメージバックアップして、いつでも元に戻せるようにしておく事をオススメします。

お読みいただきありがとうございました。
次回もお楽しみに!

2017年11月13日月曜日

Raspberry Pi Zero Wを買ったのでGPIOピンヘッダ取付け

スイッチサイエンスRaspberry Pi Zero W抽選販売に当選

ダイエットサマリーでお知らせしたとおり、スイッチサイエンスのRaspberry Pi Zero W抽選販売に当選したので買っちゃいました。
Raspberry Pi Zero同様、これもGPIOにピンヘッダが付いていないので、それを取り付けるところから始まります。

いつも通りハンダ付け

今は、金槌で叩き入れるだけで取付けられるGPIO Hammer Headerという便利なヘッダーピンがあります。
スイッチサイエンスでも販売されているので、これで楽させてもらおうかとも思いましたが、やはりハンダ付けは電子工作の醍醐味。
ということで、普通の2×20 ピンヘッダを一緒に購入し、今回もいつも通りハンダ付けする事にしました。
中学生の頃から使い続けてる愛用のgoot CA-40 キャップ付きはんだこてを引っ張り出してきて作業開始です。

ピンヘッダーを現物合わせし、OKならはんだ付けを始めます。
ひっくり返して作業するので、Raspberry Pi本体がうまく水平になるように高さ調整します。

とりあえず、ピン1本を仮付けし、ピンの樹脂パーツがしっかり基盤に接地してるのを確認します。
ここで斜めになってるようなら、熱くならない部分のピンを指で押し付けながら、仮付けしたハンダをこてで溶かせばスッと入るので、すぐにはんだこてを離せば固まってしっかり止まります。

あとは、サクサクと1ピンずつハンダを流し込んでいきます。
それにしても、今の基盤ってとてもハンダ付けしやすいですよね。良く乗ります。
乗りが悪いときは、フラックスを塗るとよくなります。
ハンダがなかなか溶けない時は、はんだこてのコテ先が汚れてる可能性が高いです。
その時は、クリーニングスポンジに当てて汚れを取るか、それでもダメならヤスリで擦ると良くなります。汚れが熱を伝えにくくしているために起こります。

今回も上出来。40ピンのはんだ付けが出来ました。
使ったハンダは、もうかれこれ30年以上前のものですが大丈夫でした。

はんだ付けは電子工作の醍醐味よねぇ♪
Raspberry Pi Zero Wの完成です。

悪戦苦闘のButton SHIMロングピンヘッダハンダ付け

BME680ボードと一緒に買ったPimoroni Button SHIMでしたが、スタック用のロングピンヘッダソケットを付けたくて、部品が手に入るまで取付けを保留してました。
標準サイズのモノが秋葉原でも売られて無く、海外サイトで見つけたので注文して届くのを待っていたのですが、スイッチサイエンスでも取扱があってしかも安い!
2つあっても何かに使うだろうということで、先に届きそうだったスイッチサイエンスにも発注し、それを取り付ける事にしました。

はんだ付け前にロングピンヘッダをRaspberry Pi Zero Wに差し込み、そこにButton SHIMを付けてみました。
そこでとんでもない事に気がついたのですが、縦に付けられてるボタンスイッチと飛び出しているピンの間が狭く、愛用のはんだこてのこて先が入れにくかったのです。

四苦八苦した上、なんとかはんだ付け出来ました。
Raspberry Pi Zero Wの3倍の作業時間。こて先を基盤に当てすぎると熱で壊してしまうので、作業中それだけがとても心配でした。

使いやすいAdafruit Raspberry Pi Zero用ケース

スイッチサイエンスからRaspberry Pi Zero Wと一緒にAdafruit Raspberry Pi Zero用ケースも購入しました。
ツメ止め式のケースでネジ止めはありません。Raspberry Pi Zero/W共用ですが、本体を入れるのに少々コツがいります。
GPIO部は上面だけ利用可能で、底面の穴はありません。また、GPIO37/39ピン隣にあるTV/RUN端子用の穴も蓋にはありません。
カメラケーブルとマイクロSDカードスロットは穴が開いています。
Pimoroniのケースには、マイクロSDカードスロットの穴が無かったので脱着の多い時に不便を感じてました。
今は、Raspberry Pi ZeroにBME280を取付けて2階の環境測定用に固定接地してるので、逆にホコリなどが入りにくい分良いのですが。

悪戦苦闘してロングピンヘッダソケットを取付けたButton SHIMをスタッキングしてみました。
この後、Raspberry Pi Zero Wで動作確認やソフトウェアの開発をするので、しばらくこの状態で使うことになります。
出来たらRaspberry Pi 2に付け替えて使うつもりなのですが。

作業を終えて一段落。
ふと、スイッチサイエンスから届いた箱の蓋の裏側を見ると
秋の夜長の電子工作 時間はたっぷりありますよ🍁
年度初めの慌ただしい春とは違い、いろいろな事に取り組みやすい秋。まさに電子工作の秋といった感じでしょうか。

お読みいただきありがとうございました。
次回は、Pimoroni Button SHIMを使う話を書きたいと思います。
お楽しみに!

2017年11月12日日曜日

11月第1週(11/5~11/11)ダイエットサマリー 体重は麓に
初めてのサントリーホール
新しい血圧計到着

冬が立ちました

2017年11月7日(火)は立冬でした。
朝の布団の中や日中の日差しの暖かさが心地よくなる季節。そして、風の冷たさが身に応える季節。
そろそろ、ホットドリンク用の水筒にチェンジしたいですね。コレ、温かいのを入れると漏れるので😅

体重は一気に麓に下山し小休止⛰️

67kgから一気に落として62kg台へ。
そこから63kg前後を行ったり来たりするようになりました。
何か決心とかあったわけでもなく、何となく食欲の無い朝の食事をキャンセルするようになり、午後の1食のみにしてから一気に落ちました。
日頃のトレーニングはそのままで、献血のプレッシャーから開放された結果です。
良く朝食は食べないと体に悪いといいますが、あれはあくまでその後の行動が空腹で出来ない人に向けての話。
起きて即トレーニングに入れるような、私みたいな人には無縁だったりします。
夜は食べては行けない神話も、私の経験上あまり意味が無くて、むしろ寝てる間に体が再生されるわけですから、その食事こそすごく重要です。
私にとって、睡眠中も体つくりの大切な時間です。

普段通り筋トレ実施

今週は、特にイレギュラーとか無く、普段通り筋トレを行うことができました。
同じメニューをただひたすら毎日やるだけの日常。そりゃ飽きます。慣れてくれば苦痛も無くなりますから、余計にそうなるでしょう。
飽きないようにするため、トレーニング最中は何か映像を見ながらとか音楽を聞きながらとか、あるいは考え事をしながらやる事が多いです。
おかげで「今何回だっけ?」とカウントを忘れてしまい、やり過ぎて翌日の痛みでそれに気がつく事がよくあるのですが😅

初めてのサントリーホールは凄かった

KDDI スペシャル アンドリス・ネルソンス指揮ボストン交響楽団を聴きに、初めてサントリーホールへ行ってきました。
テレビでは何度も見たことがある場所でしたが、実際に来館するのは初めて。
巨大なパイプオルガンが有名で、1度その演奏を聴いてみたいと思っていたのですが、今回はハイドン 太鼓連打とマーラー 巨人です。

現地に18時に到着し、表参道のGoogle Home mini PRイベントで頂いたドーナツと持参したさんぴん茶で腹ごしらえ。
開場時間の18時20分になると、入り口上の壁が開いて音楽が流れ始めました。

席は2階LC3列7番目。私の好きな左側の席で、ステージにも付かく、上から全体を見渡せる場所です。
映画館でも似たような席をよく選びます。
大ホールで行われたのですが、中は録音・撮影禁止でした。そのため、その時の模様を画像でお伝え出来ないのが残念でしたが、とても素晴らしい演奏でした。
個々の自由さ・表現力・演奏技術。そして、それが1つになったときに生まれる大きなハーモニー。
19時ころから始まり21時すぎに終了。素敵なヒトトキでした。

この日は、コンサートの前に東武東京メトロパスを使って、都内をあちこち回って買い物してました。
とてもお得な切符なので、ある程度の移動予定がある時には利用しています。

新しい血圧計到着

新しい血圧計が届きました。
海外製のものなので、日本の医療機器認定は受けていませんし、ご覧の通り表記はすべて英語です。
説明書もケースもなく、袋に入れられこのまま届きました。
サイズが少し大きめなのと、外国人向けに最高血圧の上限値が高いためか、最初の締め付け圧が少々高いように思います。
それ以外は、普通に使えていますし、数字も問題なさそうなのでしばらく使ってみたいと思います。

ダイエットサマリーは終わり。
前回ブログの最後に記したマイクロSDXCの故障修理でしたが、代替品が届きました。Check Flashでチェックしても異常なし。数週間かかるとの事でしたが、5日で届いたのでとても早い対応に感謝です。
代替えのSDカードで色々やっていたRaspberry Pi Zero Wが、これで本格的に使う事ができます。Raspbian Stretchカーネルもだいぶ安定してきたので、Raspberry Pi 2もそろそろバージョンアップかな?と思っています。

今週もお読み頂きありがとうございました。
次回もお楽しみに!

2017年11月5日日曜日

10月第5週(10/29~11/4)ダイエットサマリー 体重は富士山🗻
不整脈の原因特定
Raspberry Pi関連
今週の家電

紅葉の季節🍁

秋深まり、木々も紅葉する陽気になりましたね。
寒暖差が大きくて、服選びが悩ましいです。
先週の台風21号に続き、今週も台風22号の襲来でスタートしましたが、幸い前回ほどの被害は無かったので長距離サイクリングしてきました。ロードバイクならなんてこと無い距離なのでしょうが🚲
途中でニャンコ先生と遭遇したので、1枚撮らせて頂きました。まったく相手にされなかったのですが😅

体重はまるで富士山🗻

体重のグラフは、まるで富士山のごとく、登りきって再び下がり始めました🗻
そんな感じで、やっと63kg台に到達。
献血が無いおかげで、採血可能判定の血液検査のプレッシャーが無い分、色々無茶な事も出来ます。
食事をとるタイミングは食欲任せで、以前のように1食だけだったり、2食でも少食だったりする事が増えてきました。
その結果がコレなのですが、そもそも健康的な食事をとっていたら減量ダイエットは難しいと思います。成長期の子供は別として、成人が体重の増減を伴う食事は不健康とされます。
人間の体は、都合よく減らしたい部分だけを減らす事はできず、すべてが連動して生かされる仕組みになっています。
そこを色々考えながら、減量ダイエットの過程でフォローしていくのが難しいのですが。

筋トレは今週も予定通り

今週は、自転車のロングライドが2回ほどあったので、疲労と時間の関係で厳しかった日がありましたが、なんとか普段通りフィニッシュしました。
体重が減少傾向にある時の筋トレは、空腹と疲労と倦怠感との戦いなので、やるのが結構キツイです。
それでもやり続けられるのは、最低限コレだけは続けるという日課みたいになってるからだと思います。
そろそろ、ランニングをしたい気分です🏃

不整脈の原因特定

10月第3週ダイエットサマリーで書いたホルタ心電図の解析結果が病院に届いたので、再び来院しました。
結果は、運動誘発性不整脈。治療の必要の無い不整脈でした。ただ、運動時や運動後の心拍数が最大170bpmという時があり、そのために心拍数を下げる薬の処方を勧められました。しかし、私が副作用の懸念を伝えると、経過観察にして頂けました。
献血についても相談しましたが、そもそも論の部分で勧められず、これについては全ての健常者含めての話だったので自己判断にさせていただきました。
1度、運動中を含めた心拍数の変化や心電図って見てみたかったので、とても良い貴重な機会でした。

診察が終わった後、病院近くの魔女のコッペパンに寄って2つ買いました。中身は、大人のハムサラダと抹茶有機あんこです。
ふとGoogle Mapsのお店情報を見ると、8月に長期休暇していたために店じまいと勘違いされたのか閉業扱いになっていたので、申請して復活させていただきました。
2017年11月22日には、浦和駅東口の浦和パルコ地下1階にも出店されるとのことなので、自動車での来店でも買いやすくなるのでは無いか?と思います。

Raspberry Pi関連の事

前回の記事でご紹介した英Pimoroni BOSCH BME680ですが、試行錯誤の末にRaspbianにデーモン化して実装出来ました。
Pythonアプリを、ここまで大々的に書くのは初めてだったので骨が折れました。マルチスレッド化やデーモン化ってちょっと普通の書き方と違うので。 Githubで公開しようか迷ってて、そこで必要なマークダウンファイルの書き方を今探っていたりしています。
コードがとにかく汚いわりに、仕事はちゃんとしてるので出すかわかりませんけどね😅

今までサポート機で使っていたRaspberry Pi Zeroと、置き換えで余ったBME280を使って2階の計測をはじめました。
複数箇所のデータ計測を想定して作っていたので、サクッとできちゃいました🍪

Raspberry Pi Zero Wを買っちゃいました。
スイッチサイエンスの抽選販売に申し込んだら当選。
ちょうど病院にいた時にそれを知って、診察順を待ってる間に他のモノを見ながら散々悩み、何とか送料無料3000円分注文して2日後に届きました。
レビュー記事はまた後ほど。

久々に家電買っちゃいました

久々に家電を買っちゃったので、勝手に1コーナー新設😅
ツインバード工業 サイクロン スティック型クリーナー TC-EA35Wです。
以前書いた9月のシルバーウィークの旅で、宿泊先のお宅で掃除する時に使わせて頂いたのがコレだったのですが、とても使いやすい上に調べたら値段もお手頃だったので買っちゃいました。
同社のスティック型サイクロンクリーナーの中では吸引力が弱いほうなのですが、他社製のロングホースと違って本体と吸込口がとても近いのでロスが少なく良く吸ってくれるんです。
そして、コンパクトさゆえにダストボックス容量が少ないものの、紙パックを使わないのでマメに捨ててもフィルターが壊れない限り経済ロス資源ロスゼロ。
長い棒は脱着可能で、スイッチがこの棒にも本体にも付いてるので、コマメにスイッチのオンオフが可能。だから節電にも効果的。
音が大きいのが気になりますが、これだけ軽くてコンパクトだと楽にマメに掃除機かけられるので気に入りました。

今週のダイエットサマリーはおわり。
新しい掃除機で掃除してたら、無くしたと思っていたマイクロSDカードのレシートを見つけました。
このマイクロSDカード、長らくRaspberry Pi 2で使っていたのですが、再起動時にカーネルパニックが頻発して御役御免となり、他の用途で使ってみようかとCheck Flashで念のため調べたらエラーがいくつも出たので故障扱いにしました。
Silicon Power SP064GBSTXBU1V10SPという商品で、永久保証品だったのですが調べるとレシートや通販サイトの購入履歴が無いと保証を受けられないとの事。
それがヒョッコリ出てきたのでラッキーでした😁

今週もお読み頂きありがとうございました。
次回もお楽しみに!