[[Arduino勉強会]]

#contents

2015/12/20からのアクセス回数 &counter;

&color(red){trinketloaderのブートローダーを、個人で利用するのは問題ありませんが、このブートローダを商品に利用することはできませんので、ご注意ください};

** lbedGemmaボード誕生 [#y2d43153]
8pinoに触発されて、ワンコインで作れるArduino(lbedGemma)を作ってみました。
((正確にはワンコインではありませんが、目処はたっています))


*** 部品表 [#u7903db7]
すべての部品は、
[[秋月>http://akizukidenshi.com/catalog/default.aspx]]
から購入できます。

| 部品名 | 数量 | 通販コード | 価格 | 備考 |h
| ATtiny85 | 1 | I-09573 | 160円 | |
| ブレッドボード BB-801 | 1 | P-05294 | 200円 | P-00315でもよい |
| ミニBメスUSBコネクタ | 1 | K-05258 | 200円 | |
| 赤色LED | 1 | I-00562 | 350円 | 100個入り |
| 抵抗 75Ω | 2 | R-25750 | 100円 | 100個入り |
| 抵抗 1KΩ | 2 | R-25102 | 100円 | 100個入り |
| ジャンパーワイヤセット | 1 | P-00288 | 400円 | 単線ワイヤーでも可 |

*** ブレッドボードで動作を確認 [#p250a252]
8pinoの回路を参考に最初にブレッドボードでATtiny85を使ったGemmaを組み立てます。
USBとの接続部分は75Ωの抵抗、プルアップとLEDには1KΩの抵抗を使いました。

&ref(lbedGamma_brd.png);



完成したブレッドボードは、以下のようになりました。


&ref(lbedGamma_brd_photo.png);






*** Adafruit Gemmaのブートローダの書き込み [#i2b1ab55]
Adafruit Gemmaのブートローダは、以下のURLで公開されています。
- https://learn.adafruit.com/introducing-trinket/repairing-bootloader

ブートローダの書き込みには、Arduino UNOが必要になります。
今回は、以前作ったArduino UNO(秋月のAE-ATmegaボード)を使用しました。
Arduino UnoのGNDと3.3Vには10μFの電解コンデンサーを差し、ATtiny85とは
以下の様に接続します。

| ATtiny85 | Arduino UNO |h
| 8番ピン VCC | 5V |
| 4番ピン GND | GND |
| 1番ピン Reset | 10番ピン |
| 5番ピン PB0 | 11番ピン |
| 6番ピン PB1 | 12番ピン |
| 7番ピン PB2 | 13番ピン |

ATtiny85のピンの説明をデータシートから引用します。

&ref(ATtiny85_pins.png);


&ref(Bootloader_writting.png);






*** ブートローダ書き込み手順 [#z8704606]
ダウンロードしたスケッチ(trinketloader)をArduino IDEで開き、Arduino UNOに書き込みます。

シリアルモニターを開き9600 baudにセットし、以下のメッセージが出力されたら、「G」を入力します。
#pre{{
Trinket loader!

Type 'G' or hit BUTTON for next chip
}}

書き込みの途中で以下の様なメッセージが出力されます。
#pre{{
Starting Program Mode [OK]

Reading signature:930B
Searching for image...
  Found "blankfull.hex" for attiny85

Setting fuses  Set Low Fuse to: F1 -> A000  Set High Fuse to: D5 -> A800  Set Ext Fuse to: 6 -> A400
Verifying fuses...
Low Fuse: 0xF1 is 0xF1
High Fuse: 0xD5 is 0xD5
Ext Fuse: 0x6 is 0x6


Setting fuses

Verifing flash...
Flash verified correctly!
Verifying fuses...

Fuses verified correctly!
*OK!*

}}

ATtiny85をlbedGemma用のブレッドボードに戻し、USBケーブルを接続すると
LEDが細かく点滅したら、ブートローダの書き込みが正常に行われています。

** Arduino IDEでATtiny85が使かえるようにする [#c7cfe272]

ハードの準備ができたので、次に開発環境を整えます。

Arduino 1.6から別のハードウェアの環境を簡単にインストールできるようになりました。
私は、1.6.4で動作を確認しています。

- https://www.arduino.cc/en/Main/OldSoftwareReleases#previous

&color(red){ボードの一覧にArduino Gemmaがあれば、以下のインストールは不要です。};

Adafruit AVRを使用するために、以下の手順で環境をダウンロードしてください。
- Arduino 1.6.xを起動し、Arduinoメニューから「preferences...」を選択し、設定ダイアログを表示します
- 下部の「Additional Boards Manager URLs」に以下のURLを指定します。
既にURLが指定されている場合には、カンマの後に追加します。
#pre{{
https://adafruit.github.io/arduino-board-index/package_adafruit_index.json
}}

- ツール→ボードBoards Mangerを選択します
- Boards Managerの一覧から、「Adafruit AVR Boards by Adafruit」を選択し、installボタンを押します


&ref(Adafruit_AVR_Boards_by_Adafruit.png);

*** LED点滅(Blink)で動作確認 [#n2a8c67a]
定番のLチカ(Blink)で動作を確認してみましょう。
新しいスケッチを作成し、以下のスケッチをコピーしてください。

#pre{{
int led = 1;

void setup() {                
  pinMode(led, OUTPUT);     
}

void loop() {
  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);               // wait for a second
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);               // wait for a second
}
}}

書き込みの前に、以下の設定にセットされていることを確認してください。
ボード:Adafruit Gemma 8MHz
書き込み装置:USBtinyISP

lbedGemmaのUSBケーブルをPCにセットし、LEDが細かく点滅している間に、
Arduino IDEのファイル→マイコンボードに書き込むを選択してください。


LEDが1秒間隔で点滅したら成功です。

** lbedGemmaボードの作成 [#mfbe9b8a]
ブレッドボードでの動作が確認できましたので、ユニバーサル基板に組み立てましょう。

いつものようにテクノペンを使って配線をします。

&ref(Univ_brd.png);



これに、以下の順で部品を配置します。
- 抵抗をセット
- 丸ピンソケット
- LED
- USB変換モジュール
- 分割ソケット

完成したボードのは、以下のとおりです。

&ref(lbed_gemma_brd.png);



** lbedGemmaを動かしてみる [#qbaf12a9]
*** ArduBlockを使う [#m09362f0]
[[Arduino勉強会/C1-ArduBlockをはじめよう]]で紹介したArduBlockをlbedGemmaで動かしてみます。


ツール→ArduBlockを選択し、以下のスケッチを作成します。


&ref(th_ArduBlock_on_lbedGamma.png);







*** スペース・インベーダーを表示 [#b208596d]
次に8x88x8マトリックスLEDを使ってスペース・インベーダーのキャラクターを動かしてみましょう。

スケッチは、Ardafruitの以下のURLからダウンロードしてください。
- https://learn.adafruit.com/trinket-slash-gemma-space-invader-pendant/source-code

ATtiny85と8x8マトリックスLEDは、以下の様に接続します。

| ATtiny85 | 8x8マトリックスLED |h
| 8ピン VCC | VCC |
| 4ピン GND | GND |
| 7ピン IO#2(SCL) | SCL |
| 5ピン IO#0(SDA) | SDA |

ブレッドボードに8x8マトリックスLEDを載せたところ

&ref(Space_Invader.png);



実際に動いているところは、以下のURLを参照してください。
- https://www.facebook.com/hiroshi.takemoto.94/videos/vob.100002911051707/909225982517762/?type=2&theater

ワンコインArduinoと言えどもバカにできませんよ!

*** Arduino IDEが1.6.3以下の場合 [#j4f3ccb8]
Arduino Gemmaは、Arduino IDE 1.6.4以降からサポートされました。

Arduino IDEが1.6.3以下でAdafruit AVRを使用するために、以下の手順で環境をダウンロードしてください。
- Arduino 1.6.xを起動し、Arduinoメニューから「preferences...」を選択し、設定ダイアログを表示します
- 下部の「Additional Boards Manager URLs」に以下のURLを指定します。
既にURLが指定されている場合には、カンマの後に追加します。
#pre{{
https://adafruit.github.io/arduino-board-index/package_adafruit_index.json
}}

- ツール→ボードBoards Mangerを選択します
- Boards Managerの一覧から、「Adafruit AVR Boards by Adafruit」を選択し、installボタンを押します


&ref(Adafruit_AVR_Boards_by_Adafruit.png);
** コメント [#lc7b2c57]
#vote(おもしろかった[2],そうでもない[0],わかりずらい[0])


皆様のご意見、ご希望をお待ちしております。勉強会で分からなかったこと等、お気軽に問い合わせて下さい。

スパム防止に画像の文字列も入力してください。
- USBとの接続部分は100Ωの抵抗を75Ωに変更しました。 -- [[竹本 浩]] &new{2015-12-26 (土) 12:18:14};
- 最新のArduino 1.6.xをインストールするだけでArduino Gemmaが使えます。 -- [[竹本 浩]] &new{2015-12-27 (日) 13:52:39};
- 部品表を追加しました。 -- [[竹本 浩]] &new{2016-01-30 (土) 08:38:36};

#comment_kcaptcha

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
SmartDoc