なんでも作っちゃう、かも。

Arduino/Make/フィジカルコンピューティング/電子工作あたりで活動しています。スタバの空きカップを使ったスタバカップアンプなど製作。最近はもっぱらArduinoと3Dプリンタの自作に興味があります。

大人の科学マガジン vol.27 「ジャパニーノ」(その2)使い方のまとめ。

Posted by arms22 on 2010年05月18日 2  0

大人の科学付録「ジャパニーノ」の使い方を簡単にまとめてみる。基本的には大人の科学の手順通りすすめればOK。


1.IDEのインストール



Japanino特設サイトからIDEをダウンロードしてアプリケーションフォルダにコピーする。Arduino 0018をベースにメニューやメッセージなどが日本語に翻訳されているので、大人の科学を買ってない人もダウンロードして使うと良いと思う。

IDE日本語版
http://arduino-i18n.googlecode.com/files/arduino-0018-japanino-2.dmg


2.ドライバーソフトのインストール


本家ArduinoはFTDIのUSBシリアルICを使っているけど、JapaninoはSilicon LabsのICを使っているので、別途ドライバーソフトをインストールする必要がある。IDEにSilicon Labsのドライバが入っているので、別途ダウンロードする必要はないと思うけど、最新版は次のURLから見つかるはず。

ドライバーソフト(Mac_OSX_VCP_Driver.zipをクリック)
http://www.silabs.com/support/pages/support.aspx?ProductFamily=USB%20to%20UART


3.セットアップ


Japaninoを接続(新しいネットワークが~と表示されたらキャンセルする)して、IDEを立ち上げる。ツール→シリアルポート→/dev/cu.SLAB_USBtoUARTを選択、ツール→マイコンボード→Gakken Japaninoを選択する。


4.スケッチのアップロード


取り敢えず特設サイトの「P.O.Vで"I ♥ U"」のスケッチを動かしてみる。ファイル→新規を選んで新しいスケッチを作成する。「P.O.Vで"I ♥ U"」のスケッチコピーして新しいスケッチに張付けて、マイコンボードに書き込むボタンを押す。

※※ここで注意※※
OSX環境では書き込むボタンを押した後、コンソールに「コンパイル後のスケッチサイズ」というメッセージが表示されたらJapaninoのリセットボタンをすかさず押すこと。そうしないとスケッチのアップロードに失敗する。何回かやればコツを掴めると思う。


特設サイトには"I ♥ U"以外にもいくつかスケッチが公開されているので、ダウンロードして動かしてみよう。一通り動かしたら少し改造して、オリジナルのメッセージを表示させたりすると楽しいよ。






大人の科学マガジン Vol.27(8ビットマイコン) (Gakken Mook)
大人の科学マガジン編集部
学習研究社
売り上げランキング: 408



Arduinoをはじめようキット
スイッチサイエンス
売り上げランキング: 1043



// Japanino POV (scrolling) by Musashinodenpa

#define LEDPIN 7
#define NUMLED 7
#define SWPIN 6
#define WIDTH 25     // スクロール表示する幅

// ビットマップ(画像)を定義
byte bitmap[] = {
  0b00000000,
  0b00000000,

  // NA
  0b00110010,
  0b00001111,
  0b00000010,
  0b00100000,
  0b01010000,
  0b01111110,
  0b00010001,
  0b00000000,
  0b00000000,
  
  // NN
  0b01000000,
  0b00100000,
  0b00011000,
  0b00100110,
  0b01000000,
  0b01000000,
  0b00100000,
  0b00000000,
  0b00000000,
  
  // DE
  0b00000010,
  0b00000010,
  0b00111010,
  0b01000110,
  0b01000010,
  0b00000001,
  0b00000001,
  0b00000000,
  0b00000000,

  // MO
  0b00001010,
  0b00111111,
  0b01001010,
  0b01001010,
  0b01001010,
  0b00100000,
  0b00000000,
  0b00000000,
  0b00000000,
  
  //TUKURU
  0b00000100,
  0b01111110,
  0b00000001,
  0b00000100,
  0b00000011,
  0b01111110,
  0b00010100,
  0b00010100,
  0b00000000,
  0b00000000,

  //du
  0b00001000,
  0b01001000,
  0b01001000,
  0b00110000,
  0b00000000,
  0b00000000,

  //TI
  0b00000010,
  0b00010010,
  0b00001111,
  0b00001010,
  0b01001010,
  0b01001000,
  0b00110000,
  0b00000000,
  0b00000000,

  //ya
  0b00001000,
  0b01011100,
  0b01001000,
  0b00110000,
  0b00000000,
  0b00000000,

  //U
  0b00001000,
  0b00000101,
  0b01000110,
  0b01000100,
  0b00111000,
  0b00000000,
  0b00000000,

  //,
  0b00000000,
  0b00100000,
  0b01000000,
  0b00000000,
  0b00000000,

  //KA
  0b00100100,
  0b00011100,
  0b00000111,
  0b01000100,
  0b00111100,
  0b00000010,
  0b00001100,
  0b00000000,
  0b00000000,

  // MO
  0b00001010,
  0b00111111,
  0b01001010,
  0b01001010,
  0b01001010,
  0b00100000,
  0b00000000,
  0b00000000,
  0b00000000,

  //.
  0b00000000,
  0b01100000,
  0b01100000,
  0b00000000,
  0b00000000,
  
/*
  0b00000000,
  0b01110000,
  0b01000000,
  0b01000000,
  0b01000000,
  0b01111111,
  0b00000000,
  0b01100000,
  0b00011000,
  0b00001110,
  0b00001001,
  0b00001110,
  0b00011000,
  0b01100000,
  0b00000000,
  0b01111111,
  0b00001001,
  0b00001001,
  0b00001001,
  0b00001111,
  0b00000000,
  0b01100000,
  0b00011000,
  0b00001110,
  0b00001001,
  0b00001110,
  0b00011000,
  0b01100000,
  0b00000000,
  0b01111111,
  0b00000010,
  0b00001100,
  0b00011000,
  0b01111111,
  0b00000000,
  0b00000000,
  0b01111111,
  0b00000000,
  0b00000000,
  0b01111111,
  0b00000010,
  0b00001100,
  0b00011000,
  0b01111111,
  0b00000000,
  0b01111111,
  0b01000001,
  0b01000001,
  0b01111111,
  0b00000000,
//*/
  0b10000000
};

unsigned char pos;
char scroll = WIDTH; // スクロール位置
unsigned char i, j;
byte b; // 画像のバッファ(1列分)

void setup() {
  for(char pin = LEDPIN; pin < LEDPIN + NUMLED; pin++) {
    pinMode(pin, OUTPUT);
  }
  pinMode(SWPIN, INPUT);
  digitalWrite(SWPIN, HIGH);
}

void loop() {

  if(digitalRead(SWPIN) == LOW) {

    delay(8);
    
    tone(14, 800, 50);
    
    pos = 0;
    scroll--;  // 表示の開始位置をシフト

    for(j = 0; j < WIDTH; j++) { // スクロール処理
      if(j >= scroll && scroll > 0) { // 右端から始まる
        b = bitmap[pos++];
      } 
      else if(scroll < 0) { // 左端に消えていく
        b = bitmap[-scroll + pos];
        if(b == 0b10000000) { // 画像の末端まできた
          if(j == 0) { // 完全に左へ消えた
            scroll = WIDTH;    // また右端から始める
            break;
          }
          b = 0;
        } 
        else {
          pos++;
        }
      } 
      else {
        b = 0;
      }

      for(i = 0; i < NUMLED; i++) {
        digitalWrite(LEDPIN + NUMLED - 1 - i, (b >> i) & 0b00000001);
      }
      delay(1);
      for(i = LEDPIN; i < LEDPIN + NUMLED; i++) {
        digitalWrite(i, LOW);
      }
    }
  }
}

Ads by Google

2 Comments

きぃたん@大阪 says..."表示"
若干、表示に問題があるかも?
「なんでも作っちゃってます」
のような…
2010.05.22 14:51 | URL | #mQop/nM. [edit]
arms22 says..."Re: 表示"
ん?
フォントは「なんでも作っちゃう、かも。」ですよ!
たぶん空目。。
2010.05.23 07:43 | URL | #- [edit]

Leave a reply






管理者にだけ表示を許可する

該当の記事は見つかりませんでした。