UIAPduino Pro Micro CH32V003とは
UIAPduino Pro Micro CH32V003は、日本のUIAPが設計した、非常に小型・低価格なマイコン開発ボードです。
最大の特徴は、WCH製のCH32V003というRISC-Vマイコンを搭載し、USB Type-Cだけで電源供給とプログラム書き込みができることです。さらに、Arduino IDEを使った開発にも対応しています。UIAP
簡単に言えば、
「Arduino Pro Microのような大きさで、RISC-Vマイコン+USBを使って電子工作を楽しめるボード」
と考えると分かりやすいです。
1.基本スペック
| 項目 | UIAPduino Pro Micro CH32V003 V1.4(改良型) |
|---|---|
| 搭載MCU | CH32V003F4U6 |
| CPU | 32bit RISC-V QingKe V2A |
| 最大クロック | 48MHz |
| Flash | 16KB |
| RAM | 2KB SRAM |
| GPIO | 最大18ポート(MCU仕様) |
| ADC | 10bit ADC |
| UART | USART ×1 |
| I²C | ×1 |
| SPI | ×1 |
| タイマー | 16bitタイマー等 |
| USB | USB 2.0 Low-Speed |
| USB端子 | USB Type-C |
| 電源 | 3.3V / 5V選択式 |
| デバッグ | 1-wireデバッグ |
| IDE | Arduino IDE対応 |
| 基板 | オープンソースハードウェア |
| 形状 | Pro Micro系 |
| LED | 電源LED、ユーザーLED |
| リセット | リセットボタン搭載 |
CH32V003自体は48MHz動作、16KB Flash、2KB SRAM、USART・I²C・SPI・ADCなどを備えています。WCH
2.最大のポイントは「RISC-V」
普通のArduino UNOでは、代表的には
ATmega328P
という8bit AVRマイコンが使われています。
一方、このボードは
CH32V003
という32bit RISC-V系マイコンです。
つまり、
Arduino UNO
↓
ATmega328P
↓
8bit AVR
UIAPduino Pro Micro
↓
CH32V003
↓
32bit RISC-V
という違いがあります。
RISC-Vは、ARMやx86とは異なる**オープンな命令セットアーキテクチャ(ISA)**です。
そのため、CH32V003は「安価なRISC-Vマイコンを実際に触ってみる」という教材としても面白い存在です。
3.CH32V003が非常に小さいのに高性能
CH32V003には、
- 48MHz CPU
- 16KB Flash
- 2KB RAM
- ADC
- DMA
- タイマー
- UART
- SPI
- I²C
- オペアンプ
- ウォッチドッグ
などが入っています。WCH
例えばセンサーを接続すると、
温度センサー
↓
ADC
↓
CH32V003
↓
USB / LED / SPI / UART
のようなシステムを作れます。
4.USB Type-Cが非常に便利
V1.4では、USB Type-Cコネクタ1個で電源供給とプログラム書き込みができます。UIAP
つまり、
パソコン
│
│ USB Type-C
↓
UIAPduino
│
├── CH32V003
├── LED
└── GPIO
という非常にシンプルな構成です。
Arduino UNOのようにUSBシリアル変換基板を別に用意する必要がないため、実験が簡単です。
5.HIDデバイスを作れる
ここがかなり面白いところです。
このボードはUSB 2.0 Low-Speedデバイスとして動作でき、HIDデバイスを作ることができます。UIAP
HIDというのは、
Human Interface Device
の略です。
代表例は、
- キーボード
- マウス
- ジョイスティック
- ゲームコントローラー
などです。
例えば、
ボタンを押す
↓
CH32V003
↓
USB
↓
パソコン
↓
「A」キーを押した
というような装置を作れます。
そのため、
自作キーボード
自作マウス
ショートカットコントローラー
プレゼン用リモコン
ミニゲームコントローラー
などの制作に向いています。
6.「Arduino Pro Micro」との関係
名前にPro Microと入っていますが、Arduino純正のPro Microそのものではありません。
UIAPduinoの基板レイアウトは、SparkFun Qwiic Pro Micro – USB-C(ATmega32U4)とおおよそ互換になるよう設計されています。UIAP
ただし、
電源ピンは完全互換ではない
とUIAP自身が注意しています。UIAP
したがって、
「Pro Micro用のプログラムや回路が全部そのまま使える」
という意味ではありません。
7.3.3Vと5Vを選べる
CH32V003の電源電圧は3.3Vまたは5Vに対応しています。WCH
UIAPduino V1.4では、マイコンへの電源を3.3V/5Vから選択できます。
初期状態は5Vです。UIAP
これは電子工作ではかなり便利です。
例えば、
5V系センサー
↓
UIAPduino
3.3V系センサー
↓
UIAPduino
という実験をしやすくなります。
ただし、接続するセンサーやICのI/O電圧仕様は個別に確認する必要があります。
8.GPIOを使った電子工作
CH32V003には最大18個のI/Oポートがあります。WCH
例えば、
GPIO
│
├── LED
│
├── スイッチ
│
├── ブザー
│
├── リレー
│
├── センサー
│
└── OLED
などを接続できます。
ただし、18 GPIOがすべて自由に使えるという意味ではありません。
USBや電源、デバッグ、基板上の回路などとの関係で、実際に使用できるピンはボードのピン配置を確認する必要があります。
9.ADCがある
CH32V003には10bit ADCがあります。WCH
ADCとは、
アナログ電圧をコンピューターが扱える数字に変換する回路
です。
例えば、
可変抵抗
│
│ 0~5Vなど
↓
ADC
↓
CH32V003
↓
数値として処理
とできます。
これを利用して、
- 可変抵抗
- 光センサー
- 温度センサー
- 圧力センサー
- アナログジョイスティック
などを扱えます。
10.I²C・SPI・UARTがある
電子工作で非常によく使う通信方式も搭載されています。WCH
I²C
OLEDディスプレイなどに便利です。
CH32V003
│
┌─┴───┐
SDA SCL
│ │
↓ ↓
OLEDディスプレイ
SPI
高速な周辺機器との通信に使えます。
例えば、
- LCD
- SDカード
- センサー
- フラッシュメモリ
など。
UART / USART
パソコンや別のマイコンとのシリアル通信などに使えます。
11.USBを利用した面白い教材
このボードの面白さは、単なるLED点滅だけではありません。
例えば、
初級
LEDを点滅させる
↓
初級+
ボタンでLEDをON/OFF
↓
中級
可変抵抗を読み取る
↓
中級
OLEDに数値を表示
↓
上級
USBキーボードを作る
↓
上級
USBマウスを作る
↓
発展
パソコンと通信する専用USB機器を作る
というステップアップができます。
12.Arduino IDEで開発できる
UIAPduinoはArduino IDEでのコーディングをサポートしています。UIAP
通常のArduinoプログラムに近い感覚で、
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(500);
digitalWrite(LED_BUILTIN, LOW);
delay(500);
}
のようなプログラムから始められます。
つまり、
「RISC-Vだから難しいC言語・アセンブリ言語から始めなければならない」
というわけではありません。
13.一方で「Arduinoだけ」の世界ではない
CH32V003はArduinoだけでなく、より低レベルのマイコン開発もできます。
公式には、
- CH32V003開発資料
- リファレンスマニュアル
- MounRiver Studio
- WCH-Link
- 1-wireデバッグ
などの開発環境が用意されています。WCH
また、PlatformIO向けのボード定義でも、
Arduino / ch32v003fun / noneos-sdk
などが確認できます。GitHub
したがって、
Arduino IDE
↓
簡単な電子工作
↓
PlatformIO
↓
本格的な開発
↓
MounRiver / WCH環境
↓
CH32V003を深く理解する
という学習も可能です。
14.ユーザーLEDもある
V1.4にはユーザーLEDが搭載されています。
Zephyrのボード定義では、ユーザーLEDは
PC0
に接続され、アクティブHighとされています。nRF Connect SDK Documentation
そのため、最初の実験として
「LEDを点滅させる」
というマイコン入門を、外部LEDなしで始められます。
15.リセットボタンもある
基板上にはリセットボタンがあります。nRF Connect SDK Documentation
プログラムを書き込んだあと、
動作がおかしい
↓
RESET
↓
プログラム再起動
という操作ができます。
16.USBポート保護も考えられている
V1.4にはUSBポートを保護するヒューズが搭載されています。UIAP
さらに回路図では、USB周辺にヒューズや保護・フィルタリング部品が配置されています。UIAP
電子工作では、
「配線を間違えてUSBポートまで壊してしまう」
という問題があるので、このような保護回路は実用上ありがたい部分です。
17.基板そのものも面白い
UIAPduino V1.4は、
- オープンソースハードウェア
- オープンソースソフトウェア
- RoHS対応
- 日本で設計
- 全数検査
- 永久保証
を掲げています。UIAP
さらに底面がフラットなので、表面実装部品のように取り付けることも想定されています。UIAP
18.CH32V003の「弱点」
高性能ですが、万能ではありません。
特に重要なのが、
RAMが2KBしかない
ことです。
Flash
16KB
↓
プログラムを保存
RAM
2KB
↓
実行中のデータ
なので、巨大なプログラムや大量のデータを扱う用途には向きません。
例えば、
- 大規模GUI
- 大容量画像処理
- 大きなWebサーバー
- 複雑なAI処理
などには不向きです。
逆に、
「小さな装置を安く作る」
ことには非常に向いています。
19.Arduino UNOとの比較
| Arduino UNO R3 | UIAPduino Pro Micro CH32V003 | |
|---|---|---|
| MCU | ATmega328P | CH32V003 |
| CPU | 8bit AVR | 32bit RISC-V |
| クロック | 16MHz | 48MHz |
| Flash | 32KB | 16KB |
| SRAM | 2KB | 2KB |
| USB | USB-シリアル | USB Type-C |
| USB HID | 標準では制限あり | 可能 |
| ADC | 10bit | 10bit |
| I²C | ○ | ○ |
| SPI | ○ | ○ |
| UART | ○ | ○ |
| 価格 | 比較的高い | 非常に安価な部類 |
| 学習対象 | Arduino/AVR | RISC-V/Arduino/USB |
CH32V003そのものは「2KB SRAM・16KB Flash・最大48MHz」という小規模マイコンです。WCH
20.Arduino Pro Microとの比較で特に面白いところ
Arduino系でUSB HIDをやりたい場合、以前から
ATmega32U4搭載Pro Micro
がよく使われてきました。
UIAPduinoは、それに近いサイズ・用途を持ちながら、
CH32V003 + USB Type-C + RISC-V
という構成になっています。
そのため、
「昔のPro Microで作っていたUSBキーボードやコントローラーを、RISC-Vマイコンでやってみる」
という教材にできます。
ただし、ピン配置や電源仕様、USB実装は完全互換ではありません。UIAP
21.V1.3ではなくV1.4がおすすめ
もし購入するなら、基本的にはV1.4を選んだほうがよいでしょう。
V1.3はBeta版で、UIAP自身が既知の問題として、
- R2のプルアップ接続
- USB D+/D−の電気的条件
- USB信号とマイコンポートの接続
などを挙げています。
そしてUIAPはV1.4への移行を案内しています。UIAP
現在から始めるならV1.4が本命です。
22.こんな人に向いている
★ Arduinoを経験した人
Arduino IDEを使ってRISC-Vへ進めます。
★ 電子工作をしたい人
LED、スイッチ、センサー、ディスプレイなどを接続できます。
★ USB機器を作りたい人
HIDを利用したキーボード・マウスなどが面白いです。
★ RISC-Vを勉強したい人
安価なRISC-Vマイコンとして実際にプログラムできます。
★ マイコンを教材にしたい人
非常に小さなボードなので、実験教材に向いています。
23.特に面白い「10個の作品」
このボードなら、例えば次のようなものが作れます。
- LED点滅装置
- 電子サイコロ
- 温度計
- 光センサー
- OLED時計
- USBキーボード
- USBマウス
- ゲームコントローラー
- パソコン用ショートカットボタン
- 自作USB操作パネル
特におすすめなのが、
「パソコン操作用のUSBボタン」
です。
例えば、
┌───────────────┐
│ UIAPduino │
│ CH32V003 │
│ │
│ [YouTube] │
│ [音量+] │
│ [音量-] │
│ [コピー] │
│ [貼り付け] │
└───────┬───────┘
│ USB-C
↓
パソコン
のような装置を作れます。
これは**「マイコンを勉強する」だけでなく、「実際に使えるものを作る」**という意味で、非常に良い題材です。
まとめ
UIAPduino Pro Micro CH32V003 V1.4を一言で表すなら、
「Pro Microサイズに、安価な32bit RISC-VマイコンとUSB機能を詰め込んだArduino互換系の実験ボード」
です。
特に重要なのは、
CH32V003
→ 32bit RISC-V
→ 48MHz
→ 16KB Flash / 2KB RAM
→ GPIO / ADC / UART / SPI / I²C
UIAPduino
→ USB Type-C
→ Arduino IDE
→ USB HID
→ 3.3V / 5V選択
→ 保護ヒューズ
→ Pro Micro系の小型基板
という組み合わせです。



