MTM05準備中。。。。
Posted by arms22 on 2010年04月29日

PCBCARTに注文していた基板が届いたよ。今回、フンパツして100枚注文した。50枚も100枚もそんなに値段がかわらないからね。でも部品はそんなに用意してないから、MTM05に持って行くのは50~60セットくらい。
基板は片面。サイズは約40 x 30mm。PCBCARTは基板の外形の角を丸に指定しても、サクッとやってくれるところがうれしい。ソルダーレジストのカラーを黄色に指定したんだけど、想像していた黄色とちがってちょっと残念。悪くはないけどね。
実装する部品の数は7つ。なれた人なら5分で組み立てられる。動作確認も無事完了してほっと一安心だ。さーてあとは部品の袋詰めと組み立て説明書の作成だ。
NIKE MUSIC SHOE - MAKING OF
Posted by arms22 on 2010年04月28日

NIKEの音の出るシューズのメイキング動画が公開された!曲げセンサーは3本入っていて、傾きを検出できるように加速度センサーも入っているみたい。かかとの部分にマイコンが入っているようす。ますます作りたくなってきたぞ!
実際、ちゃんと演奏できるようになるまでにかなりトライ&エラーが繰り返されたようだ。ナニがすごいってこのシューズを作ったデザイナーの方たちもすごいけど、ものすごくカッコいい演奏をしてしまうHIFANAサイコー!
NIKE MUSIC SHOEが実際にどのようにできているのかを、詳しく解説しています。まだ本編を観ていない方は、こちらからどうぞ! http://www.nike.jp/musicshoe/
Arduinoで遊ぼう - GPSデータをSDカードに保存する
Posted by arms22 on 2010年04月27日

GPSモジュールとSDカードを組み合わせてGPSロガーを作ったよ。SDカードに保存したGPSデータをこんな風にGoogle EarthやGoogle Mapsで表示すると楽しい。
ピンクのラインがこの日、僕が移動した跡だ。最寄り駅から最近良く通う京都のクライミングジムまでの道のりを表している。1秒間隔でGPSデータを保存していたので、ちょっとした寄り道まで正確に記録されていた。あまりにも正確だったのすべてのデータを公開するのはやめた。公開するとあんな所やそんな所に寄り道してることがばれちゃうからね!
回路図

GPSモジュールとSDカードとの通信ラインには抵抗による分圧回路が入っている。5V動作のArduinoと接続する時にはこの抵抗が必要だけど、3.3V動作のArduinoと接続するときは省略しても良い。LEDはデバッグ用なので省略しても良い。
ライブラリ
SDカードへの書き込みにFatFsライブラリ、GPSモジュールとの通信にNewSoftSerialライブラリを使います。次のURLからライブラリをダウンロードしライブラリフォルダ(OSXの場合 ~/Documents/Arduino/libraries、Windowsの場合 ¥My Documents¥Arduino¥libraries)にコピーしてください。
FatFs
http://arms22.googlecode.com/files/FatFs-003.zip
NewSoftSerial | Arduiniana
http://arduiniana.org/libraries/newsoftserial/
スケッチ
GPSデータのファイルへの書き込みは1バイトづつ行わず、一度バッファにためてからいっきに書き込んでいる。gps_fetchでバッファにGPSデータをためて、gps_writeDataでファイルへ書き込む。
※GPSモジュールの通信レートは 9600bps、通信間隔は1秒、情報の種類はGGA+RMCにあらかじめ設定しておく。詳しくはこちらのスケッチを参照。
#include <FatFs.h>
#include <NewSoftSerial.h>
// GPS制御端子
const int gpsRxPin = 2;
const int gpsTxPin = 4;
const int gpsPowerPin = 8;
// LED端子
const int ledRedPin = 5;
const int ledGrnPin = 6;
// GPS通信
NewSoftSerial gpsPort(gpsRxPin, gpsTxPin);
// GPS受信データ
uint8_t fetchDataLength;
char fetchData[200];
void setup()
{
delay(5000);
pinMode(ledRedPin, OUTPUT);
pinMode(ledGrnPin, OUTPUT);
pinMode(gpsPowerPin, OUTPUT);
digitalWrite(gpsPowerPin, HIGH);
// ソフトウェアシリアルを初期化
gpsPort.begin(9600);
// FATファイルシステム初期化
if( FatFs.initialize() ){
// ログ保存用のファイルを作成する
FatFs.createFile("gps.log");
}
else{
digitalWrite(ledRedPin, HIGH);
while(1);
}
}
void loop()
{
// GPSデータ受信
if(gps_fetch()){
digitalWrite(ledGrnPin, HIGH);
// GPSデータ書き込み
gps_writeData();
digitalWrite(ledGrnPin, LOW);
}
}
bool gps_fetch(void)
{
if( gpsPort.available() ){
unsigned long last_time = millis();
uint8_t preamble = 0;
uint8_t len = 0;
fetchDataLength = 0;
do {
while( gpsPort.available() ){
char c = gpsPort.read();
if( c == '$' ){
preamble++;
}
if( preamble ){
if( len < sizeof(fetchData) ){
fetchData[len++] = c;
}
if( c == '\n'){
fetchDataLength = len;
}
}
last_time = millis();
}
delay(1);
}
while( millis() - last_time < 10 );
return fetchDataLength > 0;
}
return false;
}
void gps_writeData(void)
{
File file;
file.open("gps.log");
file.seekToEnd();
file.write((const uint8_t *)fetchData, fetchDataLength);
file.close();
}
GPSデータの変換
Google EarthやGoogle MapsにGPSデータを表示するにはGPSデータをKML形式に変換する必要がある。変換にはHoudahGPSというソフトを使った。シンプルなUIで使いやすい。

変換の仕方
- SourceにFileを選ぶ
- FormatはNMEAを選択する
GPSモジュールから送られてくるデータはNMEA形式。
GPSデータを保存したテキストファイルの拡張子は .nmea に変更しておく。 - DestinationにKMLを選ぶ
- 左上のConvertボタンを押す
- 保存先を指定し、OKボタンを押す
Houdah Software - HoudahGPS 4.0
http://www.houdah.com/houdahGPS/
Google Earth、Google Mapsに表示する
Google EarthにGPSデータを表示させるのは簡単。Google Earthのメニューからファイル、開くでKMLファイルを選ぶだけ。
Google MapsにGPSデータを表示させるのは少々面倒だ。一度、HTTPサーバにKMLファイルをアップロードし、そのファイルのURLをGoogle Mapsの検索窓に入力して"地図を検索"ボタンを押す必要がある。サンプルをアップロードしておいたので、次のURLをコピーしGoogle Mapsで検索してみてほしい。
http://arms22.web.fc2.com/geotagging_sample.kmzKMLファイルのサイズが大きくなりすぎた場合、Google EarthでKMZファイルで保存しなおすとデータが圧縮される。
Arduinoで遊ぼう - GPSを使った高精度な時計
http://arms22.blog91.fc2.com/blog-entry-313.html
Arduinoで遊ぼう - GPSで現在位置を取得する
http://arms22.blog91.fc2.com/blog-entry-299.html
GPSデータをGoogle Maps/Earthで可視化する
http://bg66.soc.i.kyoto-u.ac.jp/forestgps/gpsdiary/archives/2008/05/gpsgoogle_mapsearth.html
HoudahGPS:GPSトラックログのファイル形式を変換
http://geolife.style.coocan.jp/blog/?p=264
NIKE MUSIC SHOE
Posted by arms22 on 2010年04月26日

NIKEの音の出るシューズ「NIKE FREE RUN+」
これは、東京某所で行われた、秘密のライブパフォーマンスです。フレキシビリティあふれるランニングシューズ NIKE FREE RUN+をHIFANAが演奏しています。
*映像の中で実際に演奏に使用されている「NIKE FREE RUN+」は特別に制作されたものです。販売している商品では、曲げても音はでません。
(via http://nikerunning.nike.com/nikeos/p/nikeplus/ja_JP/products/free_run?blogSource=ja_JP)
これは想像だけど、恐らく靴の中に曲げセンサーが入っていて、曲げセンサーの値をマイコンで取得し、センサーの値に応じてMIDI信号を送信していると思われる。曲げセンサーはつま先とかかと、それに土踏まずの部分に入っていて、曲げや捻りを検出できるようになっている。センサーとマイコンは4極のフォンジャックで接続されている、はず。。以外と簡単に作れそうな予感がする。
ジャパニーノ・ナイト Japanino night
Posted by arms22 on 2010年04月26日

学習研究社
売り上げランキング: 408
大人の科学が27号ふろくの8bitマイコン"Japanino"(Arduino互換機)の発売を記念してイベントをやるみたい!船田戦闘機さん、半田付けガールの天野あいさんが出演。僕は関西の人なので参加できませんが、天野あいさんの生半田付け(やるかどうかは知らないよ!)を見たい人は是非。
カルカル恒例の学研・大人の科学presentsトーク&ライブが開催決定!テルミンmini、ポールセンの針金録音機、 4ビットマイコン(GMC-4)、35ミリ二眼レフカメラ、アンプ+スピーカー内蔵ミニエレキの発売記念イベントをこれまで開催。今回は、27号ふろく8bitマイコン"Japanino"の発売を記念し豪華出演者を迎えてトークライブ、実演、演奏をお楽しみ頂きます!
(via ジャパニーノ・ナイト Japanino night)
MTM05準備中。。。
Posted by arms22 on 2010年04月25日

スピーカーユニットを固定する部品を厚紙から切り出す作業が完了しました。底の部分と合わせて180枚もの円形を切り出すのはなかなか大変な作業です。レーザカッターがあれば一瞬かも。こういった紙の切り出しなどの作業を安価に行ってくれるサービスとかないかな?
Arduinoで遊ぼう - 一眼レフカメラのシャッターを制御する
Posted by arms22 on 2010年04月19日

Arduinoを使って一眼レフカメラのシャッターを制御してみたよ。
ハイエンド(?)なカメラには離れたところからシャッターを切るリモートレリーズと言うアクセサリがある。ボタンを押すと「にょ」ってワイヤが飛び出すあれだ。パイプの中にワイヤが通っていて、ワイヤでシャッターを物理的に押すことできる。最近のカメラはこのワイヤが電気式になっていて簡単なスイッチで電気的にシャッターを切る。このスイッチを押す動作をArduinoにやらせればシャッターが切れるというわけだ。
端子と配線

PENTAX K100Dのリモートレリーズ用の端子には2.5φのステレオフォンジャックが使われている。ほとんどのカメラがこの端子を使用していると思う。エントリーモデルはコスト削減の影響でない場合もある。

真ん中(Right)と根元(Gnd)をショートさせると半押し(オートフォーカス)、先端(Left)と根元(Gnd)をショートさせると全押し(シャッターを切る)となる。
回路図

フォトカプラを使って端子をショートさせる。トランジスタやリレーを使ってもいいだろう。LCDは表示用なので省略しても良い。
スケッチ
5秒間隔でシャッターを切るスケッチを書いた。シャッターを切るだけのスケッチならだれでも簡単に書けるので、ここから如何に機能を作りこんでいけるかが腕の見せどころだ。光や音に反応するように改造すればハイスピードカメラ並のすごい映像が撮れるだろう。
#include <LiquidCrystal.h>
#define HALF_RELEASE_PIN (2)
#define FULL_RELEASE_PIN (3)
#define INTERVAL_TIME (5000)
// LCD(RS=14, E=15, DB4=16, DB5=17, DB6=18, DB7=19)
// Analog 0, 1, 2, 3, 4, 5
LiquidCrystal lcd(14, 15, 16, 17, 18, 19);
unsigned long shoot_time;
void setup()
{
// ポート初期化
pinMode(HALF_RELEASE_PIN, OUTPUT);
digitalWrite(HALF_RELEASE_PIN, LOW);
pinMode(FULL_RELEASE_PIN, OUTPUT);
digitalWrite(FULL_RELEASE_PIN, LOW);
// LCD初期化(16文字、2行)
lcd.begin(16,2);
// 1段目のメッセージ表示
lcd.print("Interval Trigger");
// 最初の撮影までの時間を設定
shoot_time = millis() + INTERVAL_TIME;
}
void loop()
{
int diff = shoot_time - millis();
if(diff > 0){
int remain = map(diff, 0, INTERVAL_TIME, 0, 9);
int pos;
// 残り時間インジケータ表示
lcd.setCursor(0, 1);
for(pos=0; pos<remain; pos++)
lcd.print(".");
lcd.print(" ");
delay(200);
}
else{
lcd.setCursor(0, 1);
lcd.print(" ");
// 半押し(フォーカスを合わせる)
digitalWrite(HALF_RELEASE_PIN, HIGH);
delay(800);
// 全押し(写真撮影)
digitalWrite(FULL_RELEASE_PIN, HIGH);
delay(200);
// スイッチオフ
digitalWrite(HALF_RELEASE_PIN, LOW);
digitalWrite(FULL_RELEASE_PIN, LOW);
// 次の撮影時間を設定
shoot_time = millis() + INTERVAL_TIME;
}
}
■[電波][動画]大人の科学の付録8bitマイコン「Japanino」とデジタル一眼レフを使って微速度撮影に挑戦してみよう(前編)
SmaTrig 2 - The improved smart 15-in-1 trigger for SLRs
Arduino/PENTAXケーブルスイッチCS-205
spacewalker - Lumix DMC-GF1で微速度撮影(Time Lapse)動画を撮ってみるテスト。
Arduinoを使ってRICOHのデジカメ、GR Digital、CX3のシャッターを切る
学習研究社
売り上げランキング: 147
MTM05準備中。。
Posted by arms22 on 2010年04月17日

MOUSERに注文していた部品がもりもり届いた。¥7,500以上注文すると¥2,000の送料がタダになるってことで100個単位で部品を注文した。部品1つ1つが国内の部品屋さんで買うよりずっと安い。駄菓子の問屋さんで大人買いする気分だ。こうやって使わない部品がどんどん押し入れに貯まっていくんだろうな。
スタバカップラジオ(2)
Posted by arms22 on 2010年04月11日

スタバカップラジオ完成です。一見、普通のスタバカップアンプですが裏を見ると。。
このようにプッシュスイッチがついています。コンパクトでカッコいいスイッチが見つからなかったので、これで我慢。もっと良いのがあれば取り替えたい。
中身はカオスってます。ラジオモジュールにアンプ回路、電池ボックスがぎゅーぎゅーに入っています。
使い方はこんな感じで。メインの電源を入れて、赤いボタンを押すと動き出す。水色のボタンは番組サーチ、黄色のボタンはボリューム。ボリュームボタンを押すと時々、音が止まる原因不明の不具合が発生中しているが、まぁ、気にしないでおこう。
スタバカップラジオ
http://arms22.blog91.fc2.com/blog-entry-321.html
MTM05準備中。
Posted by arms22 on 2010年04月10日

MTM05に向けて準備をはじめました。今回、ワークショップはやらないけどスタバカップアンプのキットを少し持って行く予定です。
久しぶりに回路と基板を設計中。EAGLEの使い方をど忘れしたけど、なんとかここまでできた。来週中にはPCBCartに基板を発注しないと。
クラムシェル型の謎の部品、ではなく只のスピーカーユニットです。基板の設計と合わせていくつか部品も発注しています。昨日、発注した部品が今日届いた。恐るべし日本の物流。そのうち30分以内に届かなかったら送料タダとかそんなサービスがでてくるんじゃないかと期待している。
gerbv - オープンソースのガーバービューワ
Posted by arms22 on 2010年04月05日

OSX用のガーバービューワを探していた処、オープンソースのガーバービューワ「gerbv」を見つけた。gerbvはソースコードで提供されているけど、幸い、finkとmacportsでパッケージが提供されていた。うちの環境にはmacportsがインストールされているので、次のようにコマンドを実行するとダウンロードからコンパイル、インストールまで自動的に実行される。
$ sudo port install gerbv依存するソフトウェアのコンパイルやらインストールなど合わせて1時間程かかったけど、すんなりインストールできた。gerbvの実行は次の用にコマンドラインから行う。
$ gerbv起動したらメニューからFile→Open Layers...を選んで、
.cmp
.drd
.out
.plc
.sol
.stc
.sts
などのファイルを開けば表示される。
gerbv - A Free/Open Source Gerber Viewer
http://gerbv.gpleda.org/index.html
スタバカップラジオ
Posted by arms22 on 2010年04月04日

aitendoで販売されているFMラジオモジュール[KIT-FM-RDA7088]を買ってみました。500円玉サイズの基板にFMチューナーIC「RDA7088」と部品がすべて実装されています。単三電池×2本で動作し基板上のボタンで番組自動サーチとボリュームコントロールが行えます。
このモジュールはステレオフォンジャックを接続して使うことを前提としているので、外部スピーカを接続する場合はアンプ回路を通してスピーカを接続する必要があります。僕の中ですっかり定番になったHOLTEK社のHT82V739を使ったアンプ回路を接続して動かしてみました。
ラジオはステレオ出力ですが抵抗でMIXさせてモノラル出力にしています。鉄筋コンクリートのマンションの部屋でもクリアな音でちゃんと受信できました。
あとはこいつをスタバのカップに押し込めばスタバカップラジオのできあがり!
基板上のボタンは一旦はずしてワイヤで延長させました。カップのふた部分取り付けるつもりでしたが、うまく行きそうにないので、パネル取り付けタイプに交換するつもりです。
GPS付きArduinoカメラ(3)
Posted by arms22 on 2010年04月01日

Arduinoカメラ用のスケッチを作成して写真を撮ってみました。画像はあまり綺麗ではありませんが、まぁまぁよく撮れています。撮った写真は家に帰ってパソコンにSDカードを繋ぐまで確認できませんが、帰ってからの楽しみが増えたと考えればいいよね。
スケッチにちょこっと手を入れてインターバル撮影もできるようにしました。会社の窓から撮影した写真をiMovieに取り込んで動画にしました。iMovieがいけてなくて写真1枚あたりの表示時間を0.1秒以下にできなくて、ちょっとのんびりした映像になっています。
Arduinoカメラ用のスケッチは次のURLからダウンロードできます。続きを読むにスケッチの全文を掲載しています。興味がある人はどうぞ。
arduino_digicam
http://arms22.googlecode.com/files/arduino_digicam-001.zip
スケッチにはまだGPSの制御を入れていません。また何らかの原因で511枚以上の写真を撮ることができません。FATの制限なのか、使っているFATライブラリのバグか制限か解析中です。それと内蔵RC発信器を使用している為、カメラモジュールとの通信速度が 38400bps 以上に上げれません。38400bps 以上に上げると通信エラーになります。外付けのクリスタルを使えば直ると思う。部品代をケチると良いことないなぁ。
次にやること
- GPS制御の処理を入れる
- FATの問題解析
- クリスタルを実装する
- 省電力制御の処理を入れる
- バッテリー電圧の監視処理を入れる
GPS付きArduinoカメラ(2)
http://arms22.blog91.fc2.com/blog-entry-314.html
GPS付きArduinoカメラ
http://arms22.blog91.fc2.com/blog-entry-311.html
Arduino camera and geotagger
http://jarv.org/sdcam.shtml