[[Arduino勉強会]]

#contents

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

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

*** ブレッドボードで動作を確認 [#p250a252]
8pinoの回路を参考に最初にブレッドボードでATtiny85を使ったGemmaを組み立てます。
USBとの接続部分は100Ωの抵抗、プルアップと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から別のハードウェアの環境を簡単にインストールできるようになりました。
私は、ESP8266の関係で最新ではなく、1.6.4を使っています。


   * 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ボタンを押します





*** 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と言えどもバカにできませんよ!

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


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

スパム防止に画像の文字列も入力してください。
#comment_kcaptcha

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
SmartDoc