電子工作教室

企画概要

ここでは、電子工作って何だろう、興味があるけどよく知らない、といった方向けに、 電子工作について知ってもらうためのコンテンツを用意しました。

メインターゲット:中高生
ページ閲覧・体験にかかる時間:~30分

目次

このページの構成は上のようになっています。 とりあえず説明はいいから電子工作体験してみたいという方は、 電子工作をしてみようまで飛んでください。

電子工作の基本知識

1. 電子工作とは?

電子工作は電子部品を用いてものを作ること全般を指します。 電子部品というのは主にLEDとか抵抗とかのことを指します。 皆さん一度は耳にしたことがあるのではないでしょうか。
電子工作でどんなことができるのかというと、 例えばラジオや電子楽器といった電気で動く身近なものが作れたり、 植物に自動で水やりするマシンなどといったクリエイティブなものが作れたりします。 また、電子工作の知識を使って電気製品の修理や改造なんかもできます。
「電子工作」で検索するといろいろな人の制作物が出てくると思うので、 電子工作ってこういうことができるのか、となんとなくイメージが掴めるのではないでしょうか。

2. 電子工作の説明

それでは具体的な中身について見ていきましょう。
電子工作では、まず電子回路と呼ばれる電気が流れる道筋を作り、 電子部品を使って回路を流れる電気を制御していきます。
まずは、回路を作るための“土台”が必要ですが、試作段階ではブレッドボードを使うと便利です。 実際にものを作るときは基板にはんだ付けという作業をしていきますが、ここでは割愛します。
ブレッドボードは多数の穴が開いていてそこにLEDや抵抗、 ジャンパワイヤなどが刺せるようになっています。 ジャンパワイヤというのは導線のようなものだと思ってください。 例えば小学校の頃に豆電球を光らせる回路を作ったことがあると思いますが、 ここでは代わりにLEDを用いて同様の回路を作ると下のようになります。

回路

写真の右側に写っているのはArduinoと呼ばれるもので、これは後で詳しく説明します。 ここでは電源として使っているので電池だと思ってください。
この回路では、赤い線→青い線→LED→抵抗→黄色い線→黒い線と電気が流れて、 その電気によってLEDが光っています。
下の図は回路を簡易的に表したものです。

電気の流れ1 電気の流れ2

このようにまずは回路(=電気の流れ)を作るのが電子工作の基本です。
さて、この回路では電気が流れ続けているのでLEDはずっと光りっぱなしですが、 例えばLEDを点滅させたい、といったより複雑な挙動をさせたい場合、プログラム、 と言って電気の流れを制御する文を書いて回路に送らなければいけません。
プログラムの説明はここでは割愛しますが、以下のようなプログラムを書いて、 Arduinoに読み込ませるとLEDが点滅します。

スケッチ

プログラムについて気になった方は ロボットプログラミング教室を見てみてください。

3. 電子部品の説明

 よく使う部品を紹介します

抵抗

主に電流の大きさを落とすために使います。 中学校でオームの法則というものを習ったと思いますが、 抵抗を介さずに2点間に異なる電圧を与える(ショートさせる)と膨大な電流が流れてしまい、 電子部品などが壊れてしまいます。ショート回路でなくとも電流の大きさを調整したい場合がよくあり、 抵抗を使うと便利です。

センサ

外界の入力をセンシング(検知)して電気信号に変える役割をします。 例えば圧力センサは圧力を加えるとそれを検知し、 加えられた圧力の大きさに応じて回路を流れる電流の大きさが変化します。 ほかにも赤外線を検知するための赤外線センサ、 目の前の物体までの距離を検知する測距センサなど様々な種類のセンサが存在します。

モータ

電気エネルギーを回転運動エネルギーとして取り出す装置です。 回転運動としてエネルギーを取り出せればあとは色々な機構を用いて 直動運動や揺動運動などの運動が実現できます。機構に興味を持った方は ロボットモーション体験をご覧ください。 DCモータ、サーボモータ、ステッピングモータなど様々な種類があります。

コイル

電気を蓄えたり放出したりします。直流(電圧が一定)は通しますが、 交流(電圧が時間変化する)は通さない、という性質を持っており、 電流を安定化させる役割があります。

コンデンサ

電気を蓄えたり放出したりします。直流(電圧が一定)は通しませんが、 交流(電圧が時間変化する)は通す、という性質を持っており、 電圧を安定化させる役割があります。

4. 電子回路の説明

電子工作を行う上ではじめのうちは複雑な回路を組むことはないと思うので、 ここは少し発展的な内容になります。
まずは基本的な回路を見てみましょう。 ここでは先ほど挙げた回路を用いて回路設計について説明していきます。

ここでは電源電圧は3.3V、抵抗は330Ωのものを使いました。 ここでLEDを流れる電流をx[A]、かかる電圧をy[V]とおくとオームの法則から 3.3-y=330xという式が成り立ちます。また、LEDの電流電圧特性からxとyの関係式がもう一本立ちます。 これら2式を連立させることによってLEDを流れる電流とかかる電圧を求めることができます。 電子工作を行う際にはこれらがきちんと定格電流・定格電圧内であるかを確認しなければいけません。

次に少し発展的な回路を見ていきましょう。
下に示した回路はコイルとコンデンサのみが導線でつながれた回路で、LC回路と呼ばれています。先ほど説明した通りコイルとコンデンサには電気を蓄えたり放出したりする働きがあり、これらを組み合わせると回路に交流電流(電流が時間変化する)が流れます。
黄色い点は電気の流れを表しており、下のグラフは黄色い線が電流の値、緑の線が電圧の値を表しています。コンデンサやコイルにカーソルを合わせるとそのところの電流、電圧、電力などが表示されます。右のスライダーを動かすとシミュレーションのスピードなどが変えられます。
※スマホだと一部の機能がご利用いただけません

電子工作をしてみよう

1.簡単な回路を作ろう

まずは、先ほど挙げたLEDを点滅させるもの(Lチカと呼ばれます)を作ってみましょう。
用意するものは下の通りです。リンク先のURLは一例です。 必ずしもこの種類でなければならないということはありません。

上で挙げた電子部品及びArduinoは秋月電子電商や千石電商で手に入ります。 もしくは色々な種類のArduinoスターターキットが売られているので、 それを購入すると電子工作に必要なものは大体揃います。

まずは回路を作りましょう。
ブレッドボードは下のように同じ線のところは中でつながっています。

ボード

回路は先ほどと同じで以下の通りです。

回路 電気の流れ2

黒いジャンパワイヤはArduinoのGNDと書かれた穴に刺してください。
赤いジャンパワイヤは写真では3.3Vの穴に刺さっていますが、 今回は13と書かれた穴(13番ピン)に刺して下さい。
最後にArduinoとPCをケーブルでつないでください。

次にプログラムを書いていきましょう。
まずはArduino IDEをPCにインストールする必要があります。
手順はロボットプログラミング教室 を参考にしてください。(“「プライベートネットワーク」をクリックしてチェックをつけ、 「アクセスを許可する」をクリックする。”までで大丈夫です。)

インストールできたらArduino-nightly-windows(windowsの場合)という フォルダ内にあるArduinoのアプリを立ち上げてください。 立ち上げると以下のようにスケッチが開かれると思います。

スケッチ初期

一旦書かれているものを全て消し、以下のソースコードをスケッチに貼り付けてください。

void setup() {
    pinMode(13, OUTPUT);
}

void loop() {
    digitalWrite(13, HIGH);
    delay(1000);
    digitalWrite(13, LOW);
    delay(1000);
}

以下のようになります。

スケッチ

次に左上のチェックマークを押すとコンパイルされます。 下の緑の部分に「コンパイルが完了しました」と出てきたらプログラムが正しく書けているということです。

スケッチコンパイル

次に右矢印のボタン(マイコンボードに書き込む)を押してソースコードをArduinoボードに書き込みます。 しばらくするとLEDが点滅し始めると思います。
これでLEDの点滅ができました!

ソースコードのdelay()の括弧内の1000はそれぞれ1000ms間LEDを点灯させる、1000ms間LEDを消灯させる、 という命令になっています。この数字を好きな数字に変えてみましょう。 変えたら、その都度コンパイルしてArduinoボードに書き込む必要があります。

ソースコードの詳細な説明はここでは割愛します。 プログラムについて詳しく知りたい方は ロボットプログラミング教室 のページをご覧ください。

2.ピアノを作ろう

少し発展的な電子工作になります。
電子工作は様々なツールと組み合わせるとより面白くなります。 ここではProcessingと組み合わせてピアノを作ってみましょう。 Processingというのはザックリ言うと簡単に描画ができるものです。

完成図は以下のような感じです。

用意するものは下の通りです。 リンク先のURLは一例です。必ずしもこの種類でなければならないということはありません。

圧電スピーカ以外は「簡単な回路を作ろう」で使ったものと同じです。

まずは回路を作りましょう。
回路は以下の通りです。

回路2 電気の流れ3

黒いジャンパワイヤはArduinoのGNDと書かれた穴に刺してください。
赤いジャンパワイヤは13と書かれた穴(13番ピン)に刺して下さい。
最後にArduinoとPCをケーブルでつないでください。

次にプログラムを書いていきましょう。

まずはArduinoの新しいスケッチに以下のソースコードを貼り付けてください。

int pin=13;

void setup()
{
    Serial.begin(9600);
    pinMode(pin, OUTPUT);
}

void loop()
{
    String str="cldmefngoapb";
    if(Serial.available() > 0){
    char c = Serial.read();
        if(str.indexOf(c)>-1){
            int num=str.indexOf(c);
            double ex=(double)num/12;
            tone(pin, 262*pow(2,ex));
        }
        else if(c == 'q'){
          noTone(pin);
        }
        else{
          noTone(pin);
        }
    }
}

ソースコードが貼れたら、先ほどと同様に左上のチェックマークを押してコンパイルし、 その後右矢印のボタンを押してソースコードをArduinoボードに書き込みます。

今回は画面に鍵盤を映したいので、鍵盤を描画するためにProcessingを使います。 ということで、次はProcessingをインストールします。
https://processing.orgにアクセスしましょう。
アクセスしたら左上のDownloadを押しましょう。

インストール

自分の使っているOSを選びましょう。

インストール2

クリックするとダウンロードが始まります。 終わったら、ダウンロードされたzipフォルダを展開してアプリを立ち上げましょう。 立ち上げると以下のようにスケッチが開かれると思います。

プロセシングスケッチ

このスケッチにプログラムを書いていきます。 以下のソースコードをスケッチに貼り付けてください。

import processing.serial.*;

Serial port;

int left=0;
int width_white=40;
int height_white=100;
int width_black=34;
int height_black=50;

void setup()
{
    String arduinoPort = Serial.list()[0]; //macの場合はいらない
    size(280, 120);
    port = new Serial(this, arduinoPort, 9600); //macの場合は「arduinoPort」の代わりに「"/dev/cu.usbmodem(シリアルポート番号)"」としてください(””も含みます)。ただし、(シリアルポート番号)には各自のArduinoのシリアルポート番号を入れてください。シリアルポートから見られると思います。自分は143301でした。
    frameRate(30);
    stroke(0); 
}

void draw()
{    
    String[] array={"c","d","e","f","g","a","b","l","m","x","n","o","p"};
    if (mousePressed == true) {
        if(mouseY>50){
            int j=mouseX/40;
            println(mouseX,j);
            port.write(array[j]);
            
            reset(); 
            fill(100);
            rect(40*j, 50, width_white, height_white-50);
        }
        else{
            int k=(mouseX-20)/40;
            println(mouseX,k);
            port.write(array[k+7]);
            
            reset();
            fill(100);
            rect(23+40*k, left, width_black, height_black);
        }
    }
    else{
          port.write('q');
          reset();
          println("no");      
    }
}
  
void reset(){
    background(192);
    for(int i=0;i<7;i++){
        fill(255);
        rect(40*i, left, width_white, height_white);
    }
    for(int i=0;i<6;i++){
        if(i==2)continue;
        else{
          fill(0);
          rect(23+40*i, left, width_black, height_black);
        }
    }
}

ソースコードが貼れたら、左上の三角(実行)のボタンを押すとプログラムが実行され、 鍵盤が現れると思います。

プロセシングピアノ

鍵盤を押すと音が鳴ると思います。これで完成です!

3.自分で電子工作してみたい方へ

電子工作の進め方として、まず作りたいものを決めたら、ハードの部分(回路、ボディとか)と ソフトの部分(主にプログラム)に分けて考えると良いと思います。

①回路を作る
入力と出力をどうするのか考えると良いです。 例えば入力だったらセンサ(圧力センサとか赤外線センサとか)を使うのか キーボードやマウスから入力するのか、出力だったら画面に出力結果を出すのか、 モータやLEDなどで出力を反映させるのか、などです。
それらを考えたら次は、入力した情報をどうプログラムへ与えるか、 プログラムからどういう情報を出力へ渡すか、を考えて回路を作っていきましょう。

②ボディを作る
ロボットのようなものが作りたかったら機構などの構造も考えなければいけません (自立した動くものを作るのは意外と難しいです)。必要な部品はマルツパーツなどで入手できます。

③プログラムを書く
複雑なものになるほど一から自分で書くのは大変なので、 作りたいものと似たものをネットで探してそのプログラムを参考にすると良いです。 一発で正しいプログラムが書けることは滅多にないのでこまめにデバッグしていきましょう。

関連企画のリンク

ロボットプログラミング教室 プログラミングに興味がある方はこちら

企画一覧
 研究室展示  自主プロ・メカトロ・IoT展示  遊星歯車展示  スターリングエンジン展示  電子工作教室  ロボットコントロール体験  ロボットプログラミング教室  ロボットモーション体験
 公式YouTube  公式Twitter  公式Facebook