2020年10月18日 (日)

格安オシロスコープで遊ぶ (5)  LC回路で電気振動

202010171

 どこの高校の物理教室にもある500巻きのコイルをコの字型鉄心に入れて(LCRメータを使って実測したら70mHありました)100μFの電解コンデンサを並列につなぎ,LC回路の電気振動をやってみました。

202010174  
 3ボルトでコンデンサを充電しておいて左のスイッチを切り,右のスイッチを入れてやります。
オシロのトリガモードは,NORMALかSINGLEにして,トリガレベルは0ボルトからちょっとだけ上へ上げてやります(0.4ボルトくらいにしました)。

202010172

 もちろん すぐに減衰しますが, 6~7回くらいは振動するので,授業で見せるくらいなら これで十分でしょう。

この電気振動の周期Tの計算をやってみましょう。20201017image1

 ちなみに,今回の実験で使ったコイルのL=70mH,コンデンサのC=100μFを代入して周期Tを計算してやると,T=17msとなりました。上のオシロ画面の時間軸は1目盛10msですから,大体うまくいってることが分かりますね ♪

ついでに,エネルギー保存の式を作っておきましょう。
20201019image2

  

|

2020年10月16日 (金)

格安オシロスコープで遊ぶ (4)  コイルの自己誘導

20201016_1

 発振器で作った矩形波をコイルに入力して,コイルに生じる誘導起電力を測定してみました。
202010161

回路はこんな感じ。
 12mHのコイルは,電子パーツ屋で買ったチョークコイルです。いつ買ったのか記憶がありませんが,将来使うかもしれないモノは「とりあえず買っておく」癖がついているものでね(笑)

20201016_2  発振器でこういう矩形波を作って上の回路につなぎます。この発振器は,高い周波数にすると ちょっとノイズが乗りますね。

コイルの両端の電位差(誘導起電力)を測定すると,こんな ↓ 感じ。
20201016_3 高校物理の教科書によく載ってるやつですね。

 この曲線も指数関数で,前回と同じようなやり方で計算すると式が作れますからやってみましょう。まずは,Eボルトの直流電源につないだ直後。
20201016image1

お次は,電源が0ボルトになった直後。
20201016image2

|

2020年10月13日 (火)

格安オシロスコープで遊ぶ (3) コンデンサの充放電

20201013_1

 高校物理の教科書によく出てくる「コンデンサの充電曲線・放電曲線」をオシロスコープで見てみましょう。
20201013

 コンデンサと抵抗で,↑ こういう回路を作って,ファンクションジェネレータで左側から14Hzの矩形波を入れ,4.7μFのコンデンサの両端の電位差をオシロで観測します。
入力した矩形波はこんなやつ ↓ で,
20201013_2 コンデンサの両端の電位差は,こんな具合 ↓ に変化します。
20201013_3

 物理の教科書によく載ってるやつですね。
昨年度,岐阜の県立高校のすべての教室に液晶プロジェクタが設置されたので,このオシロを持っていけばすぐその場で見せることができるな(・∀・)

 この曲線は指数関数になってるんですが,そのあたりのことも以下に書いておきますから参考にしてください。
まずは,空っぽのコンデンサをEボルトの電池で充電する過程です。コンデンサの両端の電位差がVボルトね。
20101013_image1

 んで,次は放電の過程です。
20101013_image2

|

2020年10月12日 (月)

格安オシロスコープで遊ぶ (2)

Xr2206_20201011

 実は,オシロと同時にXR2206を使った格安のファンクションジェネレータ・キットも買ってました。
1Hz~1MHzの正弦波/三角波/矩形波が発振できる なかなかスゴイやつです。
 秋月電子のこれとかこれも持ってるんだけど,このキットは895円と格安だし,小さくてかわいいでしょう?

 サクっと組み立てて,昨日のオシロにつないでみました。
正弦波/三角波の出力はDCオフセットに乗っかってるので,これをカットするために0.1μFのコンデンサをつけてあります。オシロにACカップリングでつなげば要らないんですけどね。
 まあ性能はそれなりですが,高校物理の授業で使う程度ならこれで十分です。↓ 動画をご覧ください。

 

  

| | コメント (0)

2020年10月11日 (日)

格安オシロスコープで遊ぶ (1)

Quimat_dso

 Amazonで3,760円の1現象オシロ Quimat社の デジタル オシロスコープ DSO150(DSO1501)をポチりました。
オリジナルは 中国深圳のJYE Tech社の製品みたい。つまり僕が買ったのは,中華製品の中華製コピー品ってわけです(笑)
中身は同じなんだけど,ファームウェアのアップデートはできないようになってるようです。まあ多分やらないから大丈夫ですな。

 10年くらい前に秋月電子で買ったJYE TechのLCDオシロスコープキット(4,700円)と比べると ずいぶん性能アップしてて,これならホビー用途で十分使い物になると思います。

使い方を忘れそうなのでメモしておきます。
【電圧軸ゼロセット】
 試験信号出力(Test signal output)にプローブをつなぎ,CoupleをGNDに切り替えて V/DIVを3秒長押し。
【時間軸ゼロセット】
 SEC/DIVを3秒長押し。
【上下の位置調整】
 V/DIVボタンを2回押し,ADJダイヤルで調整。(ADJダイヤルを押してから回すと速く動く)
【左右(バッファ)の位置調整】
 SEC/DIVボタンを2回押し,ADJダイヤル調整。
【TRIGGERモード(SING)】
 TRIGGERボタンを押し,ADJダイヤルでSINGにセット。さらにTRIGGERボタンを押すと右の▲が水色に変わるので,ここでトリガレベルを指定する。さらにTRIGGERボタンを押すと,右側の矢印を水色の枠で囲むように切り替わるので,立ち上がりでトリガをかけるなら ↑ を,立ち下がりでトリガをかけるなら ↓ を選ぶ。
50ms以上ではトリガがかからない。
【ステータスの表示/消去】
 OKボタン3秒長押し。
【画面save】
 SEC/DIVとADJボタン同時押し。
【画面Load】
 TRIGGERとADJボタン同時押し。
【リセット】
 SEC/DIVとTRIGGERボタンの同時3秒長押し。

  

|

2020年4月 7日 (火)

ガイガーカウンタ GC10(6)空間放射線量データをAmbientへ送信する

Wemos_gc10_ambient_

Gc10_wemos_d1

 WeMos D1(ESP8266)につないだガイガーカウンタGC10で測定した空間放射線量データをAmbientに送信してグラフを作ってみました。

// WeMos D1(ESP8266) + GC10 による空間放射線量測定 → Ambientに送信

#include <ESP8266WiFi.h>
#include "Ambient.h"
const char* ssid = "あなたの無線LANのSSID";
const char* password = "あなたのパスワード";
WiFiClient client;
unsigned int channelId = 12345; // あなたのチャネルID
const char* writeKey = "123456789abcde";//あなたのライトキー
Ambient ambient;

void setup(void){
  Serial.begin(9600);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.print("Connected to ");
  Serial.println(ssid);
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());
  ambient.begin(channelId, writeKey, &client);
}

void loop(void){
  String cpm="";
  if (Serial.available()) {
    cpm="";
    cpm = Serial.readStringUntil('\r');
    Serial.flush();
    cpm.trim();
    delay(1000);
  }
  if (int(millis()/1000%600) == 0){ //10分ごとに
    ambient.set(1, cpm.toFloat()); // CPMをデータ1に
    ambient.set(2, cpm.toFloat()/165); // μSv/hをデータ2に
    ambient.send(); // Ambientに送信
  }
}

Ambientに作ってもらったグラフがこれです ↓

20200406

 現在1分間隔で測定中です。
この公開チャネルをご覧ください→ https://ambidata.io/ch/channel.html?id=12425

|

2020年3月29日 (日)

ガイガーカウンタ GC10(5)放射線量データロガー(2)

20200329_

 たくさん持ってるArduinoのシールドを整理してたらRTC DS1307の付いたSDカードシールドを発見しました。そういえば,以前 この中華製パチもんシールドを買った記憶があるわ。んで,このシールド向けにGC10用放射線量データロガーを組み直してみました。

Sdcardshieldrtcgc10_2

// ガイガーカウンタGC10+DS1307,SD Cardシールド+Arduino で放射線量データロガー


#include <SPI.h>
#include <SD.h>
#include "RTClib.h" //https://github.com/adafruit/RTClib
RTC_DS1307 rtc;
const int chipSelect = 10;

void setup() {
  Serial.begin(9600);
  Serial.print("Initializing SD card...");
  if (!SD.begin(chipSelect)) {
    Serial.println("Card failed, or not present");
    while (1);
  }
  Serial.println("card initialized.");
  rtc.begin() ;
  //following line sets the RTC to the date & time this sketch was compiled
  //rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}

void loop() {
  String cpm = "" ;
  String dataString = "";
  char buff[12] ;
  if (Serial.available()) {
    cpm="";
    cpm = Serial.readStringUntil('\r');
    Serial.flush();
    cpm.trim(); // 改行コードを取り除く
    delay(1000);
  }
  if (int(millis()/1000%600) == 0){ //10分(600秒)ごとに記録
    DateTime now = rtc.now();
    sprintf(buff, "%04u/%02u/%02u", now.year(), now.month(), now.day()) ;
    dataString += String(buff);
    dataString += ",";
    sprintf(buff, "%02u:%02u:%02u", now.hour(), now.minute(), now.second()) ;
    dataString += String(buff);
    dataString += ",";
    dataString += String(cpm);
    dataString += ",";
    dataString += String(cpm.toFloat()/165); //gms=165として,μSv/hに換算
    File dataFile = SD.open("datalog.csv", FILE_WRITE);
      if (dataFile) {
        dataFile.println(dataString);
        dataFile.close();
        Serial.println(dataString);
      }
  }
}

| | コメント (0)

2020年3月24日 (火)

ドライアイス不要の霧箱 (2)

 20200324_1

 ドライアイスはもちろん,水も使わない霧箱を作りました。
参考にしたのはコレ,というか,ほとんどそのままですが(^^;)

 まず,前回と同じように2枚のペルチェ素子を放熱用シリコングリスでくっつけて,四角い穴をあけたチャンバの底にUVレジンで固定します。
UVレジン硬化用の紫外線を当ててる様子はこんな感じ。10分くらいでカチコチに固まります。
20200324_2

で,できあがったのがこれです ↓
20200324_3  このペルチェ素子の表面は高耐久ラッカースプレー(つや消し黒)で塗装しておきます。
 さて,今回このペルチェ素子の放熱に使うのはパソコン用CPUファン(銅製ヒートパイプ4本装備)です。
20200314_4

 付属の金具を使って,さっき作ったチャンバ底面をねじ止めして完成。もちろん,CPUファンのCPUステージ上には放熱用シリコングリス を塗付しておきます。
 電源を入れて,ペルチェ素子表面の温度を測ると,-30.5℃まで下がりました。これはすごい。↓動画をご覧ください。

 

| | コメント (0)

2020年3月23日 (月)

ドライアイス不要の霧箱(1)

20200323_1

 そういえば先日,「ドライアイスが要らない霧箱」を作りましたので,ご紹介します。

 ネットで情報をかき集めて作ったものなので,オリジナリティはほとんどありませんが備忘録として書き残しておくことにします。
さて,ドライアイス無しでどうやってチャンバを冷やすかというと,ペルチェ素子を2枚重ねしたものをCPU冷却用の水冷ブロックの上に乗せ,冷水をこの水冷ブロックに流してペルチェ素子の排熱を行うという仕掛けです。
20200323_2

 まず,水冷ブロックの上にペルチェ素子2枚を順に放熱用両面テープで貼ります。これを底にペルチェ素子サイズの四角い穴をあけたダイソーの「コレクションボックス」に,UVレジンを使って固定します。UVレジン用の 紫外線ランプが必要ですが,UVレジンを使うとガッチリ強力に固定できます。ボックス内に顔を出したペルチェ素子の表面は 高耐久ラッカースプレー( ツヤ消し黒)で塗装します。

20200323_3

 次にペルチェ素子用の電源を用意します。ペルチェ素子は大電流を必要とするので,デスクトップパソコン用のATX電源がおすすめです。廃棄するようなパソコンがあったら,中から取り出しましょう。僕はハードオフで中古を500円で手に入れました(^^)
端子台を取り付けて,5Vを1つ,12Vを2つ取り出せるようにしました。

20200323_4  チャンバ内に顔を出しているペルチェ素子に5V,その下の水冷ブロック側のペルチェ素子に12Vをかけ,ポンプを使って水冷ブロックに冷水を流すと,チャンバ内のペルチェ素子の表面は-25℃から-30℃くらいまで冷えます。これくらい冷やせれば霧箱として十分使えます。
 エタノール5mL程度でチャンバ内上部に貼りつけたスポンジを濡らして線源を入れ,電源を入れるて5分くらい待つと,放射線の軌跡を観察することができます。線源は以前紹介したランタンのマントルの繊維ですが,ラジウムセラミックスボールでも大丈夫です。

| | コメント (0)

2020年3月19日 (木)

ガイガーカウンタ GC10(4)空間放射線量の自動ツイート

Ethernet-shield_gc10

 Ethernetシールドを載せたArduinoにガイガーカウンタGC10をつないで,1時間おきに空間放射線量を自動ツイートするようにしてみました。

  20200319

Tweet

 スケッチの中にMACアドレスを書く箇所があるのですが,例によって中華製の安いEthernetシールドを買ったので,これにはMACアドレスがついてませんでした(^^;)
仕方がないので,もう使わなくなったノートPC用LANカードについてたMACアドレスを流用しました。
 あと必要なのはArduinoからTwitterを利用するためのトークンですが,これはこのサイトに発行してもらいました。Twitterライブラリも同じサイトからダウンロードして,Arduino IDEにインストールしておきます。

で,スケッチはこんな感じ。

/*
* GC10+Ethernetシールドで空間放射線量を自動Tweet
*/

#include <SPI.h>
#include <Ethernet.h>
#include <Twitter.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //あなたのEthenetシールドのMACアドレスに書き換えること
byte ip[] = { 192, 168, 0, 177 }; //あなたのArduinoのローカルIPアドレス
Twitter twitter("発行してもらったあなたのトークン");

void setup(){
 delay(1000);
 Ethernet.begin(mac, ip);
 Serial.begin(9600);
}

void loop(){
 String cpm = "" ;
 String dataString = "";
 if (Serial.available()) {
  cpm = Serial.readStringUntil('\r');
  Serial.flush();
  cpm.trim();
  delay(1000);
 }
if (int(millis()/1000%3600) == 0){               //60分(3600秒)ごとにTweet
  dataString += "【自動Tweet】%0DガイガーカウンタGC10+Arduino によるリアルタイム放射線量測定%0D%0D";
  dataString += "現在の空間放射線量(岐阜市) : ";
  dataString += String(cpm);
  dataString += "CPM , ";
  dataString += String(cpm.toFloat()/165);   //gms=165として,μSvに換算
  dataString += "μSv";
  char* msg = dataString.c_str();
  Serial.println("connecting ...");
  if (twitter.post(msg)) {
    int status = twitter.wait(&Serial);
    if (status == 200) {
    Serial.println("OK.");
  } else {
    Serial.print("failed : code ");
    Serial.println(status);
  }
  } else {
    Serial.println("connection failed.");
  }
 }
}

| | コメント (0)

より以前の記事一覧