オシロスコープをとりあえず動かしてみたい
###使用したもの
Raspberry Pi Type A+ (B+でもRaspberryPi2でもなんでも可)
ブレッドボード
LED
抵抗(たぶん1.0KΩ)
ジャンパー線(メス-オス 2本と オス-オス 2本 でやりました)
オシロスコープ(Tektronix TDS 2014)
・オシロスコープとは?
・RaspberryPiでLチカの準備
・オシロスコープとの接続
・とりあえず動きをみるだけなら簡単
オシロスコープの説明とかは沢山あるんだけど
「とりあえず動かしてみれば早そうなのになんか動かして見てる記事が少ない」
と思ったし
動かしてみてからのほうが興味もてそうと思ったのでRaspberryPiのLチカで動き確認してみた
初学者なので間違えてたら随時訂正致します
オシロスコープとは?
詳しい説明は外部サイトに任せるとして
(ググったら沢山出てくる)
雑に言うと
「電圧の変化を時間軸で目に見えるようにした装置」
という認識
電圧の大きさを測定するだけなら「テスター」という測定機械があるけど
あれは電流や電圧の大きさを測定するものなので、電圧の変化の周波数とかは見れない
電子工作を深く知ろうとしたら(自分で複雑なプロダクトを作ろうとしたら)オシロスコープが必要になってきます
まぁ電子工作を楽しむ分には無くても困らないのでは、という感覚です
RaspberryPiでLチカの準備
これも沢山やってる方がいるので省略します
Pythonなら
http://qiita.com/masato/items/715e28e0c0c945a54297
http://make.bcde.jp/category/5/
Rubyなら
http://qiita.com/IsaoTakahashi/items/f59cb21f1202fade3d4f
node.jsなら
http://qiita.com/masato/items/399a3b6c22a109c579cc
http://qiita.com/aikumi/items/d9627aa46cbb2eb2b9b0
http://qiita.com/horike37/items/5cb14c42831d3430abf7
などを参考にすればいいのかなと思います
僕はPythonでやりました(Pythonは最初からRaspberryPiに入ってるので)
オシロスコープとの接続
基本的にはプローブとワニ口の間の電位差を測定しているみたいです
参考(PDF注意)
http://akita-nct.jp/~itok/oscilloscope/oscilloscope-text.pdf
ですので、単純には下のようにつなぎました
RaspberryPiの
6ピン(GND)を抵抗に
11ピンをLEDのアノード(足の長い方)
LEDのカソード(足の短い方)を抵抗に
接続しました
さらにオシロスコープは
プローブのほうをLEDのアノード側につないだジャンパーピンに
ワニ口のほうを抵抗やグラウンドにつないだジャンパーピンに
かませてあげました
(この時点では何も起きていないのでオシロスコープも特に反応してないはずです)
まぁ反応してたら「AUTO SET」ボタンを押せばいいです
右上のほうに黒いボタンがあるので
たぶん間違えてないはず
とりあえず動きをみるだけなら簡単
それでは動かしてみます
僕はpythonで動かして見てるので
http://make.bcde.jp/category/5/
を参考にしました
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install python-rpi.gpio
でpythonでRaspberryPi のGPIOを動かすライブラリをインストールして
ディレクトリはどこでもよいので
Pythonのスクリプトを作成しました
エディタはなんでもいいですがわからない人は下記コマンドでエディタが開きます
$ vi test.py
キーボードの「i」を押せば入力モードに切り替わるので
下記プログラムをCtrl + v で貼り付けて
escキーを押した後 「:wq」と入力してエンターキーを押せば保存されます
#!/usr/bin/env python
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
GPIO.setup(11, GPIO.OUT)
while True:
GPIO.output(11, True)
time.sleep(1)
GPIO.output(11, False)
time.sleep(1)
で、保存したらスクリプトを起動します
GPIOはsudoでないとエラーが起きてしまうので
$ sudo python test.py
として起動すると
1秒ごとにLEDが点滅したり消灯したりするはずです
で、オシロスコープを見てあげると
何も設定していないと、画面が1秒間隔で一瞬止まったような動作をすると思います
(そしてたまにピークが上昇することがあるはず)
これ、縦軸と横軸が設定されていないので振り切れてる状態
ここを設定してあげることで見やすくなります
Tektronixのオシロスコープだと
VOLTS/DIVのところで縦軸(電圧の大きさの幅) (CH1のすぐ上のダイヤル)
SEC/DIVのところで横軸(時間軸の幅) (EXT TRIGってかいてあるところのすぐ上のダイヤル)
を変更することができるので変更します
自分のやつだと、「AUTO SET」ボタンを押した時の設定は
縦軸(電圧)の幅が100mV
横軸(時間)の幅が1.00ms
だったので
それぞれダイヤルを左にまわして
縦軸を1.00V
横軸を1.00s
にしてやると見やすと思います
こんな感じになりました
縦軸の高さが約3.3V(RaspberryPiの出力電圧)
横軸の変化が1sごと
なので、ハードウェア上もソフトウエア上もあってます
こんな感じで電圧の変化を測定できるのがオシロスコープ!
というのがわかりました
実はLチカは必要ない
今回実験しましたが、分かる人はわかりますが別にLEDに繋げなくても
RaspberryPiからの電圧の変化をみてるので測定出来ます
ためしに測定している状態からLEDと抵抗をブレッドボードからひっこぬいてください
オシロスコープは反応しているはずなので
(例として、Lチカとかあると導入しやすいかなと思っただけです)
ちなみに、11ピンの代わりにRaspberryPiの3.3V出力(1ピン)に接続して
タクトスイッチで橋渡ししてやると、ボタンのon offによってちゃんとオシロスコープが反応するのが見れます
こっちのほうが面白いかも
タクトスイッチがあるなら確認してみるとよいかも