#!/usr/bin/env python
# coding: utf-8
# オリジナルの作成:2016/03/20
# # C2-ワンコインArduinoのArdublockでLチカ
# ## Ardublockとは
# MITメディアラボで開発されたプログラム言語Scratchライクな開発環境を Arduinoでも使えるようにしたのが、Ardublockです。
#
# 以下の様にマウスでブロックを並べてプログラムを描くので、 小さなお子さんでも簡単にスケッチ (Arduinoではプログラムをこう呼びます) を描くことができます。
#
#
#
# ## ワンコインArduino(lbedGemma)を組み立てる
# 小学生でも楽しめるようにワンコイン(500円程度)で体験できるArduino をブレッドボーで作ってみましょう。
#
# ** ワンコインArduinoは、trinketloaderのブートローダーをしているため、個人で利用するのは問題ありませんが、このブートローダを商品に利用することはできませんので、ご注意ください。 **
#
# Arduino勉強会/16-ワンコイン・マイコンlbedGemma ではじめて作ったワンコインArduinoから少し改良して、2つのタイプのワンコインArduinoを用意しました。
#
# スケッチの書き込み用に作成したGemmaライター版
#
#
#
# 初代のワンコインArduinoと同様にブレッドボードで様々な実験をする実験版
#
#
#
# 製作で注意する点は、USBミニコネクターにつながっている抵抗が75Ω(紫、緑、黒、金)で、 残り2本の抵抗が1kΩ(茶、黒、赤、金)です。LEDは長い線が抵抗と同じ列の穴に差してください。 マイコンは、●のくぼみ(赤の矩形で囲んだところ)がある場所が1番ピンで左下に位置するように差してください。
#
# ### 部品表
# すべての部品は、 秋月 から購入できます。以下は実験版の部品一覧です。
#
# | 部品名 | 数量 | 通販コード | 価格 | 備考 |
# |---|---|---|---|---|
# | 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円 | 単線ワイヤーでも可 |
#
# ## Arduino IDE
# 現時点(2016/03/20)での最新のArduino IDEは1.6.8ですが、 ワンコインArduinoが正常に動作すると確認されている1.6.4をインストールします。
#
# ### Mac OSXのインストール方法
# 以下のURLから1.6.4版のMAC OS Xをダウンロードしてください。
#
# - https://www.arduino.cc/en/Main/OldSoftwareReleases#previous
#
# ダウンロードしたZIPファイルを解凍し、Applicationフォルダにコピーしてください。
#
# ### Windows XPのArduino IDEのインストール方法
# 以下のURLから1.6.4版のWindows Installerをインストールしてください。
#
# - https://www.arduino.cc/en/Main/OldSoftwareReleases#previous
#
# ダウンロードしたarduino-1.6.4-windows.exeを実行するとインストールが実行されます。 指示に従ってインストールしてください。
#
# ### Usbtinyのドライバーのインストール方法
# Windowsの場合、Arduino IDEの他にUsbtinyのドライバーも合わせてインストールします。
#
# usbtiny_signed_8.zipを解凍し、XPの場合installer_x86.exeを実行します。 64bitのCPUの場合には、installer_x64.exeを実行してください。
#
# GemmaをWindowsに接続すると「新しいハードTrinketを検出しました」とでるので、 ドライバーの場所を解凍したディレクトリにセットして、インストールします。
#
# ### Adafruit Gemmaのブートローダーの書き込み
# Adafruit Gemmaのブートローダーの書き込みには、別のArduino(ここではArduino Pro Mini 5V版)を使います。
#
# 別のArduinoとATtiny85との接続は、以下の様にします。
#
# | ATtiny85 | Arduino |
# |---|---|
# | 8番ピン VCC | 5V |
# | 4番ピン GND | GND |
# | 1番ピン Reset | 10番ピン |
# | 5番ピン PB0 | 11番ピン |
# | 6番ピン PB1 | 12番ピン |
# | 7番ピン PB2 | 13番ピン |
#
# ATtiny85のピンの説明をデータシートから引用します。
#
#
#
# Adafruit Gemmaのブートローダは、以下のURLで公開されていますので、これをArduinoに書き込みます。
#
# - https://learn.adafruit.com/introducing-trinket/repairing-bootloader
#
# シリアルモニターを開き9600 baudにセットし、以下のメッセージが出力されたら、「G」を入力します。
#
# ```
# Trinket loader!
#
# Type 'G' or hit BUTTON for next chip
# ```
#
# 書き込みの途中で以下の様なメッセージが出力されます。
#
# ```
# 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にブートローダーを書き込んでいただきます。
# ## Ardublockのインストール
# 本家のArdublockのサイトでは、ATtiny85用のArdublockが提供されていないため、 公開されているソースに追加し、ワンコインArduino用のArdublockを作成しました。
#
# 以下のリンクをクリックするか、Facebookの「工作プロジェクト」からダウンロードし、Arduinoのファイルが保存されているフォルダ(Mac OSXだと文書の下のArduinoフォルダ、Windowsだとマイドキュメントの下のArduinoフォルダ)のtoolsフォルダ*4に入れてください。
#
# - &ref(): File not found: "ArduBlockTool.zip" at page "Arduino勉強会/C2-ワンコインArduinoのArdublockでLチカ";
# - 工作プロジェクトのArdublockファイル
#
# ## ArdublockでLチカを作ってみよう
# Lチカというのは、LEDをチカチカさせることで、Arduinoやマイコンを使った電子工作で最初に作るプログラムです。
#
# ### Arduino IDEの設定
# それでは、インストールが完了したArduino IDEを起動しましょう。Arduinoのアイコンをダブルクリックします。
#
# 以下の様なsetupとloopが定義されたスケッチが表示されます。
#
# ツールメニューで以下の項目を設定します。
#
# - ツール>ボード>Arduino Gemma
# - ツール>書込装置>USBtinyISP
#
#
#
# まずは、確認のために以下のスケッチをコピーして、ファイルメニューから名前を付けて保存を選択し、Gemma_Blinkとしてください。
#
# ```C++
# 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
# }
# ```
#
# ワンコインArduinoのUSBケーブルをパソコンに接続すると赤のLEDが10秒間明るくなったり、暗くなったりします。 この間に、ファイルメニューから書込装置を使って書き込むを選択します。
#
# 成功すると「マイコンボードへの書き込みが完了しました。」と表示され、LEDが1秒間隔に点滅します。
#
# ### Ardublockを開いてみる
# Ardublockで作られたスケッチを保存するため、ファイルの「新規ファイル」を選択し、 ファイルメニューから「名前を付けて保存」を選択し、AruduBlock_Workの名前で保存します。
#
# ツールメニューからArbuBlockを選択すると、以下の様な画面が表示されます。
#
#
#
# 左側に色んなツールが並び、画面中央(スケッチ画面)に「ずっと 実行」のパネルがあります。
#
# 「ピン」のツールをクリックし、「デジタルピン」をスケッチ画面にドラックします。
#
#
#
# これを「ずっと 実行」の中に入れます。 次に「制御」から「delay MILLIS ミリ秒」を同様にスケッチ画面にドラッグします。
#
#
#
# これを繰り返します。2回目のデジタルピンに値を設定の右下のHIGHをLOWに変更すると以下の様になります。
#
#
#
# これでスケッチは完成です。「名前をつけて保存」ボタンを押してBlinkという名前で保存します。
#
# ### スケッチを動かしてみる
# ワンコインArduinoのUSBケーブルをパソコンに接続し、「Arduinoにアップロード」を押します。
#
# ArduBlock_Workの画面にArduinoのスケッチが生成され、ワンコインArduinoに書き込まれ、LEDが点滅します。
#
# 試しに、「delay MILLIS ミリ秒」の1000の値を555に変えて、もう一度USBケーブルを接続し直して、 「Arduinoにアップロード」を押して見てください。点滅が速くなっています。
# In[ ]: