Raspberry Pi Camera Module 3を触ってみる

あっきぃです。昨日発売されたRaspberry Pi Camera Module 3のサンプルがおおたさんから送られてきましたので、レポートをしていきます。リリース情報の概要は昨日の記事を確認してください。

形状を見る

中央のケーブルがついたものがCamera Module 3です。左が初代、右が2代目、上は参考までにArduicamの16MPオートフォーカスカメラです。基板サイズは2代目と変わりありませんが、カメラセンサー自体は大きくなっているため、Raspberry Pi公式ブログのコメントでもやり取りがあるように、公式のPiZeroケースとは互換がないようです。

続いて裏面。まあ、こちらを見てもあまり面白みはないと言えばないのですが、Camera Module 3と2代目とで意外と回路デザインが変わっていないのは面白いですね。

最新のRaspberry Pi OSとlibcamera環境が必要

早速試していく前に、Camera Module 3を使用するには、最新のRaspberry Pi OS Bullseyeと、libcameraによるカメラ環境が必要な点に注意してください。

libcameraは、Raspberry Pi OS Bullseyeで利用が開始されて、旧来のraspistillやraspividコマンドなど(Legacy camera stackなどと呼ばれています)が置き換えられました。ただし、Picamera2 Pythonライブラリの提供が遅れたなどの理由により、旧来のコマンド等を使用するための方法が現在も提供されています。注意が必要なのは、この旧来のほうでは新しいカメラモジュールは利用できないということですね。

Camera Module 3リリース以前に構築されたRaspberry Pi OS Bullseye環境がある場合は、OSのアップグレードをしておきましょう。また、Picamera2 Pythonライブラリも合わせて触ってみたい場合には、以下のコマンドでインストールできます。

$ sudo apt install python3-picamera2

オートフォーカスを試す

まずはlibcamera-helloコマンドで画面に出しっぱなしにして、動きを見てみましょう。コマンドに–autofocus-modeが追加されており、これを使ってオートフォーカスを有効にできます。

$ libcamera-hello -t 0 --autofocus-mode continuous

この状態でカメラに遠くのものを映させたり、手で遮ってみたりすると、フォーカスを自動で合わせてくれます。手元のスマホなら当然の動きですが、Raspberry Piでも手軽にできるようになったのは感動ですね。

天井です。

なにもない天井をきれいに映しているカメラにRaspberry Pi Picoをかざすと、Pico……よりも手にピントが合いましたね。

指のシワが鮮明
Picoをより近づけても指のほうが鮮明

オートフォーカス中のカメラモジュールはこのようにレンズがモーターによって上下しています。

手をかざすとレンズが上下に動く

写真を撮影するときはlibcamera-stillコマンドで撮影します。こちらもオートフォーカスに関するオプションが追加されているため、それらを使用可能です。

$ libcamera-still -o af1.jpg --autofocus-mode continuous

マスコットを撮影してみました。

「有隣堂しか知らない世界」からブッコローのキーチェーンと回転寿司皿。どちらもSTORY STORY YOKOHAMAで買えます

ここで、ぬいぐるみを避けてもう一枚撮影すると、背景に使っていたダンボールにピントが合って、「こわれもの」の文字が鮮明になりましたね。

皿とダンボールだけ

HDRモードもすごい

もうひとつ、HDRモードも注目すべき機能です。異なる露光時間で複数同時に露光をして、センサーがいい感じに合成をしてくれるものです。これもスマホでは普通に使える機能ではありますが、Raspberry Piで手軽に扱えるようになりました。

まずはHDRが無効の状態です。室内で飼育中のメダカですが、日当たりが良いので室内で撮影すると逆光に近い感じになります。

奥の水槽と別に、手前の鉢にも生まれた時期が違うメダカがいます。

HDRモードを有効にするには、–hdrオプションを付け足すだけです。

$ libcamera-hello -t 0 --autofocus-mode continuous --hdr 1

$ libcamera-still -o hdr.jpg --autofocus-mode continuous --hdr 1

HDRを有効にして撮影すると以下のようになります。水槽のメダカが明るくなり、手前の鉢も明るく写って見えるようになりました。

全体的に明るくなりました

なお、HDRモードを有効にした場合は、解像度が1/4になる点には注意です。上記画像も、4608 × 2592ピクセルから2304 × 1296ピクセルになっており、1/4ピクセルになっていることが確認できました。上の画像を新しいタブで開いて比較してみてください。

ちなみに撮影風景はこちら。比較で使用したArducamのカメラモジュールから奪い取ったカメラメースと、100円ショップの三脚を組み合わせています。

購入するには

国内ではすでに認定リセーラーのKSYさんが発売を開始している他、スイッチサイエンスさんも販売に向けて準備中のようです。

KSYさん

個人的に広角版が気になったのでイギリスのPimoroniで注文をしましたが、KSYさんが販売開始していたのを見落としていました……。私が広角版を触れるのは再来週くらいになりそうです。しくしく。

また、NOIR版についてはPimoroniを含めてまだどこも入荷していないようなので、こちらは少し待つ必要がありそうです。
(1/16追記)KSYさんでNOIR版の取り扱いが開始したようです。 https://raspberry-pi.ksyic.com/main/index/pdp.id/908,909,910,911/

まとめ

Raspberry Piの新しいCamera Moduleの簡単なテストレポートでした。近年のスマホならどれも当たり前になって久しい機能ですが、当たり前になって久しいことで、枯れたカメラセンサーもRaspberry Piのカメラモジュールとして採用できる価格にまでなったと言えます(これまでのRaspberry Pi製品に組み込まれた各モジュールにも言えることではありますが)。

ちなみに、Sony IMX708センサーは、ググってみるとOPPO Find X2、OPPO Reno4 Proなど2年半〜3年前のスマートフォンに採用されていたようです。こうして見ると枯れたと言うにはまだ早い気もしますが、こうしてRaspberry Piで触って遊べるようになったことは大歓迎ですね。

Raspberry Pi Camera Module 3リリース

Raspberry Pi (Trading) Ltdは2023年1月9日に、Camera Module 3をリリースしました。

Camera Module 3はオートフォーカスやHDR撮影に対応した12メガピクセルのSONY IMX708イメージセンサーを採用したカメラモジュールです。従来の通常モデルとNoIRモデルに加えて、それぞれに広視野角モデルが追加され、4種類のカメラモジュールが販売されます。通常の視野角のモデルは各25ドル、広視野角モデルは各35ドルで、認定リセラーを通じて販売されます。

なお、Camera Module 3の利用にあたっては、最新のlibcamera環境及びPicamera2 Pythonライブラリが必要で、レガシーカメラスタックでは利用できない点に注意が必要です。

また、Raspberry Pi High Quality CameraのM12マウントマウントバージョンも合わせてリリースされています。価格は50ドルです。

Raspberry Pi Pico Wを電池で動かすとどのくらい動くか試す

Pico Wの感想ツイートとかを眺めていたら、電池で動かしたらどのくらい持つのかという内容のツイートを見つけて、面白そうだったので試してみることにしました。

たしかに、PimoroniのPico関連製品は乾電池で動かすことを意識してバッテリーボックスセットが売られていたりします。Pico Wに合わせて発売されたPico W Aboardシリーズも単4電池x2のケース付きで販売されていますね。

実験内容

今回は、電池で駆動するPico W上にWebサーバーを立てて、RP2040のCPU温度と現在時刻をJSONで返すURLを作り、それを別の機材から毎秒GETでアクセスをして、アクセスができなくなるまでの時間を測りました。スクリプトは、前回のレポート記事で紹介したものからBME280を取り除いたようなイメージです。

Pico Wが起動したときの時刻が2021/01/01 00:00:00なので、GETできなくなった直前のJSONに含まれている時刻=電池で動かせた時間として見ることができそうです。

電池は、IKEAのニッケル水素充電池「LADDA」1.2V・2450mAhを2本使用しました。前回のレポートでは、ネットワーク通信時は5Vで0.06A==60mAくらいと計測できていたため、2.4Vでは60mA * 5V / 2.4V == 125mAとして、2450mAh/125mA==19.6時間くらい動くのではないかと思います(なんとなくあってますかね……?このあたりせっかくSNSで助言をいただいたものの、ニガテで理解できているかどうか自信がなく……)。

ネットワーク構成とPico Wの監視方法

今回もPico Wは電波暗箱に入れるため、毎秒GETする端末は暗箱の外に設置しますが、暗箱内で無線ブリッジ役をしているRaspberry Piから出る有線LANはUSBに変換されているため、暗箱外で別のRaspberry Piにつないで有線LANブリッジを組み、自宅ネットワークと接続できるようにしつつ、ここからPico Wに対して毎秒GETして、OLEDディスプレイモジュールでJSON内の時刻と温度を表示することとしました。

暗箱の外との通信はUSB(LAN)になる

OLEDディスプレイでは毎回JSONの内容を表示しますが、JSONが取得できなくなったら時刻の表示内容は更新せずに、結果記録用としてそのままにします。

暗箱内のUSB(LAN)と自宅のネットワークをブリッジする役とPico WにGETしてOLEDに結果を表示する役をこなす暗箱外のRaspberry Pi

実験開始

今回はスイッチ付き電池ボックスを使用しましたが、スイッチのレバーを倒すのは暗箱を閉じた状態ではできないので、仕方なく暗箱を開いた状態でレバーを倒して、すぐに箱を閉じることとしました(本当はリレーとかを使えばよかったのでしょうが、機材の都合でできませんでした……)。

あとは電池が切れるまで放置します。が、この時点では時間の予測ができていなかったので、夜に開始して、寝る前にも終わる気配がないことである程度察し、OLEDディスプレイを適当に隠して就寝しました。

寝たらわからないと思うけれど、寝付くまでは目立つので一応隠します

実験結果

翌日、出先からたまにcurlで確認をしていたら、夕方頃に応答がなくなっていました。帰宅してOLEDの表示を確認した結果、22時間43分40秒で更新が止まっていました。

更新されなくなった時刻を記録

予想よりも3時間ほど長い結果になりましたが、常に通信し続けるわけではなく、毎秒小さなJSONファイルをGETする程度だったため、実際にはアイドル時間もそれなりにあったと思われます。

感想

毎秒無線でアクセスされるような環境下でも、充電池2本でほぼ1日動くことがわかりました。

実際になにかしっかりと運用する時には、センサーやLEDやサーボモーターなどを付けたり、ディープスリープ・ウェイクアップを実装したり、無線アクセスも毎秒ではなく毎分だったりと、実装によって変動はするでしょうが、電池駆動でもわりとなにか遊べそうな感じがしますね。電池駆動の可能性を感じた実験でした。

追記: スクリプト

使用したスクリプトをこちらに置きました。

https://github.com/Akkiesoft/akkiesoft-pico/tree/main/MicroPython/rp2040-temp-webserver

無線LANが搭載された Raspberry Pi Pico W で遊ぶ

本日発表されたRaspberry Pi Pico W(以下、Pico W)は、これまでのRaspberry Pi Pico(以下、Pico)に無線LANが追加されたバージョンです。Raspberry Pi Zeroに無線LANが搭載された時と似た流れを感じますね。

Picoで遊んでいると、ネットワーク接続が欲しくなることがよくあったため、Pico Wはある意味で待望のリリースと言えそうです。

今回もサンプルをお預かりしましたので、さっそく遊んで、もとい、色々試していきます。

外観

外観をPicoと比べてみます。左がPico W、右がPicoです。

まずは表面。Picoと比べると、四角い銀色のパーツとアンテナが増えたのが分かりやすい変化です。アンテナの配置の都合で、DEBUGのスルーホールが移動してしまったため、これがあることを前提とした基板を作成している人は要注意かも知れません。

Picoで他に惜しいポイントだった、MicroUSBと、RESETボタンがない点は変わりませんでした。(※右のPicoにはPimoroni Captain Resettiが増設されています)

Raspberry Pi Pico W(左)とRaspberry Pi Pico(右)

つづいて裏面。Picoよりも各種認証や権利関係のロゴと文字でいっぱいになりました。EUを離脱したイギリスの適合性評価マークであるUKCAロゴが加わった点は、イギリスの製品らしい新たな特徴です。基板の余白が少ないため、今後日本で技適が取得されても、基板への直接の印字は難しそうです(他の国などもそうですが……)。

基板裏面(並びは表面と同じ)

MicroPythonファームウェアの用意と書き込み

今回はかんたんな例として、HTTPサーバーを動かして、BME280のセンサーデータJSONで提供するAPIと、それを毎秒取得してデータを表示するようなHTMLを提供する、MicroPython向けのスクリプトを作成しました。スクリプトはGitHubに配置しました。

今回はPimoroniのBME280ライブラリを使用するために、ライブラリを組み込んだPico W向けMicroPythonファームウェアを自前でビルドして使用しました。ビルドの詳細は割愛しますが、MicroPythonのビルドは初めてで、少し苦労しました……。Pico Wリリース前だったため自前ビルドをしましたが、リリース後はきっとPimoroniからPico W向けのファームウェアが提供されると思われるので、今後はそちらを使えば良いでしょう。

さて、Pico Wのテストには、スイッチサイエンスさんからお借りしているいつもの電波暗箱を使用しました。ファームウェアを書き込むには、BOOTSELボタンを押しながら通電する必要があるため、洗濯バサミでボタンを挟んだ状態で暗箱に設置して、電波暗箱の外から書き込みを実行しました。書き込み後はケーブルを抜いてから電波暗箱を開き、洗濯ばさみを外しました。これで準備は完了です。

ファームウェアの書き込み

電波暗箱の無線LAN環境の構築

電波暗箱の中では当然ながら外の電波は遮断されて、部屋の無線LANが使用できません。そこで、Raspberry Piとhostapdを使用した無線LANのブリッジを作成して、それを電波暗箱の中に入れて、Pico WはRaspberry Piの無線LANブリッジに接続するようにします。

電波暗箱内でのテスト環境のようす

Thonnyからスクリプトを実行して、起動後にPico WのIPアドレスにアクセスします。すると、HTMLファイルが読み込まれて、毎秒センサーのデータが更新されました。

電波暗箱内のRaspberry Pi Pico Wをテストするようす

なお、電力チェッカーを使用して消費電力を確認したところ、無線LANに接続したあと何もしていない状態では0.02A、データを転送している最中では0.08A前後となりました。

転送速度の調査

Pico Wの転送速度を調べるために、/longにアクセスされたら500KBくらいの文字列を送るようにスクリプトを少し改造しました。これを無線LANブリッジのRaspberry Piからcurlでダウンロードして、平均ダウンロード速度を確認しました。

akkie@raspberrypi:~ $ curl http://192.168.2.21/long -o /dev/null
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  500k    0  500k    0     0  43708      0 --:--:--  0:00:11 --:--:-- 44116

結果は約42.7KB/秒となりました。軽量なHTMLやJSONデータを読み込むには問題ない速度で、実用的そうです。

vs Pimoroni Pico Wireless Pack

Pimoroni Pico Wireless Packは、Pico向けの無線LAN機能拡張ボードで、ESP32を使用して無線LAN接続を使用するため実現します。Pico Wが出る以前のPicoではこのような拡張ボードが必要でした。

まず物理的な比較をすると、Picoのピンがボードで覆われるため、他のボードと同時に使うにはPimoroni Pico Omnibusのような拡張ボードが別途必要になり、作品も大きくなってしまいます。Pico Wであれば、無線のためにピンを使うことはなくなるため、見た目をスッキリさせられます。

Pico Wと、PicoとPico Wireless Packの組み合わせを並べたようす

続けて転送速度です。Pimoroniのサンプルスクリプトをベースに、先ほどと同じく文字列をたくさん転送するスクリプトを作成して、curlでダウンロードして調べます。

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 10240  100 10239    0     0   1424      0  0:00:07  0:00:07 --:--:--  1467

結果は1.4KB/sで、Pico Wの1/40になってしまいました……。実際に別の用途で使用したときもHTMLの転送にとても時間がかかっていたため、改めて数字にしてみるとなかなか遅いです。

最消費電力です。BME280のセンサーを読み出してネットワーク通信するようなスクリプトを動かして調べたところ、何もしていない状態では0.06A、通信時は0.12A程度となりました。Pico Wと比較するといずれも消費電力は大きめですね。

Raspberry Pi Pico + Pico Wireless Pack + BME280の消費電力を計測したようす

まとめ

Raspberry Pi Pico Wの登場によって、拡張ボードがなくてもネットワークが扱えるようになり、IoT用途として非常に使い勝手の良いボードに進化しました。

もし、通常のRaspberry Piでセンサーを読み出してネットワークで転送するような作品を動かしているなら、Pico Wに移植することで消費電力を大きく減らせそうです。ラジコンカーやロボットなどもPico Wを使って作れそうですね。

一方で、従来のPicoもネットワークを必要としない作品では引き続き需要があると考えられるので、用途に応じて無線あり・なしどちらかのPicoを使い分けると良いでしょう。

そして、毎度残念ながら、Pico Wがいつごろ日本で使用できるようになるのかは不明ですが、日本で発売されるのが待ち遠しいアイテムがまた増えました。

(2023/3/27追記)日本での販売が開始しました。

Raspberry Pi Pico WおよびRaspberry Pi Pico H、Pico WHがリリース

Raspberry Pi財団は6月30日に、Raspberry Pi Pico W、およびRaspberry Pi Pico H、Pico WHをそれぞれ発表しました。

Raspberry Pi Pico Wは、2021年1月に発売したRaspberry Pi Picoにワイヤレス機能を追加したモデルです。Raspberry Pi Picoと同様、Raspberry Piが設計したRP2040チップが使用されており、133MHzのARM Cortex-M0+デュアルコア、256KB RAM、30個のGPIO、様々なインターフェースを搭載します。また、コードとデータ用の2MBのオンボードQSPIフラッシュメモリを搭載しています。

Raspberry Pi Pico Wのワイヤレス機能には、Infineon CYW43439チップを採用しており、無線LANはIEEE802.11 b/g/nを、Bluetoothは5.2をサポートします。なお、リリース時点では無線LANのみがサポートされます。Raspberry Pi Pico Wは6ドルで販売されます。

Raspberry Pi Pico HおよびPico WHは、GPIOにヘッダーと、JTAGにコネクタがあらかじめ実装されたモデルです。自分でヘッダーを実装する必要がなく、簡単にプロジェクトに使用することが可能になります。Raspberry Pi Pico Hは5ドル、Raspberry Pi Pico Hは7ドルで販売されます。

国内ではKSYおよびスイッチサイエンスが各モデルの販売について案内を出しています。Pico WについてはKSYでは990円(税込)、スイッチサイエンスでは1,111円(税込)で販売するとのことです。

https://raspberry-pi.ksyic.com/news/page/nwp.id/108/

https://prtimes.jp/main/html/rd/p/000000091.000064534.html

Japanese Raspberry Pi Users Groupでは、お預かりしたサンプルの実機レポートを別途掲載しています。ぜひご覧ください。

(2023/3/27追記)日本での販売が開始しました。

Raspberry Pi OS Bullseye アップデートがリリース

2022年4月7日に、Raspberry Pi OS Bullseeye のアップデートがリリースされました。

今回のアップデートでは、セキュリティを強化及びIoT製品に関する一部の国の法律に対応するために、Raspberry Pi登場初期からのデフォルト設定であったpiユーザー及びパスワードが廃止されました。デスクトップ版・Lite版ともに、初回起動時にユーザー名とパスワードの設定が必要になります。なお、ヘッドレスで利用する場合には、Raspberry Pi Imagerを使用してカスタマイズするか、起動パーティションにuserconfファイルを配置して所定の書式を書くことで対応できます。また、既存の環境でpiユーザーのユーザー名を変更するための方法についても用意されています。

その他、Bluetoothに関する改善や、Waylandの実験的サポートが追加されています。

Raspberry Pi Zero 2 Wを見て触ってレポート

本日発表されたRaspberry Pi Zero 2 Wですが、サンプルをお預かりしていますので、レポートをしていきます。

外観

いきなりですが先代のRaspberry Pi Zero Wとの比較写真です。上がPiZero W、下がPiZero 2 Wです。

物理的なサイズとポートの配置・形状は一切変わりません。HDMIポートはMicroHDMIにはならずMiniHDMIのままですし、電源とUSBポートもUSB-CにはならずMicroUSBを維持しています。SDカードスロットも以前と同様ロックのないタイプです。強いて言えば、無線LANのアンテナが数ミリメートルほど左にずれました。

基板上のチップ類の配置については、アクセスランプは以前と同じ場所にACTランプが配置されていますが、その他についてはもちろんというか配置等は異なります。例えばPimoroniのPiBowなどのような、基板のパーツを避けながら被せるレイヤーが存在するようなケースは互換性はないと思われます。オフィシャルのケースなどは流用可能です。話を戻して、銀色のカバーがついているのは無線の回路部分です。

基板表面をもう少し見ます。SoCは機能的にはRaspberry Pi 3のBCM2837と同等のCortex-53ですが、RAMを統合して1パッケージ(System-in-Package)にした「RP3A0」パッケージとなっています。ちなみに、SoCの2行目の2041は、Raspberry Pi Picoで使われるRP2040の続番ではなく、製造された年と週番(2020年41週)がたまたまそれっぽかっただけとのことです。我々の手元に届く頃には2141とか2205とかになっているんでしょうね。

基板裏面を見ていきます。Zero Wまではアナログビデオ出力とリセット用にピンを取り付けられるスルーホールが左上にありましたが、省略されてしまいました。おそらく、利用されていない判断されたか、3B+以降で採用されたPoEポートとの衝突が考慮されたか、どちらかの可能性が考えられそうです。一応、スルーホールの代わりに、基板裏面にランドが残されており、リセットは左上、アナログビデオ出力は右下にそれぞれ刻印が見られます。

なお、現時点で日本の無線に関する認証はまだ取得されていないため、Zero Wのような技適マークの印字はありません。

カタログスペック比較

スペックをおさらい&いくつかのモデルと比較してみます。

Zero 2 W3A+3BZero W
CPUCortex-A53Cortex-A53Cortex-A53ARM1176JZF-S
周波数1GHz1.4GHz1.2GHz1GHz
コア数4441
64-bit×
DRAM512MB512MB1GB512MB
無線LAN802.11 b/g/n802.11 b/g/n/ac802.11 b/g/n802.11 b/g/n
Bluetoorh4.2,BLE4.2,BLE4.1,BLE4.1,BLE

Zero 2 WはRaspberry Pi 3シリーズと同じCortex-A53 CPUを採用しており、4コア・64-bit対応の点で3B・3A+と共通です。周波数に関しては少し抑えめの1GHzとなっていますが、Zero Wとの性能差を考えれば3B・3A+より多少遅いことなどもはや誤差と言えそうです。

DRAMについてはZero Wや3A+と同様512MBです。1GBあると嬉しい感じはしますが、3A+と差ができてしまうので仕方ないかなと思います。個人的には本当は3A+も1GBあると嬉しいですけど。

無線LANについては引き続き2.4GHz帯のみのサポートです。ここは3A+との棲み分けポイントになりそうです。5GHzがほしかった!という方は3A+を検討すると良いでしょう。

ベンチマーク

恒例のUnixBenchでベンチマークを取得しました。今回もスイッチサイエンスさんからお借りしている電波暗箱を使用させていただいております。

ベンチマーク中の様子は、画像右下にあるPiZero v1.3をWebカメラ化したものを箱のUSBポートを通じてMacと接続して撮影しています。作り方は私あっきぃ個人のブログで紹介しているのでよければどうぞ。

さて、箱を閉じて通電を開始します。起動後のアイドル時の消費電力は0.26Aでした。ただし、これはUSB-LANアダプターを接続しているため、その消費電力も含まれる点に注意が必要です。写真は省略しますが、LANアダプターを抜いた状態では0.11A前後であることを確認できました。これはPiZero Wと同程度です。

UnixBench中のようす。0.26A→0.37Aまで上昇することを確認できました。先述のLANアダプターの消費電力0.15Aを引けば、およそ0.11A→0.25Aとなるでしょう。

Raspberry Pi 2 W UnixBench結果

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

   System: yamanooku: GNU/Linux
   OS: GNU/Linux -- 5.10.17-v7+ -- #1414 SMP Fri Apr 30 13:18:35 BST 2021
   Machine: armv7l (unknown)
   Language: en_US.utf8 (charmap="ANSI_X3.4-1968", collate="ANSI_X3.4-1968")
   CPU 0: ARMv7 Processor rev 4 (v7l) (0.0 bogomips)

   CPU 1: ARMv7 Processor rev 4 (v7l) (0.0 bogomips)

   CPU 2: ARMv7 Processor rev 4 (v7l) (0.0 bogomips)

   CPU 3: ARMv7 Processor rev 4 (v7l) (0.0 bogomips)

   17:08:28 up 1 min,  1 user,  load average: 0.05, 0.03, 0.01; runlevel Oct

------------------------------------------------------------------------
Benchmark Run: 日 10月 17 2021 17:08:28 - 17:36:44
4 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables        3695886.3 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     1025.3 MWIPS (9.9 s, 7 samples)
Execl Throughput                                626.1 lps   (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks         94927.9 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           26547.0 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        273223.5 KBps  (30.0 s, 2 samples)
Pipe Throughput                              140439.4 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                  26513.9 lps   (10.0 s, 7 samples)
Process Creation                               1184.1 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   1523.0 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                    457.4 lpm   (60.1 s, 2 samples)
System Call Overhead                         486290.0 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0    3695886.3    316.7
Double-Precision Whetstone                       55.0       1025.3    186.4
Execl Throughput                                 43.0        626.1    145.6
File Copy 1024 bufsize 2000 maxblocks          3960.0      94927.9    239.7
File Copy 256 bufsize 500 maxblocks            1655.0      26547.0    160.4
File Copy 4096 bufsize 8000 maxblocks          5800.0     273223.5    471.1
Pipe Throughput                               12440.0     140439.4    112.9
Pipe-based Context Switching                   4000.0      26513.9     66.3
Process Creation                                126.0       1184.1     94.0
Shell Scripts (1 concurrent)                     42.4       1523.0    359.2
Shell Scripts (8 concurrent)                      6.0        457.4    762.4
System Call Overhead                          15000.0     486290.0    324.2
                                                                   ========
System Benchmarks Index Score                                         214.9

------------------------------------------------------------------------
Benchmark Run: 日 10月 17 2021 17:36:44 - 18:05:01
4 CPUs in system; running 4 parallel copies of tests

Dhrystone 2 using register variables       14799937.3 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     4100.3 MWIPS (9.9 s, 7 samples)
Execl Throughput                               1699.7 lps   (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        160309.0 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           42973.0 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        456233.9 KBps  (30.0 s, 2 samples)
Pipe Throughput                              560846.9 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 103772.9 lps   (10.0 s, 7 samples)
Process Creation                               3647.1 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   3588.7 lpm   (60.1 s, 2 samples)
Shell Scripts (8 concurrent)                    438.1 lpm   (60.3 s, 2 samples)
System Call Overhead                        1874972.7 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   14799937.3   1268.2
Double-Precision Whetstone                       55.0       4100.3    745.5
Execl Throughput                                 43.0       1699.7    395.3
File Copy 1024 bufsize 2000 maxblocks          3960.0     160309.0    404.8
File Copy 256 bufsize 500 maxblocks            1655.0      42973.0    259.7
File Copy 4096 bufsize 8000 maxblocks          5800.0     456233.9    786.6
Pipe Throughput                               12440.0     560846.9    450.8
Pipe-based Context Switching                   4000.0     103772.9    259.4
Process Creation                                126.0       3647.1    289.5
Shell Scripts (1 concurrent)                     42.4       3588.7    846.4
Shell Scripts (8 concurrent)                      6.0        438.1    730.2
System Call Overhead                          15000.0    1874972.7   1250.0
                                                                   ========
System Benchmarks Index Score                                         552.5

同じSDカードを使ってZero 2 W、3B、3B+の3環境でテストをしましたが、Zero 2 W < 3B < 3B+の結果となりました。

最後のSystem Benchmarks Index Scoreだけで見ると、ストレージ速度に影響するファイルシステム読み書きの項目を含んでしまうため、おもにCPUのベンチマーク項目である整数演算処理、浮動小数点数演算処理、Execlシステムコールの結果(4コア時)を抜き出して表にまとめてみました。

Zero 2 W3B3B+
Dhrystone 2 using register variables14799937.3 lps (10.0 s, 7 samples)15492821.1 lps (10.0 s, 7 samples)17748593.7 lps (10.0 s, 7 samples)
Double-Precision Whetstone4100.3 MWIPS (9.9 s, 7 samples)4928.4 MWIPS (9.9 s, 7 samples)4935.7 MWIPS (9.9 s, 7 samples)
Execl Throughput1699.7 lps (29.9 s, 2 samples)1910.9 lps (29.6 s, 2 samples)1969.6 lps (29.9 s, 2 samples)
System Benchmarks Index Score552.5592.0664.0

全環境のフルの結果はまとめのあとに貼り付けます。

発熱

Zero 2 Wは、発熱が抑えられている点もアピールポイントになっています。手間ではありつつ、電源を落としてすぐに暗箱の中のZero 2 Wを触ってみる方法で確認をしてみましたが、アイドル状態では触ってもなんの問題もないぬるさでした。「yes > /dev/null &」x4回で長時間(具体的な時間計測はしませんでしたが3〜4分)負荷をかけるようなことをすると流石に熱くなりますが、開始から30秒程度なら、何秒もじっくり指を押し当ててやっと熱いと感じるくらいの温度(58℃くらい)でした。それぞれを「vcgencmd measure_temp」コマンドで見ると、アイドル時38.6℃、高負荷時は68℃ほどとなりました。3Bの場合はアイドル42.9℃、高負荷時80.6℃(!)となったので、それなりの差になりました。

以下のコマンドで高負荷時のクロックとスロットル発動状況を同時に見ていくと、3Bでは80℃に達したところでスロットルが発動してクロック数を下げようとし始めましたが、Zero 2 Wでは80度に達しないためスロットルが発動しないまま1GHz駆動を維持したことになります。

$ vcgencmd measure_temp; vcgencmd measure_clock arm; vcgencmd get_throttled
temp=80.2’C
frequency(48)=1200000000←この数字が徐々に下がっていく
throttled=0x2002

まとめ

おそらく待っていた人が結構多いと思われるRaspberry Pi Zeroのアップデート。その内容は性能を確実に進歩させつつ、先代との物理的な互換性を維持した堅実なものでした。

使い所としては、シンプルにZero Wからのアップデートもよし、3A+程度の性能はほしいが物理サイズを抑えたい時もよし、と言ったところでしょうか。Pi1/Zeroの古いCPUのARM命令に対応しないソフトウェアもZero 2 Wでコンパクトに動かすことが可能になった点も大きいです。

惜しむらくは、日本はリリース時点で技適が未取得状態のため、例によってお預け状態な点でしょう。日本で使えるようになる日が待ち遠しいですね……!!

Raspberry Pi 3 Model B UnixBench結果

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

   System: yamanooku: GNU/Linux
   OS: GNU/Linux -- 5.10.17-v7+ -- #1414 SMP Fri Apr 30 13:18:35 BST 2021
   Machine: armv7l (unknown)
   Language: en_US.utf8 (charmap="ANSI_X3.4-1968", collate="ANSI_X3.4-1968")
   CPU 0: ARMv7 Processor rev 4 (v7l) (0.0 bogomips)

   CPU 1: ARMv7 Processor rev 4 (v7l) (0.0 bogomips)

   CPU 2: ARMv7 Processor rev 4 (v7l) (0.0 bogomips)

   CPU 3: ARMv7 Processor rev 4 (v7l) (0.0 bogomips)

   13:18:47 up 18 min,  1 user,  load average: 0.00, 0.00, 0.00; runlevel Oct

------------------------------------------------------------------------
Benchmark Run: 火 10月 19 2021 13:18:47 - 13:46:54
4 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables        4435259.3 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     1233.3 MWIPS (9.8 s, 7 samples)
Execl Throughput                                737.2 lps   (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        114078.3 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           31844.0 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        323093.9 KBps  (30.0 s, 2 samples)
Pipe Throughput                              168626.6 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                  31239.6 lps   (10.0 s, 7 samples)
Process Creation                               1443.8 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   1784.3 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                    454.3 lpm   (60.1 s, 2 samples)
System Call Overhead                         583581.3 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0    4435259.3    380.1
Double-Precision Whetstone                       55.0       1233.3    224.2
Execl Throughput                                 43.0        737.2    171.4
File Copy 1024 bufsize 2000 maxblocks          3960.0     114078.3    288.1
File Copy 256 bufsize 500 maxblocks            1655.0      31844.0    192.4
File Copy 4096 bufsize 8000 maxblocks          5800.0     323093.9    557.1
Pipe Throughput                               12440.0     168626.6    135.6
Pipe-based Context Switching                   4000.0      31239.6     78.1
Process Creation                                126.0       1443.8    114.6
Shell Scripts (1 concurrent)                     42.4       1784.3    420.8
Shell Scripts (8 concurrent)                      6.0        454.3    757.2
System Call Overhead                          15000.0     583581.3    389.1
                                                                   ========
System Benchmarks Index Score                                         252.7

------------------------------------------------------------------------
Benchmark Run: 火 10月 19 2021 13:46:54 - 14:15:41
4 CPUs in system; running 4 parallel copies of tests

Dhrystone 2 using register variables       12227835.6 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     3682.3 MWIPS (12.8 s, 7 samples)
Execl Throughput                               1399.4 lps   (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        121227.0 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           33277.4 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        369295.4 KBps  (30.1 s, 2 samples)
Pipe Throughput                              457605.4 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                  79855.0 lps   (10.0 s, 7 samples)
Process Creation                               2955.7 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   2707.8 lpm   (60.1 s, 2 samples)
Shell Scripts (8 concurrent)                    342.1 lpm   (60.2 s, 2 samples)
System Call Overhead                        1626120.6 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   12227835.6   1047.8
Double-Precision Whetstone                       55.0       3682.3    669.5
Execl Throughput                                 43.0       1399.4    325.4
File Copy 1024 bufsize 2000 maxblocks          3960.0     121227.0    306.1
File Copy 256 bufsize 500 maxblocks            1655.0      33277.4    201.1
File Copy 4096 bufsize 8000 maxblocks          5800.0     369295.4    636.7
Pipe Throughput                               12440.0     457605.4    367.9
Pipe-based Context Switching                   4000.0      79855.0    199.6
Process Creation                                126.0       2955.7    234.6
Shell Scripts (1 concurrent)                     42.4       2707.8    638.6
Shell Scripts (8 concurrent)                      6.0        342.1    570.2
System Call Overhead                          15000.0    1626120.6   1084.1
                                                                   ========
System Benchmarks Index Score                                         445.3

Raspberry Pi 3 Model B+ UnixBench結果

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

   System: yamanooku: GNU/Linux
   OS: GNU/Linux -- 5.10.17-v7+ -- #1414 SMP Fri Apr 30 13:18:35 BST 2021
   Machine: armv7l (unknown)
   Language: en_US.utf8 (charmap="ANSI_X3.4-1968", collate="ANSI_X3.4-1968")
   CPU 0: ARMv7 Processor rev 4 (v7l) (0.0 bogomips)

   CPU 1: ARMv7 Processor rev 4 (v7l) (0.0 bogomips)

   CPU 2: ARMv7 Processor rev 4 (v7l) (0.0 bogomips)

   CPU 3: ARMv7 Processor rev 4 (v7l) (0.0 bogomips)

   22:36:09 up 1 min,  1 user,  load average: 0.66, 0.39, 0.15; runlevel Oct

------------------------------------------------------------------------
Benchmark Run: 金 10月 22 2021 22:36:09 - 23:04:14
4 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables        5176786.8 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     1442.7 MWIPS (9.8 s, 7 samples)
Execl Throughput                                856.3 lps   (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        131242.3 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           36993.1 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        364366.1 KBps  (30.0 s, 2 samples)
Pipe Throughput                              196669.2 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                  36451.0 lps   (10.0 s, 7 samples)
Process Creation                               1768.2 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   2015.8 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                    541.2 lpm   (60.1 s, 2 samples)
System Call Overhead                         681516.9 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0    5176786.8    443.6
Double-Precision Whetstone                       55.0       1442.7    262.3
Execl Throughput                                 43.0        856.3    199.1
File Copy 1024 bufsize 2000 maxblocks          3960.0     131242.3    331.4
File Copy 256 bufsize 500 maxblocks            1655.0      36993.1    223.5
File Copy 4096 bufsize 8000 maxblocks          5800.0     364366.1    628.2
Pipe Throughput                               12440.0     196669.2    158.1
Pipe-based Context Switching                   4000.0      36451.0     91.1
Process Creation                                126.0       1768.2    140.3
Shell Scripts (1 concurrent)                     42.4       2015.8    475.4
Shell Scripts (8 concurrent)                      6.0        541.2    901.9
System Call Overhead                          15000.0     681516.9    454.3
                                                                   ========
System Benchmarks Index Score                                         294.5

------------------------------------------------------------------------
Benchmark Run: 金 10月 22 2021 23:04:14 - 23:32:27
4 CPUs in system; running 4 parallel copies of tests

Dhrystone 2 using register variables       17748593.7 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     4935.7 MWIPS (9.9 s, 7 samples)
Execl Throughput                               1969.6 lps   (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        192140.3 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           51625.0 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        561711.5 KBps  (30.0 s, 2 samples)
Pipe Throughput                              673693.8 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 121560.4 lps   (10.0 s, 7 samples)
Process Creation                               4247.2 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   4309.2 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                    569.1 lpm   (60.3 s, 2 samples)
System Call Overhead                        2247810.8 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   17748593.7   1520.9
Double-Precision Whetstone                       55.0       4935.7    897.4
Execl Throughput                                 43.0       1969.6    458.1
File Copy 1024 bufsize 2000 maxblocks          3960.0     192140.3    485.2
File Copy 256 bufsize 500 maxblocks            1655.0      51625.0    311.9
File Copy 4096 bufsize 8000 maxblocks          5800.0     561711.5    968.5
Pipe Throughput                               12440.0     673693.8    541.6
Pipe-based Context Switching                   4000.0     121560.4    303.9
Process Creation                                126.0       4247.2    337.1
Shell Scripts (1 concurrent)                     42.4       4309.2   1016.3
Shell Scripts (8 concurrent)                      6.0        569.1    948.5
System Call Overhead                          15000.0    2247810.8   1498.5
                                                                   ========
System Benchmarks Index Score                                         664.0

Raspberry Pi Zero 2 W 発表

Raspberry Pi財団は2021年10月28日に、Raspberry Pi Zeroシリーズの最新版である「Raspberry Pi Zero 2 W」を発表しました。

Raspberry Pi Zero 2 Wは、Raspberry Pi 3シリーズで採用されたCortex-A53を搭載した64-bit対応の4コア 1GHzのBCM2710A1 CPUを採用し、Raspberry Pi Zero Wに比べて大幅に性能が向上しました。また、DRAMを統合したSiP(System-in-Package)を採用し、「RP3A0」パッケージとして本体上に搭載されます。また、発熱にも配慮されており、高負荷時でもサーマルスロットリングせずに安定した動作が可能としています。

無線はIEEE 802.11 b/g/nに対応した無線LANおよびBluetooth 4.2(BLE対応)を搭載します。

フォームファクターはZero Wをほぼ継承しており、Mini HDMIポート、Micro USB OTGポート、Micro USB 電源ポート、CSIポートが用意されています。また、RUN・AV用のスルーホールは省略され、基板裏にランドとして配置が変更されました。

Raspberry Pi 2 Wの価格は15ドルで、本日より認定リセラーを通じて発売されます。

なお、発表時点では日本向けの技術基準適合証明の取得がないため、日本の通常環境下での使用はまだできません。

また、Raspberry Pi Zero 2 Wのリリースに合わせて、公式の電源アダプターが8ドルで発売されます。

Raspberry Pi Build HAT発表

Raspberry Pi財団は10月19日、Raspberry Pi Build HATを発表しました。

Build HATは、Raspberry PiとLEGO®を組み合わせてハンズオンで楽しく創造的な学習をするためのアドオンボードです。Build HATにはRaspberry Pi Picoに続く2つ目のRP2040マイクロコントローラー搭載製品としています。

Build HATには最新世代のLEGO®Technic™のモーターや、LEGO® Education SPIKE™ Primeの各種センサーと互換性があり、最大4つのモーターもしくはセンサーがBuild HATに接続できます。

Build HAT用のPythonライブラリが提供されており、かんたんにプロトタイプを作成することが可能です。

https://buildhat.readthedocs.io/en/latest/

また、モーターに安定した電力を供給するために、48W(DC8V/6A)の電源アダプターも同時に発売されます。

価格は、Build HAT本体が25ドル、電源アダプターは15ドルとなっています。

Build HATはRaspberry Pi認定リセラーを通じて販売されます。

製品情報ページ: https://www.raspberrypi.com/products/build-hat/

公式 Raspberry Pi ビギナーズ ガイド(第4版)日本語版が登場

Raspberry Pi財団が発行している公式Raspberry Pi ビギナーズ ガイド(第4版)に日本語版が登場しました。Raspberry Pi認定リセラーを通じて発売されます。

KSY: https://raspberry-pi.ksyic.com/main/index/pdp.id/670/pdp.open/670

Raspberry Pi ビギナーズ ガイド(第4版)は、Raspberry Pi 4およびRaspberry Pi 400に対応した内容に改定されており、初心者でも始められるよう、ていねいに図解されたセットアップ方法の解説から、ScratchやPythonを使用したプログラミング、GPIOを使用した電子工作など、幅広い内容をカバーした一冊となっています。

日本語版発行にあたり、Japanese Raspberry Pi Users Group有志で日本語訳の監訳という形でお手伝いいたしました。

なお、Raspberry Pi ビギナーズ ガイドはMagPiのサイトからPDF版を無償ダウンロードすることもできます(本記事執筆時点では日本語版はまだ入手不可能のようです)。

https://magpi.raspberrypi.org/books/beginners-guide-4th-ed