あっきぃ日誌

鉄道ブログのような技術系ブログのようななにか

Nano Pi Neo 2を買ってみた(マジでギガビット出てるわ!)

ちょっと前からアキバで見かけるようになったらしいNano Pi Neoの2の方を本家から直接購入してみました。そのほうが結局安かったので。

今までRaspberry Pi以外、類似とか便乗系シングルボードコンピュータは触ってこなかったのですが、なんとなく小ささに惹かれたというか、ギガビットに惹かれたというかで、珍しく触ってみようかなと思った次第です。

www.friendlyarm.com

ポチっとして10日くらいで到着しました。EMSで発送してくれたので通常の郵便より気持ち早く到着するかなー(帰省前に届くかなー)と期待したのですが、普通の郵便と同じくらいで、帰京した日に到着していました、そんなもんか。んで今日開封。

NetBSDのえびじゅんさん曰く、ヒートシンクは必須とのことだったのでヒートシンクと、ケースは3Dプリンターで出力されたものをセレクト。これでだいたい21ドル。送料は7ドル。

f:id:Akkiesoft:20170920221055j:plain

パッケージを開けると説明書2枚とGPIOピンヘッダと本体。

f:id:Akkiesoft:20170920221405j:plain

AllWinner H5チップのSoC。

f:id:Akkiesoft:20170920221442j:plain

ピンヘッダを取り付けつつ表面。しかしどちらの面もチップパーツがぎっしり。こんなに詰められるもんなんだなあと。デカ目のチップはRTL8211E。ギガニかと思いきやドライバーはsun8i_emacとか言うのになっていて、MACアドレスのベンダーID 02:01:38 もRealTekではなくて(と言うかどこのかわからんかった)、データシートの雰囲気だとSoCがMACアドレスを持っていて、それとつないで使うイメージなんでしょうか?わからんけど。

f:id:Akkiesoft:20170920223432j:plain

ケースに収めたところ。いかにも「3Dプリンターで出力しました!」みたいな感じが逆に好き。今まで3Dプリント生成物を所持したことがないので。

f:id:Akkiesoft:20170920221510j:plain

f:id:Akkiesoft:20170920223429j:plain

OSは公式が配布しているUbuntu Core Xenialを選択。SDカードに焼いていざ起動。……IPアドレスがわからない。Raspbianのraspberrypi.localみたいな感じでアクセスできるわけでもなく、DHCPリースでもわからなかったので会社での起動テストは諦めて自宅でUART接続してウォッチ。取得はできてたけど先述の通りギガニだと思いこんでいたので謎ベンダーIDを見落としていただけのようでした。UART接続からログインしてIPアドレスが取れたので無事接続。早速ホスト名を設定してavahi-daemonを入れて名前アクセスできるようにしました。

やってみたかったことの1つとして、製品ページでは890Mbpsくらいでるというのがどんくらいマジなのかと言うのの計測でした。iPerf3で計測。相手はMacBook AirにUSB-GbEを挿したやつ。

Nano Pi Neo2をサーバーにしてMacから測定したもの。1回目が遅めですがその後は850〜900Mbpsで安定して平均850Mbps。最初のは省エネ設定かなんか?

$ iperf3 -c 192.168.29.123
Connecting to host 192.168.29.123, port 5201
[  5] local 192.168.29.112 port 54141 connected to 192.168.29.123 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  65.0 MBytes   545 Mbits/sec                  
[  5]   1.00-2.00   sec   108 MBytes   907 Mbits/sec                  
[  5]   2.00-3.00   sec   107 MBytes   902 Mbits/sec                  
[  5]   3.00-4.00   sec   107 MBytes   902 Mbits/sec                  
[  5]   4.00-5.00   sec   107 MBytes   901 Mbits/sec                  
[  5]   5.00-6.00   sec   108 MBytes   909 Mbits/sec                  
[  5]   6.00-7.00   sec   101 MBytes   848 Mbits/sec                  
[  5]   7.00-8.00   sec   103 MBytes   861 Mbits/sec                  
[  5]   8.00-9.00   sec   107 MBytes   895 Mbits/sec                  
[  5]   9.00-10.00  sec   100 MBytes   841 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.00  sec  1014 MBytes   851 Mbits/sec                  sender
[  5]   0.00-10.00  sec  1013 MBytes   849 Mbits/sec                  receiver

iperf Done.

今度はMacをサーバーにしてNano Pi Neo2から測定。これも1回目は遅めながら800Mbps弱だったので平均的には888Mbpsと製品ページ通りの結果に。

$ iperf3 -c 192.168.29.112
Connecting to host 192.168.29.112, port 5201
[  4] local 192.168.29.123 port 35216 connected to 192.168.29.112 port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec  94.6 MBytes   793 Mbits/sec    0    339 KBytes       
[  4]   1.00-2.00   sec   107 MBytes   901 Mbits/sec    0    339 KBytes       
[  4]   2.00-3.00   sec   107 MBytes   899 Mbits/sec    0    379 KBytes       
[  4]   3.00-4.00   sec   107 MBytes   898 Mbits/sec   36    290 KBytes       
[  4]   4.00-5.00   sec   108 MBytes   903 Mbits/sec    0    331 KBytes       
[  4]   5.00-6.00   sec   106 MBytes   892 Mbits/sec    2    297 KBytes       
[  4]   6.00-7.00   sec   108 MBytes   904 Mbits/sec    0    328 KBytes       
[  4]   7.00-8.00   sec   107 MBytes   898 Mbits/sec    0    331 KBytes       
[  4]   8.00-9.00   sec   107 MBytes   898 Mbits/sec    0    332 KBytes       
[  4]   9.00-10.00  sec   107 MBytes   896 Mbits/sec    1    307 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  1.03 GBytes   888 Mbits/sec   39             sender
[  4]   0.00-10.00  sec  1.03 GBytes   887 Mbits/sec                  receiver

iperf Done.

ギガビットつんでるボードって、実際には100Mbpsの壁を取っ払うためにあって実際の速度はUSB2.0の実効速度未満みたいなもんだろうと思いこんでいた(ラズピッピはこの考え方でUSB-GbEを挿すと300Mbpsくらいまで出せるよ)のですが、こいつはマジっぽいです。やべー。

そうなるとスペック的には512MBのメモリかSDカードの速度が足を引っ張りそうな感じですけど、CPUで計算してギガビットEthernetで結果を転送してやるみたいな使い方ができそうな気がしました。iperf中は1コアがほぼフルに使われる以外のこりの3コアは暇そうにしてたので、3コアで計算、1コアでEthernet転送みたいな感じでしょうか。ストレージをNFSとかにしてWebサーバーとか?

これをどう活用するとかはなんも考えてないですが、I2Sが刺さるっぽいので、次はDACを接続して100Mbpsの現環境とどのくらい変化するもんか試してみましょうかね。あとは安定性の確認かしらん。

メモ: STAT LEDの役割を変える

起動後に青色のSTAT LEDが延々と点滅していてなにかとおもったら、正常に起動したことを示しているとのことで、アホか!うっとうしいわ!となりました。無効化する方法を探したらありました。良かった。

DietPi / Fuzon • View topic - NanoPi Neo: Enable function of blue status LED

いずれもrootユーザーで実行すれば変わります。

# 無効化
echo 0 >/sys/class/leds/nanopi\:blue\:status/brightness
echo none >/sys/class/leds/nanopi\:blue\:status/trigger

# 有効化(点滅に戻す)
echo 1 >/sys/class/leds/nanopi\:blue\:status/brightness
echo heartbeat >/sys/class/leds/nanopi\:blue\:status/trigger

# 有効化(MicroSDストレージのACTランプとして使う)
echo 1 >/sys/class/leds/nanopi\:blue\:status/brightness
echo mmc0 >/sys/class/leds/nanopi\:blue\:status/trigger

MicroSDストレージのACTランプとして使うのが理想っぽい気がしたので、echo mmc0〜の行を/etc/rc.localに追記してやりました。よさげ。

オジギソウの種ができそう

先週末は祖母の一周忌法要のため実家に帰省したのですが(別途ブログ書きたい)、帰省中にオジギソウをからせないように&台風でやられないように、ベランダから部屋の中に入れておきました。受粉もこれでもかというくらいしてから出かけて行ったら、それがうまくいったのか種がいくつかでき始めていました。初めてできるところを見られたのでうれしい~。

たぶん、受粉の出来具合いによってなり方はまちまちっぽいけど、6~7カ所くらいで種っぽいのができてます。花のところからトゲトゲした豆みたいなさやができてますね。

f:id:Akkiesoft:20170920104600j:plain

f:id:Akkiesoft:20170920104658j:plain

f:id:Akkiesoft:20170920104802j:plain

f:id:Akkiesoft:20170920104938j:plain

f:id:Akkiesoft:20170920105046j:plain

f:id:Akkiesoft:20170920105137j:plain

外に出して忘れて枯らすのもいやなのでそのまま部屋に置いとくかしら。

OSC2017 Tokyo/Fall

先週の土日はOSC2017 Tokyo/Fallでした。今年はいつもより少し早めの時期の開催になったようですが、他のイベントと日程がかぶったらしく、そのせいかどうかはさておき人が少なく終始ゆる〜い感じの回となりました。

最近はOSCの参加者が減ってきてみたいな話も出たり出なかったりする中で東京もそんな感じだったので、やっぱやばいんじゃねとか言う話も聞いたりしたのですが、出店してブース説明している立場からすると、見に来てくれた人ひとりあたりの話せる時間が長くとれたり、人が途切れた間に休憩できたりするので、今回くらいのがちょうど良かったりして?という気がしました。人が多いと説明してるだけでもノドが枯れますからね。。。

そうはいいつつも、Eject or ラズピッピとしてもなんか盛り上げるか、ということで、新ネタを前日に仕込んで持ち込みました。どうして早くから作らなかったのか!

「イジェピラー」

f:id:Akkiesoft:20170911162408j:plain

以前から展示しているEjectZeroを、タミヤキャタピラーキットに縛り付けただけのクソ工作です。キャタピラーは1月に作って放置していたものですがこれを掘り出して、PiZeroWを貼り付けてWebUIを一晩で適当にこしらえました。

f:id:Akkiesoft:20170911162650p:plain

  ☝
👈( ՞ਊ ՞)👉
  👇

大変わかりやすいですね。下のtanakhボタン(?)はモーターが止まらなくなった場合の停止ボタンです。

ミクも乗せれば非常に良い感じです。

f:id:Akkiesoft:20170911162920j:plain

そしてこう

ただし、カーペットの上は苦手なようで、左右に曲がろうとするとベルトが脱げてしまいました。OSC中にベルトをもっと強く張ったり、回転の方法を変えたりして多少改善はできましたが、脱げるときは脱げるのでつるつるしたところで遊ぶのが良いようです。

ソースコードは後で後悔公開します。

Ejectの方はその他にSoftware Designで紹介したスマートコンセントのアレを同じ方法で展示しました。ゆゆ式BDをわざわざ持ち込みました。いい高さの代替物を探さねば。

f:id:Akkiesoft:20170911163507j:plain

Raspberry Piブースはこんな感じ。いつもどおりの展示内容ではありますが、HyperPixelにPiZeroとカメラモジュールを取り付けてOpenCVの顔認識をやらせたりしたのが新し目の展示でした。拾い物のスクリプトとかなのでどうにかするか違うことをやるか検討したいところです。

f:id:Akkiesoft:20170911163612j:plain

2日目は島中の展示ブースが減ったので、机を再利用して休憩スペース風にアレンジしつつ勝手にRaspberry Pi体験コーナーを設置してみました。何人かラズパイを何も知らない人に実際にさわってみてもらい、どういうものか知ってもらうのに役立っていました。が、自分のブースでやれという感じはあるので、用意してみても良いのかもしれません。

f:id:Akkiesoft:20170911164525j:plain

れったーさんのEjectカーは2日目に登場。イジェピラーとの共演と言うかたまにバトル化してましたが、シュールさが倍増しました。

f:id:Akkiesoft:20170911164803j:plain

プラレール半加算器は今回も改良が進み、面積が更に小さくなったとのこと。写真は構築中の様子。構築できる人も増やしたいそうで、スキルトランスファーが大変そうだなあと思うなどしました。。

f:id:Akkiesoft:20170911165007j:plain

発表は懇親会LTにて、突発で作成したイジェピラー紹介スライドを流しましたが、スライドの公開はたぶんしません。

自宅の常設ラズピッピを減らす

自宅の常設Raspberry Piの台数が微妙に増えてきたので、まとめられそうなやつはまとめることにしました。作ってヒョイッと置けば稼働開始する手軽さがラズピッピの良さなのですが、調子に乗ると台数が増えて電気代も若干かかってきそうな気がするのがアレです。

先日は、外の温湿度気圧を計測していたPiZeroをカーテンEject環境に統合しました。カーテンEjectは毎朝6時にEjectするだけで他に何もしてませんからね。こいつにネットワークを与える代わりに外の気象データ取得もやってもらいました。

BME280はI2Cでやるので4ピンあればいけます。ケーブルを外出ししても良いですが、ドライブ(IDE)にはアナログオーディオ用の4ピン端子が背面にあったので、これをI2Cポートにしてしまいました。

基板から4ピンを切って浮かしてヘッダーケーブルをはんだ付け。フレームと干渉するのでニッパーでジョキジョキ切りとります。そしてラズピッピに接続。

f:id:Akkiesoft:20170904231223j:plain

あとは背面から長めのヘッダーケーブルをガッと這わせて終わり。1台減りました。OSCの展示に回すことができます。

f:id:Akkiesoft:20170904231255j:plain

そして今回は、エアコンと部屋の照明のリモート操作環境と、pHAT DAC環境をまとめました。pHAT DAC環境はSpeaker pHATと差し替えて自宅常用かつOSCデモ用と言う忙しいやつだったのですが、やはり差し替えて持っていくのが面倒というか、持っていき忘れると展示できないということになるので、家から出ないリモート操作環境に統合しました。pHAT DAC環境もPiZeroで、MacとOTG Ethernetモード接続していたのですが、これだとMacと1:1接続になる点と、スループからの復帰で見えなくなる点の2つのデメリットも統合によって解消されました。枕元からアイパッヨで再生もできる。最高。

リモート操作環境はすでにボードっぽいもので色々と作り込まれていたのですが、自作なので何をしても別に良いので、I2Sポートを追加して差し込めるようにします。赤外線受光部も学習時以外使わなくてI2Sポートとかぶるので取り外します。取り外せる構造にしていてよかった。

f:id:Akkiesoft:20170904231139j:plain

あとはpHAT DACをヘッダーケーブルでぶすぶす接続しておしまい。

f:id:Akkiesoft:20170904231054j:plain

先述の通り、赤外線受光部のためにlircがGPIO18を使っているので、適当に回避しないと衝突してDACが認識できないので、lirc側をどうにかします。/boot/config.txtを書き換え。GPIO27あたりでも見るようにしときます。

# 27 is dummy
dtoverlay=lirc-rpi,gpio_in_pin=27

あと/etc/modulesにも書いてあったので同じく。

#lirc_rpi gpio_in_pin=18 gpio_out_pin=17
# 27 is dummy
lirc_rpi gpi_in_pin=27 gpio_out_pin=17

これであとは通常通りpHAT DACをセットアップしてshairport-syncをぶち込めば統合完了です。

ぜんぜん関係ないところで、リモート操作環境をついでに(JessieからStretchにはかえずに)アップデートしたら、エアぴっぴで使用していたWebIOPiが使えなくなってしまいました。ググっても同様の症状が確認できて野良パッチも見当たらなさそうなので、WebIOPiの使用をやめることにしました。ある程度テストが済んだらリポジトリも更新しておきます。どうせ誰も使っとらんと思うけど。

というわけで、2台のPiZeroが開放されて、常設のラズピッピは4台になりました。設置位置の関係でこれ以上はまとめられない感じです。開放されたぶんはOSCの機材箱に入れっぱなしにしても大丈夫になりましたが、機材箱もいっぱいでモノが入り切らなくなってるんだよなあ……。なやましい。