PybricksでサポートしているLEGOブロック

[前回](https://qiita.com/inachi/items/89425d0b2250c535ee4d)の続きで、PybricksでサポートされているLEGOブロックとそのスペックを紹介します。

# LEGO Mindstorms EV3

[EV3 MicroPython version v2.0](https://pybricks.com/ev3-micropython/)として、いちおうLEGO公式で提供されています。Pybricksの最新バージョンは本記事執筆時点で v3.3 ですが、EV3がすでに製造停止となっているせいか、EV3用の Pybricks は v2.0 で更新が止まっています。

LEGO Mindstorms EV3 で動く [debian](https://www.debian.org/) である[ev3dev](https://www.ev3dev.org/)用の MicroPython となっています。どちらかというとマイコン向けというよりは Unix 版といった感じで、スクリプトに[シバン](https://ja.wikipedia.org/wiki/%E3%82%B7%E3%83%90%E3%83%B3_(Unix))を指定できます。Linux上で動く以上、OS起動に時間がかかりますし、実行のリアルタイム性も低くなっています。

![IMG_7214.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/106817/794041a8-3846-2d94-0bde-764278e3fb45.jpeg)

マイコンは TI AM1808 という今では古いものが使われていますが、Linuxが動かせるだけあって、メモリは他のものに比べてダントツに大きいです。

| MCU | 入出力ポート数 | 電源 |
|-----|-------------|-----|
| TI AM1808 (ARM9)<br>Clock: 300MHz<br>RAM: 64MB<br>Flash: 16MB | 入力： 4<br>出力: 4 | 単３電池6本<br>または<br>専用バッテリー(7.4V/2200mAh) |

# LEGO Spike プライム(Prime)

LEGO Education が教育市場向けに販売しているセットです。

マイコン内蔵のブロックは、Pybrics では Prime Hub と呼んでいます。日本のLEGO代理店では「ラージハブ」と呼んでいます。

![スクリーンショット 2023-12-11 21.01.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/106817/1db0ffa8-2728-ee8a-9311-a658ddab4947.png)

現役でサポートしているものとしては一番のスペックを持っていますが、EV3に比べればかなり控えめなスペックです。

| MCU | 入出力ポート数 | 電源 |
|-----|-------------|-----|
| STM32F413VG (ARM Cortex-M4)<br>Clock: 100MHz<br>RAM: 320KB<br>Flash: 1MB<br>FPU: 単精度 | 6 | 専用バッテリー(7.3V/2100mAh) |

ちなみに、[LEGO純正のプログラミング環境](https://spike.legoeducation.com/)でも MicroPython をサポートしていますが、Pybricksではさらに性能とリソース確保を重視しています。

# LEGO Mindstorms Robot Inventor

LEGO Spike Prime のコンシューマ市場版です。LEGO は Mindstorms シリーズ終了を宣言したため、すでに製造停止となっています。ただし、ハブは LEGO Spike Prime と(色が違う以外)全く同じであるので、Pybricksで利用可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/106817/8b36d16d-205c-e52f-96ae-8af0e660484c.png)



# LEGO Spike ベーシック (Essential)

LEGO Spike をより低年齢向けにしたセットです。

マイコン内蔵のブロックは、Pybrics　では Essential Hub と呼んでいます。日本のLEGO代理店では「スモールハブ」と呼んでいます。

Prime Hubとほぼ同様のスペックを持っていますが、入出力ポートは2つしかありません。

| MCU | 入出力ポート数 | 電源 |
|-----|-------------|-----|
| STM32F413RG (ARM Cortex-M4)<br>Clock: 100MHz<br>RAM: 320KB<br>Flash: 1MB<br>FPU: 単精度 | 2 | 専用バッテリー(7.3V/600mAh) |

# LEGO Technic シリーズ Control+ 搭載もの

LEGO Technic シリーズのうち「CONTROL+」印のあるものにマイコン内蔵のブロックがついています。

マイコン内蔵のブロックは、Pybrics では Technic Hub と呼んでいます。

![スクリーンショット 2023-12-11 21.37.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/106817/0562ed9f-1f5a-bf5c-8c68-46f42effc6d2.png)

Spike と同じ ARM Cortex-M4 のマイコンを搭載していますが、Spikeと比べればずっと安い価格で入手可能です。ただし、メモリは少なくなっています。

| MCU | 入出力ポート数 | 電源 |
|-----|-------------|-----|
| STM32L431RC (ARM Cortex-M4)<br>Clock: 80MHz<br>RAM: 64KB<br>Flash: 256KB<br>FPU: 単精度 | 4 | 単3電池6本 |

# LEGO CITY シリーズ Powered Up 搭載もの

LEGO City シリーズのうち「POWERED UP」印のあるものにマイコン内蔵のブロックがついています。列車もののコントロールに使われていることが多いです。

マイコン内蔵のブロックは、Pybrics では City Hub と呼んでいます。

![スクリーンショット 2023-12-11 21.49.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/106817/9d8c0886-6d2b-77b7-28e7-161ab0d1d099.png)

マイコンのスペックは下がって、ARM Cortex-M0 です。メモリはさらに減って、入出力ポートも２つしかありません。列車ものでは、駆動用のモータとライトがあればよいのでポート２つで十分という判断でしょう。

| MCU | 入出力ポート数 | 電源 |
|-----|-------------|-----|
| STM32F030RC (ARM Cortex-M0)<br>Clock: 48MHz<br>RAM: 32KB<br>Flash: 256KB | 2 | 単4電池6本 |

# LEGO Boost シリーズ

LEGOのコンシューマー市場向けプログラミング教材です。

マイコン内蔵のブロックは、Pybrics では Move Hub と呼んでいます。
他のハブと違ってモータ2基を内蔵しているため、大きめです。

![スクリーンショット 2023-12-11 21.55.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/106817/02cd26ca-92db-d1d8-77b3-ba42239e7d37.png)

スペックは、Pybricksがサポートしているものの中では最低です。メモリが少なすぎて、REPLが使えないなどの制限があります。

| MCU | 入出力ポート数 | 電源 |
|-----|-------------|-----|
| STM32F070RB (ARM Cortex-M4)<br>Clock: 48MHz<br>RAM: 16KB<br>Flash: 128KB | 4<br>(内２つは内蔵モータに接続固定) | 単4電池6本 |

# 次はプログラミング環境について

[次の記事](https://qiita.com/inachi/items/b2a351f5a3ed28654293)ではPybricksのプログラミング環境であるPybricks Codeの紹介と、ファームウェアのインストールについて書きます。