2020年頃に中古で購入したiPhoneSE1(初代16GB)のストレージが足らなくなってきたので、3年ぶりに新しい機種へ変更。その機種の名は Pixel3 。2020年に2016年製造のiPhoneSEを手に入れたので、4年落ちローエンドスマホから5年落ちハイエンドスマホへの機種変なので、快適性大幅アップ!!
選定理由としては、
・USBメモリを使いなら充電(OTG充電)ができること。
・お財布ケータイが使えること。
・Qi充電が使えること。
・Windowsでアプリ開発が体験できること。
・あまり重くないこと
であるが、Pixel3かPixel5ぐらいしか候補が無かったりする。
Pixel5は中古で安くないし、今更買うのもなんだかな。。。
Pixel6やPixel7は重いし高いし、QiをあきらめてPixel6aという手もあるが年末より値上げしているので何か損な気が。。。で、結局Pixel3を選択。ジャンクじゃないのでそれなりの値段がしたが、やむを得ない。
で、なぜOTG充電が大事と考えているか、というと、これをドラレコにして動画をUSBメモリに記録しようと考えているから。まあカメラで録画してUSBメモリへ書き出す程度なら、Android Studioでちゃちゃっと作れそうな気がするし。。。
ちなみにUSB Type-C OTG対応HUBとしては、Amazonで売っているLUONOCAN type-c usbハブってやつ↓を買ったが、何ら問題なく充電しながらUSBメモリが使えた。
本当のところはルートアール RUA-OTGTPU1が欲しかったがAmazonで売ってないのであきらめて似たの↑を購入。
今回の購入にあたり、OTG充電対応スマホをいろいろ調べたので、その結果を備忘メモとして残しておこうと思う。
-----------------------------------------------------
下記の機種は使える可能性が高いと思われ。
・ELECOM MPA-CAPDBK対応NG機種
う~ん、日本メーカーはほぼ全滅、韓国および中華製ハイエンドスマホのごく一部が対応している、って感じかな?
選定理由としては、
・USBメモリを使いなら充電(OTG充電)ができること。
・お財布ケータイが使えること。
・Qi充電が使えること。
・Windowsでアプリ開発が体験できること。
・あまり重くないこと
であるが、Pixel3かPixel5ぐらいしか候補が無かったりする。
Pixel5は中古で安くないし、今更買うのもなんだかな。。。
Pixel6やPixel7は重いし高いし、QiをあきらめてPixel6aという手もあるが年末より値上げしているので何か損な気が。。。で、結局Pixel3を選択。ジャンクじゃないのでそれなりの値段がしたが、やむを得ない。
で、なぜOTG充電が大事と考えているか、というと、これをドラレコにして動画をUSBメモリに記録しようと考えているから。まあカメラで録画してUSBメモリへ書き出す程度なら、Android Studioでちゃちゃっと作れそうな気がするし。。。
ちなみにUSB Type-C OTG対応HUBとしては、Amazonで売っているLUONOCAN type-c usbハブってやつ↓を買ったが、何ら問題なく充電しながらUSBメモリが使えた。
本当のところはルートアール RUA-OTGTPU1が欲しかったがAmazonで売ってないのであきらめて似たの↑を購入。
今回の購入にあたり、OTG充電対応スマホをいろいろ調べたので、その結果を備忘メモとして残しておこうと思う。
-----------------------------------------------------
下記の機種は使える可能性が高いと思われ。
・Youtube動画にてOK報告あり
Pixel6Pro
Octo4a
・Amazon中華USB-PD HUB充電対応機種
GalaxyS20
Pixel3/4/5
・ELECOM MPA-CAPDBK対応OK機種
・ELECOM MPA-CAPDBK対応OK機種
Google Pixel 3a/4/4a/4XL/5/5a/6/6Pro/6a/7/7Pro
Galaxy S10/S10+/A51/A52/A53
Galaxy S20/S20+/S20 Ultra/S21/S21+/S22/S22 Ultra
Galaxy Z Flip/3/4 / Z Fold/2/3/4
Galaxy Note 10+/Note20 Ultra/M23
LG style2/3/V60/G8X/VELVET
Xperia 1 III/IV
Xperia 5 III/IV
TORQUE G04
Mi 10 Lite 5G
Rakuten BIG/BIG s
Redmi Note 11
HUAWEI P30 lite/Pro
Xiaomi 11T/11T PRO/12T PRO
ZTE a1/Axon 10 Pro 5G
Android One(S6/S8)
Libero 5G/5G II
GRATINA
BASIO4
-------------------------------------------------------
下記の機種は、まず使えないと思われ。
下記の機種は、まず使えないと思われ。
・Youtube動画にてNG報告あり
Honor9
・ELECOM MPA-CAPDBK対応NG機種
OPPO Find X2/3 Pro
OPPO A54/A55s/A73/A77/Reno3/3A/5A/7A
Galaxy A20/A21/A23/A30/A32/A41
AQUOS sense~7/zero~6/R5G/wish2
Xperia Ace / Ace II / Ace III
Xperia 1/1 II/5/5 II/8/8 Lite/10 II/10 III/10 IV
arrows We/U/Be/N/NX9/Be3/RX/A41/A22/R3/R6/R7
Rakuten Hand/Mini
Zenfone 9
TORQUE
BALMUDA Phone
Redmi Note 9T/10/10T
Nothing Phone
POCO F4 GT
LEITZ PHONE 1/2
razr
Android One(S7/S9/S10)
Libero III/S10
BASIO active
HTC Desire 22 pro
JA2-SMP0601
moto e32s/g32/g50/g52j
motorola edge 20/30 PRO
う~ん、日本メーカーはほぼ全滅、韓国および中華製ハイエンドスマホのごく一部が対応している、って感じかな?
PR
最近、園芸ばかりやっていたが、寒くなってきたこともあり、電子工作なガジェット作りを再開することにした。とりあえず、作るものは、車用の外付けメーターのようなもの。AmazonとかでもOBDメーターとかいろいろ売っているが、まああんな感じなもの。以前S14に乗っていたときにはトラストのインフォメーターを付けていたが、それよりもイケてるものにしたいかな。
まずは、調査として、次のような素材を入手した。
・CPU:STM32F103C8T6 (互換品)
・LCD:ILI9341コンパチ、SPI接続
車との通信はCANを使用する予定。レーシングメーターにならい、レスポンス重視でOBD-IIにはしない予定。使用中のフルコンがCAN対応(Link G4X)なので、それにあわせる予定。
開発環境はArduinoにする予定。STM32Cubeが標準開発環境らしいが、使ったことないもので、いきなり高難度のものを作るのは厳しい。
さて、Arduino開発環境のコアとライブラリを選ぶ。
コアの選択肢は
①mapleコア (別名Arduino STMコア、roger'sコア、rogerclarkmelbourne)
②STMコア(別名Arduino Core STM、stmduinoコア)
・・・ややこしい。。。
①は/users/ユーザー/Arduino/hardwareディレクトリの下にGitから取ってきたArduino_STM32-masterを解凍して環境を作る。コンパイラは含まれていないので、Arduino SAM boards ( 32-bits ARM Cortex-M3 ) という別のコアも入れる(コンパイラのみ使う)。
②は環境設定でボードマネージャのURLにstm32duinoのリンクを追加して、ボードマネージャを使ってインストールする。ネットには古いURLが書いてあるサイトが非常に多いので、注意が必要。2021年12月時点では、こちら↓が最新の模様。
ttps://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json
こちら↓は古いので、絶対に使ってはならない。ネットの情報だと、こっちが一般的になっているみたい。。。
https://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_index.json
どっちがいいかわからなかったので、両方試すことにした(なった)。
次、ライブラリの選択肢としては、
1⃣ Adafruit_ILI9341
2⃣ Adafruit_ILI9341_STM
3⃣ TFT_eSPI
などがある。実際は、もっといろいろ試したが、まともに動いたのが、この3つ。てか、サンプルを動かそうと思っても、ほとんどのライブラリは一筋縄ではいかない。
まず、コア①と②の違いだが、
①mapleコア
情報が多い、コンパイルが非常に速い(STMコアの1/4ぐらいの時間)、対応機能は少なめ
②STMコア
情報少な目、コンパイル劇遅、対応機能は多い
ということで、機能さえ許せば①mapleコアがいいが、今回はSTMコアを選ぶことにした。その理由は、①はCAN通信に対応していないから。一応、phonoっていう人がCANのライブラリを出している。が、5時間ぐらいがんばった結果、まったく動作しなかった。。。。
次、ライブラリの選択肢だが、これはパフォーマンス重視で選びたいところ。こういうライブラリには、たいていgraphictestというベンチマークプログラムが付いてくるので、これで測定してみた。尚、SPI2で接続しているので、SPI1の60~70%の性能しか出ていない模様。
maple(roger's)コアがぶっちぎりの高速なのだが、CANが使えないことが惜しすぎる。。。
まずは、調査として、次のような素材を入手した。
・CPU:STM32F103C8T6 (互換品)
・LCD:ILI9341コンパチ、SPI接続
車との通信はCANを使用する予定。レーシングメーターにならい、レスポンス重視でOBD-IIにはしない予定。使用中のフルコンがCAN対応(Link G4X)なので、それにあわせる予定。
開発環境はArduinoにする予定。STM32Cubeが標準開発環境らしいが、使ったことないもので、いきなり高難度のものを作るのは厳しい。
さて、Arduino開発環境のコアとライブラリを選ぶ。
コアの選択肢は
①mapleコア (別名Arduino STMコア、roger'sコア、rogerclarkmelbourne)
②STMコア(別名Arduino Core STM、stmduinoコア)
・・・ややこしい。。。
①は/users/ユーザー/Arduino/hardwareディレクトリの下にGitから取ってきたArduino_STM32-masterを解凍して環境を作る。コンパイラは含まれていないので、Arduino SAM boards ( 32-bits ARM Cortex-M3 ) という別のコアも入れる(コンパイラのみ使う)。
②は環境設定でボードマネージャのURLにstm32duinoのリンクを追加して、ボードマネージャを使ってインストールする。ネットには古いURLが書いてあるサイトが非常に多いので、注意が必要。2021年12月時点では、こちら↓が最新の模様。
ttps://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json
こちら↓は古いので、絶対に使ってはならない。ネットの情報だと、こっちが一般的になっているみたい。。。
https://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_index.json
どっちがいいかわからなかったので、両方試すことにした(なった)。
次、ライブラリの選択肢としては、
1⃣ Adafruit_ILI9341
2⃣ Adafruit_ILI9341_STM
3⃣ TFT_eSPI
などがある。実際は、もっといろいろ試したが、まともに動いたのが、この3つ。てか、サンプルを動かそうと思っても、ほとんどのライブラリは一筋縄ではいかない。
まず、コア①と②の違いだが、
①mapleコア
情報が多い、コンパイルが非常に速い(STMコアの1/4ぐらいの時間)、対応機能は少なめ
②STMコア
情報少な目、コンパイル劇遅、対応機能は多い
ということで、機能さえ許せば①mapleコアがいいが、今回はSTMコアを選ぶことにした。その理由は、①はCAN通信に対応していないから。一応、phonoっていう人がCANのライブラリを出している。が、5時間ぐらいがんばった結果、まったく動作しなかった。。。。
次、ライブラリの選択肢だが、これはパフォーマンス重視で選びたいところ。こういうライブラリには、たいていgraphictestというベンチマークプログラムが付いてくるので、これで測定してみた。尚、SPI2で接続しているので、SPI1の60~70%の性能しか出ていない模様。
コア | STM | STM | STM | maple | STM |
ライブラリ | Adafruit_ili9341 | Adafruit_ili9341 | Adafruit_ili9341 _STM※ |
Adafruit_ili9341 _STM |
TFT_eSPI |
SPI設定 | software | hardware | hardware | hardware | default |
Screen fill | 20,977,419 | 4,038,734 | 607,443 | 341,501 | 509,483 |
Text | 1,001,104 | 232,005 | 391,305 | 56,788 | 102,278 |
Lines | 9,416,033 | 2,105,339 | 2,373,464 | 295,436 | 622,156 |
Horiz/Vert Lines | 1,694,722 | 336,677 | 71,240 | 29,874 | 56,786 |
Rectangles (outline) | 1,071,852 | 213,486 | 62,720 | 20,294 | 37,433 |
Rectangles (filled) | 41,494,480 | 8,383,502 | 1,266,324 | 709,570 | 1,048,175 |
Circles (filled) | 4,737,970 | 994,918 | 901,059 | 144,201 | 284,465 |
Circles (outline) | 4,102,111 | 928,387 | 1,854,738 | 245,911 | 230,202 |
Triangles (outline) | 2,154,609 | 478,946 | 560,409 | 66,245 | 144,875 |
Triangles (filled) | 13,950,920 | 2,751,883 | 980,072 | 277,898 | 496,978 |
Rounded rects (outline) | 2,012,161 | 425,180 | 585,568 | 87,019 | 107,493 |
Rounded rects (filled) | 43,203,450 | 8,346,793 | 1,493,471 | 724,952 | 1,139,529 |
※ag88版 |
maple(roger's)コアがぶっちぎりの高速なのだが、CANが使えないことが惜しすぎる。。。
基板設計だが、7年ほど前まで永らくPCBEというエディターを使っていた。配布しない個人的な物なんかはEAGLEを使うこともあったかな?そのとき見つけたのが、Designspark PCB(以下DSPCB)とKiCadで、当時はKiCadはLinux用がメインでありWindows上での動作に難があったように記憶している。ということで、DSPCBを選んだ。ただ、こいつが、ものすごく使いにくく、なんでEagleのようにできないんだ、ってブツブツ言いながら使ってきた。よくDSPCBはクソだっていう人がいるが、まあ自分もかなりそう思ってきた。
ということで、今月からKiCadを使い始めることにした。あれだけトラ技で取り上げられてるんだから、悪いものではないだろう。
ということで、いろいろ比較してみた。
・インストールパッケージのサイズ
DSPCB 86MB、 KiCad 1.1GB
→DSPCBの圧勝
・雰囲気
DSPCB:プロが開発した、いまいちなツール
KiCad:素人が開発した、なかなかよくできたツール
→甲乙付け難い
・機能
→圧倒的にDSPCBの方が多い
・慣れていない状態での使いやすさ
→KiCadの方が圧倒的に使いやすい。これは、機能が少ないことが多分に影響している。
DSPCBには、「これなんだ?どう設定したらいいんだ?」みたいなパラメータが大量に
ある。
・慣れた状態での使いやすさ
→標準添付のライブラリを使う:KiCadが上。
標準添付のライブラリを使わない:大差なし。
・結論
大差なし。好きな方、馴れている方を使うべし。
初めての場合、とりあえずちょっとした回路が書ければいいや、であればKiCadを薦める。 ガチで本格的な回路を描きたいのであれば、DSPCBがいいかも。機能が違いすぎる。ただKiCadはファイルが全てテキスト形式であるため、自分でプログラム書いて変換できるような超々上級者には逆にKiCadがお薦めかも。ティアドロップとかできるし。
今回KiCadと比較するために、DSPCBver9を使ってみたが、DSPCBver9ではなんとデフォルトで標準ライブラリが無効化されていた。代わりにPCB Library Loaderを使ってオンラインから入手しろ、となっていた。(標準ライブラリも使おうと思えば有効化できる)
実は、これ、正解だと強く思う。DSPCBはクソだが、そのクソな原因は、標準のライブラリにあるからだ。標準のライブラリって、おそらくいろんなところのデーターをコンバートしたような適当なものが多く、回路図を書くときに、とにかく直線でつながらない。ガタガタになり、大小スケールの異なるパーツの入り乱れた、アンバランスな回路図になってしまうのだった。。。
一応、PCB Library Loader経由でダウンロードしたものを使ってみたが、こちらは、まあまあな感じだった。ただ、ときどき、とんでもないクソが混じっているので、過信は禁物。例えばPIC16F84AのDIP版はPIC16F84A-04/PとPIC16F84A-20/Pがあるが、PIC16F84A-20/Pのフットプリント(↓)なんて、悲惨だ。。。
このPICは肩幅300mil(7.62mm)だが、こいつ(↑)は6.5mmほどしかない。
絶対刺さらんぞな、おぬし、もしかしてーもしかするぞな。
ということで、今月からKiCadを使い始めることにした。あれだけトラ技で取り上げられてるんだから、悪いものではないだろう。
ということで、いろいろ比較してみた。
・インストールパッケージのサイズ
DSPCB 86MB、 KiCad 1.1GB
→DSPCBの圧勝
・雰囲気
DSPCB:プロが開発した、いまいちなツール
KiCad:素人が開発した、なかなかよくできたツール
→甲乙付け難い
・機能
→圧倒的にDSPCBの方が多い
・慣れていない状態での使いやすさ
→KiCadの方が圧倒的に使いやすい。これは、機能が少ないことが多分に影響している。
DSPCBには、「これなんだ?どう設定したらいいんだ?」みたいなパラメータが大量に
ある。
・慣れた状態での使いやすさ
→標準添付のライブラリを使う:KiCadが上。
標準添付のライブラリを使わない:大差なし。
・結論
大差なし。好きな方、馴れている方を使うべし。
初めての場合、とりあえずちょっとした回路が書ければいいや、であればKiCadを薦める。 ガチで本格的な回路を描きたいのであれば、DSPCBがいいかも。機能が違いすぎる。ただKiCadはファイルが全てテキスト形式であるため、自分でプログラム書いて変換できるような超々上級者には逆にKiCadがお薦めかも。ティアドロップとかできるし。
今回KiCadと比較するために、DSPCBver9を使ってみたが、DSPCBver9ではなんとデフォルトで標準ライブラリが無効化されていた。代わりにPCB Library Loaderを使ってオンラインから入手しろ、となっていた。(標準ライブラリも使おうと思えば有効化できる)
実は、これ、正解だと強く思う。DSPCBはクソだが、そのクソな原因は、標準のライブラリにあるからだ。標準のライブラリって、おそらくいろんなところのデーターをコンバートしたような適当なものが多く、回路図を書くときに、とにかく直線でつながらない。ガタガタになり、大小スケールの異なるパーツの入り乱れた、アンバランスな回路図になってしまうのだった。。。
一応、PCB Library Loader経由でダウンロードしたものを使ってみたが、こちらは、まあまあな感じだった。ただ、ときどき、とんでもないクソが混じっているので、過信は禁物。例えばPIC16F84AのDIP版はPIC16F84A-04/PとPIC16F84A-20/Pがあるが、PIC16F84A-20/Pのフットプリント(↓)なんて、悲惨だ。。。
このPICは肩幅300mil(7.62mm)だが、こいつ(↑)は6.5mmほどしかない。
絶対刺さらんぞな、おぬし、もしかしてーもしかするぞな。
秋葉原に行くとき、ちょっと足を延ばしてaitendoまで歩いていくのが決まりだった。徒歩で7~8分はかかるが、そこにしかないものがあるので、けっこう足繁く通ったものだった。
aitendoは電子工作愛好家のオアシスみたいなもので、平日の夜など変な時間に行っても、それなりに客がいっぱい入っている店だった。aitendoでウィンドウショッピングする人なんているわけがなく、みんなWebで調べてこれが欲しいなど目的意識をもって店に来ているようだ。
しかし、ちょっと前に店舗の棚の配置をリニューアルしてから、どうも様子が変だ。常に20人以上いた客が7~8人にまで減っている。確かに棚が減っているので、置いてあるものは減っているのかもしれないが、そのときは理由がわからなかった。
今日、仕事帰りに、aitendoに寄った。主目的は、ラテパンダにRTC用のバッテリーを付けるための部品の購入であった。これ、amazonでもコネクターのところが売ってないんだなぁ。(digikeyなら売ってる)
まずは、バッテリーから。
ボタン電池withケーブル [CR2032-1MM2P] ¥150
あった。これ、昔、若松に置いてあったような気がするが、今秋葉原で置いているのはaitendoだけかもしれない。ネットで在庫数140なので、あって当然だな。1.25mmピッチなので、コネクターの入手が難しい。
次、コネクター。
基板コネクタベース付ポスト(1.25) [53261]、これの2極のやつ。¥10
モレックス社53261シリーズ互換(パチ物)です。本物はdigikeyで。\100円くらいするけど。
在庫は15個か。。。まあ大丈夫だろうなぁ。。。って、あれ?どこにもないぞ?
あ、倉庫か棚の上の段ボールの中にあって、言ったら出してくれるやつかな?
と思って聞いたところ、チャイナっ子(多分)から
「そのシリーズは店には置いていません」
なんと。。。それなら店舗在庫無しとか通販専用とか、書いとけよ。。。。
俺の横にいたおっさんも、いろいろ聞いていて、同じくチャイナっ子(多分)から
「出ているのが全てです」
って言われてやんの~(笑)
。。。。。。。
えと、あれだな、aitendoは通販専用ってことだな。在庫有りでも本当に店舗に
置いてあるかどうかはまったく不明ってことなので、店に行く意味がない。
今日が、aitendoに立ち寄る最後の日になるとは、思いもしなかった。
(俺の横のおっさんも多分おなじ)
こうして、どんどん客が離れていってるんだなぁ。。。。。
客離れといえば、埼玉にある本庄サーキットもかなりヤヴァい。今年度でドリフト走行禁止に
なることが決まったので、来年度からは集客は半分?それ以下?になると思われ。
これは全国各地にあるサーキットの末期状態でよくみられる現象(赤色巨星みたいなもの)
なので、残念ながら、本庄サーキットは、長くはない。
いつものように、メガソーラになっちゃうんだろうなぁ。。。。
aitendoは電子工作愛好家のオアシスみたいなもので、平日の夜など変な時間に行っても、それなりに客がいっぱい入っている店だった。aitendoでウィンドウショッピングする人なんているわけがなく、みんなWebで調べてこれが欲しいなど目的意識をもって店に来ているようだ。
しかし、ちょっと前に店舗の棚の配置をリニューアルしてから、どうも様子が変だ。常に20人以上いた客が7~8人にまで減っている。確かに棚が減っているので、置いてあるものは減っているのかもしれないが、そのときは理由がわからなかった。
今日、仕事帰りに、aitendoに寄った。主目的は、ラテパンダにRTC用のバッテリーを付けるための部品の購入であった。これ、amazonでもコネクターのところが売ってないんだなぁ。(digikeyなら売ってる)
まずは、バッテリーから。
ボタン電池withケーブル [CR2032-1MM2P] ¥150
あった。これ、昔、若松に置いてあったような気がするが、今秋葉原で置いているのはaitendoだけかもしれない。ネットで在庫数140なので、あって当然だな。1.25mmピッチなので、コネクターの入手が難しい。
次、コネクター。
基板コネクタベース付ポスト(1.25) [53261]、これの2極のやつ。¥10
モレックス社53261シリーズ互換(パチ物)です。本物はdigikeyで。\100円くらいするけど。
在庫は15個か。。。まあ大丈夫だろうなぁ。。。って、あれ?どこにもないぞ?
あ、倉庫か棚の上の段ボールの中にあって、言ったら出してくれるやつかな?
と思って聞いたところ、チャイナっ子(多分)から
「そのシリーズは店には置いていません」
なんと。。。それなら店舗在庫無しとか通販専用とか、書いとけよ。。。。
俺の横にいたおっさんも、いろいろ聞いていて、同じくチャイナっ子(多分)から
「出ているのが全てです」
って言われてやんの~(笑)
。。。。。。。
えと、あれだな、aitendoは通販専用ってことだな。在庫有りでも本当に店舗に
置いてあるかどうかはまったく不明ってことなので、店に行く意味がない。
今日が、aitendoに立ち寄る最後の日になるとは、思いもしなかった。
(俺の横のおっさんも多分おなじ)
こうして、どんどん客が離れていってるんだなぁ。。。。。
客離れといえば、埼玉にある本庄サーキットもかなりヤヴァい。今年度でドリフト走行禁止に
なることが決まったので、来年度からは集客は半分?それ以下?になると思われ。
これは全国各地にあるサーキットの末期状態でよくみられる現象(赤色巨星みたいなもの)
なので、残念ながら、本庄サーキットは、長くはない。
いつものように、メガソーラになっちゃうんだろうなぁ。。。。
USBキーボード作成までは順調に進んだが、それ以降はイバラの道であった。解決しても解決しても、次から次へと問題が沸いてきた。さしづめ開発元のDFRobotから送られてきた刺客とでもいうべきか。
【壱の刺客】ときどきUSBキーボードが消える
arduinoの起動がWindowsよりも早すぎるのが原因みたい。arduinoの起動でディレイを入れまくる方法もあるが、Windowsリブートだと対応できない(Windowsが落ちていてもarduinoは普通に動いている)ので、Windowsが起動したタイミングでarduinoに仮想COM経由でメッセージを投げて、メッセージを受け取ったarduinoは自分を再起動するようにした。
【弐の刺客】ブートローダーが頻繁に破壊される。
PICのHID bootloaderも1/256程度の確率で壊れたがarduinoの場合は20%~100%の確率で壊れる。アプリによって確率は異なるようだ(四の刺客参照)。PICのようにbootブロックをプロテクトする方法が使えればいいのであるが、調べた限り、arduinoではこの手は使えない。でも心配ご無用。壊れたのならまた書き込めばいい。このためのツールであるAVRライターであるが、秋月だと10000円以上するのでaitendoで買ってきた。500円程度でも売っているが、どうも怪しいので1500円のやつにした。言うまでもないがAVRライターは必需品である、
【三の刺客】AVRライターのドライバーがインストールできない
署名がないドライバーはインストールできないようだ。Windows10をテストモードにして、ブートメニューから署名なしドライバーを利用可能にした。画面の右下にテストモードと表示されるのは気にはなるが。。。
【四の刺客】arduinoをリブートするためWatchDogTimerを使ったところ、ブートローダーが氏ぬ?
おそらくだけど、ブートローダーは消えてもいないし、氏んでもいない。ではなぜブートローダーとして機能できないかというと、WDTが書き換え途中のarduinoをリブートしてしまうから、と思うのである。これは、WDTをリブート処理直前で有効にすればOK。WDTを本来の目的で使うことはarduinoでは禁忌ということになる。気を付けるべし。
【伍の刺客】COMポートがコロコロ変わるのでarduinoにリブート用コマンドを送れない。
これの動きは、はっきりしている。
COM3がある・・・・アプリのUSB周りの起動にプチ失敗している。arduinoをリブートする必要がある。完全に失敗したときはCOM3すら無い(COM1のみになる)。こうなってはAVRライタしか手はない。
COM4がある・・・・アプリが正しく立ち上がろうとしている状態
COM5がある・・・・アプリが正しく立ち上がっている。arduinoのリブートの必要は無い。
つまり、COM3に対してリブート用のコマンドを送ればいい。もし無ければarduinoはコマンドを受け取れないが、そもそもそのときは受け取る必要がない。
【六の刺客】D12をdigitalのインプットとして使えない
これは結局原因不明。チップが壊れていたり基板が壊れている可能性もゼロではないが、まあ仕様だろうと思うことにして、A0ポートをデジタル入力設定にして使うことにした。
【七の刺客】A0がデジタル入力として機能しない
まずはこの絵を見て、A0はD18として使えることを知る。アナログをデジタルに切り替えるなんか命令があるかと思ったが、通常と変わらずデジタルインプットとして設定すればいいらしい。
さーてと、D18と結線したスイッチを押したら。。。。何も起きない!なんだこれ?使えねーぞ!!
さらに調べると、D18は嘘でしたD14でした、というような記載を見つけた。むむむ!
さくさくっと18から14に書き換えて、さ~て、解決。。。。と思いきや、動かん!!なんじゃこりゃ!?
さらに調べると、アナログはデジタル化してもA0とかで指定できることがわかった。なので、ダメ元で、次のように試してみた。
pinMode( A0, INPUT )
digitalRead( A0 )
たぶんダメだろうなぁ、と思ったが、ビルドはでき、書き込みもできた。でも動かないだろうなぁ。。。。あれ?動いた。。。なんだかなぁ。。。解決!
【壱の刺客】ときどきUSBキーボードが消える
arduinoの起動がWindowsよりも早すぎるのが原因みたい。arduinoの起動でディレイを入れまくる方法もあるが、Windowsリブートだと対応できない(Windowsが落ちていてもarduinoは普通に動いている)ので、Windowsが起動したタイミングでarduinoに仮想COM経由でメッセージを投げて、メッセージを受け取ったarduinoは自分を再起動するようにした。
【弐の刺客】ブートローダーが頻繁に破壊される。
PICのHID bootloaderも1/256程度の確率で壊れたがarduinoの場合は20%~100%の確率で壊れる。アプリによって確率は異なるようだ(四の刺客参照)。PICのようにbootブロックをプロテクトする方法が使えればいいのであるが、調べた限り、arduinoではこの手は使えない。でも心配ご無用。壊れたのならまた書き込めばいい。このためのツールであるAVRライターであるが、秋月だと10000円以上するのでaitendoで買ってきた。500円程度でも売っているが、どうも怪しいので1500円のやつにした。言うまでもないがAVRライターは必需品である、
【三の刺客】AVRライターのドライバーがインストールできない
署名がないドライバーはインストールできないようだ。Windows10をテストモードにして、ブートメニューから署名なしドライバーを利用可能にした。画面の右下にテストモードと表示されるのは気にはなるが。。。
【四の刺客】arduinoをリブートするためWatchDogTimerを使ったところ、ブートローダーが氏ぬ?
おそらくだけど、ブートローダーは消えてもいないし、氏んでもいない。ではなぜブートローダーとして機能できないかというと、WDTが書き換え途中のarduinoをリブートしてしまうから、と思うのである。これは、WDTをリブート処理直前で有効にすればOK。WDTを本来の目的で使うことはarduinoでは禁忌ということになる。気を付けるべし。
【伍の刺客】COMポートがコロコロ変わるのでarduinoにリブート用コマンドを送れない。
これの動きは、はっきりしている。
COM3がある・・・・アプリのUSB周りの起動にプチ失敗している。arduinoをリブートする必要がある。完全に失敗したときはCOM3すら無い(COM1のみになる)。こうなってはAVRライタしか手はない。
COM4がある・・・・アプリが正しく立ち上がろうとしている状態
COM5がある・・・・アプリが正しく立ち上がっている。arduinoのリブートの必要は無い。
つまり、COM3に対してリブート用のコマンドを送ればいい。もし無ければarduinoはコマンドを受け取れないが、そもそもそのときは受け取る必要がない。
【六の刺客】D12をdigitalのインプットとして使えない
これは結局原因不明。チップが壊れていたり基板が壊れている可能性もゼロではないが、まあ仕様だろうと思うことにして、A0ポートをデジタル入力設定にして使うことにした。
【七の刺客】A0がデジタル入力として機能しない
まずはこの絵を見て、A0はD18として使えることを知る。アナログをデジタルに切り替えるなんか命令があるかと思ったが、通常と変わらずデジタルインプットとして設定すればいいらしい。
さーてと、D18と結線したスイッチを押したら。。。。何も起きない!なんだこれ?使えねーぞ!!
さらに調べると、D18は嘘でしたD14でした、というような記載を見つけた。むむむ!
さくさくっと18から14に書き換えて、さ~て、解決。。。。と思いきや、動かん!!なんじゃこりゃ!?
さらに調べると、アナログはデジタル化してもA0とかで指定できることがわかった。なので、ダメ元で、次のように試してみた。
pinMode( A0, INPUT )
digitalRead( A0 )
たぶんダメだろうなぁ、と思ったが、ビルドはでき、書き込みもできた。でも動かないだろうなぁ。。。。あれ?動いた。。。なんだかなぁ。。。解決!