2010-05-30

[Japanino] 大人の科学で第1歩

大人の科学の付録で遊んでみました。
karaageさんのJapaninoでいろいろやってるのを見てやってみました。
■[動画][電波]大人の科学の付録8bitマイコン「Japanino」で小室さん復帰を祝ってPOVで「Get Wild」
さらに応用編まで。やるなぁ。後編の準備もしてたみたいなので期待大だな。
■[電波][動画]大人の科学の付録8bitマイコン「Japanino」とデジタル一眼レフを使って微速度撮影に挑戦してみよう(前編)

僕の方はこんな感じでした。
この付録はLEDが7個ついた棒があって、結構楽しめるかも。
小さなスピーカーもあって、音も出るみたい。
Arduinoのラジコン計画も1年以上放置してしまっていて、だめだなぁ。



今日はラスクをたくさん食べたので、
RUSK という文字列を表示してみました。
一人で撮影は難しくて変な方向からになってしまいました。
ソースコードはこんな感じです。
サンプルから、ビットマップ設定する箇所のの値を換えただけ。


// Japanino POV by Musashinodenpa

#define LEDPIN 7 // どのピンからLEDをつなぐか
#define SWPIN 6 // スイッチをつなぐピン

// ビットマップ(画像)を定義(ココでRUSKと設定。1の所が点灯します。
// 首を右に傾けてみると何となく見えるかも。)
byte bitmap[] = {
0b00000000,
0b01111111,
0b00001001,
0b00001001,
0b01110110,
0b00000000,
0b00000000,
0b00111111,
0b01000000,
0b00111111,
0b00000000,
0b00000000,
0b01000110,
0b01001001,
0b00110001,
0b00000000,
0b00000000,
0b01111111,
0b00001100,
0b01110011,
0b00000000,
0b10000000 // 最後の行は0b10000000(つまり目印)
};


unsigned char pos = 0; // 現在のビットマップ中の位置
unsigned char i = 0;


void setup() {
// LEDが接続されたピンを出力に設定します
for(char pin = LEDPIN; pin < LEDPIN + 7; pin++) {
pinMode(pin, OUTPUT);
}
pinMode(SWPIN, INPUT); // スイッチのピンを入力に
digitalWrite(SWPIN, HIGH); // 内蔵プルアップ有効
}

void loop() {

if(digitalRead(SWPIN) == LOW) { // スイッチがオンならば1回描画

delay(6); // すぐ始めると詰まって見えるのでちょっと待つ
pos = 0;

while(bitmap[++pos] != 0b10000000) { // ビットマップの端まで繰り返し
for(i = 0; i < 7; i++) { // ビットマップの高さの分だけ繰り返し
// ビットマップデータから1ビットを取り出してピンの状態に反映
digitalWrite(LEDPIN + 6 - i, (bitmap[pos] >> i) & 0b00000001);
}
delay(1); // LEDが光っている時間
}

for(i = LEDPIN; i < LEDPIN + 7; i++) { // 全ドット、消灯
digitalWrite(i, LOW);
}
}
}


結局今回も arudino IDE が起動せず。(フィジカルコンピューティング第1歩
root でログインして作業しました。どこかに設定ファイルがあるはずなんだけど、よくわからない。。

大人の科学マガジン Vol.27(8ビットマイコン)
大人の科学マガジン編集部
学習研究社 ( 2010-05-12 )
ISBN: 9784056058185
おすすめ度:アマゾンおすすめ度


ちなみに、動画は iPhone 3GS 標準のビデオで撮って、
dropbox にポイッと sync して、
mac miniで dropbox から再生確認して YouTube にアップロード。
そうすると、twitterfeed によって、ブログ更新が勝手につぶやかれる。
誰か見てくれるかどうかはわからないけど、簡単だなぁ。