ラベル Raspberry Pi の投稿を表示しています。 すべての投稿を表示
ラベル Raspberry Pi の投稿を表示しています。 すべての投稿を表示

2018年4月24日火曜日

4月第3週(4/15~4/21)ダイエットサマリー 体重増加中
今週のRaspberry Pi関連

夏日

週末の土曜日。気温がぐんぐん上がって夏日になりました。
普段使っている水筒も百均ボトルに替え、アイスカフェラテで至福の1杯☕
週間予報を見ると、最高気温が20℃以上の日が続くようなのでそろそろコタツをしまおうと思います。

体重増加中

先週末から始まった体重増加が今週はそのまま上がってフィニッシュに。
マラソン大会を控えて、体重増加は足への負担を大きくするのでできるだけ絞りたいのですが、逆にスタミナ不足でノックダウンってのもあるのでこの時期の減量はしたくないのが正直な所。
大会終わるまでは、出来る限り現状維持でしょうかね。

久々のランニング

筋トレは今週もいつも通り。
マラソン大会を2週間後に控え、気分も乗ってきたので1ヶ月ぶりに走ってきました。12km。
1ヶ月も間があくと翌日まで筋肉疲労が残って筋肉痛に。
それでも、ハーフマラソン完走できる手応えはつかめたので、このまま故障さえしなければ完走できそうな気がしてます。

今週のITツール

久々のRaspberry Piネタです。

東芝 EXCERIA microSDXC 64GB THN-M301R0640A4

実はこれ、間違って注文しちゃいました。
本当は読込速度90MB/sのTHN-M302R0640C4を注文したかったのですが、商品ラインナップを誤解していてこちらを注文。
Windowsで動作チェック中、すでに使っている他の2枚より遅かったのを疑問に感じてパッケージを見たりサイトを調べたりして発覚しました。

ところで、Raspberry Piは残念ながら起動時に使用するSDカードの相性が多い機器で、海外の有志が作成している相性報告一覧を見るとそのことがよくわかります。
原因もホボ特定されていて、Raspberry Pi側のeMMC/SDカードのホストコントローラのバスクロックに対し、SDカード側のコントローラが対応しておらず、処理の整合性が取れなくなってデータ破損が発生してしまうようです。
SDカードが悪いのか?安物だから、海外製だから悪いのか?というとそうではなくて、SDカードには最低限コレは守ってという仕様があって、SDカードアソシエーション創立企業の1社であるパナソニックのホームページに記載がある通り、Busインターフェース規格が決められています。
SDカードメーカーはこれに基いて作っているので、規格通りの機器ならば問題なく使えます。

それでは、Raspberry Piは規格外なのか?というと結論から言えばそうだと思いますし、問題なく動いちゃってるSDカードのほうがむしろスゴイのだと思います。
ARM系SoCは、eMMCと呼ばれるオンボードで実装するフラッシュメモリを外部ストレージの起動ドライブとして使うのが普通なので、設計段階で規格を合わせますから相性問題は起こりにくいのです。
実際、公式OSであるRaspbianのソースコードを読んでもeMMCドライバを元にSDカードドライバが記述されていますから、おそらくeMMCコントローラのハードウェア互換性の範囲内でSDカードを実装したのでしょう。
一部スマートフォンなどで実装されてるSDカードスロットは?というと、別途SDホストコントローラが実装されている事が多いので、多種多様なSDカードに対応しつつ使えないのはキッパリ使えませんと明言してたりソフトウェア的にチェックして弾いたりの工夫がされます。

Raspberry PiのSDカードの相性問題の話は、あくまで本体上のSDカードスロットを使った場合だけです。
USBポートに市販のSDカードリーダーを挿して使う場合は、そこに別のSDホストコントローラが実装されUSBバスとI/Oしていますから相性問題が起こらないのではないか?と思い、現在そのテストをしていて結果は良好。
Raspberry Pi 3から実験対応されたUSBブートを使ってカードリーダーから起動すれば、もしかしたら同様の理由で相性問題が起こらないかもしれません。
試してないので予想ではありますし、多分大多数の人は相性の無いSDカードに買い換え元のSDカードを別途マウントするか他で使うかしちゃうでしょう。

ということで、今週のダイエット?サマリーはコレでお終い。
普段なら読むのも書くのも大変な大量の文字・文章は避けるようにしているのですが、今週はちょっと技術的な要素があったので長くなってしまいました。
しばらくアウトドアばっかりでITから離れていたので、そろそろ再始動したいですね。

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

2017年12月22日金曜日

12月第2週(12/10~12/16)ダイエットサマリー まだ早いよ正月太り
越谷名物 慈姑(くわい)
今週のIoT(Raspberry Pi)

越谷名物 慈姑くわい

こしがや産業フェスタで頂いたくわい大福にハマり、今度は饅頭をいただいてみようと埼玉県越谷市越ヶ谷にある岡埜おかの製菓店にやってきました。サイクリングで🚴‍♂️
こしがや産業フェスタで見かけなかったくわいの里がある事にお会計終わってから気がついたのですが、次回の楽しみにとっておくことにしました。

今回は、くわい饅頭をお茶請けにコーヒータイム☕
中は、アンコが入っていて、中心に慈姑が丸ごと1粒入っています。
栗に似た食感で、味はさっぱりしています。
美味しかったです。ごちそうさまでした。

お正月はまだなのに肥える

お正月に向けて順調に肥えてます。ダメじゃん😅
ここ最近デスクワークが増えていて、そのストレスが胃に直撃。
その胃の不快感を食事でケアするので、どうしてもこうなっちゃいます。
その結果が、低炭水化物筋トレダイエットをする前の体型でした。
当時と違うのは、体が絞れている分運動トレーニングがしやすく、また、室温10℃前後という今の季節の日中外気温並の部屋でも過ごせているので、基礎代謝・運動代謝でカロリー消費しやすい体になっています。
ストレスと運動と食事を上手くコントロールしなくちゃですね。

筋トレはいつも通り

筋トレは、今週もいつも通りです。
相変わらずサイクリングを楽しんでいるのですが、そろそろクロスバイクかロードバイクが欲しくなっています。
ただ、私のサイクリングスタイルだと良く出先で買い物をして帰りますし、良いコンディションの道路ばかり走るとは限りません。時には砂利道や田んぼのあぜ道を走る事もあります。
また、トレーニング目的なので軽さや走り装備の充実からくる快適性は、体を鍛える点では逆効果。
そして、法律と照らし合わせると問題山積で、それを満たそうとするとBAAの要件が絶対条件になります。
私が普段乗っているバッテリー劣化して電動アシストが使えないただ重いだけの電動自転車は、BAA準拠でお墨付きシールが貼られています。
BAAは、PRが安全基準中心なのでそれだけだと思っていたのですが、大人の事情もあってか、とても奥が深いと改めて知りました。
もうしばらく、今の自転車を整備しながら乗り続けようと思います。

今週のIoT Raspberry Piグッズ

Raspberry Pi 3で使うアクリル板積層タイプのケースが届きました。
ネジが2mmで長さは20mm。黄色いスペーサーネジは4mmで、アクリル板は全部で16mm厚あります。
付属のヒートシンクは裏面にシールが付いていて、1度貼り付けるとなかなかハズせないしっかりしたモノでした。
単独で普通に使う分には問題ありませんでしたが、処理負荷を常にかける使い方や拡張ボードを上面に追加すると熱がコモリやすいので、アクリル板を何枚かはずしてヒートシンクの露出を増やし、エアーフローを見直す必要がありました。

次は、Camera Serial Interface(CSI)用カメラ。Raspberry Pi用として売られていたものです。
CMOS500万画素固定焦点レンズのカメラで、なかなかの高画質。動画もバッチリ。
ただ、1つ難点だったのが色合いで、何となく全体的に緑が強いかな?って思いました。
市販カメラも、ソフトウェア補正は付き物なので、上手いこと使ってみようかな?と思います。

最後は、Raspberry Pi用HDMI接続3.5インチ液晶タッチパネルディスプレイです。
Raspberry Pi用に作られているので、端子の突起や配置が特殊ですが、HDMI接続なのでMacやWindowsのサブモニタや、その他HDMI接続可能な映像機器でも使えます。
電源はmicroUSBで、消費電流を測ったら約350mAでした。
本体に電源スイッチが付いてるので、Raspberry Piに取付けて使っても適宜ディスプレイのみ電源を落とすことが可能。ただ、HDMI信号オフの時はブルースクリーンのままなのでソフトウェアのみでの制御は難しそうです。
また、物理解像度480x320なので、対応解像度こそ1920x1280ですがドット潰れで厳しいと思います。サイズも3.5インチなので、文字のような視認性を要求される場合は文字サイズを大きくしないと見にくいと思います。

今週のダイエットサマリーはコレで終わり。
銀行の両替機を見たら2000円札が補充されていたのでゲットしてきました。
1000円以上2000円未満の決済時に、これ1枚だと釣り銭が小銭のみの受取りで済むので好きだったりします。
お金は、使いにくいほうが減りにくくて良いのですが😅

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

2017年11月30日木曜日

Raspberry Pi 3はとてもデリケートなマシンでした

Raspberry Pi 3買っちゃいました💻

ついにRaspberry Pi 3 Model Bを買っちゃいました。
たまたまAmazonクーポン2千円引きを見つけたので、迷った末の購入でした。
先日、Raspberry Pi Zero Wを買ったばかりなのですが😅

さっそく使ってみる

発送先を配送センターにしてもらい、朝1で取りに行ってきました。配達してもらうよりそのほうが早く確実なので🚚
動作確認のため、先日買ったばかりの東芝 Exceria 64GB最新版RASPBIAN STRETCH WITH DESKTOPをEtcherでイメージ展開。
Raspberry Pi Zero W同様にWi-Fi/Bluetoothが実装されているので/boot/wpa_supplicant.confを作り、SSHを有効にするため/boot/ssh.txtを作りました。
OTG接続は出来ないので、config.txtとcmdline.txtはそのままです。
久々のGUI版Raspbianということで、HDMIでモニタを繋いで映しながら、PCからSSH接続&VNC接続で操作。
sudo apt-get update👉sudo apt-get upgrade👉sudo rpi-update
ソフトウェアを最新にアップデートし、GUIから地域情報やキーボードレイアウトなどを設定しつつ、SSH側から/etc/dhcpcd.confを編集してネットワークの設定をしたり。
その後、すでに動かしているRaspberry Pi 2の置き換えを想定した、諸々のパッケージのインストールや設定をしました。
ちゃんと動くので大丈夫そう・・・と思ったのですが。

雷が落ちてる⚡

動作確認中に気になったのが、画面右上の⚡マークでした。
調べてみると電力不足の警告で、以前のRaspbianの場合は四角いレインボーカラーのマークだったものです。
諸々の設定や動作確認を終えたあと、VNC経由で接続したGUIでChromiumを起動しYoutubeの動画を再生してみました。
相変わらずの⚡マーク表示のまま強行したところ、再生開始👉全画面表示=フリーズ🍧
まったく操作できなくなって、あえなく強制電源OFFしました。

Raspberry Pi 3 Model Bがリリースされた当初、電源MicroUSBにつなぐアダプタ電流量は2.5A推奨というのを覚えていました。
そのため、普段持ち歩き用で使っている最大3A/4USBポートのUSB電源アダプタを使っていたのですが、それでも⚡マーク出っぱなしだったので不思議でした。
電圧電流計をアダプタ側に挿し、そこからUSBケーブルを伸ばして接続していたのですが、推移を見ると5.0xV。電流も1Aにも達していません。
だから、電力不足は無いのになぜ?と不思議でした。

⚡マークの厳密な意味を調べてみると、電圧不足が原因とのこと。電力は電力でも、電流不足では無かったのです。
Raspberry Piの想定電圧って厳密にどれぐらいなのか調べてみたところ、公式ページにその記述があり5.1Vとの事でした。そして、電流要件の2.5AというのはGPIOやUSBなどに機器を接続した場合に必要となる容量なので、最小構成ならば1Aもあれば十分なようです。
つまり、問題は電圧ということでした。

Raspi UPS HAT Boardが使えなかった

Raspberry Pi 2で使っているRaspi UPS HAT Boardを後々Raspberry Pi 3でも使おうと思っていたので、その動作確認も兼ねて電圧不足対策の検証実験をしてみました。
そのため、シャットダウンして諸々のケーブル外して持ってきました。

硬くて中々外れないGPIOに刺さってるRaspi UPS HAT Boardを頑張ってはずし、Raspberry Pi 3に挿します。
見た目一緒なので、どっちがどっちかパッと見わかりませんけどね😅

そして、HDMIのみ接続してバッテリー給電で立ち上げました。
そしたら、残念な事に起動直後から⚡マークが出っぱなし。
負荷テスト代わりにしていたChromiumでのYoutube再生も、すぐにフリーズして撃沈。
Raspberry Pi 3未対応というのがわかりました。

続いて、Raspi UPS HAT Boardを付けたまま、電圧不足だったUSBケーブルやUSBアダプタを色々試してみましたがいずれも撃沈でした。
電圧安定用のコンデンサ代わりにRaspi UPS HAT Boardが使えないかと淡い期待を抱いていたのですが、そもそも5V電圧を3.7Vのリチウムイオン電池から作り出すDC/DCコンバーターの段階でダメなので無理のようです。残念😭

意外な発見もありました。それは、Nexus 5付属のLG純正ケーブル&USBアダプタが使えてしまった事でした。
最初の動作確認中、常に100円ショップの短い2A対応充電ケーブルのみを使ってあれこれUSBアダプタを試していたのですが、ケーブルの挿し替えが面倒で充電用に常に転がしてあったコレを挿したんです。
純正ケーブルの長さは約1m。100円ショップのモノより長いのですが、使えたということはそれだけ抵抗値が少ないということです。
純正だけあってケーブルにちゃんとスペックも記載されていて、100円ショップモノで良くありがちな素性の良くわからんケーブルではありません。
また、アダプタは5V1Aという表記のみでしたが、USB電流電圧計で電圧を計ってみたところ、一般的にRaspberry Pi 3で使えると言われているiPad用のApple 12W USB電源アダプタとほぼ同等の数字でした。 さすが、Googleの名前を背負ったAndroid機の付属品だけの事はあります。

結論。純正品がオススメ

Raspberry Pi 3で使う電源は、一般的なUSBアダプタよりも求められる電圧が厳しい事が今回わかりました。
USBの正式な規格では5V±10%、5.25V〜4.75Vの範囲内で、汎用品として売られている商品はこれを満たすように作られています。
ですから、それらが粗悪品というわけでもありませんし、それ以前にUSB規格外の大電流を流しちゃってる時点で逸脱している事は良く言われる話です。
また、一般的に言われている2.5Aの電流量の話よりも、Raspberry Pi本体へ届いた時の電圧が5.1Vキッチリでているかどうかが問題でした。

それらの検証結果から得た結論。
使う電源アダプタは、純正アダプタを使うか、最低でも高負荷検証済みアダプタを使ったほうが良いでしょう。

私もこの後、どちらかのアダプタを購入しようと思います。
ケースもまだ買っていないので追加出費です😭

今回の話はRaspberry Pi 3 Model Bに限った話で、私が持っているRaspberry Pi 2/Zero/Zero Wについてはこの限りではありません。
特にZero/Zero Wについては、PCに直接接続して使えてしまうぐらいです。
私が持っていないモデルも同様に、Raspberry Pi 3 Model Bほどシビアな電圧条件ではないかと思います。
ただ気になるのは、Raspberry Pi 2 Model B V1.2です。
違いはSoCで、従来のRaspberry Pi 2 Model B V1.1のBroadcom BCM2836からRaspberry Pi 3 Model Bと同じBCM2837に変更になったモデルです。ただし、周辺回路がそのままなのか、クロック周波数が900MHzに抑えられています。
果たして、これが従来品程度の電圧要件なのか、それともRaspberry Pi 3 Model B同様にシビアなのかです。

もうしばらくRaspberry Pi 2に頑張ってもらわないとならなさそうです。

2017年11月17日金曜日

Raspberry Pi+Raspbian stretchでwkhtmltopdfを使ったホームページ画像化しGoogleフォトにアップロードする

事の発端は毎週のダイエットサマリーブログ

毎週掲載しているダイエットサマリーブログで、体組成データや筋トレチェック表を画像化して掲載しています。
以前ご紹介した画像化の方法でしばらく使っていたのですが、OSアップデートによる変更で動作しなくなったり、SDカードの破損で運用そのものが危ぶまれたり、踏んだり蹴ったりのトラブル続出で使用中止していました。
代替案で、他の端末からスクリーンショットをアップロードして使っていたのですが、その作業がとにかく面倒くさい😭
Raspbian stretchで強化されたセキュリティ関連のクセが、やっとここに来て飲み込めて来たので楽したくて再チャレンジしました😤

wkhtmltopdfに巡り合う

あれこれ探した末に見つけたのがwkhtmltopdfでした。
Google製のアプリで、HTMLレンダリングエンジンWebkitを使って展開し、それをPDFや画像ファイル化するためのものです。
対応OSもWindows・macOS・Linuxに対応しているので、私のようにあれこれ使う人にとってはとても助かります。

Raspbian stretch LITEにインストールするも動かず

インストール方法は、おなじみのaptを使います。

sudo apt-get install wkhtmltopdf
使い方は、下記のコマンドです。
wkhtmltoimage [URL] [画像ファイル]

Raspberry Pi Zero Wで使ってみたのですが、下記のようなエラーが出て動きません。

QXcbConnection: Could not connect to display
中止
フレームバッファが必要なのかも。

仮想フレームバッファ Xvfbで実行

前回画像化でも使った仮想フレームバッファ Xvfbを今回も使います。
まずは、インストール。

sudo apt-get install xvfb
次に、仮想フレームバッファをこのアプリで作成し、そこでwkhtmltopdfを実行します。
xvfb-run -a -s '-screen 0, 1024x768x24' wkhtmltoimage [URL] [画像ファイル]
これで、どんな環境でも使えると思います。

出来た画像ファイルをupload-gphotosGoogleフォトへアップロード

使わせていただいているブログサイト Bloggerの記事作成機能はとても便利で、Googleフォトの画像も直接貼り付けられます。
そこで、HTMLから作った画像を、upload-gphotosGoogleフォトへアップロードします。

upload-gphotosはTypeScriptで書かれていますが、JavaScriptへトランスパイルされたモノがnpmでインストール可能なので、今回はそれを使わせていただきます。

node.js、npm、nを最新に

Raspbianに標準インストールされているパッケージが古く、そのままでは動きません。
そこで、最新版のインストール作業から始めます。

まず、パッケージリストを更新します。

sudo apt-get update
次に、npmをインストール。
sudo apt-get install -y npm
次に、npmの最新版をインストール。
sudo npm install -g npm
npmをnpmでインストールってなんかだか不思議な感じですけどね😅
このブログを書いてる段階のRaspbian最新版September 2017では、下記のようなエラーがでます。
/usr/bin/env: ‘node’: No such file or directory
これは、node.jsのコマンドであるnodeがないために出るエラーです。nodejsという古い名前のままなので、nodeという名前でリンクを作ります。
sudo ln -s /usr/bin/nodejs /usr/bin/node
そして、再びnpmの最新版をインストールするコマンドを実行すると処理が始まります。 npm最新版になったら、次はnode.jsのバージョン管理パッケージnをインストール。
sudo npm install -g n
やっと、本題の最新版node.jsのインストールです。
sudo n stable
もし、最新バージョンがリリースされているにも関わらずError: invalid version~というエラーが出た場合、そのバージョンのターゲットCPUのパッケージがまだアップロードされていない可能性があります。
Raspberry Piは、現段階でARMv6/7/8の3種類のCPUアーキテクチャ商品があります。Raspberry Pi 2 V1.2と3(コンピュータモジュール含む)がARMv8、Raspberry Pi 2 V1.1がARMv7、その他はARMv6です。ARMv8は64bitアーキテクチャなのでARM64としてリリースされてる事が多いですが、Raspbianは互換性維持のために32bitで動かしているので実質ARMv7と思って良いと思います。
ご使用のRaspberry Pi用CPUアーキテクチャパッケージがアップロードされていない場合は、
sudo n [バージョン番号]
直接バージョン番号を指定してインストールしてください。
あるかどうかの確認は、ダウンロード先のnodejs.orgにブラウザでアクセスし、バージョン毎にディレクトリ(フォルダ)が分かれているので、その中にlinux-arm~l.tar.gzってのがあるか確認し、ある中から最新バージョンのモノを指定してください。
念のため、インストールしたnode.jsのバージョンを確認しておいてください。
node -v
もし、古いバージョンのままの時はリンク先が古いものを指してるはずですので、最新版に変更すればOKです。

upload-gphotosをインストール

ここまで来たらもう一息!
upload-gphotosのページの下のInstallationのnpm (Recommended)を参考にインストールします。
スーパーユーザーでインストールするので、sudoを付けて実行してください。

sudo npm install -g upload-gphotos
使い方はこんな感じ
upload-gphotos [画像ファイル名] -u [Googleフォトユーザー名] -p [パスワード] 
ログインエラーが出た場合、安全性の低いログイン技術を使ったアプリの利用許可がされていない可能性があります。 安全性の低いアプリによるアカウントの使用を許可するの説明を参考に、安全性の低いアプリの許可にアクセスして有効にしてください。

シェルスクリプトでサクッと実行

準備は整ったので、これを組み合わせて簡単に実行でいるシェルスクリプトを作ります。
便宜上スクリプト名はhtml2pngとします。

nano html2png
#!/bin/bash
# 一時ファイルを作る
tmpfile=$(mktemp --suffix=.png)

function rm_tmpfile {
  [[ -f "$tmpfile" ]] && rm -f "$tmpfile"
}
trap rm_tmpfile EXIT
trap 'trap - EXIT; rm_tmpfile; exit -1' INT PIPE TERM

xvfb-run -a -s "-screen 0, 1024x768x24" wkhtmltoimage --width $2 $1 "$tmpfile"
upload-gphotos "$tmpfile" -u [ユーザー名] -p [パスワード]
出来たら実行権限を追加します。
chmod +x html2png
使い方はこんな具合。
html2png [URL] [横幅px]

upload-gphotosでちょっと気になった不具合

例によって、Raspberry Pi Zero W+Raspbian Stretch Ver.September 2017ベースで試していたのですが、upload-gphotos実装直前までこぎつけて不具合を見つけました。それは、他のRaspberry PiからSSHコマンドを使ってリモート実行した時に起こりました。

1つ目は、アップロード時のプログレッシブバーが表示されません。
wkhtmltopdfのプログレッシブバーや他の文字は表示されているので、upload-gphotosで使われてるモジュール固有の問題のようです。
原因を調べてみると、TTYチェックしてる部分があってそうじゃない場合はそもそも表示しないようなのです。
なぜ除外してるかさらに調べた所、1行の長さを取得してる部分があってそれがTTYじゃないと取得できず、仮にチェックを無効にしてもその後の処理でエラーになってしまいました。
まぁ、仕様通りの動作ですし、進捗状況が未表示でも問題ないので、このまま使わせていただく事にしました。

問題だったのはもう1つの不具合でした。
アップロード終了後に諸々の情報を表示して終わるのですが、それがSSHコマンドからの直接実行だと終わらないのです。
通信処理を非同期で行っていて、それをメインモジュールで同期モードで動かしてるようなのですが、TypeScriptとJavaScriptのトランスコンパイルの部分で仕様差が吸収出来てないような気がしました。
そのままではいろいろ困るので、cli.ts(cli.js)の末行付近にある

console.info(JSON.stringify(photos, null, 2));
の次の行にプロセスの終了命令を追加しました。
process.exit();
これで、終了しない不具合は解消されました。

最後の最後でまさかの!?

やっとブログも書き終わる!と思った矢先に、まさかの不具合発覚。
曜日が表示されていないのです。なぜ?どうして??
原因は簡単でした。日本語フォントがインストールされてなかったんです😅
ということで、Google Noto Fontsをインストール。
sudo apt-get install -y fonts-noto

無事に曜日が表示されました。

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

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もそろそろバージョンアップかな?と思っています。

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