{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## こどもプログラミング教室(Web第1版)\n", "このページは、須坂市技術情報センター&名古屋大学安田・遠藤研究室が公開された「こどもプログラミング教室」をベースに作成しています。\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Arduinoって何?\n", "\n", "\n", "\n", "### Arduinoとは?\n", "ArduinoはArduinoボード(ハードウェア)とArduino WebEditor(ソフト ウェア)の2つの要素から成り立っています。 Arduinoボードは、オープンソースハードウェアの考えに基いて 開発されたマイコンボードです。回路図などが公開されており、 それらの情報は誰もが自由に利用することができます。類似製品 を開発したり販売することも可能です。\n", "\n", "Arduino WebEditorは、 ブラウザーからArduinoボードにプログラムを書き込むためのソフトウェア環境 です。\n", "\n", "※Arduinoを使う時は金属板など電気を通すものの上に置かないように 気をつけましょう。裏側でショートして破損することがあります。 ※小さい部品は無くさないように気をつけましょう。踏んだりすると怪 我をすることがあります 。\n", "\n", "### 用意するもの\n", "- Arduinoボード \n", "- パソコン \n", "- USBケーブル(A-Bタイプ)\n", "\n", "### Arduinoで出来ること\n", "ArduinoボードにLEDやスイッチ、スピーカーなどの電子部品 を接続し、プログラムを組み込むことでLEDを光らせたり、 ON/OFFの制御をしたり、音を鳴らしたりと様々なことが可 能です。では、Arduinoをはじめてみましょう!" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "## Arduino WebEditorの環境構築\n", "Arduino WebEditorを使えば、Webブラウザ上Arduinoのプログラミングができるようになります。\n", "\n", "それでは、Arduino WebEditorが使える環境を整えていきましょう。\n", "\n", "### ユーザ登録\n", "Arduinoのホームページにアクセスします(以下のURLにアクセスすると以下の画面が表示されます)。\n", "- https://create.arduino.cc/\n", "\n", "\n", "\n", "「Arduino Web Editor」をクリックすると以下のユーザ登録(Sign Up)画面が表示されます。\n", "\n", "\n", "\n", "- Username: 自分の好きなユーザ名(アルファベットと半角数字)で入力\n", "- Password: パスワードを入力\n", "- Confirm Password: 確認のために同じパスワードを入力\n", "- Email Address: メールアドレスを入力\n", "- I'm not a robotの左の□にチェック\n", "- 「CREATE ACCOUNT」をクリックします\n", "\n", "入力したメールアドレスに送られてきますので、リンク(URLアドレス)をクリックして登録を有効にします。\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Arduino Web Editor pluginのインストール\n", "ユーザ登録が完了したら、以下のURLに入ってください。\n", "- https://create.arduino.cc/editor\n", "\n", "利用条件を受け入れ(Accept)ます。\n", "\n", "次にスケッチをArduinoに書き込むために、Arduino Web Editor Pluginをインストールし、パソコンを再起動してください。\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Arduino Web Editorの画面\n", "ログインが完了すると以下のArduino Web Editor画面が表示されます。\n", "\n", "左端のカラムはナビゲーション用です。\n", "- Your Sketchbook: ユーザが作成したスケッチブックを開きます\n", "- Examples: サンプルスケッチ(読み込み専用)を開きます\n", "- Libraries: スケッチ含むライブラリを指定します\n", "- Serial monitor: シリアルモニタを開きます\n", "- Help: ヘルプ画面(英語)\n", "- Preferences: オプション(文字サイズ、色等)の設定画面\n", "\n", "上記のメニューを選択すると2列目のカラムに選択画面が表示されます。\n", "\n", "第3列目にスケッチを描く画面が表示されます。\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## はじめの設定\n", "Arduino WebEditorがインストールできたら、Arduinoボードとパソ コンをUSBケーブルでつなぎ準備をしましょう。ここでの作 業はArduinoを使う前に毎回行います。\n", "\n", "- ArduinoボードとパソコンをUSBケーブルで繋ぎます。\n", "- Arduino WebEditorにログインします。\n", "- マイコンボードを選択します。\n", "-- Select Other Board & Portを選択し、Arduino/Genuino Unoを選択します。\n", "\n", "- シリアルポートを設定します。\n", "\n", "- これでArduinoの設定ができました。この作業は毎回行い ます。\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## プログラムを実行してみよう【基礎編】\n", "### LEDとは?\n", "LED(Light Emitting Diode)は発光ダイオードといって電気を 流すことで光を出す素子です。リード線の⻑い方をanode(ア ノード)[陽極(+)]、短い方をcathodeカソード)[陰極(−)]と呼 びます。\n", "\n", "\n", "\n", "### 用意するもの\n", "- Arduino開発環境一式\n", "\n", "### 手順\n", "- はじめの設定を行います。\n", "- Examples→01. Basics→Blinkを選択します。\n", "- 左上の➡︎ボタンをクリックするとプログラムコード がArduinoボードに書き込まれます。\n", "- LEDが点滅していれば成功です。\n", "\n", "### 補足\n", "Arduinoボード上には13番ピンに最初からLEDが接続されて\n", "います。\n", "\n", "### スケッチ" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%HTML\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## プログラムを実行してみよう【発展編】\n", "### プログラムを修正して実行してみよう\n", "基礎編のプログラムコードの数字の部分(赤字部分)を変える とLEDの点滅の仕方はどうなるでしょうか?\n", "\n", "数字を大きくしたり、小さくしたりしてみましょう。\n", "\n", "### 用意するもの\n", "- Arduino開発環境一式 \n", "- LED × 1\n", "\n", "\n", "\n", "### 手順\n", "- LEDの足の⻑いほうを13番に、短いほうをGNDに接続 します。\n", "- 基礎編のArduino WebEditorの画面でled = 13の数字を書き換 えたらUploadボタンをクリックします。\n", "- 点滅の仕方を確認して必要に応じて変えてみましょう。\n", "\n", "### 発展編\n", "LEDの場所を変えても点滅できるように、プログラムを修 正してみましょう。 \n", "\n", "足の短い方はそのままで、⻑い方を12番や11番につなぎま す。\n", "\n", "プログラムの修正部分は緑色で書かれている部分です。" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "## LEDとスイッチ\n", "### タクトスイッチとは?\n", "タクトスイッチは上部にバネ式のボタンがあり、下部には4つのリード線があります。\n", "上部のボタンを押すことで、この4つのリード線の接続状態が変化します。\n", "\n", "### 用意するもの\n", "- Arduino開発環境一式\n", "- LED × 1\n", "- ブレッドボード × 1\n", "- ジャンパーワイヤ(オス・オス)\n", "- タクトスイッチ × 1\n", "- 10KΩの抵抗(茶黒橙) × 1\n", "\n", "### 手順\n", "- 図を参考に配置します。\n", "- はじめの設定を行います。\n", "- プログラムコードを入力し、実行します。\n", "- スイッチを押した時に、LEDが光れば成功です。\n", "\n", "\n", "\n", "### 発展編\n", "ボタンを押した時の光り方を変更させてみましょう。\n", "プログラムコード中の「HIGH」と「LOW」を入れ替えてみてください。\n", "\n", "### スケッチ" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%HTML\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## ブザー\n", "### 圧電スピーカーとは?\n", "圧電振動板と呼ばれる圧電セラミックスと金属板を接着したものが入っています(図1)。\n", "圧電振動板に電圧がかかると圧電セラミックスが伸び、接着されている金属板は伸縮せず曲がります(図2)。\n", "圧電の向きが交互に変わる信号を入力することで、音波を発生させています。\n", "\n", "\n", "\n", "### 手順\n", "- 図を参考に配置します。\n", "- はじめの設定を行います。\n", "- プログラムコードを入力し、実行します。\n", "- ブザーが鳴れば成功です。\n", "\n", "\n", "\n", "### 発展編\n", "- ブザーの鳴る音を変化させてみましょう。\n", "- プログラムコードのanalogWrite(9, 255/2);の255/2の数字を変化させることで音程を変えることができます。" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%HTML\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## ブザーを使った音楽\n", "### ブザーを使ってメロディーを鳴らしてみよう\n", "ブザーで勉強したことをもとに、音階のメロディーを鳴らしてみましょう。\n", "\n", "### 用意するもの\n", "- Arduino開発環境一式\n", "- 圧電スピーカー × 1\n", "\n", "### 手順\n", "- 図を参考に配置します。\n", "- はじめの設定を行います。\n", "- プログラムコードを入力し、実行します。\n", "- 「ドレミファソ」とメロディーが鳴れば成功です。\n", "\n", "\n", "\n", "\n", "### 発展編\n", "数値を変更することで音階を変更することができます。\n", "\n", "ラ: 440、シ: 494、ド: 523\n", "\n", "8つの音階のみで演奏できる曲は意外とたくさんあるので、ネットなどで探してみてください。" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%HTML\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## ブザーとスイッチ\n", "### ブザーとスイッチについて\n", "スイッチを押すとブザーが鳴るようにしてみましょう。\n", "\n", "### 用意するもの\n", "- Arduino開発環境一式\n", "- 圧電スピーカー × 1\n", "- タクトスイッチ × 1\n", "- ブレッドボード × 1\n", "- ジャンパーワイヤ(オス・オス)\n", "- 10KΩの抵抗(茶黒橙) × 1\n", "\n", "\n", "\n", "\n", "### 手順\n", "- 図を参考に配置します。\n", "- はじめの設定を行います。\n", "- プログラムコードを入力し、実行します。\n", "- スイッチを押した時にブザーが鳴れば成功です。\n" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%HTML\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Cdsセル(光センサ)\n", "\n", "### Cdsセルとは?\n", "Cdsセルは光に反応するスイッチです。受光する量によって抵抗値が変化し、明かるくなると抵抗値が小さくなり、\n", "暗くなると抵抗値が大きくなります。\n", "\n", "### 用意するもの\n", "- Arduino開発環境一式\n", "- ブレッドボード × 1\n", "- ジャンパーワイヤ(オス・オス)\n", "- LED × 1\n", "- Cdsセル × 1\n", "- 10KΩの抵抗(茶黒橙) × 1\n", "\n", "### 手順\n", "- 図を参考に配置します。\n", "- はじめの設定を行います。\n", "- プログラムコードを入力し、実行します。\n", "- Cdsセルに手をかざしてLEDの光が変化すれば成功です。\n", "\n", "\n", "\n", "### 発展編\n", "Cdsセルに当たる光の具合を変化させるために、プログラムコードのしきい値を変えてみましょう。\n" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%HTML\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Cdsセルとブザー\n", "\n", "### Cdsセルとブザー\n", "手をかざすと音楽がなるようにしてみましょう。\n", "\n", "### 用意するもの\n", "- Arduino開発環境一式\n", "- ブレッドボード × 1\n", "- Cdsセル × 1\n", "- 圧電スピーカー × 1\n", "- ジャンパーワイヤ(オス・オス)\n", "- 10KΩの抵抗(茶黒橙) × 1\n", "\n", "### 手順\n", "- 図を参考に配置します。\n", "- はじめの設定を行います。\n", "- プログラムコードを入力し、実行します。\n", "- 光のあたり具合によってブザーの音程が変われば成功です。\n", "\n", "\n", "\n", "### 発展編\n", "音が鳴る長さを変更してみましょう。\n", "\n", "プログラムコード中の数宇「100」を「1000(1秒)」などに変更してみましょう。\n" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%HTML\n", "" ] }, { "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": 2 }