2018年7月3日火曜日

Digistump の Digispark Kickstarter という ATTINY85 を使った安価で小さなマイコンがあります。これの上位互換品で Digispark Pro というのを試してみたところ、ちょっと悩んだので備忘録。

プレス機のカウンター信号(単なるオン/オフスイッチ)をスマホで受け取るというセンサーを作成することになりどうしようかなと思ったのですが、信号そのものが出ていない機械だとホール効果センサーを付けるとか、将来的にはその他のセンサーもつなぎたいとのことだったので間にマイコンをかますことにしました。

とりあえず、Pro Micro という Arduino Leonardo 互換のちっちゃいやつで試してみまして、簡単にできました。これでもいいのですが Digispark Kickstarter でも十分かなと思い試そうとしたのですが、部品箱を見ると在庫切れ><;

よく見ると似て非なるものが何個か出てきた。なんかピンが多い…で、調べてみると Digispark Pro という Digispark Kickstarter の上位互換品。んじゃ、取り合えずこれで試すかと簡単なプログラム書いて書き込もうとしたらわけのわからないワーニングが大量に出て書き込めない><;

最大14844バイトのフラッシュメモリのうち、スケッチが958バイト(6%)を使っています。
グローバル変数は9バイトのRAMを使用しています。
Running Digispark Uploader...
Plug in device now... (will timeout in 60 seconds)Warning: device with unknown new version of Micronucleus detected.
This tool doesn't know how to upload to this new device. Updates may be available.
Device reports version as: 2.0

いろいろ調べてみたところ、下記のページに解決策が書かれていました。
(私の環境ではライブラリのヘッダが足りなくてコンパイルが通りませんでしたが…)

Warning: device with unknown new version of Micronucleus detected.


1. 書き込みツールのダウンロード


$ cd ~/temp
$ wget https://github.com/micronucleus/micronucleus/archive/master.zip

2. 展開


$ unzip master.zip

3. コマンドラインツールのソースフォルダに移動


$ cd micronucleus-master/commandline/

4. コンパイル


$ make
make: libusb-config: Command not found
Building library: micronucleus_lib...
gcc  -Ilibrary -O -g -D LINUX -c library/micronucleus_lib.c
In file included from library/micronucleus_lib.c:30:0:
library/micronucleus_lib.h:32:10: fatal error: usb.h: そのようなファイルやディレクトリはありません
 #include <usb .h>
          ^~~~~~~
compilation terminated.
Makefile:55: recipe for target 'micronucleus_lib' failed
make: *** [micronucleus_lib] Error 1

# usb.h が見つからないというエラーが出ました><;

5. usb.h の含まれるパッケージを探す


$ sudo apt-get install apt-file
$ sudo apt-file update
$ apt-file search /usr/include/usb.h
libusb-dev: /usr/include/usb.h

6. libusb-dev をインストール


$ sudo apt install libusb-dev

7. 再度コンパイル


$ make
Building library: micronucleus_lib...
gcc  -Ilibrary -O -g -D LINUX -c library/micronucleus_lib.c
Building library: littleWire_util...
gcc  -Ilibrary -O -g -D LINUX -c library/littleWire_util.c
Building command line tool: micronucleus...
gcc  -Ilibrary -O -g -D LINUX -o micronucleus micronucleus.c micronucleus_lib.o littleWire_util.o -L/usr/lib/x86_64-linux-gnu -lusb
rm -f *.o

8. 出来上がったファイルの確認


$ ll micronucleus
-rwxr-xr-x 1 kiya kiya 55K  7月  3 11:05 micronucleus

9 .複写先の確認(すでに存在したらリネームするため)


$ ll ~/.arduino15/packages/digistump/tools/micronucleus/2.0a4
-rwxrwxrwx 1 kiya kiya 19K  2月 13  2016 launcher
-rwxr-xr-x 1 kiya kiya 55K  7月  3 11:10 micronucleus

10. すでに存在するのでバックアップ


$ mv ~/.arduino15/packages/digistump/tools/micronucleus/2.0a4/micronucleus micronucleus.2.0a4

11. 複写


$ cp micronucleus ~/.arduino15/packages/digistump/tools/micronucleus/2.0a4

これで書き込めるようになりました。

0 件のコメント: