<?xml version="1.0" encoding="UTF-8" ?><rdf:RDF 
  xmlns="http://purl.org/rss/1.0/"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xml:lang="ja">
  <channel rdf:about="http://w.atwiki.jp/geomagneticfield/">
    <title>Raspberry Piで地磁気を測ってみる</title>
    <link>http://w.atwiki.jp/geomagneticfield/</link>
    <atom:link href="https://w.atwiki.jp/geomagneticfield/rss10.xml" rel="self" type="application/rss+xml" />
    <atom:link rel="hub" href="https://pubsubhubbub.appspot.com" />
    <description>Raspberry Piで地磁気を測ってみる</description>

    <dc:language>ja</dc:language>
    <dc:date>2014-06-10T01:30:59+09:00</dc:date>
    <utime>1402331459</utime>

    <items>
      <rdf:Seq>
                <rdf:li rdf:resource="https://w.atwiki.jp/geomagneticfield/pages/14.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/geomagneticfield/pages/13.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/geomagneticfield/pages/12.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/geomagneticfield/pages/11.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/geomagneticfield/pages/10.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/geomagneticfield/pages/9.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/geomagneticfield/pages/3.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/geomagneticfield/pages/2.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/geomagneticfield/pages/1.html" />
              </rdf:Seq>
    </items>
	
		
    
  </channel>
    <item rdf:about="https://w.atwiki.jp/geomagneticfield/pages/14.html">
    <title>センサー出力の読み取り</title>
    <link>https://w.atwiki.jp/geomagneticfield/pages/14.html</link>
    <description>
      *磁力計の出力読み取り
レジスタマップによれば、磁力計の出力は0x03-0x08の6つのレジスタ、温度計の出力は0x31-0x32の2つのレジスタに入るらしい。また、磁力計のデータが準備できたかどうかの情報がはいるレジスタ(0x09)もあるらしい。
**レジスタアドレス0x03-0x08, 0x09 (OUT_X_H_M, OUT_X_L_M, OUT_Z_H_M, OUT_Z_L_M, OUT_Y_H_M, OUT_Y_L_M, SR_REG_M)
まずは、磁力計の出力の説明。
#image(http://cdn63.atwikiimg.com/geomagneticfield/pub/RM-11.png,width=300)
2アドレスを構成する16ビットのうち、下位12ビットで測定値を表している。注意しないといけないのは、
　(1) 12ビットは符号付2進数であること
　(2) アドレスの順に、&amp;bold(){X}, &amp;bold(){Z}, &amp;bold(){Y}軸の計測値となっていること
である。
次は、計測値有効・無効フラグの説明。
#image(http://cdn63.atwikiimg.com/geomagneticfield/pub/RM-12.png,width=400)
こちらは下位2ビットだけを見ることになる。0x01か0x03となっていれば新しいデータとみなしてよいのだろう。

**レジスタアドレス0x31-0x32 (TEMP_OUT_H_M, TEMP_OUT_L_M)
#image(http://cdn63.atwikiimg.com/geomagneticfield/pub/RM-10.png,width=400)
温度も12ビットだが、上位から12ビット分を読まないといけない。磁力計のデータの格納の仕方と違うので注意が必要だ。ここには、温度計の分解能も記載されていて、8 LSB/degなので、0.125℃の分解能であることがわかる。

**レジスタ値を読み出してみる
レジスタ値を読み取るために、i2ctoolsでは、i2cgetというコマンドが用意されている。上記レジスタの値を読みだしてみる。
#highlight(xml){{
% sudo i2cget -y 1 0x1e 0x03
0x    </description>
    <dc:date>2014-06-10T01:30:59+09:00</dc:date>
    <utime>1402331459</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/geomagneticfield/pages/13.html">
    <title>センサーの初期設定</title>
    <link>https://w.atwiki.jp/geomagneticfield/pages/13.html</link>
    <description>
      *レジスターマッピング
LSM303DLHCのデータシートによると、レジスターのアドレスとその意味は次のようになっている。
#image(http://cdn63.atwikiimg.com/geomagneticfield/pub/RM-1.jpg,width=400)
#image(http://cdn63.atwikiimg.com/geomagneticfield/pub/RM-2.jpg,width=400)

加速度計の方はかなり沢山の設定項目(Type=rwのところ)があるが、磁力計の方は0x00, 0x01, 0x02の3つのレジスタを設定するだけのようである。

*磁力計の設定
**レジスタアドレス0x00 (CRA_REG_M)
最初の設定レジスタは、温度センサーによる測定の可否と磁場測定のサンプリングレートを決めるためのものである。
#image(http://cdn63.atwikiimg.com/geomagneticfield/pub/RM-3.png,width=400)
温度センサーを有効にして、サンプリングを15 Hzにするためには、
　10010000
というビットを立てればいいので、&amp;color(red){0x90}を書き込むことにする。

**レジスタアドレス0x01 (CRB_REG_M)
次のアドレスは、磁場計測のレンジを決めるところで、大変重要なものである。
#image(http://cdn63.atwikiimg.com/geomagneticfield/pub/RM-4.png,width=400)
レンジを最も狭くして感度を上げたいので、
　00100000
というビットをたてることにする。16進数では、&amp;color(red){0x20}となる。
この場合、レンジは±130000 nTで、分解能は12 bit(±2048)であるが、実際にはX軸とY軸は、1100/1E5 LSB/nT, Z軸は、980/1E5 LSB/nTであるので、1 LSBあたり、大体100 nT程度になるようだ。(LSB=Least Significant Bit(?), 量子化単位) 

**レジスタアドレス0x02 (MR_REG_M)
最後の設定項目は、観測実施モードについて。
#im    </description>
    <dc:date>2014-06-09T23:34:09+09:00</dc:date>
    <utime>1402324449</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/geomagneticfield/pages/12.html">
    <title>センサーモジュールとの通信</title>
    <link>https://w.atwiki.jp/geomagneticfield/pages/12.html</link>
    <description>
      *I2Cバス番号について
26ピン外部端子上に出ているI2Cのバス番号はRev. 2のRaspberry Piでは1となっているらしい(Rev 1なら0らしい)。実際には、もう一つのバス番号0もあるそうだが、26ピン外部端子には対応付けられていないそうだ。その証拠に、
#highlight(xml){{
% ls /dev/i2c-*}}
とすると、
#highlight(xml){{
/dev/i2c-0  /dev/i2c-1}}
2つのデバイスファイルが見つかる。以下のI2Cデバイスとの通信に関係してバス番号を指定するときは、1を使うことになる。

*スレーブアドレスの確認
i2cdetectコマンドを使ってデバイスが認識されるか確認する。
#highlight(xml){{
% sudo i2cdetect -y 1}}
スレーブアドレスが帰ってくることは帰ってくるのだが、
#highlight(xml){{
　    0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- 1e --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --}}
となったり、
#highlight(xml){{
　    0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -    </description>
    <dc:date>2014-06-09T23:33:49+09:00</dc:date>
    <utime>1402324429</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/geomagneticfield/pages/11.html">
    <title>センサーモジュール</title>
    <link>https://w.atwiki.jp/geomagneticfield/pages/11.html</link>
    <description>
      *MLSM303DLHCについて
地磁気センサーモジュールとして、マルツパーツ館の[[MLSM303DLHC&gt;http://www.marutsu.co.jp/shohin_137793/]]を選択した。地磁気だけでなく、加速度センサーと温度センサーもパッケージされている。STMicroelectronics社のLSM303DLHCの小型ICと共に、プルアップ抵抗やコンデンサーを基盤に載せて、8ピンパッケージに変換したモジュールとなっている。
他には、Strawberry Linuxから[[同様の品が&gt;https://strawberry-linux.com/catalog/items?code=12114]]発売されているようだ。
**仕様
|検出範囲(磁場)|±130000 nT, ±190000 nT, ±250000 nT, ±400000 nT, &amp;br()~±470000 nT, ±560000 nT, ±810000 nT (ソフトウェアで選択)|
|検出範囲(加速度)|±2 g, ±4 g, ±8 g, ±16 g (ソフトウェアで選択)|
|分解能|16 bit|
|サンプリング周波数|100 kHz, 400 kHz|
|電源電圧|2.16-3.6 V|
|インターフェイス|I2C|
データシートの最初のページによれば、分解能は16 bitとなっているが、実際のGain settingには、出力は12 bit(-2048から+2047)となっている。そのまま計算すれば、磁場の検出レンジをもっとも狭いもの(±130000 nT)にしたとき、12 bitでは、260000 nT/(2&amp;sup(){12})=&amp;color(red){63.4765625 nT}となる。ただし、Gain settingの記述では、X,Y軸については1100 LSB/Gauss(=0.011 LSB/nT)、Z軸については980 LSB/Gauss(=0.0098 LSB/nT)ということなので、分解能はそれぞれ&amp;color(red){90.9 nT}、&amp;color(red){102.04 nT}になるようである。
サンプリング周波数のほうも、実際のアウトプットとしては、0.75 Hz-220 Hzの間の8段階でしか選択ができない。デフォルトでは15     </description>
    <dc:date>2014-06-09T23:33:32+09:00</dc:date>
    <utime>1402324412</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/geomagneticfield/pages/10.html">
    <title>準備</title>
    <link>https://w.atwiki.jp/geomagneticfield/pages/10.html</link>
    <description>
      *I2Cを使えるようにする
**/etc/modulesの編集
次のように/etc/modulesにi2c-devの一行を加える。
#highlight(xml){{
% sudo vi /etc/modules}}
#highlight(xml){{
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with &quot;#&quot; are ignored.
# Parameters can be specified after the module name.

snd-bcm2835
# Added on 2014/05/25
i2c-dev}}
**/etc/modprobe.d/raspi-blacklist.confの編集
i2cのブラックリスト宣言をコメントアウトする。
#highlight(xml){{
% sudo vi /etc/modprobe.d/raspi-blacklist.conf}}
#highlight(xml){{
# blacklist spi and i2c by default (many users don&#039;t need them)

blacklist spi-bcm2708
# Commented out on 2014/05/25
###blacklist i2c-bcm2708}}
**確認
システムを再起動した後、
#highlight(xml){{
% sudo reboot}}
i2cデバイスモジュールが読み込まれているか確認する。
#highlight(xml){{
% dmesg | grep i2c}}
次のようなログが残っていればOK。
#highlight(php){{
[    5.610982] bcm2708_i2c_init_pinmode(0,0)
[    5.745891] bcm2708_i2c_init_pinmode(0,1)
[       </description>
    <dc:date>2014-06-09T23:33:06+09:00</dc:date>
    <utime>1402324386</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/geomagneticfield/pages/9.html">
    <title>はじめに</title>
    <link>https://w.atwiki.jp/geomagneticfield/pages/9.html</link>
    <description>
      このページでは、Raspberry Piを使って地磁気を測ってみることを目標に試行錯誤したことを記録していきます。
----
　
　
　
　
　
　
　
　
　
　
　
　
　
　
　
　
　
　
　
　    </description>
    <dc:date>2014-06-09T23:32:53+09:00</dc:date>
    <utime>1402324373</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/geomagneticfield/pages/3.html">
    <title>右メニュー</title>
    <link>https://w.atwiki.jp/geomagneticfield/pages/3.html</link>
    <description>
      **カウンター
|今日|&amp;counter(today)人|
|昨日|&amp;counter(yesterday)人|
|&amp;bold(){合計}|&amp;bold(){&amp;counter()人}|

現在&amp;online()人が閲覧中。

**更新履歴
#recent(30)    </description>
    <dc:date>2014-05-31T23:30:57+09:00</dc:date>
    <utime>1401546657</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/geomagneticfield/pages/2.html">
    <title>メニュー</title>
    <link>https://w.atwiki.jp/geomagneticfield/pages/2.html</link>
    <description>
      
&lt;h3 id=&quot;id_b7a6c500&quot;&gt;メニュー&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://www63.atwiki.jp/geomagneticfield/pages/9.html&quot;&gt;&lt;font color=&quot;#5F441A&quot;&gt;はじめに&lt;/font&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www63.atwiki.jp/geomagneticfield/pages/10.html&quot;&gt;準備&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www63.atwiki.jp/geomagneticfield/pages/11.html&quot;&gt;センサーモジュール&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www63.atwiki.jp/geomagneticfield/pages/12.html&quot;&gt;センサーモジュールとの通信&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www63.atwiki.jp/geomagneticfield/pages/13.html&quot;&gt;センサーの初期設定&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www63.atwiki.jp/geomagneticfield/pages/14.html&quot;&gt;センサー出力の読み取り&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;hr /&gt;&lt;p&gt; &lt;/p&gt;
&lt;h3 id=&quot;id_453df200&quot;&gt;リンク&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://atwiki.jp/&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5F441A&quot;&gt;@wiki&lt;/font&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://atwiki.jp/guide/&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5F441A&quot;&gt;@wikiご利用ガイド&lt;/font&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt; &lt;/p&gt;
&lt;h3 id=&quot;id_c0085a49&quot;&gt;他のサービス&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://atpages.jp/&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#5F441A&quot;&gt;無料ホームページ作成&lt;/font&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://a    </description>
    <dc:date>2014-06-10T00:41:30+09:00</dc:date>
    <utime>1402328490</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/geomagneticfield/pages/1.html">
    <title>トップページ</title>
    <link>https://w.atwiki.jp/geomagneticfield/pages/1.html</link>
    <description>
      &lt;h3&gt;このウィキの使い方　～4つのステップ～&lt;/h3&gt;
&lt;h4&gt;■ログインしてみよう！&lt;/h4&gt;
&lt;p&gt;デザインを変えたり、サイト名を変えたりするためには、ログインしないといけないよ。&lt;/p&gt;
&lt;p&gt;ログインの方法は、下の手順でログインしてみよう！&lt;/p&gt;
&lt;p&gt;わからない場合は&lt;a href=&quot;http://www1.atwiki.jp/wpmode_guide/pages/4.html&quot;&gt;こちらのページ&lt;/a&gt;も参考にしてね。&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;画面の右上にある「ログイン」をクリック！&lt;/li&gt;
&lt;li&gt;ユーザ名に「geomagneticfield」、パスワードには、登録の時に設定したものを入力しよう。&lt;/li&gt;
&lt;li&gt;画面の右上に「geomagneticfield」と表示されればログイン完了！&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt; &lt;/p&gt;
&lt;h4&gt;■サイト名を変更しよう！&lt;/h4&gt;
&lt;p&gt;サイト名はどこから変えれるの？下の手順にそえばサイト名を変えれるよ！&lt;/p&gt;
&lt;p&gt;わからない場合は&lt;a href=&quot;http://www1.atwiki.jp/wpmode_guide/pages/5.html&quot;&gt;こちらのページ&lt;/a&gt;も参考にしてね。&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;ログインしたら、右上にある「設定」をクリック！&lt;/li&gt;
&lt;li&gt;表示されたページの左メニューにある、「基本設定」をクリックしよう！&lt;/li&gt;
&lt;li&gt;そうすると、一番上の「サイト名」と書かれた右側に、今のサイト名が書かれています。&lt;br /&gt;
ここを好きな名前に書き換えよう！&lt;/li&gt;
&lt;li&gt;書き換え終わったら、一番下にある「設定変更」ボタンをクリック！&lt;/li&gt;
&lt;li&gt;右上の 「（設定したサイト名）」へ戻る　をクリックすると、サイト名が変わったことが確認できるよ！&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt; &lt;/p&gt;
&lt;div&gt;
&lt;h4&gt;■新しいページを作成しよう！&lt;/h4&gt;
&lt;p&gt;新しくページを作成するにはどうすればいいのか、下の手順にそってやってみよう！&lt;/p&gt;
&lt;p&gt;わからない場合は&lt;a href=&quot;http://www1.atwiki.jp/wpmode_guide/pages/7.html&quot;&gt;こちらのページ&lt;/a&gt;も参考にしてね。&lt;/p&gt;
&lt;/div&gt;
&lt;ol&gt;&lt;li&gt;画面の左上にある「＠メニュー    </description>
    <dc:date>2014-05-31T23:30:57+09:00</dc:date>
    <utime>1401546657</utime>
  </item>
  </rdf:RDF>
