Adafruit TrinketをWindows8.1で動かしてみた
大阪の日本橋にあるシリコンハウスのレジ横に掛けられていた1000円マイコン。
AdafruitのTrinketを動かすまでの手順とメモ
- ArduinoIDEで開発が可能
- FDTIな仕組みがなくてもUSB接続だけでプログラムを転送できる
- カドが丸い超小型設計(100円玉くらい)
- 5V駆動(3Vバージョンも有り)
これが紹介されていた特徴です。
FDTIを購入して、ArduinoProとか購入を考えていたんですが・・・・
これは試してもいいかもと思いたって購入。
FDTIは一度購入すれば色々使い倒せるのですが、小型Arduinoを購入するとなるとArduinoProは高いです。
毎回2000円ほどの出費は辛い。
Atmega328Pにブートローダーとソフトを焼きこんでオリジナルで動かすと小さくはできますが、このTrinketはそれよりもさらに小さい。
使い倒せたら色々おもしろいかもです。
服に縫い付けても角丸なので引っかからないかな??とか思ったりします。
開発環境のダウンロード
本家のサイトに、開発環境の作り方が書いてあります。
ArduinoIDEに対応しているとはいえ、そのままソフトをコンパイルはできそうにありません。
まぁ、アーキテクチャが異なるので普通にはいかなくて当然ですね。
本家サイトを参考にしてアレコレ頑張ってもいいのですが、作業完了済みのArduinoIDEをダウンロードすることが出来ます。
こっちをダウンロードするほうが確実で速いですね。
中の仕組みは、暇な時に眺めればいいとして、Trinketを動かすことを優先とします。
https://learn.adafruit.com/introducing-trinket/setting-up-with-arduino-ide#the-fast-way
USBTinyドライバーのダウンロード
★ダウンロードはこちら★
https://learn.adafruit.com/usbtinyisp/drivers
今回はWindows8.1で利用することを想定しているので、Windows8.1バージョンをダウンロードします。
適当なフォルダに解凍しておきます。
※解凍するとInstall...とかそれらしい実行ファイルがありますがそれは実行しません。解凍するだけです。
USBTinyドライバーのインストール
ここのくだりでかなり悩みました。
ちなみに、私のパソコンは「Lenovo G-500」です。
本家サイトでは、TrinketをUSBコネクタ(タイプA <--> ミニB)をパソコン本体に接続すると、ドライバーインストールのダイアログが表示されるような事が書かれてたんですが、、、、私の場合はそれが出てきませんでした。
色々試した結果ですが
だったのでUSBハブを試してみると
USB2.0のハブ(電源供給)を経由して接続するとOK!!
という結果になりました。
Trinketが壊れてるのかとアレコレ考えましたが、どうも電流値が足りてなかったかもしれないですね。
ただ、海外ではハブを経由したらダメだったとか、直接接続してもイケたとか情報が散らばってます。
何が正しいのかはわかりませんが、色々ためさなければならないかもしれません。
※パソコン(無印デスクトップ)変えたらハブを経由しなくてもイケました。
ダイアログで、解凍したUSBTinyフォルダのトップフォルダを指定してあげると、自動的に適切なファイルを実行してドライバーのインストールが完了します。
開発環境の設定
無事に開発環境とドライバーのセットアップができたら、次は開発環境の設定。
難しいことはなく、マウスで特定の箇所を選択するだけ。
これだけ。
プログラムの準備
本家サイトに、Blinkのサンプルがあったのでそれをそのままコピペ。
/* Blink Turns on an LED on for one second, then off for one second, repeatedly. This example code is in the public domain. To upload to your Gemma or Trinket: 1) Select the proper board from the Tools->Board Menu 2) Select USBtinyISP from the Tools->Programmer 3) Plug in the Gemma/Trinket, make sure you see the green LED lit 4) For windows, install the USBtiny drivers 5) Press the button on the Gemma/Trinket - verify you see the red LED pulse. This means it is ready to receive data 6) Click the upload button above within 10 seconds */ int led = 1; // blink 'digital' pin 1 - AKA the built in red LED // the setup routine runs once when you press reset: void setup() { // initialize the digital pin as an output. pinMode(led, OUTPUT); } // the loop routine runs over and over again forever: void loop() { digitalWrite(led, HIGH); delay(1000); digitalWrite(led, LOW); delay(1000); }
コンパイルしてみると無事に終了。
プログラムの転送
これも、ちょっと悩みました。
Trinketはシリアルで書き込むタイプではありません。
なので、根本的にUNOとかとは違います。
「ファイル」→「書き込み装置を使って書き込む」
を実行することでプログラムが転送されます。
ただし、注意が必要!!!
サンプルプログラムの冒頭に書かれている英文がヒントなのですが
5) Press the button on the Gemma/Trinket - verify you see the red LED pulse. This means it is ready to receive data 6) Click the upload button above within 10 seconds
(*´∀`)ノ 赤色LEDが点滅している10秒の間に書き込み動作をしてね!!
と言うことらしいです。
USBポートに接続すると、緑色のLEDが点灯し、追って赤色のLEDが点滅し始めます。
赤色LEDが点滅している時にプログラムを転送しないと、Trinketは受け付けてくれないようです。
(*´∀`)ノ タイミングを逃したらTrinketのResetボタンを押して仕切り直し
です。
無事にプログラムが書き込まれると、赤色LEDが1秒間隔で点滅します。