前回のBluetooth Moduleは、特に速かったですが
どうゆう訳か、Arduino系のパーツは、配送速いですね~
ここんとこ、トラブル続きでスルッといきません。これもなのです。(´-﹏-`;)
すぐにUSBに挿入すると
緑のLED(Power)が1個、赤のLED(TX・RX)は2個ついたまま
右下にデバイスドライバのセットアップが始まり
完了。
Arduino IDE v.1.8.3で[Arduino Micro]にして
Lチカを書き込みます。
これはすんなり行くだろうと思いきや、エラー
COMは、ちゃんとCOM10に設定しているのにです。
どうもこいつは、書き込みに非常に癖がある代物のようです。
ここが詳しそうです。
Arduino互換機でSparkFun Pro Microというものらしい
色んなバージョンがあるんですね~
マーティーが買ったのは、これです。
よーくみると16MHzの水晶発振子がついていて
J1パッド(上の写真の左端下)もあり、オープンになっています。
SparkFun純正は、これ。
マーティーのは、いわゆる中華Cloneってやつで、Fakeではない事を願っています。
16MHzの水晶発振子がついているので必然的に5V動作ということになります。
どうやら本当は、3.3Vと5Vのシルクのどちらかにチェックがあるハズのようです。
が、マーティーのは、3.3V、5Vと印字があるも、どちらにもチェックなし(-_-;)
で、書き込みには、Arduino Microではなくが、マーティーのは、3.3V、5Vと印字があるも、どちらにもチェックなし(-_-;)
SparkFun Pro Microのボードマネージャーが必要のようです。
Digisparkの時にDigistumpのとSpence Konde氏のものをインストールしましたが
同じ様にSparkFunのボードマネージャーをインストールする必要があります。
Arduino IDE v.1.8.3を起動します。
[ファイル]-[環境設定]します。
赤枠部の[追加のボードマネージャのURL:]に次のURLを入力しますが
マーティーの場合、先にDigistumpのとSpence Konde氏のURLが入っています。
この後ろに「,」をつけて追加してもいいのですが
右下の赤枠部のボタンを押すと
このボックスで改行して次のURLを追加して
***
https://raw.githubusercontent.com/sparkfun/Arduino_Boards/master/IDE_Board_Manager/package_sparkfun_index.json
***
[OK]します。
マーティーの場合、先にDigistumpのとSpence Konde氏のURLが入っています。
この後ろに「,」をつけて追加してもいいのですが
右下の赤枠部のボタンを押すと
このボックスで改行して次のURLを追加して
***
https://raw.githubusercontent.com/sparkfun/Arduino_Boards/master/IDE_Board_Manager/package_sparkfun_index.json
***
[OK]します。
すると、ボードマネージャーのボックスが出るので
「プラットフォームのインデックスをダウンロード中」が終わるまで待って
[タイプ]の横の「検索をフィルタ」の欄に「SparkFun」と入力したら、
「SparkFun AVR Boards by SparkFun Electronics 」をクリックすると
完了すると赤線部に「INSTALLED」がでたら[閉じる]します。
[ツール]-[ボード]で下の方にスクロールすると
今回は、懸念していた「先にインストールしたのが消える現象」はなく
[Arduino AVR Board]群ができています。
そこの[SparkFun Pro Micro]を選択します。
[プロセッサ:]の所を開いて
[ATmega32U4(5V, 16MHz)]にします。
[ファイル]-[スケッチの例]で下の方に
[SparkFun Pro Micro用のスケッチ]と
[Arduino AVR Boards用のスケッチ]が追加されました。
Arduino IDEの書込装置を何に設定していいか見つからず
ま~だ書き込みはできませんね~
この状態で[ボード情報を取得]をみると
何と!「Arduino/Genuino Micro」とでたのです。
改めて上のシリアルポートの名称を見ると
”COM10(Arduino/Genuino Micro)”になっているのに今頃気づきます。
先のサイトの説明では、
「RESETスイッチを2回押し(ダブルクリック)すると
シリアルポートが8秒間出現する」
ということなのですが
マーティーのは、RESET スイッチは、付いていないし
USBに挿したらすぐにArduino Micro COMポートができて
8秒過ぎても消えないのです。
このSparkfunサイトにも、RESET2回押しの説明があります。
Sparkfunサイトのここにボード上のTXとRXをBlinkさせるスケッチがありました。
[ツール]-[ボード]で下の方にスクロールすると
今回は、懸念していた「先にインストールしたのが消える現象」はなく
[Arduino AVR Board]群ができています。
そこの[SparkFun Pro Micro]を選択します。
[プロセッサ:]の所を開いて
[ATmega32U4(5V, 16MHz)]にします。
[ファイル]-[スケッチの例]で下の方に
[SparkFun Pro Micro用のスケッチ]と
[Arduino AVR Boards用のスケッチ]が追加されました。
ま~だ書き込みはできませんね~
何と!「Arduino/Genuino Micro」とでたのです。
改めて上のシリアルポートの名称を見ると
”COM10(Arduino/Genuino Micro)”になっているのに今頃気づきます。
先のサイトの説明では、
「RESETスイッチを2回押し(ダブルクリック)すると
シリアルポートが8秒間出現する」
ということなのですが
マーティーのは、RESET スイッチは、付いていないし
USBに挿したらすぐにArduino Micro COMポートができて
8秒過ぎても消えないのです。
このSparkfunサイトにも、RESET2回押しの説明があります。
Sparkfunサイトのここにボード上のTXとRXをBlinkさせるスケッチがありました。
他にも色々サンプルスケッチがあります。
書込装置の設定はわかっていませんが、いつもの「AVRISP mkII」のまま
この設定で書き込んでみることにします。
そのSparkfunサイトからスケッチをコピペしてきますm(_ _)m
*****
/* Pro Micro Test Code
by: Nathan Seidle
modified by: Jim Lindblom
SparkFun Electronics
date: September 16, 2013
license: Public Domain - please use this code however you'd like.
It's provided as a learning tool.
This code is provided to show how to control the SparkFun
ProMicro's TX and RX LEDs within a sketch. It also serves
to explain the difference between Serial.print() and
Serial1.print().
*/
int RXLED = 17; // The RX LED has a defined Arduino pin
// The TX LED was not so lucky, we'll need to use pre-defined
// macros (TXLED1, TXLED0) to control that.
// (We could use the same macros for the RX LED too -- RXLED1,
// and RXLED0.)
void setup()
{
pinMode(RXLED, OUTPUT); // Set RX LED as an output
// TX LED is set as an output behind the scenes
Serial.begin(9600); //This pipes to the serial monitor
Serial1.begin(9600); //This is the UART, pipes to sensors attached to board
}
void loop()
{
Serial.println("Hello world"); // Print "Hello World" to the Serial Monitor
Serial1.println("Hello!"); // Print "Hello!" over hardware UART
digitalWrite(RXLED, LOW); // set the RX LED ON
TXLED0; //TX LED is not tied to a normally controlled pin so a macro is needed, turn LED OFF
delay(1000); // wait for a second
digitalWrite(RXLED, HIGH); // set the RX LED OFF
TXLED1; //TX LED macro to turn LED ON
delay(1000); // wait for a second
}
*****
途中でCOM11の文字が一瞬ちらっと!
COM10で書き込みしたハズなのに、どきっ!
また失敗なのだろうか?
書き込みは無地成功しました!
すぐに右下にこれがでて
SparkFun Pro Microのデバイスドライバが入ります。
TXとRXが交互にブリンクしています。
ひとまず書き込み成功です! ふ~っ!
何と!「USBシリアルデバイス(COM12)」になっています。
書き込む前の「Arduino Micro(COM10)」は、どこに行ったのだろう?
COM12にしてシリアルモニタを開くと、ちゃんと動いています。
Arduino IDEのログをみてみると
「シリアルポート「COM10」を1200bpsで開いて閉じる事によって、
リセットを行っています。」
ってのがありました。
*****
C:\Program Files (x86)\Arduino1.8.3\...
~・・・・・
スケッチをコンパイルしています...
~・・・・・
最大28672バイトのフラッシュメモリのうち、スケッチが5078バイト(17%)を使っています。
最大2560バイトのRAMのうち、グローバル変数が346バイト(13%)を使っていて、ローカル変数で2214バイト使うことができます。
シリアルポート「COM10」を1200bpsで開いて閉じる事によって、
リセットを行っています。
PORTS {COM10, } / {} => {}
PORTS {} / {COM11, } => {COM11, }
Found upload port: COM11
~・・・・・
Using Port : COM11
Using Programmer : avr109
Overriding Baud Rate : 57600
AVR Part : ATmega32U4
Chip Erase delay : 9000 us
PAGEL : PD7
BS2 : PA0
~・・・・・
avrdude: verifying ...
avrdude: 5078 bytes of flash verified
avrdude done. Thank you.
*****
一度、USBを抜き差しすると
もう何度やっても「Arduino Micro(COM10)」が出てくることはなく
「USBシリアルデバイス(COM12)」にしかなりません。
不思議だ~
まさか元のBootloaderが消えてしまったのか、壊れたのか...(-_-;)
もう一度、標準スケッチ例のBlinkを書き込んでみます。
COM12を指定して(というかこれしかない)
LEDがないので動かないことはわかっているのですが
Blinkを開いて
書き込みます。
今度は、こんなログが
*****
~
最大28672バイトのフラッシュメモリのうち、スケッチが4126バイト(14%)を使っています。
最大2560バイトのRAMのうち、グローバル変数が149バイト(5%)を使っていて、ローカル変数で2411バイト使うことができます。
シリアルポート「COM12」を1200bpsで開いて閉じる事によって、リセットを行っています。
PORTS {COM12, } / {} => {}
PORTS {} / {COM11, } => {COM11, }
Found upload port: COM11
~
Using Port : COM11
Using Programmer : avr109
Overriding Baud Rate : 57600
AVR Part : ATmega32U4
~
avrdude: verifying ...
avrdude: 4126 bytes of flash verified
avrdude done. Thank you.
*****
デバイスマネージャーは、「USBシリアルデバイス(COM12)」から変わりません。
一度、USBを抜き差しても変わりません。
もう一度、RX・TX LED Blinkを書き込むと
一瞬、この「Arduino Micro bootloader(COM11)」がでて、すぐに消えて
上の様に「USBシリアルデバイス(COM12)」に戻るのです。
この時点で[ボード情報を取得]すると
「不明なボード」
ん~ん、いよいよ壊れたのか?
ひょっとして
「Arduino/Genuino Micro」にして書き込んだら。っと
ボードの設定では、変わらないとは思いますが
念の為、もう一度[ボード情報を取得]が変わってないことをを確認して
同じTX・RX LED Blinkを書き込みます。
また、「Arduino Micro bootloader(COM11)」がでて、すぐに消え
書き込みが完了しました。
お~~っ!「Arduino Micro(COM10)」に戻りました!
ボード情報を見ると、これに戻っています。
取り敢えず、もとに戻ったのでホット一息。
ところが、RXとTXが交互にブリンクするはずなのですが
両方同時にブリンクしています。
シリアルモニタに「Hello world」は、でています。
もう一度、SparkFun Pro Microの設定で同じスケッチを書き込みます。
ちゃんとRXとTXが交互にブリンクしますね~
でもボード情報は、これに戻ります。
このボードは、「SparkFun Pro Micro」クローンだけど
ボード情報は、「Arduino Micro」にフェイクって代物なのでしょう。
まあ、「SparkFun Pro Micro」の「5V 16MHz」の設定で書き込めば
正常に動作することは確認できました。
結局、こいつの本名は何なのかわかりません。
ここまでかなり気力を使ったので、そもそもこれをポチった目的である
「DigikeyboardとUSB-Serialの同時使用」は、お預けです。
kosakalabさんのここのは、似てるけど、チップの搭載角度が異なっています。
そこには、SparkFun Pro MicroをArduino Leonardo化する手順が詳しくあります。
今回は、記録に留めて止めておきます。
最近は、Arduino系にハマっております。
そろそろCNC2418で何か作ろうかな~
Fusion360やEAGLEの使い方を忘れそうだし。
2 件のコメント:
SparkFun Pro Micro(クローン)はLED周りのハードウェア構成がArduino Microと異なります。
お使いのPro Micro(クローン)はArduino Microのブートローダが書き込まれているのでArduino Microと認識されますがRXTXのLEDは正しく動作しません。
正しく動かすにはSparkFun Pro Micro(またはArduino Leonardo)のブートローダを書き込んでボードをSparkFun Pro Micro(またはArduino Leonardo)と選択して使用します。
Arduino Microのフェイク?と心配されていますが、SparkFun Pro Micro(クローン)はArduino Leonardoと同じハードウェア構成でArduino Microとは名前が似ていますが全くの別物です。
コメントいただきありがとうございます。
公開が送れて誠に申し訳ございません。
コメントいただいた事情は、この次の投稿の検討で把握できたつもりでおります^^;
これらの検討で共通に乗っているATmega32u4が、とても好きになりました。
コメントを投稿