実験用電源の作成記録その3

・目的

その1で組んだ回路を元に

ユニバーサル基板にはんだ付け

していく

 

・使用したもの

ユニバーサル基板

XHコネクタ2pinオス,メス

 はんだ

 はんだごて

 

・方法

 

はんだ付け

図1の回路図のように

ユニバーサル基板に配線していく。

f:id:shangtian:20171022221157p:plain

 図1:電源回路

 

スイッチやコネクタは直接

配線せずXHコネクタを用いて

取り外し出来るようにした。

 取り外しができるので基板を

ケースに入れる時かなり楽になる

 

図みたいに先にユニバーサル基板に

パーツをつける位置をマジックで

印しておくと配線がだいぶ

楽になった。
f:id:shangtian:20171017074633j:image

 

すべての配線が終わりちゃんと動作するか

確認をする。 

f:id:shangtian:20171016163145j:image

 

ちなみに基板の裏側はこんな感じ
f:id:shangtian:20171016163212j:image

 

・完成

下の写真が完成品
f:id:shangtian:20171028003451j:image

実験用電源の作成記録その2

・目的

プラスチックケースを加工して

スイッチやコネクタを取り付ける

 

・使用したもの

ドリル

ヤスリ(ダイソーで売ってた金属のヤスリ)

木片(ホームセンターで購入)

プラスドライバー

プラスチックケース

f:id:shangtian:20171016095127j:image

可変抵抗(B10k)

トルグスイッチ

DCコネクタ(外径5.5mm,内径2.1mm)

絶縁ターミナル

サトーパーツ(SATOPARTS) T-3025-B

サトーパーツ(SATOPARTS) T-3025-B

 

ヒートシンク秋月電子の店頭で売られていた)
f:id:shangtian:20171016100525j:image

 

・方法

 

(1)ケースに印をつける

 

まずはケースにコネクタや

スイッチを取り付ける

位置をマジックペンで

印をつけていく

 

トルグスイッチ
f:id:shangtian:20171016095754j:image

 

ボリューム

f:id:shangtian:20171016095827j:plain

 

コネクタ赤黒
f:id:shangtian:20171016100012j:image

 

DCコネクタ
f:id:shangtian:20171016100038j:image

 

ヒートシンク
f:id:shangtian:20171016100133j:image

(2)ドリルで穴開け

先ほど印をつけたところを

ドリルで穴を空けていく

空け終わったら部品を通して

みる。もし入らなかったら

ヤスリで削って行くとよい。
f:id:shangtian:20171016100206j:image

 

こういう大きな部分

を切り出す時は印の

周りを、間隔を詰めて穴を

空けていき、最後はニッパー

で切り取ると空けられる

f:id:shangtian:20171016100133j:image

 

切り出したのが下の写真
f:id:shangtian:20171016100301j:image

 

こちらが完成品
f:id:shangtian:20171016100322j:image

 (3)コネクタの配線

 

 次はコネクタに配線をしていく


f:id:shangtian:20171016101525j:image


f:id:shangtian:20171016162743j:image

 

レギュレーターへの配線
f:id:shangtian:20171016162855j:image

 

レギュレーターに配線し終わったら

レギュレーターの裏側に

CPUグリスを塗って

ネジで固定した
f:id:shangtian:20171016162933j:image

固定したのが図
f:id:shangtian:20171016162946j:image

 

その3へ続く

 

shangtian.hatenablog.com

 

実験用電源の作成記録その1

・目的

1Vから12Vの幅を持つ

電源を作成する。

 

 

・使用したもの

可変抵抗

可変三端子レギュレータLM317T

整流ダイオード1N4007G 2個

0.1μF セラミックコンデンサ

28μF、23μF 電解コンデンサコンデンサ

ブレッドボード

ジャンパワイヤ

DCコネクタ(外径5.5mm,内径2.1mm)

ACアダプター 12V1A AD-K1

1kΩ 抵抗

200Ω抵抗

LED

 

・方法

 

(1)回路図の作成

 回路図を作成して、ブレッドボード上で

正しく動作するかを検証する。

 

単に電圧を変化させるだけであれば、

図1の回路で十分である。

 

今回はユニバーサル基板にはんだ付けして

ケースに収めたいので回路にはノイズ除去

と安全装置(ダイオード)を加えれおく。

 

可変レギュレタの詳しい使い方は以下を参照
shangtian.hatenablog.com

 

 

1Vから12Vほどの幅で出力できるように

使う抵抗の大きさについて考える。

 

まずは基本回路で考えてみる。

基本回路を図1に示した。

 

f:id:shangtian:20171016211232p:plain

 図1:基本回路

 

可変レギュレターの出力Voutは次の式で表される。

f:id:shangtian:20171016215158p:plain

 

最高10Vほど出力できるようにしたいので

R1 = 1kΩ

R2max = 10kΩ

として回路を組んだ。

 

最高出力は理論上は以下

f:id:shangtian:20171016223709p:plain

 

最低出力は

f:id:shangtian:20171018230526p:plain

 

 

次に基本回路にコンデンサダイオード

加えた保護回路につて考えて見る。

図2に保護回路の回路図をしめした。

 f:id:shangtian:20171022215256p:plain

図2:保護回路図

 

まずCinについて

Vin部分の配線のインピーダンスの影響

を低くするために設置する。

Cinは0.1μFセラミックコンデンサ

または1.0μFタンタルコンデンサ

が推奨されている。

 

次はCadjについて

Cadjはリップル除去を行うために設置。

つまりAC電源の電圧の変動の影響を

抑えるアンプの役割。

Cadjは10μFが推奨されている。

 

最後にCoについて

出力側に25μF電解コンデンサ

取り付けることでリンキングの

発生を抑えることが出来る。

 

保護 ダイオードについて

あらゆるIC化されたレギュレータに

コンデンサを外付けした場合、

コンデンサにたまった電荷

ICの微小電流回路をつたって

流れてしまうのを防ぐため設置する。

 

 

図2を参考のしてVoutにLEDを

接続して電圧の変化をわかりやすく

したのが図3の回路。

 

この図3の回路をブレッドボードに組み上げるる。

 

 

f:id:shangtian:20171022212419p:plain

図3:保護回路図

 

(2)ブレッドボード上で回路を組む

 図3を参考にしながらブレッドボード

上に回路をくんだ。

図4にFrizingで作成した回路図

を載せた。

f:id:shangtian:20171022204115p:plain

図4:Frizingで描いた回路図

 

 ・結果

 ブレッドボード上に組んで

可変抵抗を回すとLEDの

明るさが変化した。

 

 電圧を測ったところ

最小で1.2v

最大で11v

程だったのでちゃんと動いたと思う。
f:id:shangtian:20171016094006j:image

 

shangtian.hatenablog.com

 

可変三端子レギュレータLM317Tを使ってみた

・目的

可変三端子レギュレータを使用し

電源回路をブレッドボード上に

作るりLEDの明るさを変化させる。

 

・使用したもの

LM317T

ブレッドボード

LED

1kΩ抵抗

可変抵抗(B10k)

 

・LM317Tの仕様について

 1.2Vから37Vの幅の電圧を出力できる

f:id:shangtian:20171018230646p:plain

図1:ピン配置

出典:LM317T仕様書

 

可変レギュレータはVrefが常に同じ値になるよう

調整する。LM317TではVref=1.25である。

 

f:id:shangtian:20171016211232p:plain

図2: 基本回路構成

出典: LM317T仕様書

 

Voutは以下の式により求めることが

できる

f:id:shangtian:20171016215158p:plain

LM317TはVref = 1.25[V]

Iadjは100μAより小さくなるよう

設計されている

 

上式よりR1とR2の比率によって

出力電圧(Vout)を調整できる。

 

 

例)Vref = 1.25[V] Iadj = 100μ[A]

*Iadjの定格値は50μ[A]だが最大値で計算してみる

  R1 = 1K[Ω] R2 = 10K[Ω]

       であるとき

  

f:id:shangtian:20171018230024p:plain

 

      R1 = 1K[Ω] R2 = 0[Ω] であるとき

 

f:id:shangtian:20171018230526p:plain

        となる

 

Iadjを最大にして第二項はも0.01[V]なので

f:id:shangtian:20171018231816p:plain

と考えて良さそう

 

 

・方法

図2の基本構成回路を基に

図3の回路をブレッドボード

に組む。

f:id:shangtian:20171016221124p:plain

図3:基本構成回路をもとに組んだ回路w

 

・結果

 

電圧変化しました。


f:id:shangtian:20171018231241j:image

 図4:実際に組んで動かした

グラフィックボードを分解して、掃除してみた

譲り受けたパソコンに搭載されてた

グラフィックボードが

ホコリまみれだったので

分解して、掃除してみた。

 

グラフィクボードは

ATI Radeon 256MB PCI Express DMS-59

Graphics Card Low Profile 7120035100G

http://www.itinstock.com/ati-radeon-256mb-pci-express-dms-59-graphics-card-low-profile-7120035100g-14255-p.asp


f:id:shangtian:20171013073551j:image

 

裏返して


f:id:shangtian:20171013074127j:image

基盤と放熱板を固定してる

ネジをはずしてみると


f:id:shangtian:20171013074300j:image

放熱板が外れる


f:id:shangtian:20171013074416j:image

次にファンの電源供給用の

コネクタをペンチで外した
f:id:shangtian:20171013074540j:image

放熱板を覆ってる

透明なケースのネジ

を外と


f:id:shangtian:20171013074757j:image

ファンの根元辺りにも

ネジがあったので外す

とファンが外れて

放熱板だけになる
f:id:shangtian:20171013074900j:image

そして放熱板を水洗いして、

ファンのホコリも

取り除いたら放熱板にファンと

ケースを取り付けて元に戻す

 

放熱板とGPUの間には

グリスが塗られてるので

まずは古いグリスを拭き取る
f:id:shangtian:20171013075021j:image


f:id:shangtian:20171013075320j:image

 拭き取り終わったら

新しいグリスを塗る

 下の写真のグリスを使った 
f:id:shangtian:20171013222256j:image

塗り終わったら

基板に放熱板を

とりつけた。

 

下の写真が掃除し終わった

グラフィックボード

結構きれいになった。
f:id:shangtian:20171013075338j:image

ArduinoでGPSモジュールGM-318をつかってみた

・はじめに

GPSモジュールが安売りされていた。

通常価格は3250円だそうだがなんと999円

ということで勢いで買ってしまった。

 

GPSとは

複数人工衛星から発射される電波受信し、その信号到達する時間差計算することで受信機位置を知ることができる。

というもの。GPSとは - 時事用語 Weblio辞書

から引用。

 

GPSが吐き出すデータはNMEAフォーマトの情報。

NMEAは音波探査機、ソナー、風速計

ジャイロコンパス、自動操舵装置、GPS受信機

などの海上電子装置における、電気的・データを

合わせた使用のこと。

 

NMEAはセンテンスの集まりで、1センテンスは

「$」ではじまり、「\r\n」(改行)で終わる。

 

・目的

Arduino でNMEAデータを受け取り

シリアル通信にてデータを表示する。

 

・使用したもの

GM-318

Arduino UNO 

ブレッドボード

ジャンパワイヤ

 

GM-318の特徴

シリアル通信可能(デフォルトでは4800bps)

NMEA0183 プロトコルをサポート

f:id:shangtian:20170923082314p:plain

図1 :ピンナンバー割り振り

 

表1:ピン説明

Pin

Name

機能

1

GND

Ground

2

VCC

電源供給3.3~3.5V

3

TX

シリアルデータ送信

4

RX

シリアルデータ受信

5

PWR_CTRL

パワーセーブピン

 

5ピンの機能を使わない時は

GNDに接続すること

 

・方法

(1)回路作成

回路図を図に示した

 

f:id:shangtian:20170923074932p:plain

図2:回路図

 

(2)プログラム作成

 図3にスケッチをしめした。 

今回はGPSモジュールから受け取った値

を単純にシリアルモニタで確認できるように

した。

#include <SoftwareSerial.h>

SoftwareSerial mySerial(10, 11); //RX,TX

void setup() {

  Serial.begin(57600);

  while(!Serial){
    ;
  }
  mySerial.begin(4800); //4800bpsで指定
}

void loop() {
  if(mySerial.available()){
    Serial.write(mySerial.read());
  }

}

図3:スケッチ

 

・結果

結果は図4。室内で計測したため

位置情報は得られなかったが、

NMEAデータがどんどん吐き出されている

のがわかる。

f:id:shangtian:20170927104224p:plain

図4:NMEAデータ

 

ということで外へ行ってデータ収集。

f:id:shangtian:20170927104914j:plain

図5:データ収集

 

図5の状態でうろうろしてたんで

かなり変な人だと思われただろうw

周りの歩行者からの視線を感じた。

 

Tera Term を使いログをとった。

 

計測結果を示すことはできないが

うまく測定できた。

 

<参考文献>

GPSのNMEAフォーマット

NMEA 0183 - Wikipedia

deviceplus.jp

Atmega328Pで自立走行ロボットを作ろう(その1)

・目的 

最終的な目標は距離センサとATmega328Pを使って

自立走行できるロボットを作る。

 

超音波センサで距離を測り障害物に

近づいたらそれを避けて直進するように

する。

 

今回はブレッドボード上に回路を組む

ところまで。

 

・使用したもの

Arduino uno

ATmega328P

TA7291P

HC-SRO4

ブレッドボード

XHコネクタ

ユニバーサル基板

16Mhz振動子

タミヤモーター

レギュレータ5V1A

 

 

・方法

 

1)Arduino unoで回路を組み立てる

 

ブレッドボードにArduino を使って回路を組み立てる

回路図は図1に示した。

 

 

f:id:shangtian:20170918100013p:plain

図1:プロトタイプ

 


TA7291p を使ってみた

 

超音波センサとモータードライバの詳しい使い方は

以下から。

 

shangtian.hatenablog.com

  shangtian.hatenablog.com

 

 

2)コード

 

コードを図に示した。

const int で接続するピンを

宣言しておく

 

また前進、後退、右、左、停止、距離測定

を行う関数を作成

 

 

 

const int Pin1 = 6;
const int Pin2 = 7;
const int Pin3 = 9;
const int Pin4 = 10;
const int pwm1 = 5;
const int pwm2 = 11;

const int Trig = 3;
const int Echo = 4; 

void setup() {
  pinMode(Pin1,OUTPUT);
  pinMode(Pin2,OUTPUT);
  pinMode(Pin3,OUTPUT);
  pinMode(Pin4,OUTPUT);
  pinMode(pwm1,OUTPUT);
  pinMode(pwm2,OUTPUT);
  pinMode(Trig,OUTPUT);
  pinMode(Echo,INPUT);
  //Serial.begin(9600);
}


void forward(int val){
  digitalWrite(Pin1,LOW);
  digitalWrite(Pin2,HIGH);
  analogWrite(pwm1,val);
  digitalWrite(Pin3,HIGH);
  digitalWrite(Pin4,LOW);
  analogWrite(pwm2,val);
}

void reverse(int val){
  digitalWrite(Pin1,HIGH);
  digitalWrite(Pin2,LOW);
  analogWrite(pwm1,val);
  digitalWrite(Pin3,LOW);
  digitalWrite(Pin4,HIGH);
  analogWrite(pwm2,val);
}

void right(int val){
  digitalWrite(Pin1,LOW);
  digitalWrite(Pin2,HIGH);
  analogWrite(pwm1,val);
  digitalWrite(Pin3,LOW);
  digitalWrite(Pin4,HIGH);
  analogWrite(pwm2,val);
}

void left(int val){
  digitalWrite(Pin1,HIGH);
  digitalWrite(Pin2,LOW);
  analogWrite(pwm1,val);
  digitalWrite(Pin3,HIGH);
  digitalWrite(Pin4,LOW);
  analogWrite(pwm2,val);
}

void despin() {
  digitalWrite(Pin1,LOW);
  digitalWrite(Pin2,LOW);
  digitalWrite(Pin3,LOW);
  digitalWrite(Pin4,LOW);
}

float echo() {

  int dur;
  float distance;
  digitalWrite(Trig,HIGH);
  delayMicroseconds(10);
  digitalWrite(Trig,LOW);
  dur = pulseIn(Echo,HIGH);
  distance = (float)dur*0.017;
  return distance;
}

void loop() {
  float a,b;
  float dis;
  float Distance;
  dis = echo();
  if(dis >= 0.5){
    Distance = dis;
  }
  if(Distance <= 5.0){
    //Serial.println(Distance);
    reverse(50);
    delay(5000);
    right(50);
    delay(5000);
    despin();
    a = echo();
    left(50);
    delay(10000);
    despin();
    b = echo();
    delay(5000);

    if(a >= b){
      right(50);
      delay(10000);
    }
  }else{
    //Serial.println(Distance);
    forward(200);
    delay(1000);
  }
} 

3)ATmega328Pで動かしてみる

 今度はArduinoからATmega328P

に置き換えてみる

 

図のコードをATmega328Pに書き込んで

ブレッドボード上に繋いでみた

 

書き込みは以下の記事のように

行った。

shangtian.hatenablog.com

 

f:id:shangtian:20170918111932p:plain