ブログマップ

Arduino関連記事の目次へ
目次:Arduino
電子工作関連記事の目次へ
目次:電子工作
スタバカップアンプ関連記事の目次へ
スタバカップアンプ

電光掲示板
太陽電池
太陽電池
テル民
テルミン
ニキシー管
ニキシー管
PIC系
PIC
Xfind
Xfind
すべての記事



MOS FETを使ったマイコン周辺回路の電源の制御方法

マイコン周辺回路の電源の制御方法を検討中です。次の回路図の様にMOS FETを使って+側を制御する方式をハイサイドスイッチというようです。手持ちのPch型MOS FET「2SJ377」が使えそうです。
Pch型MOS FETを使ったハイサイドスイッチ回路
マイコンのポートを使ってFETのゲートを駆動する。ポートとゲートの間には100Ω程度の抵抗を入れる。マイコンのポート電圧でFETのゲートを駆動できない場合、トランジスタを追加したりする。

マイコン周辺回路の電源制御はこれで良いとして、周辺回路とつながっているポートの処理をどうすればいいだろう。ポートを入力に設定してそのまま?ポートを出力にしてL出力にする?

ゲート抵抗、トランジスタなどを1パッケージにした専用のICもあるみたい。こうゆうICがもっとお手軽に手に入ると回路設計が簡単になるんだけど、それは楽をしすぎかもしれない。。

ハイサイド・ロードスイッチ
http://www.micrel.jp/doc/products/analog/pwmg_highside-load-swich.html

MOS FETを使用したハイサイドスイッチ
http://todotani.cocolog-nifty.com/blog/2010/01/mos-fet-b7c9.html


ガリレオ・セブン!

IMGP4441.jpg

大阪でArduinoやオリジナルのArduinoシールドを開発・WEBで販売されているガリレオ・セブンさんのオフィスにおじゃましてきました。
今はまだ詳しいことは書けませんが、大阪でナニかがはじまろうとしています。。

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

日本語の音声をリアルタイムに合成・発声することができるシールドや、気圧・温度・湿度・照度など測定できるお天気シールドなど面白アイテムがいっぱいあります。気になる人はぜひチェックしてみてください。


Arduinoで遊ぼう - GPSで現在位置を取得する

ls20031_w_arduino.jpg

SparkFun Electronicsの32 Channel LS20031 GPS 5Hz Receiverはアンテナ内蔵型の32チャンネルGPSモジュールで秒間最大5回、位置情報を出力する。消費電流が3.3V動作時に41mAと少なくバッテリー動作に最適のGPSモジュールだ。サイズも30x30mmとかなり小さい。

このモジュールの仕様は次の通り。
  • MediaTek MT3318チップ搭載
  • シリアルインターフェース
  • 32チャンネル対応
  • 秒間最大5回更新
  • ホットスタート2秒
  • コールドスタート32秒
  • 動作電圧3V〜4.2V、消費電流41mA
  • 外形30x30mm

今回、このGPSモジュールから送られてくる位置情報をArduino経由して、パソコンに取り込んでみるよ。

※LS20031はスイッチサイエンスで取り寄せてもらいました。入荷までに少し時間がかかるけど、送料が気になる人は取り寄せてもらうといいよ。

LS20031のピンアサイン


LS20031ピン配置
このGPSモジュールはワイヤが接続されていませんが、パッドの間隔が2.54mmなので十分手で半田付けできます。

Arduinoに接続する


LS20031とArduino接続実体配線図

LS20031とArduino接続回路図

GPSモジュールとArduinoは次のように接続する。
3.3V --> VCC端子
2番 <-- TX端子
3番 --> RX端子
GND --> GND端子
例によって5V動作のArduinoと接続する時は、3番 --> RX端子の間に抵抗(R1=1.8KΩ、R2=3.3KΩ)を入れて接続する。

ライブラリをインストールする


今回、Arduinoのハードウェアシリアルポート(0番、1番)はパソコンとの通信に使用するので、ソフトウェアシリアルポートを利用する。ソフトウェアシリアルポートライブラリを次のURLからダウンロードしてください。

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

ダウンロードして解凍したフォルダは~/Documents/Arduino/librariesフォルダにコピーしてください。librariesフォルダがない場合は新規作成してください。

サンプルスケッチ


#include <NewSoftSerial.h>
#include <ctype.h>

NewSoftSerial gps(2,3);

void setup()
{
  Serial.begin(9600);

  delay(2000);

  auto_detect_baud_rate();

  send_pmtk_packet("PMTK220,1000");
  send_pmtk_packet("PMTK314,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0");
  send_pmtk_packet("PMTK251,9600");

  auto_detect_baud_rate();
}

void loop()
{
  if(gps.available()){
    Serial.print((char)gps.read());
  }
}

void auto_detect_baud_rate(void)
{
  const unsigned int bauds[] = {
    57600, 38400, 28800, 14400, 9600, 4800 };

  Serial.print("auto detect... ");

  for(int i=0; i<(sizeof(bauds)/sizeof(bauds[0]));i++){
    int p = 0;
    int r = 0;
    gps.begin(bauds[i]);
    gps.flush();
    do{
      if(gps.available()){
        if(isprint(gps.read())){
          p++;
        }
        r++;
      }
    }
    while(r < 20);
    if(p > 15){
      Serial.print(bauds[i]);
      Serial.println(" ok");
      return;
    }
    delay(100);
  }

  Serial.println("fail");
  while(1);
}

void send_pmtk_packet(char *p)
{
  uint8_t checksum = 0;
  gps.print('$');
  do {
    char c = *p++;
    if(c){
      checksum ^= (uint8_t)c;
      gps.print(c);
    }
    else{
      break;
    }
  }
  while(1);
  gps.print('*');
  gps.println(checksum,HEX);
}



setup()でGPSモジュールにいくつかのコマンドを送信します。
位置情報の出力間隔をミリ秒で指定します。
PMTK220,1000

出力する位置情報の種類を設定します。RMC(Recommended Minimum Specific GNSS Data)とGGA(Global Positioning System Fix Data)。
PMTK314,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

ボーレートを設定します。
PMTK251,9600

※注意※
このスケッチではgpsとのシリアル通信のボーレートを自動検出しています。このGPSモジュールのデフォルトのボーレートは9600bpsとデーターシートに書かれていますが、実際には57600bpsでした。他にも38400bpsだったりすることもあるみたいなので、自動検出できるようにしています。時々、間違ったボーレートにしてしまうので、予めボーレートが分かっている場合は、自動検出を使わず、直接ボーレートを指定してください。

loop()でgpsが出力したデータをパソコン側に送信します。シリアルモニタを開くと次のような文字列が送られてきます。これらの文字列はNMEA-0186フォーマットと呼ばれています。カンマで区切られた数値が測位時刻、経度、緯度、対地速度、進行方向などの情報です。詳しくは下記、URLを参照してください。

NMEA-0183フォーマット
http://bg66.soc.i.kyoto-u.ac.jp/forestgps/nmea.html

$GPRMC,145059.000,V,3445.7660,N,13531.3476,E,0.00,0.00,030210,,,N*78
$GPGGA,145100.000,3445.7663,N,13531.3474,E,0,1,,41.5,M,34.3,M,,*74
$GPRMC,145100.000,V,3445.7663,N,13531.3474,E,0.00,0.00,030210,,,N*74
$GPGGA,145101.000,3445.7655,N,13531.3480,E,0,1,,41.5,M,34.3,M,,*7B
$GPRMC,145101.000,V,3445.7655,N,13531.3480,E,0.00,0.00,030210,,,N*7B
$GPGGA,145102.000,3445.7656,N,13531.3479,E,0,1,,41.5,M,34.3,M,,*7D
$GPRMC,145102.000,V,3445.7656,N,13531.3479,E,0.00,0.00,030210,,,N*7D
$GPGGA,145103.000,3445.7653,N,13531.3481,E,0,1,,41.5,M,34.3,M,,*7E
$GPRMC,145103.000,V,3445.7653,N,13531.3481,E,0.00,0.00,030210,,,N*7E
$GPGGA,145104.000,3445.7660,N,13531.3476,E,0,1,,41.5,M,34.3,M,,*71
この文字列をGoogle Mapコンバータに入力するとGoogle Map上にその位置が表示されるよ。

GPS NMEA data to Google Map converter
http://www.gonmad.co.uk/nmea.php

電源投入直後、GPSモジュールから有効な位置情報が送られてくるまでに30秒以上かかります。空が見えるベランダにモジュールを出してしばらく待ちましょう。モジュールが衛星を補足し、有効な位置情報を送りだすとモジュール上のLEDが1秒間隔で点滅します。



SparkFun Electronics - 32 Channel LS20031 GPS 5Hz Receiver
http://www.sparkfun.com/commerce/product_info.php?products_id=8975

Leadtek NMEA Protocol Manual for MTK
ftp://ftp.leadtek.com.tw/gps/9023/LeadtekNMEAProtocolManualforMTKV1.0.pdf




Make: Technology on Your Time Volume 09

オライリージャパン
売り上げランキング: 1131




x86 Android 2.0 a.k.a Eclair on VMware

android-eclair-screenshot.png

Android-x86プロジェクトのソースコードリポジトリにEclair 2.1のコードがマージされていたので、またVMwareで動かしてみた。以前、Android DonutをVM上で動かした時と同じ手順で、さっくり動かせた。今回、VM上で動作しているUbuntuでAndroidのフルコンパイルに挑戦した。コンパイルに半日程度かかったけど、うまくコンパイルすることができた。残念ながらUSBイメージは配布されていないので、自分でビルドする必要がある。

0.ビルド環境の構築
次のURLを参考にビルド環境を構築する。VMで動かしているUbuntuでも手順は同じだよ。

Get source (Android Open Source Project)
http://source.android.com/download

1.Android-x86ソースコードの取得
$ mkdir android-x86
$ cd android-x86
$ repo init -u git://git.android-x86.org/android-x86/platform/manifest.git
$ repo sync

2.ビルド
$ make -j4 usb_img TARGET_PRODUCT=eeepc

3.仮想ディスクの作成
$ qemu-img convert out/target/product/eeepc/eeepc_usb.img -O vmdk installer.vmdk
$ qemu-img create -f vmdk android.vmdk 4G

4.VMwareのIDEディスクの設定
vmxファイルを開いて次の行を追加。ide0:0がprimary master、ide0:1がprimary slave。
ide0:0.present = "true"
ide0:0.fileName = "android.vmdk"

ide0:1.present = "true"
ide0:1.fileName = "installer.vmdk"

5.Androidのインストール
手順4で編集したvmxファイルでVMwareを起動し、BIOS設定でIDE primary slaveから起動する。後はAndroidのインストール手順通りにインストールする。


x86 Android Donut on VMware
http://arms22.blog91.fc2.com/blog-entry-254.html


Arduino 0018 サードパーティ製ハードウェアのサポート

Arduinoソフトウェアのバージョン0018がリリースされました。細かな修正が殆どですが、一部気になる変更点も。船田戦闘機さんがリリースノートを翻訳されています。

指定した周波数を発するtone()関数とnoTone()関数を追加

以前このブログでも紹介したArduino-toneライブラリが組み込まれたようです。

Arduinoで遊ぼう - 圧電スピーカでチクタク

サードパーティ製ハードウエアをサポートするために、SKETCHBOOK/hardwareフォルダを追加し、従来のhardwareフォルダをミラーリング

SKETCHBOOK/hardwareにcoresとかboards.txtを置いとけば自動的にメニューに追加されるのかも。まだ試していないのでわかりません。

今年の夏とか秋ぐらいに1.0のリリースを予定しているとかしていないとか。。arduino.ccの動向が気になります。

Arduino Wiki - Arduino-0018リリース
http://www.musashinodenpa.com/wiki/

Arduino Software Release Notes
http://arduino.cc/en/Main/ReleaseNotes



目次:電子工作

当ブログの電子工作関連記事への目次です。それなりに役に立ちそうな記事を選んで掲載していきます。(すべての記事を読みたい方はサイドメニューのカテゴリ「電子工作」をクリックしてください)。


続きを読む

目次:Arduino

当ブログのArduinoに関する記事が増えてきましたので目次を作りました。ここではArduino関連の記事で特におすすめの記事を掲載していきます(すべての記事を読みたい方はサイドメニューのカテゴリ「Arduino」をクリックしてください)。
また、これだけは押さえておきたいArduino関連のサイト、ショップ、ブログのリンクも掲載していきます。



続きを読む

振動モータ搭載のバグ的な何か

只の思いつきでこんなものを作ってしまった。

振動モータ搭載のバグ的な何か

一定時間が経過すると振動モータがぶるぶるして、居眠りを防止してくれる。

振動モータ搭載のバグ的な何か

フルカラーLEDが緑からオレンジ、赤へと変わるとブルブルと振動する。

振動モータ搭載のバグ的な何か

傾けると振動が停止し、カウンタがリセットされる。






Ads by Google
最近の記事
カテゴリ
Arduino (36)
電子工作 (75)
スタバッテルミン (5)
スタバカップアンプ (9)
電光掲示板 (4)
イベント (21)
太陽電池 (12)
ニキシー管 (19)
ARM系 (8)
PIC系 (20)
USBデバイス (7)
V850系 (17)
Xfind (6)
プログラミング (25)
Android (3)
未分類 (7)
Amazon.co.jp
最近のコメント
ビーコン菅原:MOS FETを使ったマイコン周辺回路の電源の制御方法 (02/10)
arms22:MPPT太陽電池充電(7) (02/09)
arms22:ガリレオ・セブン! (02/08)
Galileo7:ガリレオ・セブン! (02/08)
arms22:Arduinoで遊ぼう - SDメモリカードを読み書きする (01/29)
:目次:Arduino (01/29)
arms22:Arduinoで遊ぼう - SDメモリカードを読み書きする (01/27)
通りすがり:10.3用twitterクライアント「twifp」 (01/21)
最近のトラックバック
以前の記事
リンク
タグ
プライバシーポリシー
当サイトでは、第三者配信による広告サービスを利用しています。このような広告配信事業者は、ユーザーの興味に応じた商品やサービスの広告を表示するため、当サイトや他サイトへのアクセスに関する情報 (氏名、住所、メール アドレス、電話番号は含まれません) を使用することがあります。このプロセスの詳細やこのような情報が広告配信事業者に使用されないようにする方法については、ここをクリックしてください。