一般的によく使われるArduinoボードと言えばArduino Unoが挙げられます。
ボードサイズやI/O端子(入出力端子)の数、また各種シールドが使えることからよく使われるArduinoボードだと思います。
そしてArduino Unoとほぼ同様に扱うことが出来るボードにArduino Leonardoがあります。
Unoよりも少し安価で入手できるボードなので「Unoの廉価版」と称されることもあるArduinoボードです。
Arduino LeonardoとUnoとの大きな違いは、ボードに搭載されているMCU(マイコンチップ)にあります。
UnoにはArduinoではおなじみのATmega328Pが使われているのに対してLeonardoではATmega32U4が使われています。
ボード上ではI/O端子の位置をUno互換で配置しているのでLeonardoを扱う場合もほぼUnoと同じ感覚で扱うことが出来ます。
Unoとの大きな違いはATmega32U4チップを搭載することにより、USB経由でPC上のマウスやキーボード操作を行うといったHID(ヒューマン・インターフェース・デバイス)機能が備わっているところです。
そしてArduino Leonardoから少し機能を減らした(使えるI/O端子の数が少なくなっています)小型ボードとしてArduino Pro Microがあります。
Arduino Pro Microは正確にはSparkFun製造のボードとなるのでPro Microという表記が正しいかもしれません。
Arduino Leonardoと同じATmega32U4が使われているミニボードとなり、ArduinoとしてHID機能も使えるのが特徴となります。
Arduino UnoにはNanoよりもさらに小型なボードとしてArduino Pro Miniというボードがありますが、簡単に言うとこのPro MiniのLeonardo版にあたるのがPro Microとなります。
こちらは以前製作したArduino無線コントローラーを使いPC上のファミコン(NES)エミュレーターを動かしている様子です。
コントローラーから無線送信されたスティック操作を一旦Pro Microで受信してゲームパッドのキー配列に合わせてPC操作(キーボード操作)を行っています。
このようなマウスやキーボード操作といったHID機能が使えるのがPro MicroやArduino Leonardoの大きな特徴となります。
この投稿をInstagramで見る
ミニボードですがHID機能が使えるので自作キーボードを製作されている方でPro Microを使われているのをよく見かけますね!
Pro Microの基本的な仕様は上記記事のArduino Leonardoとほぼ同じですが、ボードサイズが小さくなっているためLeonardoでは使えるいくつかのI/O端子がカットされています。
またPro MicroはPro Mini同様に「5V 16MHzで動作するボード」と「3.3V 8MHzで動作するボード」の2タイプあります。
初めて扱う場合、少し分かりにくいのでPro Microについての基本仕様等をまとめておきたいと思います。
目次
(Arduino) Pro Microの基本仕様・ピン配列等まとめ!
こちらがPro Microです。
他のArduinoボードで使われているATmega328Pとは違いMCUにATmega32U4が使われています。
Arduino Leonardoの小型版、またPro MiniのLeonardo版的なボードとなります。
Pro Microは正確には公式ArduinoのボードではなくSparkFun社が製造しているArduino互換機です。
オリジナルのSparkFun社製のボードではmicroUSB端子となっていますが、今回使っているのはType-Cとなった他社互換ボードです。(5V 16MHz版)
USB端子の形状が異なる以外、内部回路やボード構成はオリジナルと同じです!
基本仕様
Pro Microの基本仕様です。
搭載されているMCUが異なる以外、他のArduinoとほぼ同様に扱うことが出来ます。
他のボードと異なるのは通常Arduinoは5V駆動の16MHzで動作しますが、Pro Microには『5V 16MHzで動作するボード』以外に『3.3V 8MHzで動作するボード』もあり、用途によってこの2つのバージョンから選択することが出来ます。
通常のArduinoとして使う場合は5V 16MHzタイプのものを使うことの方が多いと思います。
また、通常ArduinoではATmega328Pというマイコンチップでスケッチを動かしUSB通信(シリアル通信)は別のマイコンチップ(UnoではATmega16U2)を使って行っていますが、Pro Microで使われているATmega32U4は1つのマイコンチップでスケッチを動かし、またUSB通信も行っているところが他のArduinoボードと異なっています。
Pro Micro 主な仕様 | |
MCU(マイコンチップ) | ATmega32U4 |
動作周波数 | 16MHz or 8MHz |
動作電圧 | 5V or 3.3V |
フラッシュメモリ | 32KB |
SRAM | 2.5KB |
EEPROM | 1KB |
USBシリアル | ATmega32U4 |
Pro MicroはMCUにATmega32U4を使いArduinoとしてHID機能が使えるArduino Leonardoの小型ボードという位置付けになるかと思います。
MCU/ボードサイズ | ノーマル | 小型 | さらに小型 |
ATmega32U4 | Arduino Leonardo | Pro Micro | |
ATmega328P | Arduino Uno | Arduino Nano | Arduino Pro Mini |
ピン配列
Pro Microのピン配列です。
Pro MicroのI/O端子はデジタル端子が12本、そのうち5本がPWM出力に対応しています。
またアナログ入力(ADC)は計9本使うことができ、Unoよりもだいぶ多くなっています。
Arduino LeonardoではATmega32U4の全てのI/O端子がボードに引き出され使うことが出来ますが、Pro Microでは一部使えないI/O端子があります。
上記ピン配列を見ると分かりますが、D11/D12/D13/A4/A5端子はボード上に引き出されていないためPro Microでは使えません!
また、通常ArduinoではオンボードLEDがデジタルピンD13に接続されていますが、Pro MicroではオンボードLEDがありません。
オンボードLEDは搭載されていませんが、シリアル通信用のインジケーターLED(TX LED / RX LED)は個別で点灯させることが出来ます。
Pro Microでは、TXのLEDがD30、RXのLEDがD17に割り当てられているため制御が可能で、Lチカなどボードの動作確認などで使うことも出来ます。
それ以外はArduino Leonardoと仕様は同じです。
Arduino Leonardoに関してはこちらの記事を参考にして下さい!
電源供給方法
USB端子からの電源供給方法以外に外部電源を使って駆動することが出来るのは他のArduinoボードと同じです。
他のArduinoと扱いは同じですが、電源ライン(VCC端子/RAW端子)は少し注意が必要です!
VCC端子とRAW端子(UnoのVin端子と同じ)が外部電源用の端子となります。
VCC端子はマイコンチップと直結しているので、Pro Microが5V 16MHz動作タイプのものでは5Vを印加することによりVCC端子からボードを直接駆動することも出来ます。3.3V 8MHz駆動タイプのPro Microを使う場合はVCC端子に3.3Vを印加すると同様に駆動することが出来ます。(5Vではありません!)
またRAW端子はボードに搭載されたレギュレーター(電圧変換を行うパーツ)に繋がっています。
駆動電圧となる5Vまたは3.3Vをボード上で作り出すことが出来ます。
駆動電圧(5V or 3.3V)以上で最大12Vまでの範囲の電圧を印加する事により駆動に必要な5V or 3.3Vが作られボードを直接駆動する事が出来ます。
Arduino Unoなど他のArduinoボードのVin端子と同じ扱いです。
5V 16MHzタイプのボードでは5V~12Vの範囲で、また3.3V 8MHzタイプのボードでは3.3V~12Vの範囲でRAW端子に電圧を印加する事によりボードを駆動するのに必要な5Vまたは3.3Vの電圧が作られます。
Arduinoの電源供給方法に関して詳しくはこちらの記事も参考にして下さい!
ジャンパー端子(J1)について
Pro MicroのUSB端子の横にはジャンパーパッド(J1)が用意されています。
基本的にオープン状態の使用で特に問題ないのですが、少し見ておきます。
電源ラインは非常にシンプル、このような回路構成になっています。
ジャンパーパッドは5Vレギュレーターまたは3.3Vレギュレーターをパイパスするか否かの選択になります。
ジャンパーパッドをはんだでブリッジ(短絡)しておけば、レギュレーターを通さずUSB端子からのVBUS(UVCC)電圧となる5VがほぼそのままATmega32U4に供給されることになります。
SparkFunオリジナルのPro Microのジャンパーパッドを見ると、5V 16MHz駆動タイプのボードでは初期状態ではブリッジされています。
また3.3V 8MHzタイプのボードではジャンパーパッドはオープンとなっています。
例えば5V 16MHzタイプのPro Microではジャンパーパッド(J1)がオープンの状態ではUSB端子からの5Vはレギュレーターを経由する事になります。
その場合レギュレーターのドロップアウト電圧分だけ出力される電圧が少し下がり、実際の駆動電圧は約4.7Vとなります。
多少駆動電圧が下がっても5V動作のPro Microでは特に問題になりませんが、ジャンパーパッドを短絡する事によりレギュレーターを経由しなくなるのでUSB端子からの5Vが直接駆動電圧として使えるようになります。
また先述のようにVCC端子に5Vを加えることによりPro Microを駆動する事が出来ますが、その場合はジャンパーパッドはオープンにしておいた方が望ましいと思います。
上記回路図を見てお分かりになる方なら簡単だと思いますが、面倒なのでオープン状態で私はいつも使っています。
自作キーボードに使用するなどで駆動電圧の低下が気になる場合や外部電源の使用など特定の用途ではない限り、基本的に5V 16MHz/3.3V 8MHz両タイプともジャンパーパッドはオープン状態で動作に関しては問題ないと思います。
スケッチの書き込み
Arduino IDEを使いPro Microにスケッチを書き込む方法です。
Arduino IDEには標準で「Pro Micro」というボードがありませんが、5V 16MHzタイプのPro Microを使う場合のボード設定は[ツール]→[Arduino AVR Boards]にある[Arduino Leonardo]を選択して問題ありません!
また、3.3V 8MHzタイプのPro Microを使う場合は[SparkFun AVR Boards]というボードパッケージをインストールする必要があるようです。
Arduino IDEの[基本設定]から[追加のボードマネージャのURL]に進みます。
以下URLを貼り付けます。
次に[ツール]→[ボード]→[ボードマネージャ]へと進み、[SparkFun AVR Boards]で検索すると目的のボードパッケージが見つかるのでこれをインストールして完了です!
[ボード]の項目に[SparkFun AVR Boards]が追加されるので、この中にある[SparkFun Pro Micro]を選択します。こちらでは[3.3V 8MHz][5V 16MHz]の両タイプのPro Microを選択する事が出来るので、使用しているボードに合った項目を選択すればOKです。
HID機能を使った簡単な作例
Pro MicroはArduino Leonardoと同様、PCとUSB接続した際にHID(ヒューマン・インターフェイス・デバイス)として認識される機能が標準で備わっています。
通常PCとUSB接続して使うマウスやキーボード、またゲームパッドといった入力機器のように使うことが出来ます。
Arduino IDEの[スケッチ例]の中にある[9.USB]にキーボードやマウス操作を行うといったサンプルスケッチがいくつか入っているので基本的な使い方など理解しやすいと思います。
簡単な例としてPro Microに接続したスイッチが押されると定型文を入力するスケッチを作ってみました。
D2端子に接続したスイッチを押すと”Switch ON”と入力される簡単なものです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | // Pro Micro HID機能を使い定型文を入力! // https://burariweb.info #include "Keyboard.h" const int buttonPin = 2; int buttonState; int lastbuttonState; void setup() { Keyboard.begin(); pinMode(buttonPin, INPUT_PULLUP); } void loop() { buttonState = digitalRead(buttonPin); if(buttonState == 0 && lastbuttonState == 1){ Keyboard.println("Switch ON"); } lastbuttonState = buttonState; delay(50); } |
上記スケッチをPro Microに書き込みます。
PCのテキストエディッタなど文字を入力出来るソフトを開きます。
Pro Microに接続したスイッチが押されるとエディッタに”Switch ON”という文字が入力されます。
このようなHID機能が使えるのがPro Microの特徴となります。
自作キーボードの製作やPCのマウスカーソルを操作したり、またゲームパッドの入力操作に使ったりといろいろと応用する事が出来ます。
この投稿をInstagramで見る
ATmega32U4を使ったミニゲーム機『Arduboy』
Pro Microから話が少し逸れてしまいますが、『Arduboy』というミニゲームコンソールが市販されています。
ArduboyはオープンソースのゲームコンソールとなりMCUにATmega32U4が使われているのが特徴です。
ATmega32U4なのでPro MicroやArduino Leonardoを使えばブレッドボードで簡単に組んで楽しむことが出来ます!
この投稿をInstagramで見る
【追記】ATmega32U4を使ったUSBゲームパッドを自作してみました!
本物のスーパーファミコンのコントローラーを改造してゲームエミュレーターなどで使えるUSBゲームパッドを作ってみました!
スーファミコントローラー内の基板をごっそりと自作した基板に入れ替えて製作しています。
ゲームパッドとして動かす部分の制御はMCUにATmega32U4を使いました。
ATmega32U4なのでArduino LeonardoやPro Microを使えばブレッドボードでも試すことが出来るので、興味ある方はこちらの記事も見て頂ければと思います。
この投稿をInstagramで見る
最後に!
ArduinoシリーズでHID機能が標準で使えるのはPro MicroやArduino Leonardoだけなので、自作キーボードやゲームパッド、また何かしら入力デバイスを作るなどの用途に活用できると思います。
最近発売が開始されたArduino Uno R3の後継機となるArduino Uno R4 MinimaやArduino Uno R4 WiFiではHID機能が標準でサポートされているようですね!
また、スーパーファミコンのコントローラーを改造してPC上で動くゲームエミュレーターなどを操作する事が出来る自作ゲームパッドをATmega32U4を使って現在製作していますが、またこちらもPro Microの作例として後日ご紹介できればと思います。
コメントを残す