[[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