Welcome to touyou note!!

こんにちは。touyouです。touyou noteは、creativeな人間を志すちっぽけな学生が様々なことに体当たりするブログです。
どうぞお楽しみ下さい。

Twitter: @touyoubuntu
HomePage: TOUYOUBUNTU

検索用ワード

PC Linux Windows Cygwin Android Python Java C/C++ C# HTML Processing Lisp Perl Arduino Japanino Unity Google TopCorder Codeforces Vim Emacs Github PSP Gundam Soccer Mobile Dialy Study Music ...

2010年7月13日火曜日

自由研究を楽しもう!!

昨日こんな募集しといてなんだけど・・・
自分でいい案が思いついたので、早速動き出そうと思います(^^)/

[今回の計画]

  1. 学研・大人の科学付録「Japanino」を使用し、オリジナルの測定器を使う。
  2. その測定器を使い、科学実験を行う。
  3. レポートにまとめて、HP、ブログ、YouTube等にその製作過程などをアップする。
そのために、以下のように準備します。
    1. まず、何を実験するか決める(笑)
    2. そのあと、それに見合ったオリジナル測定器をつくるwww
    逆の方が面白いんだけどね(笑)
    まぁ、今回はこうしとくよ。

    つーことで今回は、Japaninoに慣れていこうと思います。









    Japaninoに慣れよう!!

    Ⅰ・Japaninoを動かしてみる

    今回は、この本を参考にしました。勿論、Japaninoが付録になっている大人の科学vol.27だけでも十分楽しめます。

    まず、Japaninoとはどんなものか?
    こんなもんです( ^^)ノシ


    左がJapanino、右が付属のP.O.V(組み立て後)です。

    Japaninoを大人の科学の付録として手に入れているなら、大丈夫だよね?ということで、パソコンで環境整える過程は割愛させて頂きます。

    では、動かしてみましょう。
    IDEを開き、パソコンにJapaninoを接続したら次のようなコードを書いてください。






    // Example 01 : Blinking LED

    #define LED 13 // LEDはデジタルピン13に接続

    void setup()
    {
    pinMode(LED, OUTPUT); // デジタルピンを出力に設定
    }

    void loop()
    {
    digitalWrite(LED, HIGH); // LEDを点ける
    delay(1000);             // 1秒待つ
    digitalWrite(LED, LOW); // LEDを消す
    delay(1000);             // 1秒待つ
    }

    これをマイコンボードに書き込むと、JapaninoのLという字が書いてあるLEDと、P.O.Vの1のLEDが点滅するはずです。
    そうすれば成功です。次のステップに進みましょう。

    Ⅱ・P.O.Vを使いこなせ!!

    僕の実験では全く関係がありませんが、P.O.Vも使いこなしてみましょう。
    郷に入れば郷にならえ、大人の科学のサンプルスケッチを動かして見ましょう。


    // Japanino POV by Musashinodenpa
    
    #define LEDPIN 7     // どのピンからLEDをつなぐか
    #define SWPIN 6      // スイッチをつなぐピン
    
    // ビットマップ(画像)を定義
    byte bitmap[] = {
    0b00000000,
    0b01000001,
    0b01111111,
    0b01000001,
    0b00000000,
    0b00000000,
    0b00001110,
    0b00011111,
    0b00111111,
    0b01111110,
    0b00111111,
    0b00011111,
    0b00001110,
    0b00000000,
    0b00000000,
    0b00111111,
    0b01000000,
    0b01000000,
    0b00111111,
    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);
      }
     }
    }
    もはやコピペです(^へ^;)
    上手く動かすとこうなっちゃいます。(さいごの何秒か余計でしたねwww)
    Convert »»  iPod - Blog - Gazo - iTunes - Bookmark - Twitter
    Powered by TubeFire.com

    疲れたので今日はここまで。

    0 件のコメント:

    コメントを投稿