2011年2月 9日 (水)

シンプルなArduino互換ボード Duino-V その2

前回は、LEDを光らせただけですが今度はコンデンサマイクとアンプ回路を追加して、音の大きさをLEDで表現するようにしました。

コンデンサマイクは音つまり空気の振動を静電容量の変化に置き換える部品。
抵抗を介して電圧をコンデンサマイクに加えることによって、静電容量の変化を電圧の変化に変えます。
その変化は微量なのでアンプによって増幅してからDuino-Vのアナログ入力に入れます。

表にコンデンサマイク
Img_1598

裏には定番のオーディオアンプIC LM386
前回、何も考えず作ったのでICを貼付けて空中配線。
Img_1596

LEDがちょっとまぶしいのでスモークのプラ板を加工して取り付けます。
まずはPカッターで切り取り
Img_1582

そして、穴あけ
(今回は図面を書かず、手を抜いて現物合わせ)
Img_1592

大きい穴は以前も紹介したステップドリル
Img_1590

ネジは六角穴付きの低頭ネジ
(以前はネットショップで買ってたが、最近ホームセンターでも売ってる)
Img_1588

プラナットで組み立て
Img_1594

アナログ入力で読み取った値をLEDの点灯で表現するようにプログラム
とりあえず単純にレベルメータ。
Img_1620

次は表現方法を変えてみよう〜!かな?

2011/2/9 追記
このDuino-Vはスイッチサイエンスで購入することができるようです。
Duino-V rev.1 キット(328P別売)
Duino-V rev.1 完成品

| | コメント (0) | トラックバック (0)

2011年2月 8日 (火)

Arduinoで遊ぶ会

ガジェットカフェ で開催されたArduinoで遊ぶ会に参加してきました。
今回は27人もの参加登録があり、ガジェットカフェのイベントとしては最も大人数のイベントとなったようです。

20110208_10705
写真を撮るのを忘れたためUST中継のショット

みんなそれぞれ、用意したネタを組み立て。

初体験の人はまりす先生のもとで開発環境のインストール方法から教わっていました。

私は、事前に用意していたネタにちょっとプログラムを追加。
↓こんな感じになりました。(分かりにくいですが、ピークホールドを追加しました。)

次に試作しているうおーるぼっとのキット版の拡張機能を使って、Arduinoで動かせるように拡張基板をハンダ付け。

Img_1629

こんな感じで乗っかります。

Img_1627

Xbee経由で受けた、シリアル文字で制御するようになっています。
今回はmbedを使ったヌンチャクコントローラーで動かして、遊ぶ会の最後に発表しました。もしろん走らせたのはホワイトボード!

Img_1631

今回は自分の作業を早く終わらせて、みんなと交流しようと思っていたのですが、意外と悪戦苦闘し見て回る時間が無くなってしまいました・・。

でもみんなで集まって電子工作をするのは楽しいです。
最後の発表の時にしかみんなの作品を見れませんでしたがいろいろな作品を見ていい刺激をもらいました!
また開催する様なので、初心者から上級者までみんなで楽しめる電子工作イベントに参加してみてはいかがでしょうか。

↓そんな交流の場をFacebookページにも作っています。

ソーシャル電子工作

Facebookページも宣伝

| | コメント (0) | トラックバック (0)

2011年1月22日 (土)

シンプルなArduino互換ボード Duino-V その1

ひさびさのArduinoネタです。

フリーザーなううおーるぼっと(Arduino版)以来、Arduinoネタはあまりブログに書いていませんがいろいろ作っています。

今回は@lynxeyed_atsuさんが設計されたMetaboard互換ArduinoボードDuino-V(詳しくはこちら)をレビューしてみたいと思います。

Sany0142

黒レジストのコンパクトなボード。
そして、端子を見てのとおりUSBに直接刺さります。

Sany0143

USBは直接AVRのポートに接続され、ファームウェアにMetaboardを使うことでUSB-シリアル変換デバイスを使わずにArduinoIDEからスケッチを書き込むことが出来ます。

そのため回路はとてもシンプルに仕上がっています。

Sany0145

ピンヘッダを付ければブレッドボードにも取り付けられるので実験も可能、且つコンパクトなので応用はいろいろ出来そうです。

今回はピンソケットを上向きに取り付けて、私はあまり作ったことの無い光りモノ基板を拡張してみます。

Sany0149

ユニバーサル基板を切り取り、チップ抵抗とチップLEDをワイヤリングペンで配線

Sany0146

Duino-Vに取り付け、とりあえず順番に光るようにして動作確認。
USB出力のACアダプターやUSBバッテリーに直接さして使うのも良いかも。

Sany0148

Duino-Vにあわせて載せた基板も黒く塗ってみました。

シンプルクールDuino-Vを送ってくださった@lynxeyed_atsuさんに感謝です。

拡張した基板に後々、コンデンサマイクオペアンプを載せて、音レベルをLEDで表現したいと思います。




| | コメント (3) | トラックバック (0)

2010年3月16日 (火)

フリーザーなう 製作日記 VOL.5

完成!
紹介

○食材管理
食材を選んで、ボタンで加減を入力することで在庫数を管理及び表示します。
操作が無くなってから10秒ほど立つと現状の在庫数がtwitterに投稿されます。

○賞味期限
食材を選んで、賞味期限入力ボタンを押すと賞味期限が入力できます。

食材を2回タッチすると賞味期限までの日数が表示されます。
また賞味期限の一日前になると文字が黄色くなり、過ぎると赤くなります。
その状況もtwitterでつぶやきます。

○開閉数カウント
フリーザーなうはドアに取り付けて、ジャイロでドアの開閉数をカウントしています。
お遊び的な機能ですが、一日の総開閉数をカウントしてコメントを付けて、twitterに投稿するようになっています。

○コメント
食材の無くなり方などから決まった文字列でコメントをつぶやく機能があります。
たとえば消費が激しいものに対して、栄養についてフォローします。
(まだボキャブラリーが少ないですが・・)

完成したフリーザーなうについてはこちらでも紹介しています。

まだまだ機能を考えていますが、Arduinoに使われいてるATmega328ではスペック不足なので、ARM等で次回作を考えています。

| | コメント (0) | トラックバック (0)

2010年2月26日 (金)

フリーザーなう 製作日記 VOL.4

この日記では冷蔵庫の中身をTwitterでつぶやく「フリーザーなう」の製作過程を
紹介していきます。

~製作日記 VOL.4~

今回はケースの加工です。

ケースは1.5mm厚のABS板から切り出して作成します。
まずはCADで液晶やLANコネクタの位置等の実寸を図りつつ図面を書き、実際のサイズになるように印刷します。

Cad

CADソフトというとお高いイメージがありますが、フリーソフトでもJW_CADというかなり本格的なのがあります。

板は印刷した図面を当てて、Pカッターで切り出していきます。

Photo_2
P

Photo_3
電子工作のケースではそんなに精度良く作ることが無いので、紙で合わせて作ってます。
穴位置等もこの方法でやれば大体位置が合います。

板と板の繋ぎは瞬間接着剤で5mm四方の角パイプを接着しています。

Photo_4

Photo_5

Box

全部接着して完成です。
周囲4面+前方1面で接着しましたが、普通に使うのには問題無いぐらいの頑丈さはあります。
当然、踏ん付けたりしたら壊れますが・・。

そして回路を取り付け、装飾して完成です。

Freezernow

あとついでにこんなのを紹介します。
ステップドリルです。

Photo_6

本来、大きい穴をあけるときは径の小さいドリルから段階的に広げていきますが、
このドリルはドリルの付け替えが無く一回で済みます。

次回はフリーザーなうの機能紹介をします。

| | コメント (0) | トラックバック (0)

2010年2月16日 (火)

フリーザーなう 製作日記 VOL.3

この日記では冷蔵庫の中身をTwitterでつぶやく「フリーザーなう」の製作過程を
紹介していきます。

~製作日記 VOL.3~

今回はEther通信です。

EtherのコントローラとしてMicroChip社のENC28J60を使用しました。
このデバイスを使用し、LANのコネクタと周辺回路がセットになったモジュールを使いました。

Avrlan2

ENC28J60の特徴は・・。

 ・IEEE802.3に準拠したイーサネットコントローラ
 ・MAC部と10BASE-T対応のPHY部を内蔵
 ・半二重と全二重対応
 ・自動再送と衝突検出
 ・CRCチェックを自動生成、チェック
 ・SPIインターフェース最高20Mbps
 ・8kバイトのRAMバッファ内蔵、バッファサイズ任意設定可能

こんな感じです。

回路的には・・。

 ・電源:3.14V~3.45V(3.3V±5%)
 ・外部インターフェース:TTL互換 入力5V可能

とういう感じで電源は3.3Vですが、5V入力可能なので5Vで動作しているマイコンでも簡単に接続できます。

ENC28J60にはプロトコルスタック等は内蔵していないのでTCP/IP通信などを行う場合はマイコン側のソフトウェアで実装する必要があります。

今回はtwitterでつぶやくのが目的なのでArduinoのマイコン(ATmega328)のROMやRAMの関係上、必要最低限を実装します。

まずtwitterのサーバへアクセスするために相手のアドレスを知らなければならないのでARP処理は必要になります。
次にtwitterでつぶやくためにはHTTPでサーバにアクセスするのでTCP/IPとHTTPの処理が必要になります。
なのでIPアドレスを自動的に取得するDHCP及びそれに使うUDPなどは実装しません。

これらのEther処理は手順がちょっと面倒で自作するのは手間がかかります。
オープンソースでマイコン向けプロトコルスタックのuIPやハードウェアで処理してくれるデバイスなどがあります。(Arduinoならイーサネットシールドがあります。)簡単に作りたい人はこれらを使用したほうが良いでしょう。

またこれらの処理を自作した場合やそうでない場合もいきなりにインターネットに繋いで試すのはちょっと怖い気がします。
まずはローカル(パソコンと1対1で繋ぐなど)で確認しましょう。

私の場合はパソコンのLANとクロスケーブルで繋いで確認をしています。
パケットの内容の確認にはWireSharkというフリーの便利なプロトコルアラナイザを使用しています。

シーケンシャルのパケットのやり取りとパケットの中身のダンプができます。

使い方は簡単で、ロギングしたいLANのハードウェアを選んでスタートを押すだけです。
あとはストップを押すまでロギングを続けます。
他にもTCPやUDP、IPアドレスで絞って表示したりも可能です。

次回はケース加工です。

| | コメント (0) | トラックバック (0)

2010年1月28日 (木)

フリーザーなう 製作日記 VOL.2

この日記では冷蔵庫の中身をTwitterでつぶやく「フリーザーなう」の製作過程を
紹介していきます。

~製作日記 VOL.2~

今回はタッチパネルの制御です。

使用したタッチパネルは某社ゲーム機のタッチパネルです。
スイッチサイエンスさんで購入しました。

前回紹介した液晶とはサイズが異なるので、はみ出た部分は印刷した紙を
使って固定ボタンにしています。

↓こんな感じです。
Img

サイズが異なるのとあくまで手で付けたのでタッチパネルから取得できるX,Yと液晶の表示位置X,Yは異なります。
そのため2点をタッチしてキャリブレーション調整できるようにしました。
この値はAVRの内臓EEPROMに保存して、タッチしながら起動することで再調整できるようになってます。

↓こんな感じです。
Img_2

このタッチパネルのタッチ位置読み込みもライブラリ化しました。
ボタンなども座標を登録して検出できるようになってます。



#include "touch.h"

#define xLow  15
#define xHigh 17
#define yLow  14
#define yHigh 16



//ボタン登録用変数
T_BOTTON ext_bt;

touch th = touch(xLow,xHigh,yLow,yHigh);


void setup()
{



	//タッチ有効範囲指定
th.set_xy(50,50,1000,1000);

//キャリブレーション処理

//キャリブレーション結果をセット
th.calibration( CALI_X1 , CALI_Y1 , crli_sx , crli_sy ,
            CALI_X2 , CALI_Y2 , crli_ex , crli_ey );


//ボタン登録
th.set_botton(&ext_bt,50,30,100,50 );

}


void loop()
{
int x,y;



	//タッチ位置を取得
if(th.get(&x,&y)==true)
{
	        //ボタン位置が押されたか判定
                if(th.get_botton(&ext_bt,x,y)==true)
                {
  	              //ボタン位置が押された        
                }
}
}


このライブラリももうちょっとまとめてから公開したいと思います。
次回へ続く・・・。

| | コメント (0) | トラックバック (0)

2010年1月26日 (火)

フリーザーなう 製作日記 VOL.1

この日記では冷蔵庫の中身をTwitterでつぶやく「フリーザーなう」の製作過程を
紹介していきます。

~製作日記 VOL.1~

数年前から広まりつつあるArduino(アルドゥイーノ)という誰でも簡単に電子工作を楽しめるデバイスがあり、電子工作以外の雑誌などでも取り上げられたりしています。
(「Arduino」でググるといろいろでてくると思います。)

これの互換ボードを使って導電性の糸で布に縫うことで回路を組むテクノ手芸というのもあったり、いままで電子工作をしなかった人達に広まりつつあります。

またシールドとよばれるボードを乗っけることでインターネットにアクセスしたり、モーターをコントロールすることもできるようになるので、情報系や機械系のエンジニアにもおすすめ。

逆に電子工作やマイコン制御が得意な人はシールドやライブラリを自作して公開しています。

そんな私はArduinoとタッチパネルと液晶を使って、何か作れないかなと思い立ち
とりあえずArduinoで液晶の制御を始めました。

使った液晶はリプロ電子さんのe-DISPというものでリユースのカラー液晶を使用
しているので性能のわりに安価(5000円)です。

シリアル1ピンで制御できるというのと漢字フォントを内臓しているので簡単に
文字を表示させることができます。
またエスケープシーケンスで図形なども描画できるので簡単な絵を表示することもできます。
動画や写真などを表示するのは命令と速度の関係で無理だと思います。

e-DISPのArduino用のライブラリを作り、とりあえず表示させてみました。
1397993525_130

いろいろ表示されてますがただ表示させただけです。

ライブラリはソフトシリアルで制御するようにしました。
出力するピンを自由に選ぶことができます。
その代わり、9600bps固定になっています。

下記の様なコードで制御することができます。


#include "e_disp.h"

#define txPin 3



e_disp dsp = e_disp(txPin);



void setup()
{
delay(500);
dsp.begin();



//カーソルを消す
dsp.cursor(false);
//表示レイヤ指定
dsp.layer(0);
//四角を表示
dsp.rect(0,0,78,319,96,RED);
//塗り潰し四角を表示
dsp.fillrect(0,0,225,320,15,GREEN);
//線を引く
dsp.line(0,0,0,319,239,YELLOW)
//文字表示色を指定
dsp.font_color(F_GREEN);
//位置を指定して文字を表示
dsp.locate(5,5,"ハロー・ワールド!");
//文字の表示スタイルを指定
dsp.font_style(F_FLASH);
//位置を指定して文字を表示
dsp.locate(7,6,"Hello, world!");
}



void loop()
{



}

このライブラリはもうちょっとまとめてから公開したいと思います。
次回へ続く・・・。

| | コメント (0) | トラックバック (0)