2014年6月11日水曜日

バックロードホーンスピーカー(FE83En+BW-800)の製作

真空管アンプにつなげるバックロードホーンスピーカーを製作しました.

コイズミ無線でFOSTEXのスピーカーユニットFE83EnとバックロードホーンエンクロージャーBW-800を買ってきました.内部配線用のケーブルや端子なども含め,左右2本分で1万5千円弱です.


片面の壁だけ残して木工用ボンドで接着して,ユニットを装着しました.ハンダ付けは不要.板の1枚1枚に番号が書いてあるので,組み立てはとても簡単でした.エンクロージャーのサイズはW110×H300×D210なので,高さと奥行きはほぼA4サイズです.学生の実習用にも良さそう.


中身に入れる吸音材や内側の塗装などの事を考えて,とりあえず最後の片面の壁は養生テープで仮止めの状態です.外側の塗装は,実物を見る前はクリアー塗装だけを考えてましたが,板の材質がMDFなのでクリアー塗装は見た目がイマイチかも.しばらく検討します.黒の鏡面仕上げもいいけど,木目調シートにしようかな.


アンプと並べてみました.とりあえず出した音は「なんじゃこりゃ」な状態.2時間ぐらい鳴らすと少しまとまって来ました.しばらくエージングです.


一番外側にあるのはBOSE MediaMateIIです.これはMac miniのヘッドフォン端子直結.このスピーカーを初めて使ったときは,サイズの割に低音が良く出ているのにビックリしたのですが,こうやってUSB出力→エレキットのUSB-DAC PS-3249春日無線の真空管アンプKA-33SE→今回のスピーカーと聞き比べてみると,MediaMateIIは低音がちょっと出過ぎていて,中音域がごちゃごちゃしているのが分かります.

これで,自作デスクトップオーディオシステムがほぼ完成しました.残るは,現在iTunesを使っているMac miniをCubieTruckに差し替えるくらいです.CubieTruckはRaspberry PiBeagleBone Blackと違い,SATA端子が付いていて2.5"HDDやSSDが使えるので,この手のサーバーには便利そうです.

2014年6月4日水曜日

エレキットUSB-DACにVUメーターの追加

先日作ったエレキットのUSB-DACにVUメーターを追加してみました.

VUメーターとVUメーターへの出力基板はヤフオクで落札.メーターは中古品だったのでだいぶ安く本物を手に入れる事が出来ました.メーターのブツはComponexの2LXとかいう物で,出品者の方によると,TASCAMのオープンリールデッキから外した中古品だそうです.4個がバラバラで出品されていたので,そのうち2個だけ入札して手に入れました.

実際の製作は,基板に部品のハンダ付けが済んでいるものだったので,ケーブルをつなげて終わり.エレキットのUSB-DACは出力がライン出力とヘッドホン出力の2つあり,両方に同時に出力できるので,ヘッドホン出力を真空管アンプに出して,ラインアウトから信号をもらってVUメーター用の基板に入力しました.


ただ,VUメーターの振れ幅は適当に調節しています.本物のVUメーターのレベルはWikipediaによると
インピーダンス600Ωの負荷回路へ1kHzの正弦波を加えて1mWの電力を消費したときの出力電圧を0dBmとし、+4dBmを0VUとする
となっており,0dBmの電圧は
$$\frac{\{E (V)\}^2}{600 (\Omega)} = 1 \times 10^{-3}(W)$$
より$E = \sqrt{0.6} = 0.775 (V)$ (よって0VUの電圧が1.228V)なのですが,Mac側でUSB出力をボリューム調整できるんで,適正なラインレベルが出てるのかよく分からないし,インピーダンスもよく分からないので,結局適当です.この基板を使っていると,入力が30mVから10Vまで調節できるとの事なので,適当に針がよく振れるように調整してみました...どうも左右の針の振れ幅が違うみたい.中古品だからか?

ともかく,真空管とVUメーターで,見た目だけはアナログチックになってきました.ただ,基板むき出しのままで置いてあるので,いい加減ケース買って来て入れなきゃ.

2014年5月29日木曜日

エレキットUSB-DACの製作

真空管アンプを買った日に寄り道して買っておいた,エレキットのUSB-DACを作ってみました.

セルフパワーにするための追加部品は全て手元にあったので,初めからセルフパワーで作製.最初電源をつないでも,パソコンから認識されない!パイロットランプも無いので,電源が来ているかも不明!最初はキット通りに作るべきだったかと,あせりました.

テスターを持ち出してセルフパワーの電源周りを確認してみたところ,DCジャックの配線を間違っていました.DCプラグを差し込むと−側でつながっている2つの端子って離れて,片方だけが−になるのね.久しぶりなので,すっかり忘れていました.

ハンダ付けをやり直したところ,今度は大丈夫.

秋月のUSB-DACと2台,両方とも動きました.


このキットはオペアンプの交換ができたりするので,もう少しいじくれそうです.

2014年5月28日水曜日

秋月電子USB-DACおよびローパスフィルタの製作

秋月電子のUSB-DACキットローパスフィルタを組み込んで,実際に作ってみました.

ローパスフィルタは,ぺるけさんのページにある数値を参考にし,手元にあった部品で自分で再計算(ローパスフィルタのみの場合と,その前段のハイパス(DCカット)フィルタも含めた場合)してシミュレーションしています.ローパスフィルタの効きが分かるように,フィルタなしの回路とフィルタありの回路を切り替えられるようにしました.

あまり配置を考えずに配線してしまいましたが,とりあえず音が出ました.


次のオシロの写真は無音入力時の波形(上の黄色)とFFT(下の赤色)です.波形は縦軸が1ブロックあたり10mV,横軸は4msです.FFTの横軸は1ブロックあたり12.5kHz,縦軸は10dBVです.

次のオシロの写真は,ローパスフィルタを挟んだときの波形(青色)とFFT(赤色)です.

FFTでざっと-10dBVぐらいの差が出ています.電圧比で$1/\sqrt{10}$倍に減ったことになります.波形を見ても明らかにノイズは減っているようなので,ローパスフィルタの効き目はあったようです.

現在のところ,裸のままでタミヤのプラスチック基板にねじ止めしているだけなので,そのうち,ちゃんとしたケースに入れようと思います.


2014年5月25日日曜日

秋月電子USB-DAC用ローパスフィルタの設計(その2)

秋月電子USB-DAC用ローパスフィルタの設計」で,外付けのローパスフィルタに使う抵抗の抵抗値,コンデンサの容量を確認したのですが,元のページでは,さらに回路の出口のすぐ外に10kΩが追加されており,これが回路の出口に直列で付いている47μFの電解コンデンサにたまった電荷を放出するためとの事です.

その結果,電解コンデンサから先の回路は下記の回路のようになっています.
ここで,オレンジで囲まれている部分が,元々のキットに含まれている部分です.この部分まで含めて回路図を描くと
  • ハイパスフィルタ(47μF + 10kΩ)
  • ローパスフィルタ(100Ω + 0.022μF)
  • ローパスフィルタ(330Ω + 0.0047μF)
の3段のフィルタになります.以下では,1段目のハイパスフィルタの周波数特性,3段まとめてのフィルタの特性を計算してみます.

まず,1段目だけのハイパスフィルタの周波数特性を計算します.下図のように変数を定義します.抵抗の抵抗値を$R_0$,コンデンサの容量を$C_0$,入力電圧を$v_i(t)$,出力電圧を$v_2(t)$,コンデンサに流れる電流を$i_1(t)$,コンデンサにかかる電圧を$v_{C_0}(t)$とします.
すると,抵抗に関する式
$$v_2(t) = R_0 i_1(t)$$
コンデンサに関する式
$$\frac{d v_{C_0}(t)}{dt} = \frac{1}{C_0}i_0(t)$$
電圧に関する式
$$v_i(t) = v_{C_0}(t) + v_2(t)$$
が成立します.これらの式から$i_0(t)$と$v_{C_0}(t)$を消すと
$$\frac{d^2}{dt^2}v_i(t) + \frac{1}{C_0R_0}\frac{dv_2(t)}{dt} + \frac{d^2}{dt^2}v_2(t)$$
となります.これをラプラス変換すると
$$V_i(s)s^2 = \frac{1}{C_0R_0}V_2(s)s + V_2(s)s^2$$
となるので,伝達関数は
$$G(s) = \frac{V_2(s)}{V_i(s)} = \frac{C_0R_0 s}{1 + C_0R_0 s}$$
となります.周波数特性は$s = j\omega$,$\omega = 2\pi f$を入れて絶対値を取る事で
$$|G(j\omega)| = \frac{C_0R_02\pi f}{\sqrt{1 + (C_0R_02\pi f)^2}}$$
となるので,dBに直すと
$$g = 20\log_{10}|G(j\omega)| = 20\log_{10}\frac{C_0R_02\pi f}{\sqrt{1 + (C_0R_02\pi f)^2}}$$
となります.

次に,3段まとめたフィルタの周波数特性を計算します.下図のように変数を定義します.抵抗の抵抗値をそれぞれ$R_0$,$R_1$,$R_2$,コンデンサの容量をそれぞれ$C_0$,$C_1$,$C_2$,コンデンサ$C_0$に流れる電流を$i_1(t)$,抵抗$R_0$に流れる電流を$i_r(t)$,抵抗$R_1$に流れる電流を$i_2(t)$,コンデンサ$C_1$に流れる電流を$i_c(t)$,抵抗$R_2$に流れる電流を$i_3(t)$,入力電圧を$v_i(t)$,抵抗$R_1$の手前の電位を$v_2(t)$,コンデンサ$C_0$にかかる電圧を$v_{C_0}(t)$,コンデンサ$C_1$にかかる電圧を$v_{C_1}(t)$,出力電圧を$v_o(t)$とします.


すると,電圧に関する式
$$v_i(t) = v_{C_0}(t) + v_2(t)$$
$$v_2(t) = R_0 i_r(t)$$
$$v_2(t) = R_1 i_2(t) + v_{C_1}(t)$$
$$v_{C_1}(t) = R_2 i_3(t) + v_o(t)$$
電流に関する式
$$i_1(t) = i_2(t) + i_r(t), \quad i_2(t) = i_3(t) + i_c(t),$$
コンデンサの充電に関する式
$$i_1(t) = C_0 \frac{dv_{C_0}(t)}{dt}, \quad i_c(t) = C_1 \frac{dv_{C_1}(t)}{dt}, \quad i_3(t) = C_2 \frac{dv_o(t)}{dt}$$
が得られます.

まず,$v_2(t)$から右だけを見ると,これは$v_2(t)$より左には依存しないので前回の計算と同じ形になり,この部分の伝達関数の逆数は
$$\frac{V_2(s)}{V_o(s)} = (R_1C_1s + 1)(R_2C_2s+1) + R_1C_2s$$
となります.

$v_2(t)$より左については,上のハイパスフィルタとは微妙に式が違う($i_1(t)$が$i_2(t)$と$i_r(t)$に分かれて,電流$i_2(t)$が$v_2(t)$以降の回路に流れ込む)ので,上の式からうまく$i_2(t)$を消して$v_2(t)$を残すようにすると,

$$\frac{d^2}{dt^2}v_i(t) = \frac{C_1 + C_2}{C_0} \frac{d^2}{dt^2} v_o(t) + \frac{C_1C_2R_2}{C_0} \frac{d^3}{dt^3} v_o(t) + \frac{1}{C_0R_0} \frac{d}{dt}v_2(t) + \frac{d^2}{dt^2} v_2(t)$$
が得られます.ラプラス変換すると
$$V_i(s)s^2 = \frac{C_1 + C_2}{C_0} V_o(s)s^2 + \frac{C_1C_2R_2}{C_0} V_o(s)s^3 + \frac{1}{C_0R_0} V_2(s)s + V_2(s)s^2$$
となります.すると,全体の伝達関数の逆数は
$$\frac{V_i(s)}{V_o(s)} = \frac{C_1 + C_2}{C_0} + \frac{C_1C_2R_2}{C_0}s + (\frac{1}{C_0R_0s} + 1)\frac{V_2(s)}{V_o(s)} = \frac{C_1 + C_2}{C_0} + \frac{C_1C_2R_2}{C_0}s + (\frac{1}{C_0R_0s} + 1)\{ (C_1R_1s + 1)(C_2R_2s + 1) + R_1C_2 s\}$$
となります.$s = j\omega$を代入し,複素数としての絶対値を取り,さらに$\omega = 2\pi f$を代入すると,最終的な周波数特性は
$$g = 20\log_{10} |G(j\omega)| = 20\log_{10} \frac{C_0R_02\pi f}{\sqrt{(C_1R_0 + C_2R_0 + C_1R_1 + C_2R_2 + C_2R_1 + C_0R_0 - C_0C_1C_2R_0R_1R_2(2\pi f)^2)^2 (2\pi f)^2 + \{ 1 - ( C_1C_2R_1R_2 + C_1C_2R_0R_2 + C_0C_1R_0R_1 + C_0C_2R_0R_2 + C_0C_2R_1R_2)(2\pi f)^2\}^2}}$$
となります.

以上の2つの式に以下のパラメータを代入してgnuplotでプロットします.
  • $C_0 = 47 \times 10^{-6}$,$R_0 = 10 \times 10^3$
  • $R_1 = 100$,$C_1 = 0.022 \times 10^{-6}$
  • $R_2 = 330$,$C_2 = 0.0047 \times 10^{-6}$

gnuplotに食わせるスクリプトは以下のようになります.
set logscale x
set xrange [0.1:1000000]
set xlabel 'Hz'
set ylabel 'dB'

f(r0, c0, f) = 20 * log10(c0 * r0 * 2 * 3.1415 * f) - 10 * log10((2 * 3.1415 * r0 * c0 * f)**2 + 1)

g(r0, c0, r1, c1, r2, c2, f) = 20 * log10(c0 * r0 * 2 * 3.1415 * f) - 10 * log10((c1*r0 + c2*r0 + c1*r1 + c2*r2 + c2*r1 + c0*r0 - c0*c1*c2*r0*r1*r2*(2 * 3.1415 * f)**2)**2 * (2 * 3.1415 * f)**2 + (1 - (c1*c2*r1*r2 + c1*c2*r0*r2 + c0*c1*r0*r1 + c0*c2*r0*r2 + c0*c2*r1*r2)*(2 * 3.1415 * f)**2)**2  )

set term pdf
set output 'HighPass-47uF-10kohm-0.1Hz-1MHz.pdf'

plot f(10e3, 47e-6, x) title '47uF, 10kohm'

set term png
set output 'HighPass-47uF-10kohm-0.1Hz-1MHz.png'
replot

set term pdf
set output 'HighPass-47uF-10kohm+LowPass-100ohm-0.022uF-330ohm-0.0047uF-0.1Hz-1MHz.pdf'

plot g(10e3, 47e-6, 100, 0.022e-6, 330, 0.0047e-6, x) title '47uf, 10kohm + 100ohm, 0.022uF + 330ohm, 0.0047uF'

set term png
set output 'HighPass-47uF-10kohm+LowPass-100ohm-0.022uF-330ohm-0.0047uF-0.1Hz-1MHz.png'
replot

結果のグラフは以下のようになりました. まず,最初のハイパスフィルタだけの周波数特性です.
次がハイパスフィルタと2段のローパスフィルタ全体の周波数特性です.

ちょっとすごい式になりましたが,プロットしてみると,きちんと計算できてそうに見えます.

2014年5月24日土曜日

秋月電子USB-DAC用ローパスフィルタの設計

真空管アンプにはMac miniのヘッドフォン端子から音を入れているのですが,最近USB-DACが流行っているみたいなので,一番安い秋月電子のUSB-DACを買いました.

エレキットのUSB-DACだと,出力にオペアンプが入っていたりするのですが,秋月電子のキットはD/A変換した信号がそのまま出力されているので,色々と回路を追加した改造例があるようです.その中で,ぺるけさんのページhttp://www.op316.com/tubes/lpcd/aki-dac.htmに,ローパスフィルタを付ける話があったので,やってみることにしました.

ここで一つ問題が.ここに載っていた抵抗値は100Ωと390Ωまたは82Ωと330Ωだったのですが,手元にあった抵抗が100Ωと330Ωなので,どっちの組み合わせでもありません.

折角なので,100Ωと330Ωの組み合わせでも問題ないかどうか自分で計算してみました.あと,100Ω-0.022uFと330Ω-0.0047uFのそれぞれ単体で,どの程度のフィルタ特性になるかも確認します.計算をフォローするWebページが無かったので,教科書「演習で学ぶ基礎制御工学」を取り出して,改めて問題を解いてみます.

まず以下のような1段だけの場合,入力電圧を$v_i(t)$,出力電圧を$v_o(t)$,抵抗値を$R_1$,コンデンサの容量を$C_1$,抵抗に流れる電流を$i_1(t)$とします.
すると,電圧の式として
$$R_1 i_1(t) + v_o(t) = v_i(t)$$
が出ます.また,コンデンサの充電の式として
$$v_o(t) = \frac{1}{C_1} \int_0^t i_1(\tau)\, d\tau$$
が出ます.2番目の式を$t$で微分すると
$$\frac{d v_o(t)}{dt} = \frac{1}{C_1} i_1(t)$$
となるので,これを最初の式に代入すると
$$R_1C_1\frac{d v_o(t)}{dt} + v_o(t) = v_i(t)$$
となります.電圧の初期値を$0$としてラプラス変換すると
$$R_1C_1 s V_o(s) + V_o(s) = V_i(s)$$
となるので,この回路の伝達関数は
$$G(s) = \frac{V_o(s)}{V_i(s)} = \frac{1}{R_1C_1 s + 1}$$
となります.ゲインは
$$|G(j\omega)| = \frac{1}{\sqrt{(R_1C_1\omega)^2 + 1}}$$
となるので,$\omega = 2\pi f$を代入すると,結局周波数特性は
$$g = 20\log_{10} |G(j \omega)| = 10 \log_{10}\frac{1}{(2\pi R_1C_1 f)^2 + 1}$$
となります.

次に,以下のように2段重ねた場合に,入力電圧を$v_i(t)$,1個目のコンデンサにかかる電圧を$v_c(t)$,出力電圧を$v_o(t)$,抵抗の抵抗値を$R_1$と$R_2$,コンデンサの容量を$C_1$と$C_2$,抵抗に流れる電流を$i_1(t)$と$i_2(t)$,$C_1$に流れる電流を$i_c(t)$とします.
コンデンサの充電の式が2個,
$$ i_c(t) = C_1 \frac{d v_c(t)}{dt}, \quad i_2(t) = C_2 \frac{d v_o(t)}{dt} $$
電流の式が1個,
$$i_1(t) = i_c(t) + i_2(t)$$
電圧の式が2個,
$$ R_1 i_1(t) + v_c(t) = v_i(t), \quad R_2 i_2(t) + v_o(t) = v_c(t)$$
出ます.
これらから電流を消すと
$$R_1( C_1\frac{d v_c(t)}{dt} + C_2 \frac{d v_o(t)}{dt} ) + v_c(t) = v_i(t)$$
および
$$ R_2 C_2 \frac{d v_o(t)}{dt} + v_o(t) = v_c(t)$$
が出ますので,全ての初期値を$0$にしてラプラス変換すると
$$R_1( C_1 V_c(s) s+ C_2 V_c(s) s) + V_c(s) = V_i(s)$$
および
$$R_2 C_2 V_o(s) s + V_o(s) = V_c(s)$$
が出ます.この2式から$V_c(s)$を消すと,結局
$$(R_1 C_1 s + 1)(R_2 C_2 s + 1)V_o(s) + R_1 C_2 s V_o(s) = V_i(s)$$
となり,伝達関数は
$$G(s) = \frac{V_o(s)}{V_i(s)} = \frac{1}{(R_1 C_1 s + 1)(R_2 C_2 s + 1) + R_1 C_2 s}$$
となります.ゲインは
$$|G(j\omega)| = \frac{1}{\sqrt{(R_1C_1+R_2C_2+R_1C_2)^2\omega^2 + (1-R_1C_1R_2C_2\omega^2)^2}}$$
となるので,$\omega = 2\pi f$を入れると,周波数特性は
\begin{align*}
g &= 20 \log_{10} |G(j\omega)|
\\
&= 10 \log_{10} \frac{1}{(R_1C_1+R_2C_2+R_1C_2)^2(2\pi f)^2 + (1-R_1C_1R_2C_2(2\pi f)^2)^2}
\end{align*}
となります.

以上の2つの式に下記のパラメータを代入してgnuplotでプロットしてみます.

  • 1段のフィルタ回路で$R_1 = 330$,$C_1 = 0.0047\times 10^{-6}$
  • 1段のフィルタ回路で$R_1 = 100$,$C_1 = 0.022\times 10^{-6}$
  • 2段のフィルタ回路で$R_1 = 82$,$C_1 = 0.022\times 10^{-6}$,$R_2 = 330$,$C_2 = 0.0047\times 10^{-6}$
  • 2段のフィルタ回路で$R_1 = 100$,$C_1 = 0.022\times 10^{-6}$,$R_2 = 330$,$C_2 = 0.0047\times 10^{-6}$
  • 2段のフィルタ回路で$R_1 = 100$,$C_1 = 0.022\times 10^{-6}$,$R_2 = 390$,$C_2 = 0.0047\times 10^{-6}$
  • 2段のフィルタ回路で$R_1 = 100$,$C_1 = 0.022\times 10^{-6}$,$R_2 = 430$,$C_2 = 0.0047\times 10^{-6}$

gnuplotに食わせるスクリプトはこんなかんじ.


set term pdf
set output 'LowPassFilter-100ohm-0.022uF-330ohm-0.0047uF-10Hz-1MHz.pdf'

set logscale x
set xrange [10:1000000]
set xlabel 'Hz'
set ylabel 'dB'

f(r1, c1, f) = 10 * log10(1/((2 * 3.1415 * r1 * c1 * f)**2 + 1))
g(r1, c1, r2, c2, f) = 10 * log10(1/( (r1*c1 + r2*c2 + r1 * c1)**2 * (2*3.1415 * f)**2 + (1 - r1*c1*r2*c2*(2*3.1415 * f)**2) ))

plot \
     f(330, 0.0047e-6, x) title '330ohm, 0.0047uF', \
     f(100, 0.022e-6, x) title '100ohm, 0.022uF', \
     g(82, 0.022e-6, 330, 0.0047e-6, x) title '82ohm, 0.022uF + 330ohm, 0.0047uF', \
     g(100, 0.022e-6, 330, 0.0047e-6, x) title '100ohm, 0.022uF + 330ohm, 0.0047uF', \
     g(100, 0.022e-6, 390, 0.0047e-6, x) title '100ohm, 0.022uF + 390ohm, 0.0047uF', \
     g(100, 0.022e-6, 430, 0.0047e-6, x) title '100ohm, 0.022uF + 430ohm, 0.0047uF'

set term png
set output 'LowPassFilter-100ohm-0.022uF-330ohm-0.0047uF-10Hz-1MHz.png'
replot

set xrange [1000:1000000]
set term pdf
set output 'LowPassFilter-100ohm-0.022uF-330ohm-0.0047uF-1kHz-1MHz.pdf'
replot

set term png
set output 'LowPassFilter-100ohm-0.022uF-330ohm-0.0047uF-1kHz-1MHz.png'
replot

  1. 10Hzから1MHzまでプロットした場合は以下のグラフになりました.
  2. 1kHzから1MHzまでプロットした場合は以下のグラフになりました.

結局,1段と2段ではローパスフィルタの効き目は結構違うこと,また,1段目の抵抗値を100Ωにしておけば,2段目の抵抗値 は330Ωでも390Ωでも430Ωでもあまり変わらないことが分かったので,手元にある100Ωと330Ωで下記のようなローパスフィルタ回路を組んでみる事にしました.


続きは「秋月電子USB-DAC用ローパスフィルタの設計(その2)」で.

2014年5月17日土曜日

春日無線変圧器PCL86シングルアンプキット(KA-33SE)購入・製作

急に無性に欲しくなった真空管アンプは,結局下記の物にしました.

春日無線変圧器PCL86シングルアンプキットKA-33SE

電話で聞いたところ,お店が開いているのが6時半までというので,あわてて電車に乗って秋葉原まで行ってきました.5月末まで期間限定で28,000円.完成品も56,000円で売っているみたいです.

買った翌日に早速製作開始.まず部品をケースにねじ止めします.



ボリュームのつまみは金属製にしたかったので,千石電商でアルミのつまみを別途購入しました.

裏はこんな状態です.


初日はこれらのワイヤーを配線したところまでで時間切れ.2時間ぐらいでした.


翌日は抵抗とコンデンサを配線.これも2時間ぐらいで終了.


テスターで電圧チェックするように組立説明書に書いてあるのですが,確認する電圧が最大でDC 240V前後.250Vまでのテスターしか持ってないので,測ってみても針がふりきれてしまいます.買ったときの説明でも1割ぐらいの差はありますという話だったので,まあ電源のトランス,ブリッジダイオードの直後だしショートしてなければOKということにして確認終了.

パソコンにつないでみたところ,あっけなく一発で動作.めでたく,デスクトップオーディオシステムが完成しました.


今はとりあえずMac miniのヘッドホン端子から直接入れています.一緒にエレキットのUSB-DACモジュールも買って来たので,そのうちこれ経由の音も聞いてみたいと思います.

2014年5月12日月曜日

テスト

投稿のテスト.

記事に写真を入れないと,プロフィールの顔写真がgoogle+にでっかく出てしまうので,プロフィールをblogに表示しないようにしてみた.

2014年5月11日日曜日

真空管アンプ選び その2

「真空管アンプ選び」の続き.

秋葉原まで真空管アンプを選びに行ってきました.

最終的には通販で買うにしても,一度聴いてからでないと買えないのと,初めての真空かアンプなので,色々勉強しておこうかと...結果として正解でした.

同僚の殿から「ここの奥に一件あるんだよ」と聞いたような記憶があるが,あれはいつの事だったか,と思いながら,秋葉原駅からガード下っぽい建物の一番奥に入ってみると,一番奥にありました.春日無線です.おじさん方お二人が話されていたので,「すみません,4万円くらいまでで真空管アンプ買おうと思っているんですけど,全くの初めてなんで...」「えっ?4万円?完成品で?」「キットにしようかと思ってます.ハンダ付けは普段やっているので.」てな,話をした後で,2機種を聴かせて頂きました.

物は


の2機種.最初はKA-34SEの方.真空管アンプっぽい音なのかな?と思っているうちに,KA-33SEに切り替えると,へぇ〜っていうくらい音が違いました.また,スピーカーを切り替えると,それ以上に音が変わるんですね.

以外だったのが,出力が1W+1W以下なのに,結構十分な大きさで音が出ていたこと.ただ,これはスピーカーの効率が良くないと駄目らしくて,90dBくらいは必要らしいです.

組み立ての説明書も見せて頂きました,「プリント基板よりハンダ付け難しそうですね.」「あはは,私なんかだと逆にプリント基板の方が不安ですよ.」なんて話をしながら,お店のカタログを頂いて帰ってきました.

キットだと値段もそこそこで,5月中は特別セール中で安いので,きっと5月中には決心することでしょう.

真空管アンプ選び

最近,急に真空管アンプが欲しくなって来たので,ちょっとWebで調べて値段ごとにまとめてみました.秋葉原のお店で予算は4万円くらいまで.使うスピーカーは,家に転がっているYAMAHAのNS-10Mの予定です.

以下,安い順です.
  1. WATZ A100キット
    真空管:50BM8(6BM8のヒーター電圧違い)x2
    出力:1W+1W
    価格:16,000円税別
    Web:http://www.watz-net.com/tubekit.html#A100
    参考:WATZの製品の店舗在庫は,ラジオセンター2Fの山本無線e-BOX店にあるとのこと. http://www.yamamoto.co.jp/e-box_home/index.html

  2. ELEKIT TU8100
    真空管:PCL86(14GW8)x2
    出力:2W+2W
    価格:23,140円税込
    Web:http://www.yodobashi.com/エレキット-ELEKIT-TU8100-真空管アンプキット/pd/100000001001542437/
    参考:プリント基板での配線です.こうやって他の品物と並べてみると,結構コスパの良さそうなエレキットの商品です.今回調べてみるまでは,真空管アンプと言えばこれしか知りませんでした.ヨドバシカメラで買えるのでポイントが使える/貯まるのもメリット.

  3. WATZ A300キット
    真空管:50BM8x2
    出力:2W+2W
    価格:23,690円税別
    Web:http://www.watz-net.com/tubekit.html#A300
    参考:ELEKITと同クラス.

  4. WATZ GR-100WA
    真空管:6AQ5x2 6AU6x2 6AV6x2
    出力:2W+2W
    価格:26,800円送料込み
    Web:http://www.watz-net.com/web-GL/GR100/GR100WA.htm
    参考:空中配線でなくてプリント基板を使っている.ボディの色が色々ある.黒,白.若松通商に店頭在庫あり29,800円税込み.ボディが赤でボンネットが黒とか格好良さそう.http://www.wakamatsu-net.com/cgibin/radikan/page.cgi?cate=8888&page=#88880029

  5. 春日無線 PCL86 シングルアンプキット KA-33SE
    真空管:PCL86(14GW8)x2
    出力:0.9W+0.9W
    価格:5/31までセール28,000円税込
    Web:http://www.e-kasuga.net/goods.asp?id=1258
    参考:ちょっとパワー不足か?

  6. 春日無線 KA-08SEキット
    真空管:PCL82(16A8)x2
    出力:2W+2W
    価格:34,020円税込み
    Web:http://www.e-kasuga.net/goods.asp?id=72
    参考:コイズミ無線にて34,000円税込み.http://dp00000116.shop-pro.jp/?pid=34360978
    春日無線のアンプはコイズミ無線にも在庫が色々あるみたいです.http://dp00000116.shop-pro.jp/?mode=cate&cbid=135965&csid=2

  7. WATZ A307キット
    真空管:6BQ5x2 12AX7x1
    出力:5W+5W
    価格:35,237税別
    Web:http://www.watz-net.com/tubekit.html#A307
    参考:A307-SXのケースがいらなければ,こちらでも良いのかな?

  8. WATZ A55キット
    真空管:14GW8x2 12AU7x1
    出力:3W+3W
    価格:36,800円税別
    Web:http://www.watz-net.com/tubekit.html#A55
    参考:お得かも.

  9. WATZ A307-SXキット
    真空管:6BQ5x2 12AX7x1
    出力:5W+5W
    価格:39,810円税抜き
    Web:http://www.watz-net.com/tubekit.html#A307-SX
    参考:A300(23,690円税別)は50BM8x2,A307(35,237円税別)はケースの違い?値段ごとですね.こちらはボディの色がオレンジと黒でお洒落.こちらの機種だけは,検索すると他の店でも結構出て来る.39,800円とか.http://www.hiramoto.com/oms/mono/shinkukan_amp307.html

  10. Bulter Vacuum 6W
    真空管:EL84(6BQ5)x2 EC83(12AX7)x1
    出力:3.5W+3.5W
    価格:楽天で40,700円税込み
    Web:http://item.rakuten.co.jp/northportplaza/vacuum_6w/
    参考:ヨドバシカメラでも取り扱っている.44,500円http://www.yodobashi.com/BUTLER-バトラー-VACUUM6W-真空管プリメインアンプ/pd/100000001001611011/

だいたい値段と出力が比例しているみたいです.使っている真空管は6AQ5,6BQ5,14GW8,6BM8/50BM8,16A8ぐらいと,結構同じ物をつかっています.これは聴き比べてみたことがないので,正直良くわかりません.WATZと春日無線の品物は,ここに書いてないものも含めて,値段ごとに結構ものが揃ってますね.出力が小さくても良いのかどうかが気になる所です.あとは財布と相談かなぁ.

続きは「真空管アンプ選び その2」で.

2014年4月2日水曜日

Pelikan万年筆のピストンが固いのでメンテ

PelikanのM205は,安い鉄ペンの割にインクフローも良くて書きやすいので,毎年買っています.ハイライターも入れると,ペン先はEF,F,M,BB,BB.

このうち,オレンジ色(CARAN d'ACHEのSaffron)と青色(PelikanのRoyal Blue)のインクを入れている2本が,インク吸入のピストンが最近どうも固いのです.持っている5本の中でも買った順番が最初と2番目のものなので,時間が経つとそうなるものなのかも知れません.
目で見てわかるくらい軸の内側が曇ってます.どうしたものか,修理に出す必要があるのか,と調べていたら,グリスアップすれば良いとのことなので,自分でやってみました.

ペン先を外して,一晩水に浸けて奇麗にした上で作業開始.

購入したのは,SEIKOの時計用シリコングリスTSF-451.
ブログを探してみると,シリコングリスを使っている方とワセリンを使っている方と両方いたのですが,一応機械なのでシリコングリスにしてみました.
町田のハンズに時計修理工房があるので,ここで聞いてみたところ,町田ハンズは工具類は置くのをやめたと言うので,ハンズでの購入はあきらめ,楽天で購入しました.

空けてみると,結構小さいのにびっくり.あと,このグリス,結構固いです.大体水飴ぐらいの固さ.

入っている量も結構少ないのですが,片側に寄ったままで,なかなか下に落ちなかったです.

これを綿棒の先につけたものを,指先で一度拭い取ります.引き上げるときに糸を引くくらい固い!

まんべんなく着いたら,これを軸の中に入れてすりすり.写真でも分かるくらい,曇りが取れていきます.
ピカピカになりました.ピストンの動きもびっくりするくらい滑らかに.

もう1本もすりすり.

完全に復活しました.

作業が終わる頃になってやっと,ケースの中のグリスは下に落ちて平坦な状態に.

2014年3月31日月曜日

Copyという15GBのクラウドストレージ

最近Dropboxの容量が逼迫していたのですが,良さそうなサービスを見つけました.Copyというクラウドストレージです.

初期容量が15GB,誰かを紹介すると5GB増えるとの事.

導入はDropbox並に簡単でした.

ここにアクセス(修正:現在はサービス終了しています)して,First Name, Last Name, Email, passwordを入れるだけ.


最初から20GBのストレージが使用可能です.

Mac上での同期もDropbox並にできますし,iPadでも使用可能なアプリが用意されています.

2014年3月11日火曜日

Minix on BeagleBone Black

Minix 3.1.2がBeagleBone Blackで動くらしいが,どこにもイメージが置いてないので自分でやってみた.

MinixをARM用にcross buildするのだが,重要なのはMinixでやる訳ではないらしい.当方で用いた環境は以下のとおり.
Minixのこのページこのページを見ながらイメージを作成する.最初,前者のページだけを見ていたところ,cross buildの環境が書いてないので,Minix本体やdebian,FreeBSD,NetBSDなどで色々試してみた結果,どれでもうまくいかない.Ubuntuだとあっさり成功して気が抜けた.

結局のところ,buildは別として,BeagleBone Black用のSD imageを作成するために,FATとminixfsのファイルシステムをディスクイメージのファイル上に作成できる環境が必要ということらしい.ここで,最初にminix上で開発が始まったため,今でもminixfsをサポートしているLinuxのメリットが出てくる.

■ VirtualBoxでUbuntuの環境を整備

お気楽にVirtualBox用のディスクイメージをダウンロードする.パーティションサイズはだいたい64GB.これをメモリ512MBで設定する.
さらに,このページに従ってツールをいくつか追加する.
sudo apt-get install git
sudo apt-get install zlibc zlib1g zlib1g-dev
sudo apt-get install g++ 
■ Ubuntu上でARM Minixのbuild

gitでMinixのsource codeを丸ごと持って来る.
cd ~
mkdir Minix
cd Minix
git clone git://git.minix3.org/minix src
cd src 
次に,src/releasetools/arm_sdimage.shを編集する.Webではshellで環境変数を設定すれば良いと書いてあったが,一度失敗したので実際にコメントアウトされているBeagleBone用の
U_BOOT_BIN_DIR=build/am335x_evm/
CONSOLE=tty00
の2行を有効にし,現在有効になっているBeagleBoard用の2行をコメントアウトする.

releasetoolsの中にあるarm_sdimage.shでbuildする.
bash ./releasetools/arm_sdimage.sh
/bin/shだと駄目だった.arm_sdimage.shは途中でFTPからU-Bootを持って来る.さらに,通常のMinixのbuild.sh自体がFTPからgccやらbinutilsやらを持って来るので,これらのツールを手作業でMinix上に持ってこない場合にはネットワーク接続が必要.

1時間ぐらいでsrcの下に2GBのイメージ
minix_arm_sd.img
ができる.これをOS Xにscpしてきてddで書き込む.ddコマンドでboot diskを作ってbootなんて,まるでMinixの1.2から1.5を使っていたころみたい.懐かしい.

■ BeagleBone Blackでboot

USB経由で
「FTDI USBシリアル変換アダプター(5V/3.3V切り替え機能付き)」
でシリアルコンソールを接続する.電圧は3.3Vに設定.
BBBを電源につないでbootする.

$ sudo cu -s 115200 -l /dev/tty.usbserial-A702IYA4
Connected.

U-Boot SPL 2013.04-dirty (Jul 10 2013 - 14:02:53)
musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, HB-ISO Rx, HB-ISO Tx, SoftConn)
musb-hdrc: MHDRC RTL version 2.0
musb-hdrc: setup fifo_mode 4
musb-hdrc: 28/31 max ep, 16384/16384 memory
USB Peripheral mode controller at 47401000 using PIO, IRQ 0
musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, HB-ISO Rx, HB-ISO Tx, SoftConn)
musb-hdrc: MHDRC RTL version 2.0
musb-hdrc: setup fifo_mode 4
musb-hdrc: 28/31 max ep, 16384/16384 memory
USB Host mode controller at 47401800 using PIO, IRQ 0
OMAP SD/MMC: 0
mmc_send_cmd : timeout: No status update
reading u-boot.img
reading u-boot.img


U-Boot 2013.04-dirty (Jul 10 2013 - 14:02:53)

I2C:   ready
DRAM:  512 MiB
WARNING: Caches not enabled
NAND:  No NAND device found!!!
0 MiB
MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
*** Warning - readenv() failed, using default environment

musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, HB-ISO Rx, HB-ISO Tx, SoftConn)
musb-hdrc: MHDRC RTL version 2.0
musb-hdrc: setup fifo_mode 4
musb-hdrc: 28/31 max ep, 16384/16384 memory
USB Peripheral mode controller at 47401000 using PIO, IRQ 0
musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, HB-ISO Rx, HB-ISO Tx, SoftConn)
musb-hdrc: MHDRC RTL version 2.0
musb-hdrc: setup fifo_mode 4
musb-hdrc: 28/31 max ep, 16384/16384 memory
USB Host mode controller at 47401800 using PIO, IRQ 0
Net:   <ethaddr> not set. Validating first E-fuse MAC
cpsw, usb_ether
Hit any key to stop autoboot:  0
gpio: pin 53 (gpio 53) value is 1
mmc0 is current device
micro SD card found
mmc0 is current device
gpio: pin 54 (gpio 54) value is 1
SD/MMC found on device 0
reading uEnv.txt
1334 bytes read in 5 ms (259.8 KiB/s)
Loaded environment from uEnv.txt
Importing environment from mmc ...
Running uenvcmd ...
starting from MMC
mmc - MMC sub system

Usage:
mmc read addr blk# cnt
mmc write addr blk# cnt
mmc erase blk# cnt
mmc rescan
mmc part - lists available partition on current mmc device
mmc dev [dev] [part] - show or set current mmc device [partition]
mmc list - lists available devices
mmc rstn - enable hardware reset of emmc
reading kernel.bin
257088 bytes read in 35 ms (7 MiB/s)
reading ds.elf
60452 bytes read in 12 ms (4.8 MiB/s)
reading rs.elf
80476 bytes read in 15 ms (5.1 MiB/s)
reading pm.elf
57192 bytes read in 12 ms (4.5 MiB/s)
reading sched.elf
30500 bytes read in 10 ms (2.9 MiB/s)
reading vfs.elf
138400 bytes read in 22 ms (6 MiB/s)
reading memory.elf
2496380 bytes read in 290 ms (8.2 MiB/s)
reading log.elf
38736 bytes read in 11 ms (3.4 MiB/s)
reading tty.elf
46940 bytes read in 11 ms (4.1 MiB/s)
reading mfs.elf
84036 bytes read in 16 ms (5 MiB/s)
reading vm.elf
149008 bytes read in 23 ms (6.2 MiB/s)
reading pfs.elf
238796 bytes read in 33 ms (6.9 MiB/s)
reading init.elf
171636 bytes read in 26 ms (6.3 MiB/s)
Unknown command 'dcache' - try 'help'
Unknown command 'icache' - try 'help'
console=tty00 rootdevname=c0d0p1 verbose=3 hz=1000 filemap=0 board_name=A335BNLT
## Starting application at 0x80200000 ...
MINIX booting
cstart
intr_init(0)
main()
initializing asyncm... done
initializing idle... done
initializing clock... done
initializing system... done
initializing kernel... done
initializing ds... done
initializing rs... done
initializing pm... done
initializing sched... done
initializing vfs... done
initializing memory... done
initializing log... done
initializing tty... done
initializing mfs... done
initializing vm... done
initializing pfs... done
initializing init... done
system_init()... done

MINIX 3.2.1. Copyright 2012, Vrije Universiteit, Amsterdam, The Netherlands
MINIX is open source software, see http://www.minix3.org
cycles_accounting_init()... done
IRQ 72 handler registered by tty / 5
Started VFS: 8 worker thread(s)
Starting the mmc driver
mmc_block(info)Initializing the MMC block device
mmc_host_mmchs(info)Using instance number 0
IRQ 64 handler registered by mmc / 73129
mmc_block(info)System event framework fresh start
Root device name is /dev/c0d0p1
mmc_host_mmchs(info)Enabling high speed mode
/dev/c0d0p1: clean
mmc_host_mmchs(info)Enabling high speed mode
mmc_host_mmchs(info)Enabling high speed mode
/dev/c0d0p1 is mounted on /
none is mounted on /proc
/dev/c0d0p2: clean
/dev/c0d0p3: clean
size on /dev/imgrd set to 0kB
Multiuser startup in progress ...
Starting services: randomrm /dev/eth0
rm /dev/eth
mknod /dev/psip0 c 7 1
ln /dev/psip0 /dev/psip
ln /dev/ip0 /dev/ip
ln /dev/tcp0 /dev/tcp
ln /dev/udp0 /dev/udp
inet: unable to read random data from /dev/random: resource temporarily unavailable
inet: using current time for random-number seed
 inet ipc.
Starting daemons: update cron syslogd.
Starting i2c subsystem: IRQ 70 handler registered by i2c / 73140
 i2cIRQ 71 handler registered by i2c / 73141
 i2cIRQ 30 handler registered by i2c / 73142
 i2c.
Running on a BeagleBone Black
Starting i2c device drivers:  cat24c256IRQ 7 handler registered by tps65217 / 73144
 tps65217 tda19988.
Starting networking: nonamed.
Local packages (start):  done.
 Minix  Release 3 Version 2.1  (console)

10.0.0.1 login: root

Copyright (c) 2012, Vrije Universiteit, Amsterdam, The Netherlands


To install additional packages, run 'pkgin'.

To install packages from the online package repository, if you have a
working network connection from MINIX: first do a 'pkgin update' to
update the list of available packages, and then do a 'pkgin' to get a
list of commands.  For example, 'pkgin install vim' installs the 'vim'
package, and 'pkgin available' will list all available packages.

To install packages from the installation CD: same, but use pkgin_cd.
To switch to the online repository, do 'pkgin update' again. To install
all packages, do pkgin_all.

MINIX 3 supports multiple virtual terminals. Just use ALT+F1, F2, F3
and F4 to navigate among them.

For more information on how to use MINIX 3, see the wiki:
http://wiki.minix3.org.

# df
Filesystem      Size (kB)       Free       Used    % Files%   Mounted on
/dev/c0d0p1         65536      42904      22632  35%     2%   /
none                    0          0          0   0%     0%   /proc
/dev/c0d0p2        131072     128968       2104   2%     1%   /home
/dev/c0d0p3       1572864    1099860     473004  31%     3%   /usr

動いた!
GPIOとI2Cが両方動いているので,この手の環境を使いたい場合はFreeBSD/NetBSD/OpenBSDよりも進んでいることになるのかな.

MathJax in Blogger

BloggerでMathJaxを使ってTeXっぽく数式を入れる方法 ってのを見つけた.

MathJax っていうツールを使うと,Webの中に数式が書けるらしい.

Bloggerでの使用方法は ここ にあるので,書かれているとおりに,HTMLのテンプレートの<head>の直後にマクロを入れてみる.

で,文章中に\$で囲んでTeXの数式で\$\sin^2 \theta + \cos^2 \theta = 1\$と書くとインラインで$\sin^2 \theta + \cos^2 \theta = 1$と表示される.さらに,\$\$で囲んで\$\$\sin^2 \theta + \cos^2 \theta = 1\$\$と書くと別立ての数式で
$$\sin^2 \theta + \cos^2 \theta = 1$$と表示される.

2014年3月7日金曜日

てすと

Facebookの「いいね」ボタンを付けるテスト投稿.

BeagleBone BlackでCloud9 IDEからLEDチカチカ

ミニブレッドボードが Arduino で動いたので,本命の BeagleBone Black (BBB)で使ってみます.

BBBは,miniUSBにUSBケーブルを出してパソコンのUSBケーブルに差すと,まずUSB storageとして認識されて,HTMLファイルを開くと設定方法が見られます.


この間,裏ではUSB経由で電源が供給されて,内蔵のフラッシュメモリにインストールされているOS (AngstromというLinuxのディストリビューション)が起動しています.

この画面からUSB用のネットワークドライバをパソコンにインストールすると,パソコンとBBBとの間がIP networkでつながって,パソコン側のWebブラウザで
http://192.168.7.2/
に接続するとチュートリアルが見られるという.
これは簡単.

しかも,
http://192.168.7.2:3000/
では Cloud9 IDE なるJavaScriptの統合開発環境が動いており,Webブラウザ内でJavaScriptを書くとなんとLEDチカチカができるという.
早速やってみました.
Ethernetコネクタが上になるように置いたとき,右側の列にGPIOが集まっています.
ピン番号は,上から順に
P8_1, P8_2
P8_3, P8_4
...
...
P8_45, P8_46
と並んでいるらしい(左側の列がP9_1〜P9_46).P8_1とP8_2がGNDなので,
P8_1 → ブレッドボードのGND
P8_7 →ブレッドボード上のLED1のanode
P8_8 →ブレッドボード上のLED2のanode
P8_9 →ブレッドボード上のLED3のanode
P8_10 →ブレッドボード上のLED4のanode
と結線します.
次にCloud9 IDE上で新しくmyblink1.jsというファイルを作成し,下記のようにソースを書きます.
// myblink2.js
// 2014/3/6
// LED点灯のテスト
// P8_1, P8_2はGND

var b = require('bonescript');

var ledPin = ["P8_7", "P8_8", "P8_9", "P8_10"];
var ledPin2 = ["USR0", "USR1", "USR2", "USR3"];

for ( var i = 0; i < 4; i++ ) {
    b.pinMode(ledPin[i], b.OUTPUT);
    b.pinMode(ledPin2[i], b.OUTPUT);
}

for ( var i = 0; i < 4; i++ ) {
    b.digitalWrite( ledPin[i], b.HIGH );
    b.digitalWrite( ledPin2[i], b.HIGH );
}

setInterval(loop, 100);

var loopCount = 0;
function loop() {
    loopCount++;
    if ( loopCount > 3 )
        loopCount = 0;

    for ( var i = 0; i < 4; i++ ) {
        if ( i == loopCount ) {
            b.digitalWrite(ledPin[i], b.HIGH);
            b.digitalWrite(ledPin2[i], b.HIGH);
        } else {
            b.digitalWrite(ledPin[i], b.LOW);
            b.digitalWrite(ledPin2[i], b.LOW);
        }
    }
}
Cloud9 IDEのDebugボタンを押すだけでチカチカ.

できた!!!

ミソは,先頭の行に書く
var b = require("bonescript");
です.これで,
b.pinMode()
b.digitalWrite()
b.HIGH
b.LOW
などが使えるので,Arduinoのようにお気楽にプログラミング可能という話.ADC内蔵でanalog入力も7pin使えるみたいなので,いろいろできそう.

問題点1:
最初,入出力に使えるピン番号が分かりませんでした.(Ethernetコネクタを上にして置いたとき)右側の列の1行目はGNDなんだけど,2行目と3行目のpinが出力に使えない.

色々と探してみた所,出荷状態のBBBをそのまま使う場合は,
http://192.168.7.2/
に乗っているピン番号配置図のうち,ページの一番下にある「Black eMMC and HDMI pins」という物を見ないといけないらしい.on board eMMCとHDMIに使われている信号とピンが共有されているみたいです.

HDMIに信号出てるの?と思ってpsコマンドで確認してみたら,ちゃっかりX11が立ち上がっています.

問題点2:
何度か動かしているとすぐに動かなくなってしまい,ブラウザ側でreloadしたり,再起動をかけたりする必要がありました.

ここはArduinoと違って,まっとうなLinuxが走っているボード.
ssh root@192.168.7.2
とloginしちゃいます.ファイルを探すと,どうもCloud9 IDEで作成されたファイルは
/var/lib/cloud9/
の中に保存されるらしい./usr/bin/nodeというコマンドがあるので,直接shell promptから
node myblink1.js
とすることでも,LEDチカチカできます.

2014年3月4日火曜日

実験用のミニブレッドボード作成

しばらく実験を続けるので,実験用のミニブレットボードを作成してみました.


使った部品は以下のとおり.

  • LED 赤×2,緑×2,黄×2

  • タクトスイッチ×2



  •  集合抵抗 4素子5pin 一番左が共有で,右の各4端子に1kΩがつながってるタイプ

  • ブレッドボード,ジャンパワイヤ
赤と黄色のLEDはcathode側に集合抵抗をつなげて,1点でアースに落としておきます.
一方,緑のLEDは逆にanode側に集合抵抗をつなげて,1点を5Vにつなげています.

タクトスイッチの配線は以下のようにします.スイッチがつながっていない状態だと5Vが,つなげるとLOWが出力されるように配線.

Arduinoにつないで,ちゃんと配線できているかテストします.
配線は以下のとおり,スイッチを8pinに,LEDを12pinに接続しています.
以下のようにスケッチを作成します.
// 2014/3/4
// LED_Button01

int LEDout = 12;
int BTNin = 8;

void setup() {
  pinMode( LEDout, OUTPUT );
  pinMode( BTNin, INPUT );
}

void loop() {
  // ボタンスイッチはpullupされているので,押されるとLOW
  if ( digitalRead( BTNin ) == LOW ) {
    digitalWrite( LEDout, HIGH );
    delay(1000);
    digitalWrite( LEDout, LOW );
    delay(200);
    digitalWrite( LEDout, HIGH );
    delay(200);
    digitalWrite( LEDout, LOW );
    delay(200);
    digitalWrite( LEDout, HIGH );
    delay(200);
    digitalWrite( LEDout, LOW );
  } else {
    digitalWrite( LEDout, LOW );
  }
}
スイッチを押すと,LEDがチカチカします.


ちゃんと動いたので,次はこのボードをBeagleBoneBlackのGPIOにつなげます.