忍者ブログ
コンピューターとかゲームの最新ニュースはまとめるのが面倒なので Twitter を追ってください。もしくは1日分のツイートをまとめて簡素な HTML にするスクリプトください。

敢えて小型 Arduino 互換デバイスで Arduino デビューしてみる

むしゃくしゃしていたので、単純なきょどうしかしないハードウェアを作りたい人には魅力的に見える DigiSpark という超小型 Arduino 互換機から始めてみました。




DigiSpark 超小型 Arduino 互換機事始め

とりあえず読んどけって資料

サンプルコード実行までに嵌ったこと

Wiki においてあるデバイスドライバインストーラではデバイスがちゃんと認識されない@Windows10

ネットで探したところ、すでに人柱がフォーラムで訴えており、ドライバが修正されている。


ドライバインストール後に Windows の管理ツール > 「システム情報」を実行し、ツリーの

  • コンポーネント
    • 問題のあるデバイス

というド直球な場所に何か USB デバイスがあった場合は、ドライバがちゃんとインストールされていないことを疑うとよい。

Arduino IDE からプログラムを実行する際の作法

DigiSpark は無駄を排除して小型化した結果、リセットボタンすら排除しております。そして PC 側からリセットすることができません。


Assertion failed: res >= 4, file library/micronucleus_lib.c, line 100


というエラーが表示される場合は、”適切なタイミングでリセットが出来ていないためにプログラムを実行できない” からです。
めんどくせぇと思わずに…


Plug in device now... (will timeout in 60 seconds)


と IDE が知らせてくれたらカードを挿入しましょう。

数時間でできたこと

  • Lチカ (LED (発光ダイオード) をチカチカ点滅させる)

おそらく今後に悩むこと

  • Arduino の開発全般に言えることだと思いますが、純粋な C/C++ じゃないし、リンクされるオブジェクトも (少なくともパッと見隠蔽されているので) わかりませんので省メモリがしづらいです。
    • とりあえず、いまのところは問題なさそうだけど、フットプリントデカい…
  • ただでさえ少ない pin は、それぞれ使える I/O モードが異なります。参考
    • これをクセだと言えるハートの持ち主じゃないと色々厳しいですね。

現状の困ったこと

  • 当然のように ICE などなく、JTAG デバッガもサポートされていない。
  • print 出力が現状出来ていない。
    • これは DigiSpark が USB-HID として認識されることに起因する問題で標準的な方法ではシリアル出力できない
    • DigiCDC というライブラリでシリアル出力できるようなことが書かれているが、現状出来ていない
  • Arduino IDE が JAVA というオラクル社の邪悪な仮想マシン上で動くプログラムであること


PR