W55RP20はこのネットワークチップW5500と、Raspebrry Pi Picoに載っているRP2040とFlashを1パッケージにまとめた製品です。 1パッケージにまとめるメリットとしては、中身のW5500とRP2040とFlashを別々に基板に乗せる場合に比べてチップ1枚分の面積が減らせて基板を小型化できたり、配線をシンプルにできるなどがあります。私は趣味でRP2040の基板設計制作もしているので、個人的にも1パッケージになって面積や配線のコストが減るのは大変嬉しいです。
実際に動かしてみましょう。まずはRaspberry Pi 5を使用して、いろいろなサンプルを動かしてみました。カメラは、カメラケーブルにマスキングテープで針金(ケーブルを束ねるのに使われているネジネジのやつ)を貼り付けて、フレキシブルなケーブルにするハックと、スマホスタンドの組み合わせで固定しました。
The AI Camera can be connected to all Raspberry Pi models, including Raspberry Pi Zero, using our regular camera ribbon cables.
実際に、先日のMaker Faire Tokyo 2024のKSYブースでは、Raspberry Pi Ltdから来ていたMattさんがAI Cameraのデモを持参して展示していて、ここではPi Zero(おそらく2W)が使用されていました。
というわけでわたしもPi Zero 2Wで環境を再現してみました。ディスプレイはPimoroniのHyperPixel4を使用しました。
裏面。こちらのカメラの固定には簡易的に、厚紙とマスキングテープを使用しています。
MicroSDカードのセットアップは、あらかじめRaspberry Pi 5で済ませて、動作も確認してからPi Zero 2Wに移しました。が、どうやらこれではPiZero 2W上のRaspberry Pi OSがカメラを自動認識できないようです。ドキュメントのチュートリアルでも、「少し手を加えれば」という一文があるので、どうやら手を加える必要がありそうです。
With minor changes, you can follow these instructions on other Raspberry Pi models with a camera connector, including the Raspberry Pi Zero 2 W and Raspberry Pi 3 Model B+.
AI Cameraは各リセーラーを通じて販売される見込みです。観測している範囲では、KSYさんと、イギリスのPimoroniは未入荷です。スイッチサイエンスだけ昨晩に販売がありましたが、初回入荷分は少量だったようで、一瞬で完売してしまったようです(わたしはなんとか間に合って購入できました)。1万3千円ほどするのに、皆さん判断が早い……!!
AI Cameraは、AI アクセラレータを統合したソニーのIMX500センサーを使用したカメラモジュールす。また、カメラモジュールのニューラルネットワークとファームウェアの管理にはRP2040が使用されています。
6月に発売されたAi Kitは、性能が高い代わりにRaspberry Pi 5専用でしたが、AI Cameraはコンパクトで、Raspberry Pi Zeroを含む全てのRaspberry Piに接続が可能です。
ソニーが提供するAIツールを使用すると、TensorFlowやPyTorchなどのフレームワークを使用したニューラルネットワークモデルを変換して、AI カメラで効率的に実行できるとしています。また、AI CameraはRaspberry Pi libcameraと統合されており、Picamera2やrpicam-appsなどのアプリケーションを通じて使用が可能です。
Raspberry Pi Pico 2は、RP2350を搭載した新しいマイクロコントローラー開発ボードで、外形やピン配置はPicoと互換性がありますが、RP2350の搭載によって、よりパワフルなボードになりました。価格は5ドルです。
RP2350は、RP2040の機能を強化した新しいマイクロコントローラーチップです。CPUはPicoで採用されていたデュアルArm Cortex-M0+@133MHzから、浮動小数点およびDSPをサポートするDual Arm Cortex-M33@150MhzもしくはDual RISC-V Hazard3@150Mhzに強化され、ArmコアかRISC-Vコアかのどちらかを選んで使えるようになりました。SRAMは264KBから520KBとほぼ倍になり、QSPI Flashも2MBから4MBと倍に増量しています。PIO state machinesは8から12に強化されています。
Raspberry Pi AI Kitは、Hailo 社と共同開発したAIアクセラレータ モジュールに、先日販売開始したRaspberry Pi M.2 HAT+をセットにしたキットです。モジュールにはHailo-8L コプロセッサを搭載しており、Raspberry Pi 5と組み合わせることで、ニューラル ネットワーク、人工知能、機械学習を低遅延かつ低消費電力で試すことが可能としています。
実際に自分も0.5mmピッチのフレキシブルケーブルと端子を購入してJTAGデバッガーとつなげて様子を見てみたところ、Raspberry Pi Trading LtdのTAPが見つかりました。
~/p/t/r/pi5_jtag ❯❯❯ openocd -f interface/ftdi/olimex-arm-usb-tiny-h.cfg -c 'transport select jtag'
Open On-Chip Debugger 0.12.0
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
jtag
Info : Listening on port 6666 for tcl connections
Info : Listening on port 4444 for telnet connections
Warn : An adapter speed is not selected in the init scripts. OpenOCD will try to run the adapter at the low speed (100 kHz)
Warn : To remove this warnings and achieve reasonable communication speed with the target, set "adapter speed" or "jtag_rclk" in the init scripts.
Warn : libusb_detach_kernel_driver() failed with LIBUSB_ERROR_ACCESS, trying to continue anyway
Info : clock speed 100 kHz
Warn : There are no enabled taps. AUTO PROBING MIGHT NOT WORK!!
Info : JTAG tap: auto0.tap tap/device found: 0x20001927 (mfg: 0x493 (Raspberry Pi Trading Ltd), part: 0x0001, ver: 0x2)
Warn : AUTO auto0.tap - use "jtag newtap auto0 tap -irlen 5 -expected-id 0x20001927"
Warn : gdb services need one or more targets defined
これがRP1のCortex-M3コアのTAPと考えてDAPの接続等を試行しましたが、うまくいきませんでした。 Arm Debug Interfaceでは命令ビット長は4または8bitと決められていますが、OpenOCDがAutoProbeで見つけた命令ビット長は5bitなので、合っていません。 よって、Cortex-M3以外の何らかのTAPが見えていると考えられます。
~/p/t/r/pi5_jtag ❯❯❯ openocd -f interface/ftdi/olimex-arm-usb-tiny-h.cfg -f rp1.cfg
Open On-Chip Debugger 0.12.0
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
3758153728
Info : Listening on port 6666 for tcl connections
Info : Listening on port 4444 for telnet connections
Warn : libusb_detach_kernel_driver() failed with LIBUSB_ERROR_ACCESS, trying to continue anyway
Info : clock speed 100 kHz
Info : JTAG tap: cpu0.cpu tap/device found: 0x4ba00477 (mfg: 0x23b (ARM Ltd), part: 0xba00, ver: 0x4)
Info : JTAG tap: cpu1.cpu tap/device found: 0x4ba00477 (mfg: 0x23b (ARM Ltd), part: 0xba00, ver: 0x4)
Info : [cpu0] Cortex-M3 r2p1 processor detected
Info : [cpu0] target has 6 breakpoints, 4 watchpoints
Info : [cpu1] Cortex-M3 r2p1 processor detected
Info : [cpu1] target has 6 breakpoints, 4 watchpoints
Info : gdb port disabled
Info : starting gdb server for cpu0 on 3333
Info : Listening on port 3333 for gdb connections
Info : gdb port disabled
Info : starting gdb server for cpu1 on 3334
Info : Listening on port 3334 for gdb connections