2016年12月9日金曜日

SIEMENS IOT2020 OSビルド

随時加筆中
 USBメモリでブートしたDebianマシンで作業。ユーザとしてyoshidawを作成。



yoctoは初めて

 https://github.com/siemens/meta-iot2000
このサイトに、IOT2020のOSをビルドするために必要なファイルが置いてある。
yoctoは組み込み用マイコン・ボードのOSをビルドするために必要な環境。GUIツールがあるようだが、ビルドが終わって気が付いた。
 最小構成は60Mバイトほどのコンパクトなバイナリを作る。
  SIMATIC_IOT2000_Setting_up_V1.0.pdf
このなかに、スタティックなIPアドレス192.168.200.1が設定してあると書かれている。また、WindowsツールWin32DiskImagerでマイクロSDメモリに書き込むと書かれている。
 GitHubではddコマンドで書き込むように説明されているが、失敗した。

yoctoでは何をするのか

 マイコン・ボード特有のファイルが必要。

  meta-iot2000-bsp
  meta-intel

  yoctoの本体

https://github.com/siemens/meta-iot2000/blob/master/meta-iot2000-bsp/README.md
の解説を読み、実行する。
 DebianにGitHubのツールがないので、インストール。sudoでエラーが出るので、sudoのグループに追加した。

$ git clone git://git.yoctoproject.org/poky.git poky -b krogoth
$ git clone git://git.yoctoproject.org/meta-intel poky/meta-intel -b master

つぎの
$ git -C poky checkout yocto-2.1
$ git -C poky/meta-intel checkout 9a06fc5bce05
は、エラーになった。
 pokyは2.2 を持ってきた。最新ではなく、krogothでそろえるのが正しいようだ。
 meta-intelは、http://git.yoctoproject.org/cgit/cgit.cgi/meta-intel/
から5.0-krogoth-2.1をもってきてリネームする。これ以外は、ビルドする前にエラーが出た。もっとよい、そして新しいプログラムの組み合わせがあるかもしれない。
 複数のプログラム・ソースをコンパイルして組み合わせるので、新しいほど、不都合が出る場合あるように思える。でも、新しいのを使いたい。

$ git clone git://github.com/siemens/meta-iot2000 poky/meta-iot2000
これで必要なファイルはそろった。
 次はビルドするための指示を書いた設定ファイルを修正する。
pokyディレクトリの下にある、
  conf/bblayers.conf
をnanoエディタで開き、2行追加。
 /home/build/poky/meta \
 /home/build/poky/meta-poky \
 /home/build/poky/meta-yocto-bsp \
 /home/build/poky/meta-intel \
 /home/build/poky/meta-iot2000/meta-iot2000-bsp \
 "
 ここで、ログインして作業しているのは/home/buildではなく、/home/yoshidawなので、修正する。CTRL+o、CRTRL+xで抜ける。
catで確認。

--- conf/local.conf

1行をコメントアウトして、1行追加。
#MACHINE ??= "qemux86"
MACHINE ??= "iot2000"

CTRL+o、CRTRL+xで抜ける。
catで確認。
 準備が完了。

ビルド
$ bitbake core-image-minimal

 最小モデルを作る。root権限で実行してはいけない。実は、これではだめなことが後でわかるが。とりあえず、コンパイルしてバイナリができることを確認するために実行する。一度コンパイルしたものは、あとの作業では再コンパイルされない。
 何時間か、かかる。
 ネットワーク経由で、core-image-minimal日付け.wciをWindowsPCにもっていき、Win32DiskImageで、すべてのファイルを表示し、.wciファイルを読み込み、SDメモリに書き込む。
 これをIOT2020にセットする。
 SDメモリソケットは、上に開く。スライドしない。カバーを上に開く。外れてしまうかもしれない。真上からマイクロSDメモリをくぼみに合わせておく。カバーをかぶせ、上方向に1mmほどずらすとロックされる。

 電源を間違いなくつなぐと、SDメモリのLEDがぴかぴか、2,3秒消える、ぴかぴか、2,3秒消える、そのあと、連続して読み込むようで、点滅を繰り返す。
20秒ほどでLEDは消えたままになる。

動作確認

 ネットワークを、192.168.200.x/24に変更し、pingを打つ。反応がある。
sshでアクセス。teratermを使う。connection refused と表示され、つながらない。


http://www.yoctoproject.org/docs/latest/mega-manual/mega-manual.html
には、sshサーバが入っていないと書かれている。
The core-image-minimal QEMU image, however, contains no SSH server.

core-image-full-cmdline
を作る。wciファイルができていない。isoを焼いてみるが、ブートしない。hddimgがブートした。sshにも反応する。
 IPアドレスを今まで使っていた192.168.111.x/24の中に変更。PCも戻す。

不具合 これから解決すること

 32GバイトのSDメモリを使ったが、dfで確認すると160Mバイトほどしか利用できていない。エリアを拡張したいが、パーティションが存在しない。
 パッケージ管理ソフトが入っていない。wgetはある。

2度目のチャレンジ
 省略。Toasterにはバグがある。
3度目のチャレンジ
exampleのほうにopensslやnode.jsがある。最初から、exampleまでをビルドすることにした。
 4割ほど進んだ時、64GBのUSBメモリの容量を使い切った。256GBほど必要か?
4度目のチャレンジ
 6個のウォーニングを出して終了。613MBのwicファイルがある。Win32DiskImageで書き込む。SDメモリエリアを拡張。作業はラズパイで行う。
  iot2000-example-image-iot2000-20161214093619.rootfs.wic

 staticの設定ではnameserverが使えない。DHCPで外に出れるようにする。
 opkgのリポジトリを設定する。
 ぜんぜん不完全。ファイルが落とせないのがたくさんある。特にライブラリ関係。nodojsが入れられない。npmも使えない。
 node-REDへの道は遠い。


 掲示板に、node-REDのファイルをコンパイルしていないではないかと書いたら、そう、あなたは正しい、入っていない、すぐに用意するからと、蕎麦屋の出前みたいな返事をもらった。
 ほかの人から、bbファイルに追加する記述方法を教えてもらったが、もろもろのファイルが更新されるかもしれないので、待ってみる。
2日待っているが更新されていない。

 ファイルが更新された。
 複数のアプリケーションの内容を更新している。
node-REDのビルドで12個のエラーをはいてOSはできなかった。

5度目のチャレンジというか4度目の続き
 node-redのソースにはブランチがあるので、それを持ってくればよいという掲示板の書き込み通りすると、900個のワーニングは出たが、ビルドは成功し、node-REDが立ち上がっためでたしめでたし。
https://support.industry.siemens.com/tf/ww/en/posts/node-red-is-not-in-iot2000-example-image/158963/?page=0&pageSize=10

使ってみる
 それにしても何にも資料がない。工業用機器は、回路図や配線図、マニュアルがあって当たり前だと思うけど、何にもない。
 掲示板では、何か問い合わせがあれば、資料を出している。1か所に集めってはいない。

 GPIOのピンはArduinoコンパチブルらしい。資料を見ると何か変。こんなところにGNDがあるはずがない。

 この図を描いた人は、利用する人のことを何も考えていない。右半分が逆転している。
 A0にTL431の出力をつないで、node-REDでデータを表示した。500ぐらいの数字が出てくる。
 2.5Vだから、推測で、Vref=5Vで、10ビットだと思い、変換式を入れて、電圧を表示する。2.49V付近が出るので、あたりかな。
 基板のレイアウトは違うが、インテルのgalileoボードと同じかもしれない。

 つまり、資料はgalileoをみろ。ということなのかな?

 SDの利用していないエリアの拡大resize2fs も入っている。最小imageではなかった。opkgも入っている。





2016年11月10日木曜日

Node-REDでつなぐだけで温度測定

Node-REDには利用できるセンサは少ないです。IoT用といわれているのに、なぜでしょう。
ダラス(今のマキシム)の1-wire温度センサDS18B20がなぜか4つも登録されています。
ちぐはぐさが際立ちます。

アマゾンだけで買い物をして、IoTを実現する話を書きました。

はじめての電気とIoT (6) 1-Wireで温度測定


 8チャネルA-DコンバータMCP3008を使って、1行のプログラムだけで、Freeboardに表示する記事

はじめての電気とIoT (9) SPI経由でアナログ電圧測定 その2


2016年10月30日日曜日

raspberry pi自体でI2S-DACをドライブできるようになった

ラズパイで一般的に使うのはRASPBIAN JESSIEというLinuxOS。
10月現在、カーネルは4.4が利用できる。9月23日版から何回かカーネルのリビジョンアップがあった。カーネル4.4.26あたりから、hifiberryなどPCM15xx系のi2s-DACボードのドライバが搭載されるようになった。
今まで、これらのボードを使うにはVolumioなど、音楽専用のディストリビューションを利用するという方法しかなかった。つまり、普通のLinuxマシンというより専用マシンとして利用する。価格を考えれば、それでもよい。

ラズパイでは、音声はHDMIのディスプレイに付属している音声出力から出てくる。高級AVアンプではHDMIでもいい音が出るらしいが、ほとんど人は持っていない。実際、HDMIディスプレイの音はしょぼい。
なので、HDMI-アナログ出力装置を探すと、これはこれでいろいろあるが、おもちゃが多い。

i2s-DACを使う理由は、ハイレゾではなくとも、音がよいこと。

10月末現在、RASPBIANでも、i2s-DACが利用できるようになった。
日本で売られている国産のPCM15xx系ボードはドイツの会社hifiberryコンパチブルなことが多いと思われる。PCM5102はDACだけ、PCM5122は中にDSPが入っていて、フィルタの特性や電子ボリュームが利用できる。これはI2C経由で制御される。

PCM5122だと、hifiberry-DACplusを選べばいいと思う。



利用するために設定は、/etc/modulesに1行、/boot/config.txtに1行追加するだけ。

Raspberry Piでi2s-DACを音声出力にして高品位な音楽を聴く(Rev.B)

ebayを見ると2千円前後でPCM5122のボードは売られている。
アマゾンでも扱っている。使えるかどうかはやってみないとわからないが。

2016年10月4日火曜日

Raspberry Pi とVolumio2がリクロッカでさらに進化する

Volumio2が10月14日に正式にリリースしました。

Raspberry Pi とVolumio2はChordのmojoとあまり変わらない高品質の音楽がながれる。
それが、進化した。

https://volumio.org/allo-kali-i2s-reclocker-a-true-gamechanger/

ハードは、


  • ALLO KALI I2S RECLOCKER 7000円
  • ALLO – PIANO HI-FI DAC 2750円
  • ALLO – POWER SUPPLY 5V 3A 1125円

価格は本日のレート。
 ラズパイの上に重ねて使う。電源は、ラズパイだけとKaili+pianoの2系統に分けられる。

 pianoはPCM5122を使っている。抵抗やコンデンサは、オーディオ用を選んである。電源ラインには、LCフィルタがしっかり入っているし、TIの新しいLDOを使っている。ヘッドホンアンプも新しいTPA6133A2。

ありていにいうと、音の分離がよくなり、バイオリンが聞きやすくなった。弦がえも言われないぐらい震える。


Raspberry Pi とVolumioで最先端オーディオを楽しむ その7 より良い音を求めてリクロッカKALI

2016年10月2日日曜日

Arduino 2社に分かれていたが10月2日に一つになった

2014年春ごろから最初のArduino設立メンバとその製造する会社がもめ始め、分離しました。
http://mag.switch-science.com/2015/04/07/arduino-v-arduino/

Unoまでは共通ですが、上位モデルのCortex-Mシリーズなどでは開発ツールのバージョンが異なるなど、利用者は不便してました。
時代はIoT。Unoでは処理しきれない事態となり、Cortex-M0もしくはCortex-M3クラスと無線通信機能が不可欠となりました。

本日10月2日、Makeの会場で、両社が和解する発表がありました。Arduino Holdingという一つの会社になります。

 これからは、MacのFTDIで通信できない点など、早急な対応が図られると期待しています。

2016年10月1日土曜日

ラズパイでVNCを使うのがこんなに簡単になった

9月23日付けのラズパイのリリースは、画面回りが一新されました。WebブラウザもGPUメモリ 16MB で動きます。

20年前、リモート・ソフトを使ったことがありますが、画面更新が亀のように遅く、それ以後、使っていませんでした。

今回のリリースでは、個人使用のライセンスでRealVNCサーバがインストールされています。設定画面でチェックするだけで、起動できます。

使ってみて、便利だ、早い! というか、ラズパイにディスプレイが不要になりました。


とにかく便利!Raspberry Pi をWindowsから利用するVNCの簡単インストール

2016年9月16日金曜日

Analog Discovery 2は多機能な計測ツールだけど、3万円以下だった時代に比べれば割高になった。
アナデバのツールにADALM1000がある。安価。ユーティリティPixel Pulse 2はオシロスコープと発振器のツール。
もう一つのユーティリティであるAliceはスペアナやオシロがある。ネットワークアナライザの機能はないが、インピーダンスが測れる。これが一筋縄で使えない。勉強しなくては。

オーディオ帯域の波形を見る手軽なツール ADALM1000 (2) Pixel Pulse 2