ちょっと気になったので購入してみました。
Digisparkとは?
超小型のATTINY85を利用したArduinoマイコンです。USBに直接刺さるタイプと、ケーブル接続のタイプがあります。
Windows環境での使い方
Arduino IDEでボード追加
http://digistump.com/package_digistump_index.json をArduino IDEの環境設定の「追加のボードマネージャーのURL」に追加します。
Digistump AVR Boardsをインストールします。
パソコンにドライバをインストール
Arduino IDEの環境設定から、赤枠で囲まれたリンクをクリックします。フォルダが開きますので、「packages」「digistump」「tools」「micronucleus」「2.0a4」と開いていき、ドライバーが入っているフォルダまで移動します。
上記のinstall.exeを実行することで適切なドライバーが入るはずです。
Lチカしてみる
スケッチ例の「Digispark_Examples/Start」がLチカのサンプルです。
上記を実行してから、60秒以内にDigisparkを差し込むことでプログラムが転送されます。リセット機能がないので、強制的に抜き差しをしてリセットする必要があります。
プログラムはシンプルですね。LEDはモデルによってどこについているのかが違うようでして、私のものはpin1に接続していました。
電源確認用のLEDは常時ついていますので、もう一つのLEDが点滅するはずです。
HIDマウスにしてみる
このDigisparkはパソコン上からHIDデバイスとして認識させることができます。そのためマウスやキーボードとして見えるデバイスを簡単に作ることが可能です。
上記が「DigisparkMouse/Mouse」のスケッチ例です。
これを実行するとマウスとして認識して、自動的に動きます。外部からの入力によって動作を変えたり、スクリーンセイバーが動かないように定期的にマウスを震わせることなどができます。
パソコンとのシリアル通信
「DigisparkCDC」というサンプルがあるのですが、ちゃんと動かないと思いますので、現在非推奨になっています。
現在は「DigisparkUSB」を使ってください。こちらは仮想USBなので直接シリアルポートと認識されません。RubyとかPythonだと簡単にアクセスできるのですが、Windowsから使うのは結構面倒です。
上記にLinux、Mac、Windowsで使えるサンプルプログラムがありますので、それを実行して通信を試すことが可能です。
個人的にはちょっと面倒なので、シリアル通信をするのであれば他の小型ボードでいいんじゃないかなと思います。HIDデバイスとしてパソコンを制御したいとかの場合には安いので便利そうなんですけれどね。
スケッチ例を調べてみた
カテゴリ | スケッチ名 | 対象 | 内容 |
Adafruit_NeoPixel | buttoncycler | PIN | LEDのNeoPixel用 |
Adafruit_NeoPixel | digispark | PIN | LEDのNeoPixel用 |
Adafruit_NeoPixel | simple | PIN | LEDのNeoPixel用 |
Adafruit_NeoPixel | strandtest | PIN | LEDのNeoPixel用 |
DigisparkCDC | CDC_LED | USB | 非推奨のシリアル通信 |
DigisparkCDC | Echo | USB | 非推奨のシリアル通信 |
DigisparkCDC | USB | 非推奨のシリアル通信 | |
DigisparkIRLib | DigiIrDump | PIN | 赤外線(IR)用 |
DigisparkIRLib | DigiIrRgbCtrl | PIN | 赤外線(IR)用 |
DigisparkIRLib | IRhashdecode | PIN | 赤外線(IR)用 |
DigisparkIRLib | IRrecord | PIN | 赤外線(IR)用 |
DigisparkIRLib | IRrecvDump | PIN | 赤外線(IR)用 |
DigisparkIRLib | IRsendDemo | PIN | 赤外線(IR)用 |
DigisparkIRLib | IRsendJVC | PIN | 赤外線(IR)用 |
DigisparkIRLib | IRserial_remote | PIN | 赤外線(IR)用 |
DigisparkIRLib | IRservo | PIN | 赤外線(IR)用 |
DigisparkIRLib | Samsung36 | PIN | 赤外線(IR)用 |
DigisparkJoystick | Joystick | USB | HIDジョイスティック |
DigisparkKeyboard | Keyboard | USB | HIDキーボード |
DigisparkLCD | BasicUsage | PIN | I2C接続のLCD |
DigisparkMouse | Mouse | USB | HIDマウス |
DigisparkOLED | DigisparkOLED | PIN | I2C接続のOLED |
DigisparkRcSeq | DigiRcSeqZodiac | PIN | RCサーボシーケンス |
DigisparkRcSeq | MultiPosSwitch | PIN | RCサーボシーケンス |
DigisparkRcSeq | OnePropTo5 | PIN | RCサーボシーケンス |
DigisparkRcSeq | RcSeqAdvancedDoors | PIN | RCサーボシーケンス |
DigisparkRcSeq | RcSeqDemo | PIN | RCサーボシーケンス |
DigisparkRcSeq | RcSeqZodiac | PIN | RCサーボシーケンス |
DigisparkRcSeq | UneVoieVers8 | PIN | RCサーボシーケンス |
DigisparkRGB | DigisparkRGB | PIN | PWM出力(PB2) |
DigisparkSoftRcPulseIn | SoftRcPulseInDebug | PIN | pulseIn()関数のノンブロック版 |
DigisparkSoftRcPulseIn | SoftRcPulseInDemo | PIN | pulseIn()関数のノンブロック版 |
DigisparkSoftRcPulseIn | SoftRcPulseInOutDemo | PIN | pulseIn()関数のノンブロック版 |
DigisparkSoftRcPulseOut | Knob | PIN | パルス出力 |
DigisparkSoftRcPulseOut | knob_moyennee | PIN | パルス出力 |
DigisparkSoftRcPulseOut | SerialServo | PIN | パルス出力 |
DigisparkSoftRcPulseOut | SoftRcPulseInOutDemo | PIN | パルス出力 |
DigisparkSoftRcPulseOut | Sweep | PIN | パルス出力 |
DigisparkSoftRcPulseOut | SweepNoDelay | PIN | パルス出力 |
DigisparkSoftRcPulseOut | Usb2Servos | PIN | パルス出力 |
DigisparkSoftSerial | Digi_1io_SerialDbg | PIN | シリアル通信 |
DigisparkSoftSerial | SoftSerialExample | PIN | シリアル通信 |
DigisparkSoftSerial | TwoPortReceive | PIN | シリアル通信 |
DigisparkTinyPinChange | Edge | PIN | PINの状態変更検知 |
DigisparkTinyPinChange | FallingEdge | PIN | PINの状態変更検知 |
DigisparkTinyPinChange | RisingEdge | PIN | PINの状態変更検知 |
DigisparkTinyPinChange | TinyRcScope | PIN | PINの状態変更検知 |
DigisparkTinySoftPwm | SoftPwm13Pins | PIN | ソフトウエアPWM |
DigisparkTinySoftPwm | TinySoftPwmDemo | PIN | ソフトウエアPWM |
DigisparkUSB | DigiBlink | USB | DigiUSB(仮想USB) |
DigisparkUSB | DigiScope | USB | DigiUSB(仮想USB) |
DigisparkUSB | DigiUSB2LCD | USB | DigiUSB(仮想USB) |
DigisparkUSB | Echo | USB | DigiUSB(仮想USB) |
Digispark_Examples | BasicRobot | – | 汎用サンプル |
Digispark_Examples | BT_BLE_Echo | – | 汎用サンプル |
Digispark_Examples | BT_or_BLERobot | – | 汎用サンプル |
Digispark_Examples | Charlieplex | – | 汎用サンプル |
Digispark_Examples | CharliePlexMarquee | – | 汎用サンプル |
Digispark_Examples | EEPROM | – | 汎用サンプル |
Digispark_Examples | Expander | – | 汎用サンプル |
Digispark_Examples | GPS | – | 汎用サンプル |
Digispark_Examples | i2cScanner | – | 汎用サンプル |
Digispark_Examples | Infrared | – | 汎用サンプル |
Digispark_Examples | MeshGeneralExample | – | 汎用サンプル |
Digispark_Examples | MotorShield | – | 汎用サンプル |
Digispark_Examples | Rfm12b | – | 汎用サンプル |
Digispark_Examples | Start | – | 汎用サンプル |
Digispark_Examples | WiFiClientGetExample | – | 汎用サンプル |
Digispark_Examples | WiFiClientPostExample | – | 汎用サンプル |
Digispark_Examples | WiFiServerExample | – | 汎用サンプル |
Digispark_Examples | WiFiServerRobot | – | 汎用サンプル |
Digispark_Examples | _9DOF_Shield | – | 汎用サンプル |
Nunchuk | ArduinoNunchukDemo | PIN | Wii用ヌンチャック |
Nunchuk | DigisparkJoystickDemo | PIN | Wii用ヌンチャック |
Nunchuk | DigisparkUSBDemo | PIN | Wii用ヌンチャック |
OneWire | Digispark_Example | PIN | 1-Wire通信用 |
RF24 | digispark_receive | PIN | nRF24通信用 |
RF24 | digispark_send | PIN | nRF24通信用 |
SPI | BarometricPressureSensor | PIN | SPI通信用 |
SPI | DigitalPotControl | PIN | SPI通信用 |
WS2811 | digispark | PIN | WS2811 IC用(LED制御) |
あまり情報がないので、スケッチ例を全部見てみました。結構関係なさそうなのも入っているので以下のスケッチ例だけ見ればいい気がします。
- Digispark_Examples/Start
- DigisparkMouse/Mouse
- DigisparkKeyboard/Keyboard
- DigisparkUSB/Echo
まとめ
スイッチを押したら特定の動作をするなどの、キーボードやマウス入力装置作成マイコンとしてはかなり優秀だと思います。
値段も安いので、一度触ってみてもいいのかな? ただちょっとでも面倒なことをやるのであれば、もっと普通のマイコンのほうが開発しやすいとは思います。
コメント
超小型で面白そうなので、何もわからずに買ってみました。
案の定、USBに差し込んでも認識すらしません。
WEBでATTiny85の使い方を検索し、貴殿の記事時に行きつきました。
書かれたとおりにやって見ました。⇒ばっちりです。 Lチカできました。
引っ掛かってしまったのが、Resetが無いので基盤を抜き差しするところ。
基盤を最初からUSBに差し込んだままでは、書き込みできませんでした。
良い記事にあたり助かりました。
動いてよかったです
こっちでは、他のマイコンと連携させて動かしています