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

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

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



Microchip,ミッドレンジの8ビットMCUコアを拡張

Posted by arms22 on 2008年11月12日 0  0

blockimagesmllr.png

 米Microchip Technology社は,同社の8ビットMCUであるPIC12及びPCI16コアを拡張したことを発表した(発表資料)。技術的に多岐に及んでおり,より大きなプログラムサイズとデータサイズ,より深くかつ改良されたハードウェアスタック,リセット方法の追加,14の新命令,Cでプログラム記述をする際のコードサイズ削減の最適化,周辺回路サポートの追加,割り込みのレイテンシ削減などが行われている。


主な変更点
  • 最大56KBのフラッシュプログラムメモリ
  • 最大4KBのデータメモリ
  • 14の新命令
    DDWFCAdd W+F with Carry
    SUBWFBSubtract F-W with Borrow
    LSLFLogical Shift Left
    LSRFLogical Shift Right
    ASRFArithmetic Shift Right
    MOVLPMove Literal to PCLATH
    MOVLBMove Literal to BSR
    BRABranch Relative (signed)
    BRWBranch PC +W (unsigned)
    CALLWCall PCLATH:W
    ADDFSRAdd Literal to FSR (signed)
    MOVIWMove Indirect to W
    MOVWIMove W to Indirect
    RESETReset Hardware & Software

  • 16レベルのハードウェアスタック、追加リセット機能
  • 割り込みのレイテンシ削減(コンテキストの自動退避)
  • 拡張インダイレクトアドレッシング
  • 周辺回路サポートの追加


Microchip,ミッドレンジの8ビットMCUコアを拡張
http://techon.nikkeibp.co.jp/article/NEWS/20081111/161094/

Microchip Enhances 8-bit Mid-range PIC(R) Core - Press Release
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2018&mcparam=en538258

Enhanced Core Solutions
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2692&redirects=enhanced

Make: Tokyo Meeting 02参加してきました。

Posted by arms22 on 2008年11月10日 2  0

Make: Tokyo Meeting 02 参加してきました!朝5:00に起きて新大阪から新幹線で一路多摩美術大学へ。開場前から入り口に沢山の人が並んで待っていました!今回はなんと前回の2倍、1200人もの人が訪れたようです。Meeting終了30分前まで会場にいたけど、人が絶えることはありませんでした。

会場は文化祭のような雰囲気で、アート、クラフト、技術がまざりあって兎に角アツかった!次回は出展側にまわれたらいいなと感じた。以下、気になったモノ、作りたくなったモノ、欲しくなったモノを中心にレポートします。

自作戦車 セグウェイ試乗
自作戦車とセグウェイ試乗。セグウェイは開始してすぐだったので並ばずに試乗することができた。お昼過ぎごろ、自作戦車の真空圧縮空気砲が盛大に火(?)を噴いていた。

ジェットエンジン ジェットエンジン
手作りジェットエンジンのデモ。特大の火炎球と爆音で来場者の注目を浴びていました。エンジン始動時のドーンという爆音に大興奮!

雪風01 雪風02
雪風。スペクトラムアナライザーを電動ファンとパウダービーズで表現しています。これは本当に欲しくなった!パウダービーズをうまく巻き上げる仕掛けもわかったし、もう作ってしまうしかない!、、かも。。

電子楽器ウダー01 電子楽器ウダー02
宇田道信さんの電子楽器ウダー。YouTubeで演奏を見て以来、ずっと気になっていました。生で宇田さんの演奏が聴けて、実際にさわることができたすごくうれしかった。たぶん5回くらいブースに行って演奏聞いてたと思う。販売されたら買ってしまう、、かも。

ニキシー管01 ニキシー管02
IN-12Bを使ったニキシー管時計。ニキシー管が安かったので6個買いました。余っている170V電源と組み合わせて、前回より大きな時計を作ろうかな。

ヒゲキタプラネタリウム
ヒゲキタさんの手作りプラネタリウムと3D立体映像。今回プラネタリムの展示は2つあって、こっちはキロスター(6000個の星)でもう一つはメガスター(200万個の星)。メガスターも見とけばよかった。。
3D立体映像はとってもローテク(?)で実現されていた。赤と青の光源を使って、2つの影を作り出しそれを3Dメガネ(赤と青のフィルムをはってあるアレ)で見ると立体になるという仕掛け。これも作ってみたい。立体影絵とかできそう。

手作りスピーカー
紙のコーンとダンボールエンクロージャーによる手作りスピーカー。いい音していました。残念ながら作り方はまだ非公開。次に作るスタバスピーカーはコーンも自作かな�。

テスラコイルによる演奏
バリバリバイーン!とにかくすげーとしか言えない。演奏というか威嚇?天井の蛍光灯が漏れた電気でチカチカしてました。暗くてうまく写真が撮れませんでした。

折り紙で作った手作り立体ゾートロープ
コマ絵ではなく、折り紙で作った蛙でゾートロープを作っていた。折り紙の蛙が滑らかに動いているように見える。面白い。やっぱり暗くて、うまく撮れなかった。

手に入れたモノ

  • IN-12Bニキシー管、6個 ¥1800
  • Arduino Duemilanove、¥2700
  • Make: 04、¥1500
  • Make: Tokyo Meeting 02の思い出、¥0 プライスレス

Make: Tokyo Meeting 02フォトレポート
塊魂の編みぐるみ、影を追いかける影、パラメトリックスピーカー、自走サーバー、iPhoneリモコンカー、新型折鶴などなど。

Google ブログ - "Make: Tokyo Meeting 02"の検索結果
来場した沢山の方がブログでレポートを掲載されています。気になる人は要チェック。

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