見出し画像

pro microのプログラム書き込み


アクシデントの備忘録


pro microについて

pro microについて。
arduino Leonardoを小型化したものがarduino miniの更なる小型機種がpro micro。(ただし、非公式ファミリー)
マイコンがatmega32u4という点がミソ。

画像2
購入品

J1ショートについて

pro microは3.3V駆動と5.0V駆動の2種あり、3.3V駆動のクロックは8MHz、5.0V駆動のクロックは16MHzという違いがある。そのため、場合によってJ1とショートさせるか否か使い分ける必要あり。

画像3


今回購入したものは後者の5.0V駆動のもので、オリジナルで言えばJ1をショートさせる必要があったが、届いたものはJ1がオープンのままでした。
とはいえ、コピー品の多くはオリジナルの回路に準拠していると思うので、J1をショートさせた。

プログラム書き込みについて

pro miniはLeonardoの互換品のため、「ツール」から「ボード」でarduino Leonardoに設定する必要があります。

画像1

プログラムを書き込もうとしたらポートが見つからず、繰り返し書き込もうとすると、認識しないように。

原因と対処法

認識してくれない問題はPCを再起動したらなぜか直りました。

調べてみると同じ症状を発見。しかし、解決方法も多岐に渡る。
しかし、共通して書いてあったのが「リセットボタンを押してその隙に書き込め」というものでした。
以下、憶測。

Leonardo系のarduinoはatmega32u4というマイコンしか搭載されておらず、USBとの通信や書き込みなど処理をこのマイコンが一手に担っています。そのため、USBの通信とプログラムの書き込みを同時に行えない。
したがって、通信モードと書き込みモードが勝手に切り替わってしまったというわけ。

肝心の書き込み方法は、「リセットボタンを2回押せば8秒間は書き込みモードになる」という情報がありました。しかし、それは純正品の話で、1回でいいだの何回も連打しろだのこの辺は情報が錯綜していました。

そこで、RSTピンとGNDをショートさせてリセットボタンとして機能させた。個人的にタクトスイッチがあったほうが色々便利そうなので写真ように簡易リセットボタンを組みました。

画像5

書き込み手順

実際の書き込み手順ですが、あくまで今回の事例。
この辺は環境によって変わるかもしれません。

1.ボード設定をArduino Leonardoに設定し、COMは特に選択しない

2.リセットボタンを押し、一度目のポロンという音が聞こえたらプログラムの書き込みボタンを押す。
このとき、windowsであればデバイスマネージャーを開いておくとタイミングが分かりやすいかも。タイミングとしてはArduino Leonardo bootloaderと表示されているタイミングで書き込む

画像4

3.書き込みが始まり、書き込みの緑のバーがいっぱいになったくらいで、もう一度リセットボタンを押す。とはいえ、書き込み時間はプログラムによって変わってくると思うので、感覚的に書き込みボタンを押してから2~3秒後くらい。

pro microのキーボード化

さきほどの回路にもう一つタクトスイッチを増やしただけの簡単なものを用意。

画像6

コードは以下の通りです。

#include <Keyboard.h>

void setup() {
 Keyboard.begin();
 pinMode(4, INPUT_PULLUP);
}

void loop() {
 if(digitalRead(4) == LOW){
   Keyboard.println("Hello World!");
   delay(100);
 }
}

動作は簡単で4ピンに繋がっている写真左のボタンを押すと、入力状態にあるアプリに"Hello World!"と表示されるというものです。以下にメモ帳で試した動画を添付しておきます。


この記事が気に入ったらサポートをしてみませんか?