環境更新...27インチディスプレイ

工作環境で使っているPCは、10年くらい前に買ったdellのセットもの。

メモリー増やしたり、HDDをSDDに変えたりと向上させながら使ってます。
最近、WWWを調べながらTeraTermたたいたりとやってると、画面が小さいのが気になりだしました。19インチだとやはり限界です。

Amazon調べると27インチモニターは、2万円でお釣りが来ることが判明。もっと、お値段するものという先入観でした。迷わずポチッ。4,000円クーポンとこの前のAmazonカードで1.3万円でした。

購入したのはこちら。

古いマザーボーボードに乗ってるビデオチップなので最高でも1280x1024までしか解像度上がりません。
それはいかんと、追加でビデオボードもポチっ。

ここからちょっとはまります。ビデオカード買うときにPCI expressは、x1でもx16でもそれぞれ互換性あるとのことだったので、安心してたのですが。

マザーボードは、PCI expressが1本とPCIが2本。このPCI expressは、すごく小さいコネクタです。x1とx2~x16は、コネクターが違います。がーん。
買い直すか、もう本体新しいの買っちゃうかと調べてみると、ありましたきわものが。
PCI expressのx1とx2以上を変換して接続してくれるケーブルです。ただし。これ使うとビデオカードをマザーボードに固定できないので、ビデオケーブルをビデオカードに接続しPCケースの中に宙ぶらりんで収納する必要があります。

いろいろとはまり、追加ポチっでビデオカード5千円、きわものケーブルが2千円と結局ディスプレイ交換は2万円ほどかかりました。
おかげで、

1920x1080まで表示できるようになり、画面がすごく広くなりました。

 工作環境のbefore,afterです。
before

after
工作環境は、工具類が整理されPC環境もよくなりました。あとは、中身の充実です。

Pi zero W...その2

しばらく寝かしておいたPi zero Wですが、ちょっと触ってみます。

WWW情報を眺めているとキーボードやHDMI出力しなくても、USB接続のみで設定できるようです。HDMI変換器等買っておいたのですが不要でした。

参考にしたのはこちら。
https://qiita.com/Liesegang/items/dcdc669f80d1bf721c21
https://qiita.com/mt08/items/ce5e3911d74d7fad4563

imageはこれを選択しました。SDカードは8MBを使用して書き込みます。
 2018-06-27-raspbian-stretch-lite.zip

参考にあるconfig.txtとcmdline.txtに設定の追加とsshファイルの作成をnotepad等で編集します。改行コードとか大丈夫かなと心配しましたが、気にしなくていいようです。

それからUSB関連のRNDISというドライバーをインストール。これで、USB EtherにPi zeroが母艦PCから見えます。これは、理解するまで時間かかりました。絵にしたらこんな感じです。解ってしまえばああそうかですが、仮想Etherのところがシリアルというイメージから離れられず、結構悩みました。母艦PCからNICを2枚刺したように見えます。


いったん母艦PCを電源オフします。同時にPi zero Wもブチッと電源切れますが、
目をつぶりましょう。

立ち上がってくるとUSBの仮想ネットワークにもDHCPでIPアドレスが振られます。
あとは、母艦からTeraTerm等でsshで接続することができます。
コアが1個なので画面一番上のラズベリーが1個です。

この状態だとインターネットにはつながりません。母艦PCのインターフェイスの
設定でローカルエリアネットワークの設定で共有タブを選択し、「ネットワークの他のユーザーにインターネット接続を許可する」を選択します。
RNDIS上のネットワークアドレスが変更され、再度DHCPでアドレスが割り当てられます。
コマンド プロンプトから「arp -a」で再確認できます。

あとは、ラズパイの初期設定です。こちらを参考に。
https://qiita.com/mt08/items/edefa35a7cefc726379e

%sudo apt-get update
%sudo apt-get upgrade

まで実施して、
%uname -a
Linux pizero 4.14.62+ #1134 Tue Aug 14 16:58:07 BST 2018 armv6l GNU/Linux

と言う状態まできました。

工作環境整備

ラズパイ日記は、暑さのせいにして進んでいません。
気分転換に工作環境の整理をしました。

机の上に乱雑にパーツやラズパイが散乱し、ラズパイの配線で余計にぐちゃぐちゃしていたのですが、工具等を壁に整理することによって、いい感じの工作環境になりました。

有孔ボードすばらしいです。もっと早く気づけばと思いました。

有孔ボード用の金具も各種販売されてます。
注意点は、穴の間隔が25mmと30mmがあり、金具もそれぞれ用なのでボードの穴の間隔と金具をあわせて購入することです。

ボードは、1820x900mmが一番大きいサイズですが、ホームセンターで切ったものが売られてます。ボードと金具が一緒に入ったセットもありますが割高です。

購入した金具は、以下のとおりです。

フックタイプ(20個入りで1,600円)。フックを止めるための小さな金具も付いていて、フックがグラグラしないようになってます。
横受けタイプ(2個入りで300円)

縦受けタイプ(2個入りで300円)

横幅160 mmのかご(1400円)

ボードは、900x300で450円でした。 壁へボードを取り付ける際の注意点は、壁に穴を開ける必要があります。穴を開けたくない場合は2x4の板で工作したり等工夫が必要です。金具を取り付けるため、ボードと壁の間は10mm程度のスペースが必要です。壁への取り付けキットも売ってます(300円)。

壁に密着させると金具が取り付け出来ません。

Pi zero W購入しました。

品薄だったPi zero Wですが、チップ抵抗などの買い物ついでにポチりました。

単品ではなくケースとセットになったものを購入しました。
カメラ用の変換ケーブルフィルムと足ゴムにケースの蓋が3種類(左からPinヘッダー穴あり、カメラ用穴あり、穴無し)
専用ケースなのでピシャットはまります。フリスクの空き箱にもちょっと加工すれば入るそうです。
接続用の穴は3つ。左からmicro HDMI、micro USB、給電用のmicro USBです。
pinヘッダーにアクセス出来る蓋にしました。
大きさ比較のためにラズパイ2に載せてみました。ほんと小さいです。
設定等は夏休みの宿題にしばらく寝かして起きます。

チップ抵抗1005の半田付け(すごく大変)

ラズパイ2で気温、湿度、気圧を10分毎にAmbientのIoTクラウドに送っているのですが、
いちいちラズパイの画面からWWWページを確認するとかスマホで確認するとか一手間かけないと現在の温度等にたどり着きません。

そこで、小さなLCDに現在の値を表示させようと安直にI2C LCDを購入し接続するも表示できず。

いろいろと調べるとラズパイのI2Cラインのプルアップ抵抗が1.8kΩと意外と小さな値で、 その分流れる電流が大きく、浮遊容量等でLowに落ちないという問題が発生しているようです。

同じ問題にぶち当たった方はネットを見てると、ラズパイのプルアップ抵抗を外すという荒業な方や他のLCD鞍替えする方の記事がありました。

秋月ページを眺めているとI2Cレベル変換器なるものがお安くあります。これは、5Vラインと3.3Vラインを変換するためのものですが、プルアップ抵抗を自分で付けるといういい感じのモジュールです。200円ですし。

早速購入です。

想像以上に小さな基盤です。写真にも書きましたが、黄色の枠に1005のチップ抵抗を半田付けします。1005というのは長辺1mm,短辺0.5mmという規格です。秋葉原ぐるっと回った感じでは一番小さなものは1608しか売ってませんでした。
10個入りで50円。普通のカーボン抵抗は100個で200円と小さいほうがお高いです。
というかチップ抵抗は5,000個巻いてあるリール単位が販売単位です。

1608を基盤に置いてみると
やっぱりはみ出ます。あきらめて、1005チップ抵抗とクリーム半田を発注しました。
あわせて拡大鏡か固定できるルーペも必要です。いろいろとグッズが増えますね。
そのうちリフロー槽とか部品マウンターとか買いそうです。

ポチった品届きました。
 チップ抵抗です。上が1005、下が1608。ルーペのようなものがないとピンセットで挟むのも難しいです。
チップ抵抗を半田付けするためのクリーム半田。注射器のようなものに入っているようです。開封後は要冷蔵で賞味期限もあります。練りこんであるフラックスが変質するそうです。

もう少し環境を整えてから作業します。

LPWAちょっと調べまとめ

LPWA(Low Power Wide Area)の略。低消費電力で長距離通信を行う方式。

ここによくまとまってます。
https://soracom.jp/lpwa/
所管省庁の総務省のお知らせはこちら。
http://www.soumu.go.jp/johotsusintokei/whitepaper/ja/h29/html/nc133220.html

INTEROP Tokyoの「Sigfox」ブースでよーく話を聞いてみました。
1台の基地局で半径十数kmを網羅できるそうですが、10分ごとに12byteしか送信できないそうです。しかも上りのみ。ただし、必要経費は1回線というか1端末数百円/年というお安さです。

数千万台の契約がないと事業としては成り立たないと担当な方は嘆いてました。
Sigfoxは、フランスの通信会社で多数の国に進出し、日本は京セラが専属販売契約をしたそうです。

スマートグリッドに向けて各家庭の電力計の計測とか、水道、ガス等の検針を今は人力でやってますがここのLPWAを適用すると一気にコストが減る感じです。

その他、Lora, NB-IoT等々各種方式がしのぎを削っているようです。

モジュールもそれぞれの方式毎に出ているようです、ESPのように1,000円以下になって、提供エリアが広がってくるとIoTなデバイスでは流行りそうです。
部屋の中でちまちま実験するのはWiFiがつながるのでいいのですが,外でもつながるとなると時計に埋め込んで身体データを蓄積したり、地盤の監視等、低消費電力と広覆域は新たな発見がありそうです。

2年目のラズパイ...10日目(ESP-WROOM-2)...python,LCD

micropythonは、無事動いてくれました。
ソースコードを綺麗に整形して表示できるように、Githubも勉強してアカウントを作成し、使い方を覚えました。

Lチカの状況を動画でblogに張るために、動画編集ソフトを自宅のWindowsマシンにインストールし、スマホで撮った動画を編集しました。非力なマシンなので結構つらいものがあります。Youtubeページで少し前までは編集できたようですが、サービス終了とのこと。

今回は、blogの中身薄いですが手間は結構かかってます。

定番の「Lチカ」IO4ポートに抵抗入りLEDを接続。

LEDをPWMにて明るさ制御する(俗称「Lモア」)

状況の動画です。LチカからのLモア(手ブレあり)です。

あとは、
ちょっと脱線して、小さいLCDへの出力です。
●aqm1602y-rn-gbw python

http://www.takunoko.com/blog/aqm1602xa-rn-gbw%E3%82%92raspberry-pi%E3%81%A7%E4%BD%BF%E3%81%86/
http://kaizou55.blog84.fc2.com/blog-entry-5.html

今回は間に合いそうにないので、また次回に。

2年目のラズパイ...9日目(ESP-WROOM-2)

ちょくちょく配線をすすめて、ようやく準備が整いました。

スイッチ2つはRSTと書き込みモードのためです。

●ARDUINO IDEでESP-WROOM-2に接続する
http://kohacraft.com/archives/1069194073.htmlx
●TeraTermで接続する
https://www.petitmonte.com/robot/esp_wroom_02_at_command.html

配線完了。
 

最初は、シリアルモニターから「AT」と叩いても、うんともすんとも言いませんでした。
コーヒーを飲んで、気分一新し新しい視点で見直すとなんだ「Tx,Rxの配線が逆じゃないの」、Tx→Tx,Rx→Rxと接続してました。

それを直すとすんなりとATコマンドの返信が戻ってきました。よっしゃ。
これで、シリアル経由でESP-WROOM-2にアクセスしているところまでは
確認できました。

次は、MicroPython化です。
https://15jamrecipe.jimdo.com/mixjuice/%E3%83%95%E3%82%A1%E3%83%BC%E3%83%A0%E3%82%A6%E3%82%A7%E3%82%A2%E3%81%AE%E6%9B%B4%E6%96%B0/
●windowsからbinを書き込むツール
https://www.espressif.com/en/support/download/other-tools?keys=&field_type_tid%5B%5D=14
●micropythonのバイナリー
http://micropython.org/download
●書き込みモードの話
http://blog.bluedeer.net/archives/109

micropythonのバイナリーを書き込みツールで書き込んでみる。

ちゃんとfinishして、書き込まれているようです。
 コマンドラインにもuploadとなにやら表示されます。

再度、リセットしてシリアル叩いてみますが、反応ありません。
うーん。今週は、ここまで。
次回は、micropythonをなんとしても動かすですね。

2年目のラズパイ...7日目(ESP-WROOM-2)

ブレッドボードが小さいので、大きいほうに入れ替えます。今日は、USB-Serial変換器の電源周りとシリアル機能を確認します。


まずは、
●USB-Serial変換器のドライバーの話
 https://synapse.kyoto/tips/FTDI_driver/page001.html

USB-Serial変換器ですが、Win7にドライバーが必要なのでインストール。
COM6にて認識してます。

まずは電源周りを確認します。USBバスから出てくる5Vです。
LED直結ですが、最近は抵抗入りという便利なものがあります。これも抵抗入りです。
3端子レギュレーターで5Vを3.3Vにした出力の確認。
こちらも、問題ありません。
シリアルは、TxとRxを接続します。
写真手前側の黄色いラインでTxとRxを接続してます。
あとは、TeraTermでキーボード入力した文字が表示されれば機能確認はOKです。
ちゃんと入力した文字が表示されます。

ここまでで事前準備はOKです。電源周りの5Vと3.3Vの確認。シリアル機能の確認が出来ています。
ハード系は地道に確認していかないと不具合が発生してからどこが悪いというのを後から調べるのは大変です。部品外したり、線を切ったりとしないといけなくなるので、出来たところ毎に確認して進めたほうが手戻りは少ないです。

2年目のラズパイ...6日目(ESP-WROOM-2)

USBケーブルを間違えて購入し、先週は進みませんでしたが、よくよく確認してmini-bケーブルを入手しました。

まずは先人の知恵をよく調べます。
https://tpedia.tech.gr.jp/20160111434/
https://qiita.com/hnw/items/3869f435405054511fda

要点をまとめると
  • ESP-WROOM-2は3.3V駆動、結構電力が必要。RL232の3.3V端子では電流が足りない
  • USB給電の5Vを3端子レギュレータを使って3.3VにしてESPへ給電する
  • ESP-WROOM-02には、書き込みモード、実行モード、SDブートモードがある

まずは、電源ラインから、
USB給電の5Vを取り出し、レギュレータに入れて、3.3VにしてESPに給電します。
レギュレータはJRC製のNJU7223F33を使用します。ピンは、向かって左から1.Vout,2.Vin,3.GNDです。
ノイズ対策のためVinには積層セラミックコンデンサ10μF、出力電圧安定化のためVoutには電解コンデンサ470μFを接続します。

まずはこんな感じで

GNDの配線をしていきます。

データシートと現物見ながらやってると疲れます。やっぱり配線図作成してから一気に配線したほうが楽だし間違わない感じですね。

家にいるといろいろと割込みが入り、今日はここまでです。

2年目のラズパイ...5日目(ESP-WROOM-2)

ラズパイからちょっと離れて、Wi-FiモジュールESP-WROOM-2としばらくは、戯れたいと思います。
それぞれのデータシートはこちら(ESP-WROOM-02FT232RL

まずは、足とジャンパーにピンヘッダーを半田付けします。

Wi-Fiモジュールはこちら。銀色のデバイス左側がWi-Fiのアンテナです。

USB-シリアル変換はこちら。USBは、ミニBでした。買ったケーブルはマイクロB(涙)。確認したつもりでしたが。

ブレッドボードに刺した全体はこちら。
10円と比較してますが、それぞれ非常に小さなデバイスです。

2年ぶりのラズパイ...4日目

ラズパイ+センサー+クラウドは、前回までで終了しました。

1週間ほど経ちましたが、問題なく稼働中です。グラフは横軸1メモリ/日です。夕方気温のピークがきて朝方に向かって下がってます。この一週間は日に日に気温のピークが上がってましたが、昨日夕方から急に気温も湿度も下がり過ごし易い環境です。

ラズパイは商用運用中なので突発停電対策はしておかないと、また痛い目にあいます。
モバイルバッテリーで充電と放電を無瞬断でやってくれる優れものがあるそうなので、ただいま探索中です。

先週は、 秋月にいっていろいろ買いこんできました。
 2年前から寝かしていたESP-WROOM-2、Wi-Fiモジュールです。マイコンとWi-Fiモジュール、アンテナが付いて650円です。技適も取っているので、電波法違反にもなりません。
 ラズパイからちょっと離れて、今日からこれにセンサーをつけて、クラウドと連携させたいと思います。
ハード的には、USB-シリアル変換経由でこいつにアクセスします。ソフトウェアはデフォルトでATコマンドに反応するマイコンが入っています。この部分にmicropythonを送り込むとライトなpythonが動くようなので、そこまで行きたいと思います。


2年ぶりのラズパイ...3日目

GW中に終らせようと思っていましたが、そうはいかず。
週末を中心に更新します。

今日は、AmbientというIoT専用のクラウドサーバーに、ラズパイからセンサーデーターをアップすることについて頑張ります。

以下がambientのトップページ。無料で使えます。
https://ambidata.io

クラウドとのやり取りをするpython libをインストール
https://github.com/AmbientDataInc/ambient-python-lib

まずは、ambientのアカウントを作成します。
メールにWebでの認証リンクが送付されクリックするとアカウント作成完了です。
次は、チャンネルの作成。IoT機器との入出力口になるらしい。4桁のIDです。
同時に、送信用と受信用の鍵が作成されます。

先ほどのチャンネルIDと送信用鍵の組み合わせで、ポートの認証を行っているようだ。
画面はこんな感じ。

Google共通言語のpythonも勉強しつつ、サンプルコードを修正してデーターをクラウドに送信することが出来ました。

これまでperlは結構戯れていたので、pythonはお作法がわかれば取り組み易いです。
コード表現の自由度を排除して、誰が書いても同じ動作をするということが狙いだそうで。文末に「;」を打たないとか、インデントは4文字等々慣れるととっつきやすいです。

ラズパイに接続しているBME230センサーから、温度、湿度、気圧を読み出して、Ambientに送信します。cronで1分毎にデータを送信。
クラウド側で送信データーにタイムスタンプを打って、保存してくれます。
データーは、1度に8個まで送れます。
 グラフの作成は、WWW上でパラメーター等を設定すれば勝手に表示されます。データがアップデートされるとグラフも自動更新。

ということで、センサーデータをラズパイで読み取り、クラウドに送信するまでは出来るようになりました。

ラズパイのバックアップを取って、しばらくはデータの送信を続けてみます。

今後はラズパイzeroとか違うセンサーの接続、アップしたデーターを読み取って加工するなどを 考えてみます。

2年ぶりのラズパイ...2日目

クラウドはAWS1年間無料なので、がんばってみようかと思いましたが、AmbientというIoT専用のクラウドを個人で運用されている人が居ます。
簡単そうなので、そちらで試してみます。

久しぶりなので写真も。
●ラズパイ本体(確か2+です)

●BME230センサー(小さい、緑色の基盤の真ん中銀色の部分がセンサーです)

●データーシート(pdfファイルへのリンク)


●ラズパイとセンサーの接続状況(ラズパイ側1本pin間違っている状態)



その前に今回はラズパイに温度湿度センサー接続し、読み取れるように設定です。


★ラズパイGPIO番号と端子位置
https://tool-lab.com/make/raspberrypi-startup-22/

★ラズパイでSPI通信の準備
http://elelab-net.com/hobbytec/?p=533

★ラズパイI2CでBME280と接続
http://karaage.hatenadiary.jp/entry/2016/05/11/073000

★BME230をPythonで読み出す
https://qiita.com/masato/items/027e5c824ae75ab417c1
https://www.erde.co.jp/blog/?p=2927
http://marm.cocolog-nifty.com/jokanaan/2016/12/ae-bme28012-ed4.html
http://karaage.hatenadiary.jp/entry/2017/05/25/073000

-----------
こんな感じでI2C経由でBME280を認識できました。なかなか認識できなかったのですが、本体側のGPIOピンの接続が1本ずれてました。

【反省】「適切に接続したつもり」という思い込みは駄目。ピンヘッダー真上から見ると一目瞭然。ハードウェアは何度も目線を変えて目視確認が重要。

pi@raspberrypi:~ $ 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: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- 76 --
pi@raspberrypi:~ $

スイッチサイセンスさんがpythonスクリプトを公開しています。
$ git clone https://github.com/SWITCHSCIENCE/BME280.git
$ cd BME280/Python27/
$ python bme280_sample.py 
 
これではsmbus2というモジュールが無いと言うことでインストール。
★smbus2のインストール

$wget https://github.com/kplindegaard/smbus2/archive/master.zip
$unzip master.zip.1
$cd smbus2-master
$sudo pip install smbus2


これでエラーはなくなりました。
$pi@raspberrypi:~/BME280/Python27 $ python bme280_sample.py
$temp : 23.94  ℃
$pressure : 1006.75 hPa
$hum :  46.24 %
$pi@raspberrypi:~/BME280/Python27 $ 

ちゃんと温度に湿度、気圧の値をセンサーから取得することが出来ました。
 
その後、1分毎に計測してファイルに書き出し、昔ながらの(今は使わないらしい)
gnuplotでグラフにしてみました。
センサーはちゃんと動いて、ラズパイで読みと取れているようです。
 

ラズパイ日記...esp32(arduino)+mpu6050

# esp32で6軸センサー読み出し esp32で6軸センサーを読み出し、値をグラフ表示して動作を確認します。 ## 準備 ハード的な接続は、センサーが3.3V駆動できるので、3.3VとGNDの2線で電源供給します。I2C用にSDAとSCLのデータ線が必要ですが、esp...