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

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

Processingをはじめよう (Make: PROJECTS)

Posted by arms22 on 2011年10月18日 0  0

picture_large978-4-87311-515-3.jpeg

オライリージャパンから新しいMake:本が発売される。Processingを通してプログラミングの基礎を習得する本かな。Arduinoでセンサーデータを可視化する方法も解説されている。日本語版はクイックリファレンスとAndroidプログラミングの解説も。10月22日発売。

Processingは、イメージ、アニメーション、インタラクティブなグラフィックスをプログラムするためのオープンソースのプログラミング言語です。紙にスケッチするように、すぐに結果が確認できることから、プログラミング入門としても優れています。開発者自らが執筆した本書では、シンプルな図形の描画にはじまり、変形、インタラクティブな動き、関数やオブジェクトを使ったプログラム、さらにArduinoを使ってセンサーのデータを可視化する方法まで、わかりやすく順を追って解説します。日本語版ではクイックリファレンスとAndroidプログラミングに関する解説を加えました。Processing 2.0対応。



O'Reilly Japan - Processingをはじめよう
http://www.oreilly.co.jp/books/9784873115153/

Make: Japan:『Processingをはじめよう』刊行記念 オープンソースツールで始めるハードウエアハックの夕べ
http://jp.makezine.com/blog/2011/10/processing_event.html


Processingをはじめよう (Make: PROJECTS)
Casey Reas Ben Fry
オライリージャパン
売り上げランキング: 2980


Arduinoで遊ぼう - フルカラーLED

Posted by arms22 on 2008年11月25日 4  0

Make Tokyo Meeting 02で買ってきたArduino Duemilanoveで遊んでみました。Arduinoの説明や環境構築については下記URLを参照してください。

統合開発環境とUSBドライバをインストールして、Arduino DuemilanoveをMacに繋げば環境構築完了。試しにLED点滅のサンプルをダウンロードするとすぐにLEDの点滅が開始される。サンプルを少し変えて、LEDの点滅周期を変えるなんてこともすぐにできてしまう。

proc_sketch_081118a_screen.png
さっそく何か作ってみた。↑のようなカラーチャートから色を読み取りその色情報をArduino Duemilanoveに送るProcessingアプリを作成した。カラーチャート上でマウスを動かすとカーソルの下の色を読み取り、Arduino Duemilanoveに送信する。Arduino Duemilanoveは送られて来た色情報を元にフルカラーLEDを点灯させる。

新日本無線のNJU6061というLEDドライバICがある。PWM制御型の3色LEDドライバだ。このICの一部の機能をArduino Duemilanoveで実装して、フルカラーLEDを光らせている。

簡易版PWM制御型3色LEDドライバ仕様

  • 各色16step(内部256step*3色)
  • 波形補正機能(非線形補正を行い自然に明るさが変わっているように見せる)
  • UART 9600bps
制御コマンドは次のデータセットのコマンドのみ実装する。
  • LED1 PWMデータセット 0110 xxxx
  • LED2 PWMデータセット 0111 xxxx
  • LED3 PWMデータセット 1000 xxxx

回路
Arduino DuemilanoveのPWM 3にRED、PWM 5にGREEN、PWM 6にBLUE、カソードコモンをGNDに接続する。

サンプルスケッチ
#define INS_MASK      0xf0
#define DAT_MASK      0x0f
#define INS_LED1_DATA 0x60
#define INS_LED2_DATA 0x70
#define INS_LED3_DATA 0x80

int LED1_step;
int LED2_step;
int LED3_step;

#define LED1_port 3
#define LED2_port 5
#define LED3_port 6

const int step_to_duty[] = {
     0,  2,  4,  6,
    10, 16, 26, 38,
    54, 72, 92,118,
   146,180,216,255,
};

void setup(){
  LED1_step = 0;
  LED2_step = 0;
  LED3_step = 0;
  pinMode(LED1_port,OUTPUT);
  pinMode(LED2_port,OUTPUT);
  pinMode(LED3_port,OUTPUT);
  digitalWrite(LED1_port, 0);
  digitalWrite(LED2_port, 0);
  digitalWrite(LED3_port, 0);
  Serial.begin(9600);
}

void loop(){
  if(Serial.available() > 0){
    int ledIns = Serial.read();
    if((ledIns & INS_MASK) == INS_LED1_DATA){
      LED1_step = ledIns & DAT_MASK;
      if(!LED1_step){
        digitalWrite(LED1_port, LOW);
      }else{
        analogWrite(LED1_port, step_to_duty[LED1_step]);
      }
    }
    else if((ledIns & INS_MASK) == INS_LED2_DATA){
      LED2_step = ledIns & DAT_MASK;
      if(!LED2_step){
        digitalWrite(LED2_port, LOW);
      }else{
        analogWrite(LED2_port, step_to_duty[LED2_step]);
      }
    }
    else if((ledIns & INS_MASK) == INS_LED3_DATA){
      LED3_step = ledIns & DAT_MASK;
      if(!LED3_step){
        digitalWrite(LED3_port, LOW);
      }else{
        analogWrite(LED3_port, step_to_duty[LED3_step]);
      }
    }
  }
}


サンプルスケッチ: PWM制御型3色LEDドライバ
http://xfind.hp.infoseek.co.jp/electric/arduino/sketch_081118a.zip

Make日本語版 Vol.04記事「初めてのArduino」PDF公開
http://jp.makezine.com/blog/2008/11/make_lrn_arduino.html

フィジカル・コンピューティング: Arduinoを使おう
http://www.eleki-jack.com/FC/arduino/

建築発明工作ゼミ2008: Arduino
http://kousaku-kousaku.blogspot.com/2008/07/arduino.html

四谷工作研究所: Arduino
http://www.artstudium.org/kousaku/arduino/

Arduino.cc
http://www.arduino.cc/



Arduino Uno SMD
Arduino Uno SMD
posted with amazlet at 11.02.04
スイッチサイエンス
売り上げランキング: 21734



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