{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "オリジナルの作成:2016/03/20" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# C2-ワンコインArduinoのArdublockでLチカ\n", "## Ardublockとは\n", "MITメディアラボで開発されたプログラム言語Scratchライクな開発環境を Arduinoでも使えるようにしたのが、Ardublockです。\n", "\n", "以下の様にマウスでブロックを並べてプログラムを描くので、 小さなお子さんでも簡単にスケッチ (Arduinoではプログラムをこう呼びます) を描くことができます。\n", "\n", "\n", "\n", "## ワンコインArduino(lbedGemma)を組み立てる\n", "小学生でも楽しめるようにワンコイン(500円程度)で体験できるArduino をブレッドボーで作ってみましょう。\n", "\n", "** ワンコインArduinoは、trinketloaderのブートローダーをしているため、個人で利用するのは問題ありませんが、このブートローダを商品に利用することはできませんので、ご注意ください。 **\n", "\n", "Arduino勉強会/16-ワンコイン・マイコンlbedGemma ではじめて作ったワンコインArduinoから少し改良して、2つのタイプのワンコインArduinoを用意しました。\n", "\n", "スケッチの書き込み用に作成したGemmaライター版\n", "\n", "\n", "\n", "初代のワンコインArduinoと同様にブレッドボードで様々な実験をする実験版 \n", "\n", "\n", "\n", "製作で注意する点は、USBミニコネクターにつながっている抵抗が75Ω(紫、緑、黒、金)で、 残り2本の抵抗が1kΩ(茶、黒、赤、金)です。LEDは長い線が抵抗と同じ列の穴に差してください。 マイコンは、●のくぼみ(赤の矩形で囲んだところ)がある場所が1番ピンで左下に位置するように差してください。\n", "\n", "### 部品表\n", "すべての部品は、 秋月 から購入できます。以下は実験版の部品一覧です。\n", "\n", " | 部品名\t | 数量\t | 通販コード\t | 価格\t | 備考 | \n", " |---|---|---|---|---|\n", " | ATtiny85\t | 1\t | I-09573\t | 160円\t | | \n", " | ブレッドボード BB-801\t | 1\t | P-05294\t | 200円\t | P-00315でもよい | \n", " | ミニBメスUSBコネクタ\t | 1\t | K-05258\t | 200円\t | | \n", " | 赤色LED\t | 1\t | I-00562\t | 350円\t | 100個入り | \n", " | 抵抗 75Ω\t | 2\t | R-25750\t | 100円\t | 100個入り | \n", " | 抵抗 1KΩ\t | 2\t | R-25102\t | 100円\t | 100個入り | \n", " | ジャンパーワイヤセット\t | 1\t | P-00288\t | 400円\t | 単線ワイヤーでも可 | \n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Arduino IDE\n", "現時点(2016/03/20)での最新のArduino IDEは1.6.8ですが、 ワンコインArduinoが正常に動作すると確認されている1.6.4をインストールします。\n", "\n", "### Mac OSXのインストール方法\n", "以下のURLから1.6.4版のMAC OS Xをダウンロードしてください。\n", "\n", "- https://www.arduino.cc/en/Main/OldSoftwareReleases#previous\n", "\n", "ダウンロードしたZIPファイルを解凍し、Applicationフォルダにコピーしてください。\n", "\n", "### Windows XPのArduino IDEのインストール方法\n", "以下のURLから1.6.4版のWindows Installerをインストールしてください。\n", "\n", "- https://www.arduino.cc/en/Main/OldSoftwareReleases#previous\n", "\n", "ダウンロードしたarduino-1.6.4-windows.exeを実行するとインストールが実行されます。 指示に従ってインストールしてください。\n", "\n", "### Usbtinyのドライバーのインストール方法\n", "Windowsの場合、Arduino IDEの他にUsbtinyのドライバーも合わせてインストールします。\n", "\n", "usbtiny_signed_8.zipを解凍し、XPの場合installer_x86.exeを実行します。 64bitのCPUの場合には、installer_x64.exeを実行してください。\n", "\n", "GemmaをWindowsに接続すると「新しいハードTrinketを検出しました」とでるので、 ドライバーの場所を解凍したディレクトリにセットして、インストールします。\n", "\n", "### Adafruit Gemmaのブートローダーの書き込み\n", "Adafruit Gemmaのブートローダーの書き込みには、別のArduino(ここではArduino Pro Mini 5V版)を使います。 \n", "\n", "別のArduinoとATtiny85との接続は、以下の様にします。\n", "\n", " | ATtiny85\t | Arduino | \n", " |---|---|\n", " | 8番ピン VCC\t | 5V | \n", " | 4番ピン GND\t | GND | \n", " | 1番ピン Reset\t | 10番ピン | \n", " | 5番ピン PB0\t | 11番ピン | \n", " | 6番ピン PB1\t | 12番ピン | \n", " | 7番ピン PB2\t | 13番ピン | \n", " \n", "ATtiny85のピンの説明をデータシートから引用します。\n", "\n", "\n", "\n", "Adafruit Gemmaのブートローダは、以下のURLで公開されていますので、これをArduinoに書き込みます。\n", "\n", "- https://learn.adafruit.com/introducing-trinket/repairing-bootloader\n", "\n", "シリアルモニターを開き9600 baudにセットし、以下のメッセージが出力されたら、「G」を入力します。\n", "\n", "```\n", "Trinket loader!\n", "\n", "Type 'G' or hit BUTTON for next chip\n", "```\n", "\n", "書き込みの途中で以下の様なメッセージが出力されます。\n", "\n", "```\n", "Starting Program Mode [OK]\n", "\n", "Reading signature:930B\n", "Searching for image...\n", " Found \"blankfull.hex\" for attiny85\n", "\n", "Setting fuses Set Low Fuse to: F1 -> A000 Set High Fuse to: D5 -> A800 Set Ext Fuse to: 6 -> A400\n", "Verifying fuses...\n", "Low Fuse: 0xF1 is 0xF1\n", "High Fuse: 0xD5 is 0xD5\n", "Ext Fuse: 0x6 is 0x6\n", "\n", "\n", "Setting fuses\n", "\n", "Verifing flash...\n", "Flash verified correctly!\n", "Verifying fuses...\n", "\n", "Fuses verified correctly!\n", "*OK!*\n", "```\n", "\n", "\n", "\n", "勉強会に参加された方には、その場でATtiny85にブートローダーを書き込んでいただきます。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Ardublockのインストール\n", "本家のArdublockのサイトでは、ATtiny85用のArdublockが提供されていないため、 公開されているソースに追加し、ワンコインArduino用のArdublockを作成しました。\n", "\n", "以下のリンクをクリックするか、Facebookの「工作プロジェクト」からダウンロードし、Arduinoのファイルが保存されているフォルダ(Mac OSXだと文書の下のArduinoフォルダ、Windowsだとマイドキュメントの下のArduinoフォルダ)のtoolsフォルダ*4に入れてください。\n", "\n", "- &ref(): File not found: \"ArduBlockTool.zip\" at page \"Arduino勉強会/C2-ワンコインArduinoのArdublockでLチカ\";\n", "- 工作プロジェクトのArdublockファイル\n", "\n", "## ArdublockでLチカを作ってみよう\n", "Lチカというのは、LEDをチカチカさせることで、Arduinoやマイコンを使った電子工作で最初に作るプログラムです。\n", "\n", "### Arduino IDEの設定\n", "それでは、インストールが完了したArduino IDEを起動しましょう。Arduinoのアイコンをダブルクリックします。\n", "\n", "以下の様なsetupとloopが定義されたスケッチが表示されます。\n", "\n", "ツールメニューで以下の項目を設定します。\n", "\n", "- ツール>ボード>Arduino Gemma\n", "- ツール>書込装置>USBtinyISP\n", "\n", "\n", "\n", "まずは、確認のために以下のスケッチをコピーして、ファイルメニューから名前を付けて保存を選択し、Gemma_Blinkとしてください。\n", "\n", "```C++\n", "int led = 1;\n", "\n", "void setup() { \n", " pinMode(led, OUTPUT); \n", "}\n", "\n", "void loop() {\n", " digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)\n", " delay(1000); // wait for a second\n", " digitalWrite(led, LOW); // turn the LED off by making the voltage LOW\n", " delay(1000); // wait for a second\n", "}\n", "```\n", "\n", "ワンコインArduinoのUSBケーブルをパソコンに接続すると赤のLEDが10秒間明るくなったり、暗くなったりします。 この間に、ファイルメニューから書込装置を使って書き込むを選択します。\n", "\n", "成功すると「マイコンボードへの書き込みが完了しました。」と表示され、LEDが1秒間隔に点滅します。\n", "\n", "### Ardublockを開いてみる\n", "Ardublockで作られたスケッチを保存するため、ファイルの「新規ファイル」を選択し、 ファイルメニューから「名前を付けて保存」を選択し、AruduBlock_Workの名前で保存します。\n", "\n", "ツールメニューからArbuBlockを選択すると、以下の様な画面が表示されます。\n", "\n", "\n", "\n", "左側に色んなツールが並び、画面中央(スケッチ画面)に「ずっと 実行」のパネルがあります。\n", "\n", "「ピン」のツールをクリックし、「デジタルピン」をスケッチ画面にドラックします。\n", "\n", "\n", "\n", "これを「ずっと 実行」の中に入れます。 次に「制御」から「delay MILLIS ミリ秒」を同様にスケッチ画面にドラッグします。\n", "\n", "\n", "\n", "これを繰り返します。2回目のデジタルピンに値を設定の右下のHIGHをLOWに変更すると以下の様になります。\n", "\n", "\n", "\n", "これでスケッチは完成です。「名前をつけて保存」ボタンを押してBlinkという名前で保存します。\n", "\n", "### スケッチを動かしてみる\n", "ワンコインArduinoのUSBケーブルをパソコンに接続し、「Arduinoにアップロード」を押します。\n", "\n", "ArduBlock_Workの画面にArduinoのスケッチが生成され、ワンコインArduinoに書き込まれ、LEDが点滅します。\n", "\n", "試しに、「delay MILLIS ミリ秒」の1000の値を555に変えて、もう一度USBケーブルを接続し直して、 「Arduinoにアップロード」を押して見てください。点滅が速くなっています。" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.13" } }, "nbformat": 4, "nbformat_minor": 0 }