PaiZero Wのアンテナを見つつ、アレクサとかGoogleアシストを呼び出すものを作る構想なんぞを練ってみる

Banana Pi に浮気していましたが、RasPi Zero W に戻ってきました。
この子は、2017/02 にリリースされたんですね。だいぶ遅れましたがあれこれ見ていきましょう。まずは、何事も観察から始まります。

今日は、RasPai Zero W のアンテナには工夫があるっていうことで各記事を参照してみた後、その部分をみてみました。

スイッチサイエンスマガジン:Rapberry Pi Zero Wのアンテナのお話

S20181121_001.jpg

手前に見えているのは、普通のボールペンの先っちょです。上がアンテナ部分。
基盤の各層の銅箔部分と、コンデンサ3つで2.4GHz 帯の電波をキャッチするようです。

スゥーデンのProant社ってとこがライセンスしたみたいです。こんな工夫があるんですね。

 

アンテナの設計エンジニアが書いた記事が紹介されていました。

Enbedded COMPUTING DESIGN
A lesson in wireless engineering from the Raspberry Pi

そのほか、いろいろ調査してみます。Zero の基盤と W との比較は以下。

C5viOAmWAAA9VEh.jpg

部品レイアウトもちょっと変更されています。サイズは同じなんでケースなんかは流用できます。

GIF-640px-med.gif

面白いですね〜。

最後に、回路の概要図のリンクを。PCB のデータは見つかりませんでした。どっかにはあると思うんですが。この基盤、裏側には部品が実装されてないんですよね。すごいなと。

rpi_SCH_ZeroW_1p1_reducedSCHEMATIC1___PAGE2_-_POWER__XOS.png

とりあえず、なにかまたPCB基盤を作ってみたくなりました。〇〇HAT基盤とか、なにか、作ってみたいですね。

というか、ちゃんと1つの機能が動作するモノを最近何も作っていなくて、そういう役立つ何かを作ってみたいです。

あれこれ調査していますが、いろいろ作れて迷います。一番興味が引くもので面白く、かつみんなが興味を持つもので、何より自分が作りたいもの。

1つ候補が上がっています。それは、Amazon EchoとGoogle Home の2つの機能を1つにまとめたものがあると楽しいかなと。こういうジャンルってなんていうんですかね? スマートスピーカー? うーん、実際には裏側で通信して受け答えをしているわけなんで、音声認識のAIの先っちょって感じでしょうか?Amazon EchoとGoogle Homeは、両方ともなんだかんだと買いそびれてしまい、まだ持っていないんですよね。自作できたら、作りたいなと。どうやら、できそうなんですよね。

まぁそれでも、「ねぇ、アレクサとGoogle 。7時か8時くらいになったらやさしく起こして。」

なんて、お願いできたら、いいなと思っています。さらには、アレクサとGoogle の名前部分を家族の名前にしたら面白いんじゃないかと。猫とかの名前でもいいです。結構笑えるモノができそうな予感。
〇〇→猫1
△△→猫2

「ただいま〜、〇〇。△△、今日のご飯は何にしよう?」とか、話かけたりできたら面白いかもしれません。

 

Raspberry Pi Zero セットアップ2

今日は、RasPi Zero に接続する MicroUSB の OTG ケーブルが届いたので少し遊んでみた。LED が点灯せず、焦りましたが、SDカードをフォーマットしていて OS が入っていないのを忘れていました。テスター当てて、電源がきているか確認です。ここが参考になりますね。

S20181119_001.jpg

普通に扱っていれば、滅多に壊れないのでLED が付かなくてもとりあえずは、SDカードの内容を確認してみるのがいいですね。自分の場合は、SDカードに刺した状態で、USB認識しなかったんで、もしかすると本当にどこかおかしいのかもしれません。

S20181118_001.jpg

で、無事ブートしました。3本も接続すると、本体がちっこすぎてケーブルに引っ張られますね。まずは、定番の UnixBenchです。OS は、2018-10-09-raspbian-stretch-lite です。Update も何もせずとりあえず、UnixBench をコンパイルして実行。

========================================================================
BYTE UNIX Benchmarks (Version 5.1.3)

System: pizero: GNU/Linux
OS: GNU/Linux — 4.14.71+ — #1145 Fri Sep 21 15:06:38 BST 2018
Machine: armv6l (unknown)
Language: en_US.utf8 (charmap=”ANSI_X3.4-1968″, collate=”ANSI_X3.4-1968″)
CPU 0: ARMv6-compatible processor rev 7 (v6l) (0.0 bogomips)

21:00:01 up 22 min, 2 users, load average: 0.08, 0.25, 0.21; runlevel 3

————————————————————————
Benchmark Run: Sun Nov 18 2018 21:00:01 – 21:28:09
1 CPU in system; running 1 parallel copy of tests

Dhrystone 2 using register variables 2152307.8 lps (10.0 s, 7 samples)
Double-Precision Whetstone 461.6 MWIPS (10.0 s, 7 samples)
Execl Throughput 222.2 lps (29.8 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks 37774.2 KBps (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks 12292.0 KBps (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks 94535.6 KBps (30.0 s, 2 samples)
Pipe Throughput 129589.5 lps (10.0 s, 7 samples)
Pipe-based Context Switching 20014.2 lps (10.0 s, 7 samples)
Process Creation 564.7 lps (30.0 s, 2 samples)
Shell Scripts (1 concurrent) 465.9 lpm (60.1 s, 2 samples)
Shell Scripts (8 concurrent) 59.6 lpm (60.4 s, 2 samples)
System Call Overhead 441679.0 lps (10.0 s, 7 samples)

System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 2152307.8 184.4
Double-Precision Whetstone 55.0 461.6 83.9
Execl Throughput 43.0 222.2 51.7
File Copy 1024 bufsize 2000 maxblocks 3960.0 37774.2 95.4
File Copy 256 bufsize 500 maxblocks 1655.0 12292.0 74.3
File Copy 4096 bufsize 8000 maxblocks 5800.0 94535.6 163.0
Pipe Throughput 12440.0 129589.5 104.2
Pipe-based Context Switching 4000.0 20014.2 50.0
Process Creation 126.0 564.7 44.8
Shell Scripts (1 concurrent) 42.4 465.9 109.9
Shell Scripts (8 concurrent) 6.0 59.6 99.4
System Call Overhead 15000.0 441679.0 294.5
========
System Benchmarks Index Score 97.0

100くらいだとは知っていましたが、おそっ(笑)まぁ、シングルコアなんで仕方ありませんね。使い道に困るデバイスかもしれません。というか、今までのこれ系のボードも結局転がっていますしね。ベンチマーク取って、あぁ、安いね、小さいね。で終わっています(笑)

でも本体が小さいので、Linux の何かを使ったものを作るにはいいかもしれません。例えば、カメラとか? 家の IoT デバイスを集中的に処理するものとか。あと、アリエク物色していて、Banana Pi M2 Zero っていう互換?ボードも見つけました。2400円(送料込)

zero2.png

特色は、CPU コア数が4つで、メモリがDDR3 なんで処理速が早い(とは行っても、たかが知れてるかもですが)いや、この大きさで4core なのはいいんじゃないでしょうか?

HardWare Specification of Banana pi BPI-M2 zero VS Raspberry Pi Zero W
Module Banana Pi BPI-M2 Zero Raspberry Pi Zero W
CPU H2+ Quad-core Cortex-A7 H265/HEVC 1080P Broadcom BCM2835 32 Bit 1 GHz ARM1176JZF-S single-core
GPU Mali400MP2 GPU @600MHz,Supports OpenGL ES 2.0 VideoCore IV
Memory \(SDRAM\) 512M DDR3(shared with GPU) 512 MB DDR2
Onboard Storage TF card \(Max. 64GB\) TF card \(Max. 64GB\)
Onboard Network NOPE NOPE
Onboard WIFI SDIO AP6212(option AP6181、AP6335)Bluetooth 4.0 (AP6212) 802.11n wireless, Bluetooth 4.1
Video decoding 1080p@60fps,H.264 Video encoding 1080p@30fps,H.264 1080p30 H.264/MPEG-4 AVC high-profile decoder and encoder
Video input A CSI input connector Camera CSI camera connector
Video Outputs mini HDMI 1.4,1080P@30fps, DHCP Mini HDMI and USB On-The-Go ports
Audio Output Mini HDMI Mini HDMI
Power Source Micro USB with 5V/2A 5V/2A
USB 2.0 Ports one USB 2.0 OTG one USB 2.0 OTG
Buttons Power Button, Reset Button Composite video and reset headers
Low-level peripherals 40 Pins Header,compatible with Raspberry Pi 3 40 PIN
uart GPIO\(1×3\) pin UART, ground UART
LED Power led & Status led Power Status LED
IR N/A N/A
Supported OS Android, Ubuntu, Debian, Rasberry Pi Image Linux
Product size 65mm × 30mm 65mm x 30mm
Weight 15g 9G

比較は、ここがわかりやすいですも。一部、Bluetooth がないなど情報の間違えはありますが。到着するまで、ここのWikiでも読んでますか。

こういう小さくて、手頃なやつを見つけるとつい買っちゃうんですよね。WiFi のAP6212も技適は AMPAK社 が通しているようで問題ないと思うんで、ポチってみました。

AP6212_V1.1_09022014

giteki_AP6212.png

また、これでゴミが1つ増えたかも。(笑)いや、これは壮大なる、汎用品で作る UMPC プロジェクトの始まりになるのかもしれません。たぶん、海外のかたでやっているかたがいるはず。

モバイルで使いたいのは、快適なテキスト入力と、常時data通信で、ssh 端末として使いたいんですよね。こんな限定的に使う人は、たぶんLinux エンジニアか、テキスト入力で原稿作りたい記者か、作家くらいのもんで、需要は一定数あると思うんですが、日本のメーカーはこの分野はもうからないと撤退したようです。

ないなら、作れです。いつどこでも、メンテナンスできて、ブログのネタも快適にテキスト入力できる端末っていうのがあると嬉しいんです。多少大きくてもキーボードはフルピッチのキーがほしい。横幅26cm あってもいいんでそういう端末がほしいんですよね。昔、Libretto って端末があったんですが結局買えず仕舞いでした。

じゃ、普通のうっすいノートPCでいいじゃんとはならないんです。キーボードが打ちにくいんですよね。できればメカニカルなやつで、ファンクションキーがないタイプ。

Raspberry Pi Zero セットアップ1

ちょこっと時間が出来たので、Raspberry Pi Zeroをセットアップ。
セットアップは大きく2つ方法があります。

(1)USBを母艦に繋げてSDカードに展開しセットアップする方法
>WiFi設定など入れれるのでモニタなしでも可能
(2)SDカードにimg を展開。hdmi モニタやキーボード使って、boot する
>モニタやキーボードなど繋げる必要あり

とりあえず、HDMI出力もされるか確認したかったので(2)の方法でやることに。
SDカードに書き込むのは、コマンドライン、ツールを使う方法がありますが、マカーなのでGUIツールのEtcherを使って書き込み。

.
├── 2018-10-09-raspbian-stretch-lite.zip
└── 2018-10-09-raspbian-stretch.zip

GUIがない、lite ってやつから遊んでみることにします。
Etcher_–_7__Flashing.png

ツールを使うとdisk を間違えなくていいですね。書き込むと、fatの boot領域とlinux の領域が最低限で作られます。

$ diskutil list | grep -A5 external
/dev/disk2 (external, physical):
#: TYPE NAME SIZE IDENTIFIER
0: FDisk_partition_scheme *16.0 GB disk2
1: Windows_FAT_32 boot 45.9 MB disk2s1
2: Linux 1.8 GB disk2s2

電源のUSB は外側です。内側のUSBは母艦に繋げてUSB 接続し、SDカードをマウントできるようです。次回試して見ましょう。

S20181116_001.jpg

ここで、キーボードがMicroUSB なんで繋げない事に気がついた・・・・OTGケーブルを調達することに。

amazonusb.png

microUSB を分解して繋げればいいんですが、ま1つくらいあってもいいかと変換ケーブルを発注。時間もなくなってきたようなんで、また土日にセットアップすることに。

とりあえず、HDMI出力し無事bootしたのを確認したところまで。

一応、Fedora も入れてみたかったのでimg を用意しておきました。

.
├── Fedora-LXDE-armhfp-29-1.2-sda.raw.xz
├── Fedora-Server-armhfp-29-1.2-sda.raw.xz
├── Fedora-Workstation-armhfp-29-1.2-sda.raw.xz
└── Fedora-Xfce-armhfp-29-1.2-sda.raw.xz

kernel モジュールなど、どのくらいFedoraで動くかなど、あれこれ、検討してみたいと思います。

 

VNC 設定と osx10.11 の画面共有

いつも VNC の設定の仕方を忘れるので備忘録。

参考

Raspberry Piの設定【VNCサーバ(tightVNC)の設定】

ARMBIAN のデスクトップ版は、nodm で自動ログインするので、まずこれを中止。

---- /etc/default/nodm
::
#NODM_ENABLED=true
NODM_ENABLED=false

続いて、vnc のインストール

# apt-get install tightvncserver

設定

---- /etc/init.d/vncboot
### BEGIN INIT INFO
# Provides: vncboot
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start VNC Server at boot time
# Description: Start VNC Server at boot time.
### END INIT INFO

#! /bin/sh
# /etc/init.d/vncboot

USER=junkhack
HOME=/home/junkhack

export USER HOME

case "$1" in
 start)
 echo "Starting VNC Server"
 #Insert your favoured settings for a VNC session
 su $USER -c '/usr/bin/vncserver :1 -geometry 1440x900 -depth 24'
 ;;

 stop)
 echo "Stopping VNC Server"
 su $USER -c '/usr/bin/vncserver -kill :1'
 ;;

 *)
 echo "Usage: /etc/init.d/vncboot {start|stop}"
 exit 1
 ;;
esac

exit 0

権限付与と、自動起動設定

# chmod 755 /etc/init.d/vncboot
# update-rc.d vncboot defaults

 

リブートするか、起動スクリプトをたたく。

# /etc/init.d/vncboot start

osx からの画面共有

osxvnc

 

junkhack_s_X_desktop__orangepilite_1_

osx10.11 の画面共有は少し良くなった感じ。

SDCard16GB 来たのでRasbian Jessie 入れてみた

SDCard の16GB のテスト代わりに、RasPi に Raspbian Jessie を入れてベンチマークしてみました。

 

環境はこんな感じ。

# uname -a
Linux raspberrypi 4.1.13-v7+ #826 SMP PREEMPT Fri Nov 13 20:19:03 GMT 2015 armv7l GNU/Linux

で、ベンチマーク

========================================================================
   BYTE UNIX Benchmarks (Version 5.1.3)

   System: raspberrypi: GNU/Linux
   OS: GNU/Linux -- 4.1.13-v7+ -- #826 SMP PREEMPT Fri Nov 13 20:19:03 GMT 2015
   Machine: armv7l (unknown)
   Language: en_US.utf8 (charmap="ANSI_X3.4-1968", collate="ANSI_X3.4-1968")
   CPU 0: ARMv7 Processor rev 5 (v7l) (0.0 bogomips)
          
   CPU 1: ARMv7 Processor rev 5 (v7l) (0.0 bogomips)
          
   CPU 2: ARMv7 Processor rev 5 (v7l) (0.0 bogomips)
          
   CPU 3: ARMv7 Processor rev 5 (v7l) (0.0 bogomips)
          
   23:14:27 up 11 min,  3 users,  load average: 0.23, 0.16, 0.10; runlevel 5

------------------------------------------------------------------------
Benchmark Run: 月  2月 01 2016 23:14:27 - 23:42:32
4 CPUs in system; running 4 parallel copies of tests

Dhrystone 2 using register variables       13364099.5 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     1935.3 MWIPS (9.9 s, 7 samples)
Execl Throughput                               1438.9 lps   (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        136337.7 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           38047.7 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        359110.7 KBps  (30.0 s, 2 samples)
Pipe Throughput                              788483.7 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 141326.6 lps   (10.0 s, 7 samples)
Process Creation                               3012.6 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   3025.1 lpm   (60.1 s, 2 samples)
Shell Scripts (8 concurrent)                    406.0 lpm   (60.2 s, 2 samples)
System Call Overhead                        1760060.4 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   13364099.5   1145.2
Double-Precision Whetstone                       55.0       1935.3    351.9
Execl Throughput                                 43.0       1438.9    334.6
File Copy 1024 bufsize 2000 maxblocks          3960.0     136337.7    344.3
File Copy 256 bufsize 500 maxblocks            1655.0      38047.7    229.9
File Copy 4096 bufsize 8000 maxblocks          5800.0     359110.7    619.2
Pipe Throughput                               12440.0     788483.7    633.8
Pipe-based Context Switching                   4000.0     141326.6    353.3
Process Creation                                126.0       3012.6    239.1
Shell Scripts (1 concurrent)                     42.4       3025.1    713.5
Shell Scripts (8 concurrent)                      6.0        406.0    676.6
System Call Overhead                          15000.0    1760060.4   1173.4
                                                                   ========
System Benchmarks Index Score                                         491.8

あら、なんか速いんじゃないでしょうか?

以前計測したときは、400ちょい超えたくらいだったはずです。

I2Sというのに手を出してみる事に

RasPi2 も電源を付けることがだんだんと少なくなってきていますので、ここらでちょっと使い方を変えてみることに。

I2C を調査しているときに、I2S というキーワードも目に入りました。寄り道して散歩していると、なにやら 音関連のようです。どうやら、DAC を USB 経由じゃなくて、I2S インターフェイスを使ってやり取りしてDA 変換するものとのこと。こうして音だしすると、びっくりするくらい音が綺麗というじゃありませんか。

 

I2S するのは、以下のようなのが定番のようです。RasPi の GPIO ヘッダーにかぶせるタイプです。TI のチップである、PCM5122という 32bit のDAコンバータが載っています。

HIFI-DAC-I2S

お値段も手が出る範囲ですし、一回自分の耳で聞き分けれるかどうか、試してみたくなりました。今は、osx から内臓の音出力を使ってデジタルアンプに出しているだけのシンプルなものです。これでも、かなり気に入っていますが、果たしてよくなるのでしょうか。いや、良くなったしても自分の耳で判別できるでしょうか?

 

外付けで、音専用マシンとしてPCを付けなくても鳴らせるようにデジタルアンプも安いものですが購入してみました。こちらも、TIのチップ、TPA3116D2が載っているようです。電源は安定化電源から取る予定。

amp_TPA3116あと、アンプとRasPiをつなぐ短いRCAケーブルもゲット。ま、普通のビデオ線のあまりでもよかったのですが、それっぽい雰囲気を出してみたかったので。

 rca_cable

トータル50ドルほどです。スピーカーは今ある自作の天つり式のじゅうたんスピーカーです。さぁ、どんな感じになりますでしょうか。みんなオーバーにブログで言っているだけなんじゃないかと思っていますが。そんなに変わらないでしょう?