Hatena::Groupecrafts

Chuckの電子工作

趣味の電子工作を中心に書いています。音関係工作はg:emusic:id:Chuckどうぞ。


検索エンジンより飛んでこられたかたで、お探しのキーワードが見つからないかたは、↑の検索をご利用ください。

2009-09-25

ATtiny2313によるI2Cスレーブ

| 08:20

ATtiny2313によるI2Cスレーブの実装例を探しています。以前kumanさんとがた老さんのところは見たことがあるものの、それ以外では今のところあまり見つかっていません。

最近見つけたのがこちら↓ 7セグメントLEDのI2Cスレーブです。

なにか制約でもあるのかドットなし2桁のスタティック点灯のようです。このスレーブを4つインスタンスして8桁を実現しています。

ATtiny2313でI2Cに2本取られた残り全部使えば7セグメントLED ドットあり 30桁 は行けると思うので、マイコン4つで8桁というのはちょっともったいないですね。

トラックバック - http://ecrafts.g.hatena.ne.jp/Chuck/20090925

2009-09-15

I2Cスレーブをいくつか増やしました

| 08:11

ATtiny2313によるスイッチ/ロータリエンコーダ読み取りスレーブ
no title
ATtiny2313による16bit PWMスレーブ
no title
ATtiny2313による7セグメントのLED表示器スレーブ
no title
ATtiny2313によるLCD表示器スレーブ
no title
ATtiny85による正弦波生成スレーブ
no title

16bit PWM電圧設定スレーブ

作っている電子楽器周辺機器の部品として必要に迫られて、マイコンから電圧を設定できるようにしたくなりました。アナログシンセのオクターブ/ピッチチューニングの電圧を作りだそうとしています。

これまでの経験から8ビットでは明らかに足りない、しかしよくわからないので、16ビットタイマをあてがって、16bitの分解能のPWMとしてみました。

ときおりしも、pcm1723さん(d:id:pcm1723)のところでシグマデルタ変調PWMの実験と評価が成されていた(pcm1723さんの日記を「シグマデルタ変調」で検索)ので、これを利用させていただいて、ON/OFFで切り替えられるようにしつつアプライしました。

以上をATiny2313にI2Cのスレーブとしてまとめました。これまでの一連の ATtiny2313 I2Cスレーブで使っている usiTWIライブラリを使用しています。

f:id:Chuck:20090823103145j:image f:id:Chuck:20090823103142j:image

実際に機器に組み込む時にはアナログフィルタが問題となります。PWM周期が 20MHz/16bit ≒ 300Hz ということでカットオフ周波数をかなり低くしたLPFが必要です。


UIスレーブ

lumさんとチャットしていてアイディアが浮かんだUIスレーブを思い立ったが吉日で形にしました。

マスタからの問い合わせに応じてスイッチとロータリエンコーダの状態をレポートするI2Cスレーブです。余ったポートでLEDを光らせてキー状態として表示できるようにしたり、ブザーをつけたり。ブザーなんかはワンコマンドでクリック音を出せるようにしたり。

これもATiny2313で、usiTWIライブラリ使用です。

f:id:Chuck:20090914043552j:image

マスタをArduinoにして動作チェック。一応は動作したものの反応が鈍いです。とくにロータリエンコーダ。無限ループで回転を検知したらクリック音を鳴らしてシリアルでArduino IDEにレポートするスケッチを書きました。

回転の検知は、ロータリエンコーダの状態取得のコマンドを送ってI2C受信待ちをして受信データをバッファから取り出す、という動作ですがこれまでのスケッチを流用していたもので受信待ちが100msecのディレイにしていたということに今さっき気がつきました。これでは反応が悪いはずです。後日これを Wire.available() のポーリングに変更しなくてはなりません。

ChuckChuck2009/09/17 04:20スイッチ/ロータリエンコーダ読み取りスレーブ がうまいこと動かない状況です。

ChuckChuck2009/09/21 17:01それなりに対策してFS03版としてwikiにアップロード。

トラックバック - http://ecrafts.g.hatena.ne.jp/Chuck/20090915

2009-09-07

俺duino環境

| 06:30

作っていたFMラジオはあんなことになってしまったけれど、自前でブートローダを焼いた 俺duino はありだと思ったので準パーマネントな環境を組みました。

いや組んだのは先月中頃なのだけれど、この週末にふと思い立って改造しました。

USB-シリアルI/Fに秋月の AE-UM232R を使用していますが、TX/RX のLED出力用ポートがI/Oに立ち上がっているので、ここにLEDを接続して光らせました。

AVRマイコンのTX/RXポートにLEDをぶら下げる作例はよく目にしますが、AE-UM232RのCB0、CB1を使っている作例をほとんど見たことがないような気がします。自分が知らないだけだと思うのですが。


改造後写真を撮り忘れたので、以下は改造前写真です。

f:id:Chuck:20090814081722j:image

トラックバック - http://ecrafts.g.hatena.ne.jp/Chuck/20090907