Posts in Category: AVR

The Loud Objects Noise Toy (3)

実はやりたいことがあってDACに関していろいろ調べててたら
Chan氏のページでAVRの出力ピンで直接スピーカーをドライブしてる作例がありました。
ありゃー。

まだブレッドボードからバラしてないのでさっそくこっちでも試してみました。
これはSP2コだけど、ステレオで鳴らさなければ1コでもいいと思う。
(サンプルではステレオネタは1コしかなかったような)
loudobjects SP Direct Drive

実際の音はこんなかんじ。
これは直径21mmのちっさいスピーカー(16Ω 0.25W)
圧電スピーカーでもいけるけどすごいピーキーな音になりました(低音無し)

loudobject_sp_direct_drive from recotana on Vimeo.

Share on Facebook

The Loud Objects Noise Toy (2)

昨日の続き

AVRに限らずこの手のマイコン扱うにはどうしても避けて通れない開発環境の構築。
Winなら特に悩む必要なくデフォの環境を選ぶべきですが、
普段からMacを使ってる人にとってはやっぱりMac上で構築したいもんですよね。

ArduinoですとMac上で走るIDEを使えば何の問題もなくビルド&書き込みできますが
Loud Objects Noise Toyのように素のAVRを使うとなるとそうはいかず
MacですとEcripseかXcode(NetBeansはわからず)になっちゃいそ

Ecripseも恐ろしく高機能でいいんですが
普段iPhoneやってるせいもあってやっぱりXcode
これでXCodeでAVRのビルド->書き込み(加えてヒューズ書き込みも)がさくっとできるようなテンプレを作っています。
(でも今となってはもっといいテンプレがあるよーな気がする。。)

その前にAVR用のツールチェイン CrossPackをインストールしておいて
http://www.obdev.at/products/crosspack/index.html

AVR Xcode Templete

これをXcodeの指定フォルダへコピーするとAVRのプロジェクトが作られるようになります。

それでもmakefileへAVRの設定などちょっぴり書くことはあるのですが

Loud Objects Noise Toy用に
チッップ ATTINY85
ライター AVRISPmkII
を使用するという前提のXcodeプロジェクトを置いておきました
http://recotana.com/files/loudobjects_xcode.zip

main.c にコードを入力するのですが
Loud Objects Noise Toyにあるサンプルコード全コピペでOKなはず
(ワーニングは出たら、引数の無い関数にvoidを入れればOK)

買ったばかりのAVRはそのままでは内蔵クロック4MHzと半分になってしまいまので、
ビルド前に最初に”Flush Fuse”してmakefileのAVRヒューズ設定(内蔵8MHz)を反映させてください。

あとはBuild & Flush Programでいけるはずです。問題が無ければ。。

Share on Facebook

The Loud Objects Noise Toy(1)

えーと、更新っていつ以来だっけか、、
ARMのアレも絶賛ほったらかし。。

先日Twitterでこのタイトルのプロジェクト知りました。

The Loud Objects Noise Toy

AVRを使ったミニマルなおもちゃ。
モジュール自体は Maker Shed (電源スイッチでか!) で売ってるけど
サイトみてみるとソースも出てるし
ソースと実装図?みても至極単純ぽいので回路起こしてみました。
(でもなるべく本家から買って・・!)

チップはソースみるとかけ算割り算してるので念のためATTINY85。
クロックは内蔵8MHz
スピーカーアンプへ直で接続するのはちょっとはばかれるので一応半固定抵抗挟んで
あとはパスコンとステレオジャック(3.5mm)とスイッチ2コ、単三×2ホルダー
ブレッドボードと配線材少々。
書込用のISP配線はSTK500などの別ボードでの書き込みだと省略してくだせ・
でもパラメータどんどん変えて遊ぶときは是非このようなISPで繋げたまま書き込み仕様で

loudobjects schematic?

IMG_0166

ハードはこんだけ。

ソフトは次の記事で

それにしても、TimerやPWM使わず単にウェイトでのBEEPだったり
懐かしのBEEP音で遊んでた昔を思い出しちゃいます。
ソースもシーケンシャルなコードだし、もしかしたら教材的な目的もあるのかな?
ブレッドボードでさくっと作れるし
ボタンでのインタラクティブ(ランダム要素で)な動作もあるので
おもちゃとしてもけっこう素で楽しめるかんじでした・

以下はmetroid.cのお試し

loudobjects noise toy (metroid ver2) from recotana on Vimeo.

Share on Facebook

iPodのAiRモードでハマってました

ちょっとiPod用のリモートコントローラをAVRで制作してたんだけど
ちょいとハマってましたよ。

今回はプレイリストのトラック数など取得して細かめに制御しなきゃいけなかったので
AiRモードという細かめの制御コマンドを使ってます。
某所(英語サイト)でコマンド一覧があるのでたいして難しくはないんだけど
データ取得でなぜか失敗することが多い。
なんでかなーと

2日くらい試行錯誤して納得。
1AVRから AiRコマンド送信。 (AVR -> iPod)
2 iPodからデータ送信 (AVR <- iPod) 3 iPodからコマンドリザルト送信 (AVR <- iPod)

2までかと思いきや、3のデータがiPodから送信されてるのを知らずに処理してました。
これが受信バッファに残ってていらぬ解析をしてたとゆー。
しかも、コマンドによってリザルトデータ有り無しがあってさらに混乱してましたよ。

あともう一つ、
5分ほど操作しないままでいると、AVRからAiRコマンドを送出しても無反応になる。(sleep??)
これは、一定期間ごとにiPodへPingコマンドを送って眠らせないようにしてみました。

いまんとこ順調順調。

あ、AVRは ATMEGA644Pなんだけど
ウォッチドッグタイマのマクロが使えなかった。
avr/wdt.h にATMEGA644しかないのでATMEGA644Pを追加してビルドできた。
しばらくAVRMacPackをバージョンアップしてないからだろなあ。

Share on Facebook

ただいまiPhoneアプリ作ってます。

iOSCです。

ベタですねー。
これはOpen Sound Controlプロトコルを送信するiPhone/Touchアプリケーションです。

・ライブなどで誤操作を防ぐのに、ボタンなどはサイズを大きめに
・パーツの外観やOSCメッセージをカスタマイズできるように
・さらに別個のホストPCを同時に制御できるマルチホスト機能
などが特徴かなー。

最初はほんとにごくごく単純なOSCアプリケーションにするつもりが
次期バージョンも視野に入れて作ってたら徐々に機能増えていってしまいました。
およそ形になってきたのでそろそろApp Storeへ一所懸命申請準備中。

昨日、共同でiPhoneアプリを作っている人の家でデモ動画撮ってきました。

先日作ったAVR-OSCの具体例
別にナイトライダーに特別な思い入れはないんですが
安く手に入ったのでAVR-OSC載っけてiPhoneでワイヤレスコントロール。
アクセスポイントは2階から。
実はWi-PortはアドホックでもOKなのですが、iPhoneってどうしてもアクセスポイントがないとだめみたい。
要はラジコンなんだけど、
「非JB iPhoneで非PCをコントロール」することがロマンですねー。とっくに先人はいるけど。

こちらはマルチホストの実例
2台のMacにMax/MSPの同じパッチ、同じOSCメッセージで起動。
ただしIPアドレスは別。
iOSCの各ボタン、スライダーにはそれぞれのIP(host)を振り分けてOSCメッセージを登録することができるので
このような複数台同時操作が可能です。

これはAbleton Liveの実演
LiveにはOSC機能がないので、OSC-MIDIブリッジのOSCulatorを使用しました。
いずれOSC-MIDIブリッジもつくらないといけないなーと思ってるんですが。
TouchPadでエフェクト変えていますが、
X軸、Y軸それぞれ単独でOSCメッセージを投げています。
なので、Padをより汎用的に使えると思います。

音源、というかLiveのネタは友人のR3のmorphを借用しちゃいました。

Share on Facebook