2015年5月31日日曜日

小ネタ実験: 電圧検知できるLEDのパイロットランプ その2

前、「小ネタ実験: 電圧検知できるLEDのパイロットランプ」(http://dad8893.blogspot.jp/2015/04/led.html)で
ツェナーを使って電圧検知しようかと思って実験してみたが
ツェナーはそれなりに電流を流さないと表記通りの電圧が出せないみたいなので諦めた

Wikipedia(http://ja.wikipedia.org/wiki/%E3%83%84%E3%82%A7%E3%83%8A%E3%83%BC%E3%83%80%E3%82%A4%E3%82%AA%E3%83%BC%E3%83%89)によると5.6Vのものが一番安定しているそうだが、手頃なのは5.1Vのものしか売ってなかったのでこれで実験してみた

7805を使って9V入力で5Vを生成する回路を想定すると電源電圧が7Vを下回るとあやしくなってきそうなので
7V入力で5.1Vのツェナーダイオードの挙動を調べてみた




1.5kΩ15kΩを入れて7V入力なら4V出力ぐらいでキリが良さそうだ

電源電圧の7Vとリファレンス電圧の4Vを比較することにして、スパッと切り替えるためにLM358をコンパレーターとして使ってみた


電源電圧を15kΩと22kΩのRで分圧して、電源電圧が7Vのとき
7V ×(22kΩ / (15kΩ +22kΩ)) = だいたい4.16V
になるはずだ

実験した結果6.72V ~ 6.78VあたりでLEDの点灯/消灯が切り替わった

自作の可変安定化電源の読み取り値だが電源からの出力電流は
消灯時:0.0mA
点灯時:3.0mA
になった

消灯時はほとんど電流を消費していないと思う


パイロットランプの役目

自作の回路を使っていて思うのは
パイロットランプに要求する第一の機能は「電源がちゃんと来ているかの確認」だと思う

電源電圧を検知するパイロットランプも本当は部品1個で済ましたいが

  1. 電源は来ている
  2. 電源は来ているが電源電圧が足りない
  3. まあ大丈夫そう

の3つの状態を表現したい

が、LED1個だと無理っぽそう

パイロットランプごときでこんなに部品を使うのは気が引けるが(^q^;

LEDを2個使うとかRGB LEDを使うとかすればできると思うので
「5V/3.3Vの安定化電源」で基板スペースに余裕があれば実装するかも?


5V/3.3Vの安定化電源の構想

音遊び!BlackfinDSP基板でディジタル信号処理初体験 2015年 04月号[雑誌]インターフェース増刊 』を買ってきた(Amazonでは売り切れてますが、マルツならまだ在庫があるようです)

BlackfinというのはAnalog Devicesが出しているDSPだ

PSoC 4 Pioneer kitのデジタルブロックが以外と使えなかったのでデジタル系のエフェクタの実験をどうしようか考えていたがタイミングよくこの本が発売された

基板だけでもマルツから発売されているのでうまく使えそうなら
このDSP基板を使ってエフェクタを作っていくかもしれない

音源としてはぴゅんぴゅん3号(PSoC版ぴゅんぴゅんマシン)を使おうと思ったが


PSoC 4 Pioneer KitもこのDSP基板もmini USBで電源供給する

mini USBのケーブルを1本しか持っていないので(買ってくればいいんだが(^q^;)
PSoC 4 Pioneer KitをUSBではなく外部電源で動かすことを考えた

Pioneer KitはArduinoと違って5Vのレギュレーターが載っていないので5VのACアダプタの出力を直接VINに入れてみたが電圧が降下してしまってしてまともに動かない(LCDの表示がおかしくなる)

なので、いっそのことコンパクトな5V/3.3V電源を作ることにした

回路図


ブレッドボード図



「矩形波だけのファンクションジェネレーター」で使っている回路なので特に引っかかったところはなかった

3.3Vのレギュレーターには今回はTM48M033FというLDOを使った(http://akizukidenshi.com/catalog/g/gI-00538/

9V電池をつないで無負荷の時は特に問題なかったが5V、3.3Vにそれぞれ100Ωの負荷をつなぐと
(出力電流はそれぞれ50mA、33mA)出力電圧が安定しなくなる

9V電池の電圧を測ると5.7V程度にまで電圧降下してしまっていた

やはり9V電池では十分な電流が取り出せないようなので
9V程度のACアダプタや、単3×6などを使えるように独立した安定化電源を作ろうと思う



単3ならエネループの使いましができるし秋月で売っている透明なケースになんとか収められるかもしれない

スタックすればそこそこコンパクトなモバイル電源になるかな?(無理そうなら単4?)

イベント等でもシステム(笑)全体の電源に使えそうだ

単3なら1.2V min/1900mAhなのでそこそこ持ちそう

2015年5月28日木曜日

矩形波だけのファンクションジェネレーター デジタル部のハンダ付け完了(?)


入力系、LCD表示、波形出力はどれもOKそうだ

ハンダ付け途中にいろいろと設計等のミスが見つかったが、まめにチェックしながら作業したので
なんとかデジタル部が動くところまで持ってこれた

1枚の基板に収めるにはこれぐらいの規模(C基板)が技量的には限界かな(^q^;

ファームウェアのプログラミングをしつつ、出力部ももう少し検討する予定

2015年5月26日火曜日

IAR Embedded Workbenchを使ってみた

aitendoのOLED VGM12864-3S(http://www.aitendo.com/product/7447)のサンプルコードが
IAR用みたいなので、IAR Embedded Workbenchをインストールしてみた

とりえあえず30日の試用期間のライセンスで

多少いじくってサンプルコードのコンパイルはできたがうまく動かないようだ



OLEDを繋がないでI2Cの信号線の様子をオシロで見てみたが信号が出力されないようだ

このサンプルコードを見るとATMega16用で、AVRのI2C用の端子(ATMega328pだとP27, P28)ではなくてPORTBのGPIOに出力しているみたいだ(たぶん)

OLEDの駆動電圧が3.3Vなので、グチャグチャやって壊してしまうといやなので諦めて
基本のLチカをやってみた

<main.c>
 #include <iom328p.h>  
 static void wait(long t)  
 {  
  while(t-->=0)  
   ;  
 }  
 int main( void )  
 {  
  DDRD = 0xFF;  
  PORTD = 0x00;  
  for (;;) {  
   PORTD = 0xFF;  
   wait(50000UL);  
   PORTD = 0x00;  
   wait(50000UL);  
  }  
  return 0;  
 }  

IAR EWの設定でいじったのは

[Project]-[Options]-[General Options]-[Target]の[Processor configuration]で
「ATmega328P」を選択


[Project]-[Options]-[Linker]-[Output]の[Format]で[other][intel-standard]を選択



hexファイルはDebug\Exeの中に*.d90という名前で出力される

これでavrdudeで書き込めるファイルフォーマットで出力できてLEDもちゃんとチカチカした(^q^/


マニュアルを1行たりとも読んでないので(^q^;動くことの確認だけ

Atmel StudioのGCCと比べるとコンパイルが相当速いが個人で買える値段ではないようだ(^q^;

OLEDの方はNucleoのmbedで動かしている方もいるようなので
AVRでは保留してNucleoをいじりだしてからまたやってみよう思う

矩形波だけのファンクションジェネレーター

逐一チェックしながらハンダ付けしている

やっとデジタル部のLCD以外が終わったところ



↑裏面にピンソケットヘッダを出してケーブルを配線する予定

ユニバーサル基板のハンダ付けはほんとしんどい

まだまだかかりそうです(^q^;

2015年5月23日土曜日

Arduinoでデジタル・ポテンショメータメーター(AD8403)を使ってみた

ハーフピッチのはんだ付けに自信がなくて買ったまま放置しておいたデジタル・ポテンショメータの実験をしてみた

使ったICはAnalog DevicesのAD8403 100kΩ

トランジスタ技術の2008年9月号(188p~)の記事を参考にした

ブレッドボード図


DIP変換基板をつかってブレッドボードに載せた

24PINの変換基板がなかったので28PINを使っています


初めて「引きはんだ」というのをやってみたがわりと簡単にうまく行った

先端が斜めにカットされているタイプのコテ先が威力を発揮した感じだ


あと、フラックスが無ければ多分失敗してたと思う

基板にフラックスを塗っておけば、コテ先にはんだを盛って「ちゅるん」とハンダ付けできる

どちらも大して高くないのでコスパはかなりいい

「弘法は筆を選ばず」は、弘法だから成せる技だと思う

ソースコード

Arduinoに入っている[Example]-[SPI]-[DititalPotControl]の
loop()関数内の[channel]を[6]から[4]に変更してそのまま動く

※AD8403は4chなので

AD840xのDATASHEETを見るとアドレス2bit+データ8bitの10bitなので、
8bit単位の送信しかできないArduino(AVR?)でどうすればいいのかわからなかったが
CSがHiになった時に最後の10bitが読み込まれる仕様のようだ

2Byte = 16bit送っても問題ない

うまく設計されてるもんだなあ(^q^/

出力波形

LEDを接続しない場合

LEDを接続した場合

LEDを接続した場合、1.6Vあたりまでリニアに推移して、その後指数関数的な特性が現れている

ダイオードなので当たり前だがなんか感動した

ダイオードが発明されてから100年ぐらいしか経っていないのに
こうやってBlogを書いているのであった(^q^;

SPIの通信状態


赤色がSDI(MOSI)、黄色がSCK

やはりアドレス8bit+データ8bitの2Byte = 16bit送信されてる

クロック(SCK)を勘定すると4MHzだ

Arduinoのソースでは特にSPIクロックは指定していないのでデフォルトでは4MHzということかな

2015年5月20日水曜日

リズムマシンの構想

「矩形波だけのファンクションジェネレーター」はハンダ付け途中だが
焦ってやってもろくなことがないので、次にやることの構想を練る

というか3日に1回は記事を書くことにしているのでつなぎ(^q^;

リズムマシン


ぴゅんぴゅん3号はぴゅんぴゅんマシンとしてはもうこれ以上やりたいこともないので
他の楽器に流用することを考えた

基本波の周波数(FREQ)とLFOの周波数(LFO)を低くして、LFOの波形をノコギリ波にすると
ドラムのキックのような感じになる

8bitのDACを使っているのでデジタル的な歪がのるが、パラメーターをうまく調節するとこれがなかなか気持ちいい

ゴーストというか裏打ちが入っている感じに聞こえることもある

ファームウェアをいじってリズムマシンとして使えないかやってみたくなった

TR-808やTR-909みたいなUIが割りと使い慣れてるので
今まで作った入力実験用のデバイス(ガラクタ?)を組み合わせて考えてみた

1. ぴゅんぴゅん3号

PSOC 4 Pioneer Kitとシールドを使ったプチ・シンセだ

入力デバイスからの信号を受け取って音声信号を出力する

LCDの表示もここでやる

2. ぴゅんぴゅんコントローラー

POT3個とプッシュスイッチ2個。

ゲーム機のコントローラーみたいに両手に持って使うことを想定している

これで、リズムマシンの音色を変更するつもり

3. ロータリーエンコーダー

TR-808にあやかってロータリーエンコーダーでプログラムする対象(KickとかSnrとか)を切り替える

4. プッシュスイッチ(の列)

8個ならべたプッシュスイッチ。

ここでリズムパターン(シーケンス)を打ち込む

TR-808みたいにON/OFFをスイッチに連動したLEDに表示させたいが
入力ポートが足りないのでとりあえず本体のLCDにパターンを表示することにする

シフトレジスタを使ったり、入力系の面倒をみるマイコンを入れたりすればそれっぽくできるかな?

このへんの実験もしてみたいので後々の楽しみにとっておきたいと思います(^q^/

ディスプレイ

使ってみたいデバイスを少しずつ仕入れている(主にaitendoから)

1. SPLC792-I2C

最初はてこずったが最近はこればっかり使っています

サイズが小さくてI2Cなので信号線を節約できて16桁×2行でバックライト付き
で、375円(税別)
「aitendoのSPLC792-I2CをArduinoで使う方法」
http://dad8893.blogspot.jp/2015/02/aitendosplc792-i2carduino.html
2. VGM12864

パラレル/SPI/I2Cで使える(らしい)OLED

白一色だがこのサイズで128×64のグラフィック表示

値段が高くて壊したらいやなので、まだ実験できてないです(^q^;

3. ノキア液晶5110

SPIのグラフィックLCD
「ArduinoでSPIのグラフィックLCDを使ってみた」
http://dad8893.blogspot.jp/2015/03/arduinospilcd.html
48×84と解像度はあんまり高くないですが
出力中の波形を表示したりできそうなので、そのうちちゃんと使ってみたいと思っています

2015年5月17日日曜日

矩形波だけのファンクションジェネレーター 基板設計

デジタル部と出力部に基板を分割した

デジタル部はケース(テイシン TB-3)とセットの基板に、出力部はユニバーサル基板に実装してケースの底部に配置する予定

デジタル部 回路図

今気づいたが、3.3VのリニアレギュレーターのTLV1117-33のInputとOutputをまた間違えてた(^q^;

どうも相性が悪いようだ(^q^;

デジタル部 基板図

背の高い部品は寝かした

デジタル部 とりあえず並べてみた

基板図を書く前に並べたので多少部品の配置が違う

横から見た

LCDとAVRが若干高さオーバー

AVRはICソケットを使わなければぎりぎり収まりそうだが
ファームウェアの更新ができなくなりそうだし危険なのであきらめる

透明のアクリル板を多少浮かせてねじ止めしようかと思っている

カバーなしでむき出しだとすぐ壊してしまいそうですし

出力部 回路図

前回オシロで見たらVGND(2.5V)の電源にスパイクノイズが乗っていたので
OPAMPの正負電源にVGNDに対してパスコンを入れてみた

今日は疲れて波形のチェックする気がしないのでまた今度

出力部 基板図

もうちょっと頑張れそうな気もするが今回はこんなもんで

出力部 部品を並べてみた

これも基板図とは若干配置が違います

こっちはケースの高さに余裕があるので部品は立てたままで配置


基板を考えながら思ったんだが、このケースと基板は、
基板取り付けタイプのPOTとかスイッチを並べればちょうどいい高さなんではないかと思った

基板取り付けタイプの入出力用のパーツは持ってないし今回はこのままいくが
結構安いので(基板とケース合わせて1000円しない)意外と使い出があるのかもしれない

ToDo:

  • TLV1117-33のピン配置の修正
  • VGNDの電源ノイズのチェック
  • 基板に部品を並べなおして再チェック


はんだ付けやケース加工は一気にできそうにないので、他の事やりながらぼちぼち進めます

このファンクションジェネレーターで何がやりたいかというと


  • PT2399にインパルス関数を入力して過渡現象を見る!
  • レゾナント・フィルターに矩形波を入力してブリブリ言わせる!


なので、なんとか完成まで持っていくつもりだ

2015年5月14日木曜日

小ネタ実験: PCとタブレットのファンクションジェネレーターの波形観測

偉そうに「PCやタブレットのファンクションジェネレーターより良い結果だ」と書いてしまったので
ちゃんと測定してみることにした

PC (TASCAM US-144MKII & Wavegene)

矩形波(1kHz)

30MHz付近のノイズとオーバーシュート、アンダーシュートで負けてるがリプルと立ち上がり、立下りでは勝てそう(^q^;

ノイズの追い込み次第か

矩形波(10kHz)

この辺の帯域になれば完勝(^q^/

タブレット (FuncGen)

矩形波(1kHz)

自作のLPF(http://dad8893.blogspot.jp/2015/04/lpf_6.html)を入れてみた場合

こんなもん使えるか!って怒られるかもしれませんが
1kHzサイン波ならそこそこ使えます

自作LPFなし

自作LPFあり

ノコギリ波(TASCAM US-144MKII & Wavegene)

タブレットのファンクションジェネレーターではノコギリ波が出せるものが少ないのでWaveGeneだけ

1kHz

10kHz

オーディオの世界で言われる空気感というのは、この辺の歪が影響してるのかも知れない

もう、おっさん耳になってしまって聞き分けはできなくなってしまったが
ハイレゾ音源というのは意味があることだと思う

音源がクソだったら再生でいくらがんばっても意味がないのだな(^q^;


矩形波だけのファンクションジェネレーター 結合実験と設計固め

予定していた回路を結合して実験してみた

回路図

回路図では電源部は省略しているが、5Vと3.3Vのリニアレギュレーターを使っている

ブレッドボード図

可変安定化電源で9V

ファームウェアをコーディング中(AVRライターから5V給電)

機能仕様

GNDレベルをMOS-FETで切り替えることにしたので
機能仕様も(http://dad8893.blogspot.jp/2015/04/blog-post_24.html)から多少変更

1.ロータリーエンコーダー

プッシュで機能を切り替える。「矩形波」→「インパルス関数」→「ステップ関数」→「GNDレベルの切り替え」

1.1. 「矩形波」の場合、回して周波数を切り替える。周波数は1、2、5ステップで20Hz~500kHz
「2.可変抵抗」でデューティー比を可変する。デューティー比は1~99%

1.2. 「インパルス関数」の場合、回すとクリックごとに波形を生成する。

1.3. 「ステップ関数」の場合、回すとH/Lを切り替える

1.4. 「GNDレベルの切り替え」の場合、回すとGND(GNDはL)とVGND(GNDはH/Lの中点)

2. 可変抵抗

「矩形波」の時だけデューティー比設定用に使用

<中略>

4. 出力ジャック

ステレオミニジャックとし、Lはバッファありの出力波形、Rはバッファなしの出力波形、GNDはGNDまたはVGNDを出力する

<後略>


矩形波の出力波形

1kHz

赤色がAVRからの出力、黄色がOPAMPのボルテージフォロワーでバッファリングした出力

10kHz

立ち上がり波形がなまり始めている

100kHz

そろそろ矩形波と呼べるか怪しいし、立ち上がり、立下りでスパイク状の波形が(^q^;

500kHz

かなりなまってしまって矩形波とは呼べない

位相も90度ぐらい遅れてる感じだ

スパイク状の波形がかなりはっきりしてきた


電源の状態

可変安定化電源で実験してみた
電源電圧: 8.24V (可変安定化電源に使っている電池がそろそろへたってきて9Vまで出ない(^q^;
電源電流: 42mA
+5V: 5.08V
+3.3V: 3.31V
+2.5V: 2.55V
可変安定化電源の出力は怪しいがリニアレギュレーターを通したあとの電圧はまあまあしっかりしている
→9V電池ならもっとヘタるのが早いのでこの回路はこれぐらいはがんばってもらわないといけないと思う(^q^;

電圧変動もオシロで確認してみたが

可変安定化電源の波形(AC結合)

+5V(AC結合)

+3.3V(AC結合)

+2.5V(VGND)の波形(AC結合)

5V、3.3Vは単純にノイズが増えてるだけな感じだが、+2.5Vはスパイクノイズがかなり出ている

原因不明(@@;

5Vのリニアレギュレーターの後段に3.3Vのリニアレギュレーターを入れているので
3.3Vの方がノイズが増えそうな気もするが、これもよくわからない(@@;


組み方の方針

100kHz以上になるとかなり波形があやしいが、それでもタブレットやPCのファンクションジェネレーターよりは良い結果だ
(というかそもそもサイン波でも出力できない周波数だ)

出力インピーダンスは稼げないし30MHz付近のノイズも取れないが
OPAMPのボルテージフォロワーを通さなければ波形はなまらない

なので回路図&機能仕様のようにOPAMPをバイパスしても出力できるようにしようと思う

出力部の基板を分けられればこっちは後から差し替えできるかもしれないので
ケースのスペースも考えながらこの構成で基板も設計したいと思います。

そろそろ切り上げないとモチベーションがあがらないですし(^q^;