上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--.--.-- -- l スポンサー広告 l top
すっかりBLOG更新が途絶えておりました。秋から業務関係、住居関係を一新していまして、ようやく少し落ち着いたところです。

昨日は久しぶりにフルで時間が取れましたので、かねてからやってみたいと思ってい「21世紀の真空管」Nutube6P1を
秋月から買ってきて真空管ラジオを作ってみました。

物はこんな感じです。


動作させると2つの真空管部がほのかに輝くのがなかなか良い感じです。

回路図はこうです。


Nutubeのデータシートとネットで見た真空管ラジオ回路図を参考に組んでみたものです、一応動作していますが真空管はいじったことがないため適切ではないかもしれません。あくまでご参考としてください。

Nutubeはアンプ動作の動画がいくつか上がっており、そこで真空管部が光るのを見ていました。てっきり昔の真空管みたいにフィラメントが光るのだと思っており、最初に150オームを介してフィラメント端子に3.3Vを供給しましたが全く光らずにあせりました。

その後試してみたところ、グリッドとアノードの配線をちゃんとして、グリッドのバイアス電圧も与えると光ることわかりました。
実際にラジオを受信できるようになってから見ていたら音の大きさで光り方が変わっているようです。
そういうものなのか、調整が不十分なので不安定なのか、わかりません。
とりあえず聞こえているし、面白いのでよしと思っています。

動作を動画にしてみました。


動画では音がよろしくないですが、これはセラミックイヤホンを無理にカメラのマイクに寄せて録音したためです。
普通にイヤホンで聞くとかなり音質はよいと思います。

それではまたです。
スポンサーサイト
2016.11.24 Thu l 未分類 l コメント (2) l top
マシン語で高速グラフィックをやろうとしていますが、どうもサブルーチンにするとうまくない動作をします。
下のようにpsetをサブルーチンにしているのですが、これだと暴走します。

#include
void pset(int16_t ,int16_t ) ;

int16_t usr_sample(int16_t val, void *mem)
{
int16_t x,y,v,w,z;
uint8_t *p0;
p0 = 0x100002d0;
for (y=0;y<10;y++) {
x=y;
pset(x,y);
//z=(x&1)+(y&1)*2;w=(y/2)*32+(x/2);
//p0[w]=p0[w] | (1< }
return -2 * val;
}

void pset(int16_t x,int16_t y)
{
int16_t w,z;
uint8_t *p0;
p0 = 0x100002d0;
z=(x&1)+(y&1)*2;w=(y/2)*32+(x/2);
p0[w]=p0[w] | (1<}


「スポンサードリンク」

style="display:block"
data-ad-client="ca-pub-0620260288102702"
data-ad-slot="9773401572"
data-ad-format="auto">



pset関数内でx、yを固定値にすると正常に動くので、どうやら関数呼び出しは行われている物の、引数の引き継ぎがうまくできていないみたいです。

ならば、と思って以下のようにしてみました。グローバル変数X,Yを定義して、その値を渡してみます。

#include
int16_t X,Y; <====================== ここ変更
void pset(int16_t ,int16_t ) ;
int16_t usr_sample(int16_t val, void *mem)
{
int16_t x,y,v,w,z;
uint8_t *p0;
p0 = 0x100002d0;
for (y=0;y<10;y++) {
X=x;Y=y; <====================== ここ変更
pset(X,Y); <====================== ここ変更
//z=(x&1)+(y&1)*2;w=(y/2)*32+(x/2);
//p0[w]=p0[w] | (1< }
return -2 * val;
}

void pset(int16_t x,int16_t y)
{
int16_t w,z;
uint8_t *p0;
p0 = 0x100002d0;
z=(x&1)+(y&1)*2;w=(y/2)*32+(x/2);
p0[w]=p0[w] | (1<}



これでもだめでした。そういうものなのかな?

単一関数で作ると同じような処理で無駄が多発するのでサブルーチンは使いたいですね。
固定メモリ領域で引数を渡せばよさそうですが、それも美しくないですね。

何かコンパイル、リンク設定的なものがないか調べてみようと思います。


2016.06.19 Sun l 未分類 l コメント (0) l top
ichigojamと繋いでプログラム動作させてみました。
全体像はこんな感じです。


配線は以下のように。



100円ピアノのGND(電池のマイナス)と8個のキーパッドをichigojamのGND,OUT1~6、8,9に繋ぎます。
キーはドレミファソラシドの順でOUT1~6、8,9とします。

動きは動画でご覧ください。


「スポンサードリンク」

style="display:block"
data-ad-client="ca-pub-0620260288102702"
data-ad-slot="9773401572"
data-ad-format="auto">


プログラムは以下の通りです。コマンドとして以下が有ります。

  ”Pキー” :普通の演奏モードです。1~8キーでドレミファソラシドの演奏。スペースでモードから抜けます。
  ”Rキー” :演奏記録モードです。1~8キーでドレミファソラシドの演奏。スペースでモードから抜けます。
          または最大50音符で抜けます。
  ”Mキー” :メモり演奏モードです。演奏記録モードで演奏した内容をリピートします。

2016/6/19AM9 510行、820行を修正しました。

15 t=0:p=0
20 CLS
40 ?"***** 100yen piano *****
60 lc1,5:?"DO RE MI FA SO RA SI DO"
70 OUT1,0:OUT2,0:OUT3,0:OUT4,0:OUT5,0:OUT6,0:OUT8,0:OUT9,0
90 LC1,8:?"Play Rec MemPlay"
100 K=INKEY()
110 IF K=112 OR K=80 GOTO 200
120 IF K=114 OR K=82 GOTO 500
125 IF K=109 OR K=77 GOTO 800
130 GOTO 100
200 '***** PLAYING *****
210 LC1,10:?"PLAYING"
220 GOSUB900
230 IF K=32 GOTO 20
300 GOTO 220
500 LC1,10:?"RECORDING"
510 P=0:T=0
520 GOSUB 900
530 LC1,12:?"TONE:";K;"TIME:";T;" "
540 IF K=32 GOTO 700
550 [P*2]=T:[P*2+1]=K:T=0
560 P=P+1:IF P>=50 GOTO 700
600 GOTO 520
700 LC1,14:?"ENDED"
710 WAIT 60:GOTO 20
800 I=0
805 IF I>=P GOTO 20
806 LC1,12:?I
810 FORJ=0TO[I*2]*2:NEXT
820 K=[I*2+1]+#30:GOSUB943
830 I=I+1:GOTO805
900 K=INKEY():IF K<>0 GOTO 930
910 IF T<10000 T=T+1
920 GOTO 900
930 IF K=32 RTN
940 IF K<#31 OR K>#38 RTN
943 LC1,6:?" ";
945 LC1+(K-#31)*3,6:?"^^^";
950 K=K-#30
960 IF K<7 THEN OUT K,1:WAIT10:OUT K,0:RTN
970 OUT K+1,1:WAIT10:OUT K+1,0
980 RTN


これで普通演奏、録音、再生ができます。
プログラムを工夫すればオルゴールや、ichigojamの演奏機能を合奏なども出来ると思います。




※ご注意:電池3Vで動いているおもちゃですし何か問題が有るとは思えませんが、特にデータシート等が有るわけではないので申し訳ないですが保証はできないです。同じことを実験される場合は一応自己責任でお願いいたします。
2016.06.18 Sat l 未分類 l コメント (0) l top
久しぶりに土日フルに休めますので、朝から工作&ブログ更新を始めました。

まず、だいぶ前にいじってみた100円オルガン。これをichigojamで自動演奏させてやろう、と考えました。



テスターで電圧を測ってみると、キーオンの時の3.2V、オフでは0Vとなっていました。
つまりアクティブHiでオンとなるインタフェースです。

オルガンの基板を見ると、各鍵の丸いテストパッドのようなものが有ります。


しめしめ、と思い、そのパッドにピン付きの線をハンダ付けしました。

なかなか綺麗にできたかと思います。各線を電池の+に当てるとちゃんと音も出ます。

「スポンサードリンク」

style="display:block"
data-ad-client="ca-pub-0620260288102702"
data-ad-slot="9773401572"
data-ad-format="auto">



試しにichigojamのOUT1とGNDだけ繋いで、OUT1,1でオンにしてみました。
OK,ちゃんと音がでます。



ではこれからプログラムに入ります。
2016.06.18 Sat l 未分類 l コメント (0) l top
先週末錦糸町の方に出かけた際に駅前のビルのダイソーで見つけたものです。


ちょっといじってみたところ、音階は1オクターブ(半音無し)。鍵盤の黒い所は無効です。
音はビープ音よりはかなりましな音と分かりました。なお和音はなしです。

開けてみたところ。


細長い基板で中央に1チップがあります。
基板のパターンで電極が形成されていて、鍵盤を押すとそこに導電ゴムを押し当てる構造になっています。
この辺は小型の電卓と同じですね。

当然改造しようと思いますが、どうしたものか検討中です。

基板のチップの所だけ切り出して、周辺のハンダレジストを剥離すれば1cm位の音源基板になりますね。
しかしそこから先のアイディアがちょっと浮かびません。

何か小さな楽器アクセサリでもあればそれに入れようかと思いますが、ちょっと良いのがないし。

なんとか楽譜パターンの媒体を工夫して電子オルゴールにならないかな、と考え中です。
良い方法が浮かんだらトライしてみます。

2016.04.12 Tue l 未分類 l コメント (1) l top
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。