workshop
Arduinoで音の大きさを調べる
- 2011-06-16 (木)
最も怠惰な方法。
秋月で売ってるアンプ内蔵マイク SP0103NC3-3 を使ってみます。
こんなふうに配線。
0.1µFをこんなふうに付けてください。0.47µFを持ってたらそっちの方がいいです。
線の色は
赤 V+
白 信号
黒 GND
です。お願いします。
Arduinoの5V、GND、A0につなぐ
Arduino側で電圧を読み込んでシリアルで出力
void setup() {
Serial.begin(9600) ;
}
void loop() {
int in = analogRead(0) ;
Serial.println(in) ;
delay(10) ;
}
Processingで受けて、グラフをプロット
import processing.serial.*;
Serial p ;
int x, y, yPrev ;
void setup() {
size(400,300) ;
p = new Serial(this, Serial.list()[0], 9600) ;
p.bufferUntil(10) ;
}
void draw() {
line(x-1, yPrev, x, y) ;
if (++x >= width) {
background(200) ;
x = 0 ;
}
}
void serialEvent(Serial p) {
String str = p.readString() ;
int val = int(trim(str)) ;
yPrev = y ;
y = int(map(val, 0, 1024, height, 0)) ;
}
センサの挙動の雰囲気を知るには、グラフにするといいと思います。
コンソールで数値をみただけでは分からない空気感が読めます。
あとは各自工夫されたし。おわり
- Comment (Close): 0
- TrackBack: 0
EAGLEでプリント基板にゲバラを描く方法
- 2011-05-31 (火)
- 多摩美メディア・アートⅠ 2011

プリント基板CADのEAGLEは便利なんだけど、ちょっと凝った絵柄を入れようとすると、相当苦労する。
あと、ライブラリとして部品を登録するときも、寸法を合わせて図を引くのが辛い。
自分的にはイラレが一番楽なので、イラレで図を描いて、EAGLEにインポートするツールをprocessingで作ってみた。
といってもこれ、2年以上前に作ったもので、あまり詳しくは憶えてないんだけど、とりあえず必要な人は使ってみてください。
なんせ2年も前なのでprocessingの現行バージョンで走らせてみたけどうまく行かなかった。多分たいした問題じゃないので、時間のある人は解決お願いします。ドラァグ&ドロップするために、sDropっていうライブラリ使ってます。
というわけで、ソース以外に実行形式もアップしておきました。解凍して、SVG2SCR.app(Mac)またはSVG2SCR.exe(Win、未確認)を見つけてください。
以下、使い方です
・Illustratorで図を描く。
・パスを全部直線にする。曲線などはその前にパスのアンカーポイントを追加して、直線にしても形が変わらないようにする。
・SVG形式で保存する(例:test.svg)
・SVG2SCRを起動して、出てくる小さいウィンドウにさっきのSVGファイルをドロップする
・そうするとtest.scrっていうファイルがSVGファイルと同じ場所に出来てるはず。
・今度はEAGLEを立ち上げ、基板エディタを起動。
・好きなレイヤを選択しておいて、scrボタンを押し、今出来たtest.scrを選択
・ホラ出来た。
作画の注意としては、入れ子のパスは不可。なので工夫して作画してください。
sampleフォルダにゲバラのファイルを入れとくよ。これ参考にして。
あと、EAGLE上での位置は勝手に左上に合わせてしまうみたい。なので、イラレでの作画の時に、トンボみたいのを左上に置くと良いと思う。それと左上に勝手に四角が描画されるんだけど、これはよく分からないので、手動で消してくださいw
ということで、いかしたロゴなり、変態基板なりいろいろ試してみてください。おわり
- Comment (Close): 0
- TrackBack: 0
Arduinoのブートローダを書き込む方法 (補足)
- 2010-06-24 (木)
書き込もうとしているチップがATmega168Pの場合、下記の通りやってもうまく行きません。
秋月で販売しているのはATmega168ではなくてATmega168Pのようです。基本は同じなんだけど低消費電力版みたいです。
avrdudeという書き込みプログラムは最初に接続したチップの型番がATmega168かどうかをチェックするため、指定以外の型番だと書き込みを中止します。
avrdudeのプロセッサ定義ファイルを追加して、Arduinoの使用プロセッサをATmega168Pにする定義を追加する事で書き込み可能になります。
kantaさんという方が詳しくまとめてくれています
- Comment (Close): 0
- TrackBack: 0
Arduinoのブートローダを書き込む方法
- 2010-06-23 (水)
ミニマルなArduinoのように生のAVRを購入してArduinoのスケッチを書き込む場合、その前にブートローダを書き込む必要があります。
そこでUsing an Arduino as an AVR ISP (In-System Programmer)を参照しながら実際にブートローダを書き込んでみたいと思います。この方法だとArduinoを持っていればブートローダを書き込む事が出来ます。
本記事では、書き込みの条件として、Arduinoのボードを1枚と、ブレッドボード+ジャンパケーブル、そして生のAVR(ATmega168)が1つある物とします。
今回の条件に当てはめて書き直すと:
- Upload the ArduinoISP firmware (in Examples) to your Arduino board.
- Wire your Arduino board to the target as shown in the diagram below.
- Select the item in the Tools > Board menu that corresponds to the board on which you want to burn the bootloader (not the board that you're using as the programmer). See the board descriptions on the environment page for details.
- Use the Burn Bootloader > Arduino as AVRISP command.
- ArduinoISPと呼ばれる書き込み用のスケッチをArduinoボードにアップロードする(スケッチはExampleの中にあります)。これによりArduinoがブートローダ書き込み機になるわけです。
- Arduinoボード(書き込み機)と対象となるAVRをケーブルでつなぐ(つなぎ方は下図の通り)
- メニューのTools > Boardから書き込みたいブートローダの種類を選びます。今回はLilypad Arduino with ATmega168を選びます。
- メニューのBurn Bootloader > Arduino as AVRISPを選びます
書き込みが完了したらこちらのようにブレッドボードなどで配線して使用できます
- Comment (Close): 0
- TrackBack: 0
赤外線ビーコン
- 2010-06-16 (水)
赤外線LEDのつなぎ方はこう↓。
D3---100Ω程度の抵抗---赤外線LED---D4
ただしLEDの向きはD4にカソード(脚の短い方)
それからD8をGNDにつなぐと送信を停止します
IDとして設定した1バイトを4回送信し、その直後に10(LFのASCIIコード)を送っています。
LFコードまでを受信したら、受信内容の確認に入ります。
受信側は4つの数値が全部同じかどうか調べてエラーがない時のみ受信値を採用するといいと思います。
- Comment (Close): 0
- TrackBack: 0
ミニマルなArduino
- 2009-07-03 (金)
とうとう秋月でATmega168の取扱が始まりました。なんと1コ300円です。
という訳で、ブレッドボード上で安い安いArduinoを作ってみます。
http://hcgilje.wordpress.com/resources/arduino-standalone/
この辺りを参考にしつつ、Arduinoのミニマルな使い方をメモっておきます。
まずATmega168P-20を買い求め、そこにブートローダを書き込みます。AVRISPなど書き込み機を持っている人に頼んで書き込むといいと思います。
基本的にArduino playground - Burn168にしたがって作業します。
フューズの設定は 0xf8, 0xdf, 0xe2
ロックビットの設定は 0xcf
です。
フューズの最後の値だけ解説とは違うので注意してください。この違いはレゾネータを使わなくて済むように内部発振を選択していることによります。
ブートローダはATmegaBOOT_168_pro_8MHz.hexを書き込みます。
回路図と配線方法
回路図です。D13につながっているのは動作確認用です。起動時に光ったりします。他にLEDを付けたりなど、動作確認のすべが他にある場合はこれはいらないかもしれない。
ブレッドボードの配線例です。
pri/proのheader(USB-シリアル基板)をつなげてスケッチのアップロードをします。COという端子はDTRと同じです。FT232を使ったUSBシリアルアダプタで、電源・送受信の他にDTRが出てる物なら何でもいいかと思います。
スケッチを書き込む時は
Tools > Serial Port > /dev/tty.usbserial-####
Tools > Board > Arduino Pro or Pro Mini (3.3V, 8MHz) w/ ATmega168
を選択してください。
- Comment (Close): 0
- TrackBack: 0
秋月の加速度センサモジュール KXM52-1050
- 2009-06-17 (水)
秋月の加速度センサモジュール、KXM52-1050の説明書には誤記(というか相反する2つの記述)があっていつまでたっても修正される気配がありません。それを見て使うたびに混乱してしまうので正しいと思われる内容をメモしておきます。
ただしこの手の誤記は秋月らしくて僕は好きです。
1: Vdd (2.7~5.5Vを供給する)
2: PSD(パワーシャットダウン。Vddに接続で通常動作。GNDか無接続でシャットダウン)
3: GND(グラウンドへ接続)
4: Parity(内部EEPROMのパリティチェック用。通常は無接続)
5: SelfTest(通常はGNDに接続。Vddにつなぐと出力が1G増える<-何の事だか分からない。1G分プラス側にシフトするという事だろうか?)
6: OutX(X軸のアナログ出力)
7: OutY(Y軸のアナログ出力)
8: OutZ(Z軸のアナログ出力)
以上
- Comment (Close): 0
- TrackBack: 0
