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

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

NT京都行ってきた。

Posted by arms22 on 2010年03月27日 2  0

京都は西院、春日神社で行われたニコニコ技術部のイベント、NT京都に行ってきました。関西で行われるのは今回で3回目かな?以前にも増して沢山の人が参加していました。

IMGP5072.jpg
春日神社。巫女さんが超美人。

IMGP5081.jpg
HDDを再利用した時計。ピカピカのディスクが綺麗。

IMGP5085.jpg
WiiフィットのボードでコントロールされるLEGOのロボット。顔がかわいい。

IMGP5100.jpg
レーザーハープ。レーザの光を遮ると音がなります。これはカッコいい。Make:のvol6でも紹介記事が載ってたね。

IMGP5104.jpg
hsgwさんのLEDキューブ。512個のLEDが圧巻です。立体的に光るLEDはナニか可能性を感じさせられる。

IMGP5116.jpg
羽ばたく飛行機「オーニソプター」。本当にぱたぱたと羽ばたいて飛びます。キットも発売されていました。買えばよかったかなぁ。

IMGP5127.jpg
初音ミクカラーのカブ。アマゾンロゴ入りの荷台が良い。

NT京都201003
http://j.nicotech.jp/ntkyoto2010

N:KM(Nico-TECH:Kyouo Meeting)参加してきました。
http://arms22.blog91.fc2.com/blog-entry-225.html

N:TM(Nico-TECH : Takatsuki Meeting)参加してきました。
http://arms22.blog91.fc2.com/blog-entry-176.html


Arduino Fio

Posted by arms22 on 2010年03月23日 0  0

Arduino Fio
(via arduino.cc -> Hardware -> Fio)

Arduino互換機FIOが正式にArduinoのラインアップに加わったようです。Arduino FioはIAMASの小林さんとSpark Funが共同で開発したArduinoボードで、XBee用のソケットとリチウムポリマー充電回路が搭載されています。従来、ATmega168pだったマイコンはATmega328Pに変わってROM/RAM容量が2倍になりました。XBee用のソケットは基板の裏側についています。

主な仕様

マイコンATmega328P
動作電圧3.3V
入力電圧3.35 -12 V
充電電圧3.7 - 7 V
デジタル入出力14本
アナログ入力8本
フラッシュメモリ32KB(うち2KBはブートローダ)
SRAM2KB
EEPROM1KB
クロック周波数8MHz

スケッチのアップロードはXBee経由かFTDIケーブル、またはSparkFunのブレイクアウトボードを使う。オンボードのUSBミニBコネクタはリチウムポリマー充電用でシリアル通信には使えません。

ん?アナログ入力が他のボードと比べて2つ多い。

Arduino - Arduino Fio
http://arduino.cc/en/Main/ArduinoBoardFio

Arduino - Arduino Fio Programming
http://arduino.cc/en/Main/ArduinoBoardFioProgramming


エンジニア 精密圧着ペンチ PA-09

Posted by arms22 on 2010年03月22日 0  0

エンジニアの精密圧着ペンチPA-09を買いました。これで好きなだけコンタクトピンを圧着できます。シリコンハウス共立でもらった「コンタクトピン圧着のススメ」を読みながら、圧着の基礎を学びました。

IMGP5048.jpg
グリップの赤がカッチョ良すですな。でも変なにおいがします。。

IMGP5053.jpg
リード線の皮膜を剥いで、コンタクトピンにセットします。ぶきっちょなのでこの状態に持っていくのに結構苦労します。この状態のまま圧着ペンチにコンタクトピンを載せて圧着します。これ慣れるまでなかなかうまくできません。先にコンタクトピンを圧着ペンチにセットしてから、リード線をコンタクトピンにセットした方が簡単でした。

IMGP5054.jpg
リード線、皮膜の順に圧着します。まぁまぁうまくできました。数をこなせばもっと綺麗にできると思います。



エンジニア 精密圧着ペンチ PA-09
エンジニア
売り上げランキング: 646




日本橋ストリートフェスタに行ってきた。

Posted by arms22 on 2010年03月21日 3  0

IMGP5057.jpg
リアルダンボー。勝手に本日のMVPに決定。

IMGP5065.jpg
惜しくもMVPを逃したけどひときわ目立っていた、ナビタイムの中の人。

他にもジャックスパロウやテトリスバー(三倍早い)、マリオブラザース、キレたピカチュウ、ムックの遺影を持ったガチャピンなど、沢山のコスプレイヤーの方々がいました。来年はサザエさん一家のコスプレで参加してみたい、かも。


Make: Tokyo Meeting 05

Posted by arms22 on 2010年03月20日 0  0

Make: Tokyo Meeting 05の開催日時と場所が決まりました!5月22日(土)と23日(日)の二日間、会場は前回と同じ東京工業大学大岡山キャンパス。太平洋を挟んでサンフランシスコでもMaker Faire Bay Areaが催されるそうです。ここは一つUSTREAMで同時中継でもしてほしいところですね。

出展申し込みは来週3月24日から。さてさて今回は何をもって行きましょうかね。

開催日:2010年5月22日(土)、23日(日)
会場:東京工業大学 大岡山キャンパス(東京都目黒区大岡山2-12-1)
入場:無料
交通:東急大井町線・目黒線「大岡山駅」徒歩1分
主催:株式会社オライリー・ジャパン
共催:東京工業大学、多摩美術大学 情報デザイン学科


Make: Tokyo Meeting 05 - 日時と場所決定!
http://jp.makezine.com/blog/2010/03/mtm05_announce.html


GPS付きArduinoカメラ(2)

Posted by arms22 on 2010年03月14日 3  0

arduino_camera_case.jpg
スタイリングワックスの空き箱でArduinoカメラのケースを作った。左側の青マルは電源オン/オフ兼用シャッタースイッチ、右側のニョキっと飛び出した部分はカメラのレンズ、上側の丸の部分からはGPSのアンテナが見えている。

arduino_camera_case_inside.jpg
箱の内側に貼付けた1mmの厚紙で箱の強度を上げている。GPS、カメラモジュール、シャッタースイッチは両面テープで固定し、基板は中に入れるだけという超テキトー仕上げ。


最近は作品をケースに入れて仕上げることを心がけてきたけど、これからは壊れにくい物の作り方も考えて行きたいと思う。基板に半田付けしたワイヤが根元から折れては困るからね。これはコネクタを使って部品同士を繋げるようにすれば大丈夫だと思う。壊れにくい物作りのノウハウみたいなことがまとめて書かれた本とかWEBページないかな?


GPS付きArduinoカメラ
http://arms22.blog91.fc2.com/blog-entry-311.html



圧着ペンチ買わないと!

エンジニア 精密圧着ペンチ PA-20
エンジニア
売り上げランキング: 1520


Arduinoで遊ぼう - GPSを使った高精度な時計

Posted by arms22 on 2010年03月13日 12  0

Arduino+GPS時計
GPS衛星から発信される信号には、衛星に搭載された原子時計の時刻情報が入っている。GPS受信機はこの時刻情報をもとにGPS受信機に搭載されている時計の時刻を校正することで、高精度な時刻情報を得ている。この時刻情報を使って高精度なGPS時計を作った。

GPS受信機をArduinoに接続し、1秒周期で送られてくる時刻情報をLCDに表示している。赤く光っている部品がGPS受信機「LS20031」。このGPS時計は電池一本で何年も動かすことはできないし、屋内ではGPS衛星からの信号を受信することもできない。GPS受信機から送られてくる時刻情報は確かに正確だが、Arduino間の通信時間やArduinoの処理時間などでLCDに表示される時間は数100ms秒遅れる。


Arduinoと接続する



Arduino+GPS時計の回路図

キャラクタLCDとArduinoは次のように接続する。
RS→アナログ0番
R/W→GND
E→アナログ1番
DB4→アナログ2番
DB5→アナログ3番
DB6→アナログ4番
DB7→アナログ5番
GPS受信機とArduinoは次のように接続する。
VCC→3.3V
RX→(未接続)
TX→デジタル2番
GND→GND

Arduino+GPS時計
バックライトLEDのアノード端子は基板上のJ3をショートさせてVCCと接続し、カソード端子は110Ω(R9)抵抗をかいしてGNDに接続している。


ライブラリのインストール


GPS受信機からはNMEAフォーマットと呼ばれるテキスト形式のデータが送られてくる。
$GPGGA,125333.000,3444.4637,N,13532.4905,E,1,5,1.41,32.7,M,34.4,M,,*62
$GPRMC,125333.000,A,3444.4637,N,13532.4905,E,0.09,1.94,110310,,,A*63

NMEAフォーマットは人が理解するには都合が良いが、マイコンのプログラムで扱うには都合が悪い。そこでNMEAパーサー「TinyGPS」ライブラリを使ってNMEAフォーマットをプログラムで扱いやすい形に変換する。
次のURLからライブラリをダウンロードし、Arduinoのライブラリフォルダにコピーする。

TinyGPS | Arduiniana
http://arduiniana.org/libraries/tinygps/

GPS受信機との通信にソフトウェアシリアルを使うので、次のライブラリもダウンロードする。

NewSoftSerial | Arduiniana
http://arduiniana.org/libraries/newsoftserial/


サンプルスケッチ


#include <NewSoftSerial.h>
#include <TinyGPS.h>
#include <LiquidCrystal.h>

// NMEAパーサー TinyGPS
TinyGPS gps;

// ソフトウェアシリアル(RX=2, TX=3)
NewSoftSerial nss(2, 3);

// LCD(RS=14, E=15, DB4=16, DB5=17, DB6=18, DB7=19)
LiquidCrystal lcd(14, 15, 16, 17, 18, 19); // analog 0, 1, 2, 3, 4, 5

void setup()
{
  // LCD初期化(16文字、2行)
  lcd.begin(16,2);
  // PCとのシリアル通信初期化
  Serial.begin(115200);
  // 最初のメッセージ表示
  lcd.print("No GPS Signal.");
  // ソフトウェアシリアル初期化(9600bps)
  nss.begin(9600);
}

void loop()
{
  int year;
  byte month, day, hour, minute, second, hundredths;
  bool newdata = false;

  // GPS受信機から送られたデータがある間
  while(nss.available()){
    char c = nss.read();
    // シリアルモニタに受信した文字を送る
    Serial.print(c);
    // encode()で1文字ずつ解析
    if(gps.encode(c)){
      newdata = true;
    }
  }

  if(newdata){
    // 画面をクリア
    lcd.clear();

    // 日付、時間を取得
    gps.crack_datetime(&year, &month, &day, &hour, &minute, &second, &hundredths);

    // 1行目、1文字目にカーソルを移動
    lcd.setCursor(0, 0);
    lcd.print(static_cast<int>(year));
    lcd.print("/");
    lcd.print(static_cast<int>(month));
    lcd.print("/");
    lcd.print(static_cast<int>(day));

    // 2行目、3文字目にカーソルを移動
    lcd.setCursor(2, 1);
    // GPSの時間はUTC(協定世界時)なので+9時間してJSTにする
    lcd.print(static_cast<int>((hour + 9) % 24));
    lcd.print(":");
    lcd.print(static_cast<int>(minute));
    lcd.print(":");
    lcd.print(static_cast<int>(second));
    lcd.print(".");
    lcd.print(static_cast<int>(hundredths));
  }
}



Arduinoをはじめよう (Make:PROJECTS)
Massimo Banzi
オライリージャパン
売り上げランキング: 3176




自作レーザーカッターの実現可能性

Posted by arms22 on 2010年03月10日 0  0

最近、レーザーカッターを自作できないか考えている。ハサミやカッターによる加工では複雑な形や綺麗な曲線の切り出しが行えないからね。レーザーカッターを自作することができたら、どんなに複雑な形でも短時間に大量に作ることができる!まぁ、自作できたらの話だけど・・・

レーザーカッターはレーザー光を使って材料をカットする機械だ(そのまんま!)。レーザー光はレーザー発振器(2枚の向かい合った鏡で光を増幅する装置)を用いて人工的に作られる光だ。このレーザー光をレンズを使って直径数μm以下の微小スポットに集光することで材料を瞬時に発熱、燃焼、蒸散させる。

紙とスチレンボードがカットできたらいいので、精度や速度を割り切ってしまえば1~2万円程度で作れると思う。たぶん。レーザーカッターを自作する上で課題となる項目をあげてみた。

  • 光学系
    レーザーやレンズ。レーザーはDVDやBlu-rayの半導体レーザーが使えるみたい。レンズは虫眼鏡で代用?
  • 駆動系
    ステッパ制御。XYの移動をドウスルか?取り敢えずレゴか?
  • 制御系
    制御マイコンはArduinoかMAKE Controllerかな。PCからどうやってCADデータを送るか?取り敢えずビットマップを送って黒い所を焼くとか、そうゆう簡易制御でいいと思う。


スキャナを2つ使って作った簡易レーザーカッター。レーザー光の直径が2~3mmあるので精度度外視だけど、取り敢えず動いている。



レーザー - Wikipedia
http://ja.wikipedia.org/wiki/レーザー

Laser cutter, start slicing stuff for under 50 dollars
http://www.instructables.com/id/Laser-cutter-start-slicing-stuff-for-under-50-dol/

Laser Diodes - PSXBOY.COM
http://www.psxboy.com/catalog_123.html






GPS付きArduinoカメラ

Posted by arms22 on 2010年03月07日 0  0

GPSロガーを作るつもりでしたが、GPS付きカメラを作ることになりました。カメラ付きGPSロガーともいう。。

arduino_camera_shield.jpg
左からリチウムポリマーシールド、自作Arduino(Arduino Pro互換機)、SDカード+GPS+カメラシールド。カメラとGPSはまだ半田付けしていませんが、ハードウェアはほぼ完成。

arduino_camera_stacked.jpg
こんな感じでシールドを重ねます。60x60x60mmの立方体紙ケースに収納予定。


主な仕様はこんな感じで。

  • マイコン:Arduino Pro 3.3V 8MHz 328互換
  • カメラ:JPEGカラーカメラC328
  • GPS:LS20031
  • 電源:リチウムポリマーバッテリー 3.7V 1000mA
  • メディア:SDカード
  • ディスプレイ:なし



Arduino camera and geotagger
http://jarv.org/sdcam.shtml

4Motors ShieldとWATTMETER Shield

Posted by arms22 on 2010年03月06日 0  0

またまたガリレオ・セブンさんのオフィスにおじゃまして来ました。今日は3/8発売の「4Motors Shield」と「WATTMETER Shield」を見せてもらいました。他にも開発中のシールドの情報などいろいろ面白いお話が聞けました。

4Motors Shield
4Motors Shield。4つのモーターが制御できるシールドです。モーターの代わりにLEDも使えるようです。

WATTMETER Shield
WATTMETER Shield。U_RD社のクランプ型電流センサーを使用しています。キットには2つセンサーが付いて来ます。最大5つまでセンサーを追加できるようです。配電盤に埋め込んで使うのかな?

WeatherDuino
風量や雨量も計測できるよう改良されたWeatherDuinoです。

IMGP4770.jpg
謎の紙ロボを組み立てていたのでお手伝い。

HUBO
ベシ○もびっくり!紙ア○モ!

HUBO
がんばればちゃんと立ちます。


galileo 7 (ガリレオ・セブン)
http://galileo-7.shop-pro.jp/


Arduinoで遊ぼう - 動作クロックを切り替えて省電力制御

Posted by arms22 on 2010年03月04日 2  0

Arduinoの動作クロックを変更するライブラリ「Prescaler」を作った。普段、Arduinoは16MHz(Proは8MHz)で動いている。このライブラリを使えば8MHz、4MHz、2MHz、1MHzと動的に動作クロックを切り替えることができる。USB電源やDC電源を使って動作させている場合はそれほど省電力に気を使う必要はないだろう。でも、電池やソーラーセルで動作させたい場合は別だ。動作クロックを切り替えて、積極的に省電力制御を行おう。

次の図はATmega168Pの動作クロックと消費電流の関係を表している。当然、動作クロックが低いほど消費電流は少なくなる。
ATmega168P ACTIVE SUPPLY CURRENT vs. FREQUENCY
(ATmega168Pのデータシートより)

次の関数・ライブラリはArduinoが16MHz(Proは8MHz)で動いていることを前提に作られている。その為、Prescalerで動作クロックを切り替えると正しく動作しなくなる。

  • Serialライブラリ
  • tone()
  • analogRead()
  • micros()
  • millis()
  • delayMicroseconds()
  • delay()

delay()/millis()については代替関数を用意しているので、これらを使う。
  • scaledMillis()
  • scaledDelay(ms)


ライブラリのインストール


次のURLからPrescalerライブラリをダウンロードし、Arduinoのライブラリフォルダにコピーする。

Prescalerライブラリ
http://arms22.googlecode.com/files/Prescaler001.zip

サンプルスケッチ


#include <Prescaler.h>

const int led_pin = 13;

void setup()
{
  pinMode(led_pin, OUTPUT);
  Prescaler.set(clock_div_8);
}

void loop()
{
  scaledDelay(500);
  digitalWrite(led_pin, HIGH);
  scaledDelay(500);
  digitalWrite(led_pin, LOW);
}

Prescaler.set()でSystem Clock Prescalerの分周比を設定する。Arduino Pro 3.3V 8MHz 168を使って分周比1から256まで設定した時の消費電流を計測してみた。
div18MHz5.0mA
div24MHz3.4mA
div42MHz2.5mA
div81MHz1.8mA
div16500kHz1.5mA
div32250kHz1.3mA
div64125kHz1.2mA
div12862.5kHz1.2mA
div25631.25kHz1.1mA



※実は Arduino playground 全く同じようなライブラリがすでにあったりする。。

Arduino playground - Prescaler
http://www.arduino.cc/playground/Code/Prescaler



Making Things Talk ―Arduinoで作る「会話」するモノたち
Tom Igoe
オライリージャパン
売り上げランキング: 107826




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