作業日誌

目次

komatsubaraへのつっこみとか


1月16日

回路を大幅に修正しました。
今までは

入力信号→直流バイアス回路→[ADC→PGA→DAC]→出力

でした。
しかしなぜか出力に入力波形(1kHz)が出てこない‥
ためしに周波数を<100Hzにしてみたら、波形が出てくることが発覚。
どの段階の設定ミスかわからないけど、サンプリングレートが300Hzという超低速。
しかも周波数特性も100Hzを超えたあたりからゲインがすごく小さくなっている。
音声信号で100Hz以下はほぼ聞こえない領域なので、これじゃ使えないといろいろ試してみる。

でもどうもこの辺がPSoCの限界らしく、しかたなく回路でやってみることに修正。ついでに半波整流と包絡線検波もやってしまう。

入力信号→[PGA]→半波整流→包絡線検波→[ADC...

PGAの入力は正の電圧しかとれないけど、どうせ後で半波整流するから必要ないと思って特にバイアスとかはかけなかった。

包絡線検波はRが3.3KΩ、コンデンサが10μF。下がり具合はオシロスコープ上ではいい感じだったけど、実際に音と聞く比べしていないと何とも言えないですね..

あとは包絡線検波の結果をADCで入力してPWMのデューティー比につっこめばとりあえずの完成です。

12月19日

音楽信号を入力するためのバイアス回路を実装しました。
音楽信号は0V付近の交流信号、一方ADCは正の電圧しか変換できません。
トランジスタ増幅回路の要領で抵抗2本と電界コンデンサを用いた方式のものを作りました。
これをADCで取り込んで、逆バイアスをかけて+-の信号にして、全波整流かけて、瞬時電圧んで、その値でLEDの明るさをPWMで制御しようとしました。
だがしかし、音楽信号が思いのほか小さく(ちょうどいい大きさの音量では)+-20mV程度の変化しかなくLEDの制御には至りませんでした。

しかも入力波形を見ていると、40MHzの10mVp-pの波形が載っている。
先生曰くオシロの内部雑音らしいので回路には原因がないが、一応ADCして増幅してDACしてその波形を見てみることにする。
回路ではないなら増幅しても40MHzは現れないはずです。
だけど、ADCの変換結果はoffsetbinary(0〜255)、DACはunsigned char(-128〜127)の設定になっていることに気付かず、出力波形が変な形になってしまいそこでまた悩んでしまいまいました。

次回はそこを直してから始めたいと思います。

実は今の制御の流れだと、たとえ振幅が一定の信号でもADCのタイミングで瞬時電圧が異なるので、LED明るさが変化してしまう罠。こんど包絡線検波回路を実装しないといけない‥

12月5日

サーボモータが壊れてました。
サーボを接続しない時は正常に動くけど、サーボをつなぐと回路全体に2A強流れていることが発覚。
他のサーボを接続すると、意図したとおりに動いてくれました。
まさかサーボが壊れてるとは思わず、ずっと別のとこを間違ってるんじゃないかと思ってたのでびっくりです。

switch文が、何を入力してもdefaultに飛んでしまうのは、PCとマイコンの通信速度があってなかったようです。以下のように設定し直しました。

sysclock 24MHz
     ↓6分周
VC1       4MHz
     ↓13分周
VC2   307.7kHz   → UART (38400bps)
     ↓30分周
VC3   10.3kHz
     ↓205分周
PWM   50Hz

こうすると、オウム返しもちゃんと帰ってきて、(前は何回か一度に違うのかが帰ってきた)switchもちゃんと動きました。

前は入力した文字でswitch文で分岐してパルス幅を変える方式だったけど、
バイナリモードで数字を入れて、その数字がそのままパルス幅になるように変更。
というかこっちの方が微調整&応用が効きますね

サーボモータの駆動範囲は、パルス幅で0x05〜0x19でした。
時間で言うと392usec〜1.96msecでした。

基板にステレオジャックのオスとメスをはんだ付け。
メスを何も考えずにはんだ付けしたら、基板に引っ掛かってオスが最後まで刺さらないことが発覚。
基板の端に付けなおしたけど、端に走ってた電源ラインを迂回させたりだいぶ大手術になってしまいました。

ものづくり

1次審査通過。やったね

とりあえず今月中に、美大生に向けてのプレゼンテーションがあります(`・ω・´)

11月28日

サーボモータをつけるためのピンを基板にはんだ付けしました。
モータ類とマイコンを同じ電源から取ってくる時って配線を慎重にしなきゃいけない気がしたけど、よくわからないですorz

サーボモータを動かすためのプログラムを書く。
サーボモータのパルスの仕様は、1周期20ms・角度を1〜2msのパルスで制御するらしい。

PCから入力された文字をつかってswitchでパルスの幅を変えてみようとしたけど、なぜか動かなかったです。
オシロスコープで波形を見てみると、どの文字を入れてもdefaulfに行ってしまってるよう‥

タイマーを使ってパルスの幅を変えて見るようにしても、サーボをつないでない時は正しい幅で出力されてるけど、サーボをつなぐとなぜか変な波形になってしまう。

11月21日

PCとの遭遇を果たすために基板を少し修正。

PCとマイコンをつなぐ時に必要なドライバですが、対応バージョンを見ると2kとXP‥
Vistaは大丈夫なのかな?と思いつつインストール
何とかインストールもできたし、通信もうまくいってるようなので、大丈夫だったらしい

パソコンで入力した文字を返すプログラム、文字によって明るさを変えるプログラムを作ってみました。
明るさは、asdfgのキーを入力して、switch文で条件を分けでPWMの引数を変えてみただけです。

起動後、USBケーブルを最初に差したときは認識されるけど、はずして再度差し込んでもCOMポートが認識されない(´・ω・`)
再起動したら直るけど、めんどくさいですね。
抜き差ししなきゃいいのか(ぁ

ものづくり

提出書類に不備があって、事務から授業中に電話で呼び出されたのは秘密です。
学生に授業中に電話って(´・ω・`)

11月14日

PSoCを載せる基板を作成(はんだ付け)しました。
最後は駆け足になったけど、プログラムも作ってLEDを光らせることができました。

そういえば、スイッチを押すとGNDにつながるように設計したけど、
他の人とテキストは、電源につながるように作ってある。
俺って少数派なのかな‥?

でもここはあえて多数派に対抗してやる(`・ω・´)

11月12-13日

学生によるものづくり実践プロジェクト

の提出書類をせこせこと制作中
「作品のコンセプト」‥さくひんのこせぷと‥?
そもそもみんなが思い思いのを作ってるだけから、全体としては何を売りにすればいいんだ‥?(汗

まー適当にでっち上げときますわ(ぇ

夜遅くにメーリスごめんなさいorz
説明文と絵を張り付ければもう完成です

11月7日

ものづくり教室で使われた光の迷路を作った。
いい方のはんだごてが使えてうれしかったですw
はんだ付けなんて何ヶ月振りかわかんなかったけど、やっぱりはんだ付けは楽しいね。
プログラム書くよりはんだ付けしてる方が楽し(ry

チュートリアルは一通り終わったので、自分でいろいろ遊んでますが、
早く実機の制作に移りたいですo(^-^)o

10月24日

パワーポイントでネタ発表をやりました。
「窓を自動で開け閉めするやつ」と「動くスピーカー」の2案を出したけど、
後者に決まった。(通称ローリー)

音に合わせて動く/光るってのは決まったけど、具体的にどう動かすのかも決めないと(`・ω・´)

PSoCのチュートリアルのタイマー割り込みをやった。
タイマー割り込みでLEDの光らせ方をいろいろいじってみました(・ω・)

10月17日

PSoC入門:PSoC First Touch編のCapSenseまでおわりますた。

でもCapSenseがよく動かない気が・・
手が湿ってるのも何か影響するのかな?

来週はタイマ割り込みを頑張りたいと思います(`・ω・´)

そういえば来週ネタ発表か・・何にしようかねぇ(・ω・`)
ROLLYみたいな音楽で動く物も面白そう・・w


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS