<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" 
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
  xmlns:admin="http://webns.net/mvcb/"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:content="http://purl.org/rss/1.0/modules/content/">

<channel>
<title>Fenrir&apos;s BLog</title>
<link>http://fenrir.naruoka.org/</link>
<description>fenrir&apos;s Site。</description>
<dc:language>ja</dc:language>
<dc:creator>fenrir.naru@gmail.com</dc:creator>
<dc:date>2012-01-24T23:59:00+09:00</dc:date>
<admin:generatorAgent rdf:resource="http://www.movabletype.org/?v=2.661" />
<sy:updatePeriod>hourly</sy:updatePeriod>
<sy:updateFrequency>1</sy:updateFrequency>
<sy:updateBase>2000-01-01T12:00+00:00</sy:updateBase>
<image>
  <title>Fenrir's BLog</title> 
  <url>http://fenrir.naruoka.org/images/banner.gif</url> 
  <link>http://fenrir.naruoka.org/</link> 
  <width>88</width> 
  <height>31</height> 
  <description>fenrir's Site。</description> 
</image>

<!--マクロ定義//-->














<item>
<title>白馬五竜 水上 スキー</title>
<link>http://fenrir.naruoka.org/archives/000847.html</link>
<description>先日、2回ほどスキーに行ってきました。白馬五竜と水上です。天気はほどほどでした。 白馬五竜より 水上より どちら方面を撮ったのか、鋭意検証中です(笑)。...</description>
<content:encoded><![CDATA[<p>先日、2回ほどスキーに行ってきました。白馬五竜と水上です。天気はほどほどでした。</p>

<p><a href="http://fenrir.naruoka.org/archives/images/2012_hakuba_goryu.jpg"><img alt="2012_hakuba_goryu.jpg" src="http://fenrir.naruoka.org/archives/images/2012_hakuba_goryu-thumb.jpg" width="408" height="306" border="0" /></a><br />
白馬五竜より</p>

<p><a href="http://fenrir.naruoka.org/archives/images/2012_minakami.jpg"><img alt="2012_minakami.jpg" src="http://fenrir.naruoka.org/archives/images/2012_minakami-thumb.jpg" width="408" height="306" border="0" /></a><br />
水上より</p>

<p>どちら方面を撮ったのか、鋭意検証中です(笑)。</p>]]></content:encoded>
<guid isPermaLink="false">847@http://fenrir.naruoka.org/</guid>
<dc:subject>Timely</dc:subject>
<dc:date>2012-01-24T23:59:00+09:00</dc:date>
</item>
<item>
<title>Super Sylphide 進捗状況(48) -- Tiny Feather に XBee 繋がる</title>
<link>http://fenrir.naruoka.org/archives/000846.html</link>
<description>オートパイロットシステムTiny Featherですが、以前に作成した2.4GHz無線何でも繋がる基板を利用してXBeeをつなげてみました。デバック風景を掲載してみます。 近いとアンテナなしでも繋がる Tiny FeatherにつなげたXBeeからデータを送信し、FT232RL経由でPCに繋げた別のXBee基板で受信させています。 XBeeということで、簡便な方法であるシリアルを無線に置き換える用途の透過(Transparent)モードを使ってテストを行っています。うまくいっている、といいたいところなのですが、既知の問題として、バイナリデータを送ろうとすると、 たまに意図せずコマンドモードに入ってしまうことがあります。以前、ワイヤレス電力計を作った際は、バイナリデータを7bit変換することでこの問題を回避していたのですが、今回はまじめに対処したいと思います。いまのところAPIモードを使うのが有力です。...</description>
<content:encoded><![CDATA[<p><a href="http://fenrir.naruoka.org/archives/000770.html">オートパイロットシステムTiny Feather</a>ですが、以前に作成した<a href="http://fenrir.naruoka.org/archives/000837.html">2.4GHz無線何でも繋がる基板</a>を利用してXBeeをつなげてみました。デバック風景を掲載してみます。</p>

<p><a href="http://fenrir.naruoka.org/archives/images/TF_XBee.jpg"><img alt="TF_XBee.jpg" src="http://fenrir.naruoka.org/archives/images/TF_XBee-thumb.jpg" width="408" height="306" border="0" /></a><br />
近いとアンテナなしでも繋がる</p>

<p>Tiny FeatherにつなげたXBeeからデータを送信し、<a href="http://fenrir.naruoka.org/archives/000588.html">FT232RL経由でPCに繋げた別のXBee基板</a>で受信させています。</p>

<p>XBeeということで、簡便な方法であるシリアルを無線に置き換える用途の透過(Transparent)モードを使ってテストを行っています。うまくいっている、といいたいところなのですが、既知の問題として、バイナリデータを送ろうとすると、 たまに意図せずコマンドモードに入ってしまうことがあります。以前、<a href="http://fenrir.naruoka.org/archives/000658.html">ワイヤレス電力計</a>を作った際は、<a href="http://fenrir.naruoka.org/archives/000602.html">バイナリデータを7bit変換</a>することでこの問題を回避していたのですが、今回はまじめに対処したいと思います。いまのところAPIモードを使うのが有力です。</p>]]></content:encoded>
<guid isPermaLink="false">846@http://fenrir.naruoka.org/</guid>
<dc:subject>Embedded System</dc:subject>
<dc:date>2012-01-15T23:59:00+09:00</dc:date>
</item>
<item>
<title>Super Sylphide 進捗状況(47) -- Tiny Feather ADS 完成</title>
<link>http://fenrir.naruoka.org/archives/000845.html</link>
<description>オートパイロットシステムTiny Featherですが、以前空気に対するデータをとるためのAir Data Sensor(ADS)がひとまず完成したことを、記事にしました。その後、ADS単体には出番がやってこなかったこともあり、完成に向けたデバックを積極的に行っていませでした。しかしこの度、よやうく出番があることになり、年末年始で気合をいれて完成へと漕ぎつけました。 動作中の様子。 ADSからTiny Feather本体を経由して、USB経由でPCにデータを取り込んでテストしてみました。ADSでA/D変換された絶対圧、および差圧3チャンネルの生データを以下のグラフに示します。なおADS上のADCは24bitの解像度があり、それを16bitに切り詰めてTiny Featherにはデータを送っています。 何も入力のない、静止時のデータです。これでセンサ、およびA/D変換を組み合わせたノイズを見ることができますが、あるレベルに収まっているのでほっとしています。回路の組み方や、変換および通信などを担当しているプログラムには問題なさそうです。ADS側のプログラム類はこのあたりにおいておきます。 ADSはTiny Feather本体とはSPIで接続しています。以前、SPIをマルチプレクスするのをCPLD上で行っているという記事をかきましたが、ADS用にさらに拡張しました。現在は外部スレーブデバイスをHDLのマクロで増やせるようにしてあります。参考としてspi2internal.vhdをあげておきます。 校正作業をしなければいけませんが、機材が手元にないので&quot;くまさん&quot;にお願いすることにしました。 ※次の進捗としてXBeeと繋げてみました。...</description>
<content:encoded><![CDATA[<p><a href="http://fenrir.naruoka.org/archives/000770.html">オートパイロットシステムTiny Feather</a>ですが、以前<a href="http://fenrir.naruoka.org/archives/000787.html">空気に対するデータをとるためのAir Data Sensor(ADS)がひとまず完成</a>したことを、記事にしました。その後、ADS単体には出番がやってこなかったこともあり、完成に向けたデバックを積極的に行っていませでした。しかしこの度、よやうく出番があることになり、年末年始で気合をいれて完成へと漕ぎつけました。</p>

<p><img alt="ADS_with_TF.jpg" src="http://fenrir.naruoka.org/archives/images/ADS_with_TF.jpg" width="400" height="300" border="0" /><br />
動作中の様子。</p>

<p>ADSからTiny Feather本体を経由して、USB経由でPCにデータを取り込んでテストしてみました。ADSでA/D変換された絶対圧、および差圧3チャンネルの生データを以下のグラフに示します。なおADS上のADCは24bitの解像度があり、それを16bitに切り詰めてTiny Featherにはデータを送っています。</p>

<p><a href="http://fenrir.naruoka.org/archives/images/ADS_raw_conv.png"><img alt="ADS_raw_conv.png" src="http://fenrir.naruoka.org/archives/images/ADS_raw_conv-thumb.png" width="400" height="300" border="0" /></a></p>

<p>何も入力のない、静止時のデータです。これでセンサ、およびA/D変換を組み合わせたノイズを見ることができますが、あるレベルに収まっているのでほっとしています。回路の組み方や、変換および通信などを担当しているプログラムには問題なさそうです。ADS側のプログラム類は<a href="http://fenrir.naruoka.org/download/autopilot/external/TinyFeather/C8051_ADS/">このあたり</a>においておきます。</p>

<p>ADSはTiny Feather本体とはSPIで接続しています。以前、<a href="http://fenrir.naruoka.org/archives/000832.html">SPIをマルチプレクスするのをCPLD上で行っている</a>という記事をかきましたが、ADS用にさらに拡張しました。現在は外部スレーブデバイスをHDLのマクロで増やせるようにしてあります。参考として<a href="http://fenrir.naruoka.org/download/autopilot/external/TinyFeather/FPGA/VHDL/spi2internal.vhd">spi2internal.vhd</a>をあげておきます。</p>

<p>校正作業をしなければいけませんが、機材が手元にないので"くまさん"にお願いすることにしました。</p>

<p>※次の進捗として<a href="http://fenrir.naruoka.org/archives/000846.html">XBeeと繋げてみました</a>。</p>]]></content:encoded>
<guid isPermaLink="false">845@http://fenrir.naruoka.org/</guid>
<dc:subject>Embedded System</dc:subject>
<dc:date>2012-01-08T23:51:29+09:00</dc:date>
</item>
<item>
<title>2012 謹賀新年</title>
<link>http://fenrir.naruoka.org/archives/000844.html</link>
<description>あけましておめでとうございます。昨年は大変お世話になりました、本年もよろしくお願いいたします。 最近更新頻度が落ちてきているような気がしますが、気のせいです(笑)。ということで、今年も平均して1週間に1度の更新ペースを続けることを目標にしたいと思います。連載している内容もあることですし、それをまとめて別の媒体でお届けするということも第2の目標にしたいと思います!...</description>
<content:encoded><![CDATA[<p>あけましておめでとうございます。昨年は大変お世話になりました、本年もよろしくお願いいたします。</p>

<p><img alt="2012.png" src="http://fenrir.naruoka.org/archives/images/2012.png" width="400" height="402" border="0" /></p>

<p>最近更新頻度が落ちてきているような気がしますが、気のせいです(笑)。ということで、今年も平均して1週間に1度の更新ペースを続けることを目標にしたいと思います。連載している内容もあることですし、それをまとめて別の媒体でお届けするということも第2の目標にしたいと思います!</p>]]></content:encoded>
<guid isPermaLink="false">844@http://fenrir.naruoka.org/</guid>
<dc:subject>Timely</dc:subject>
<dc:date>2012-01-01T23:59:00+09:00</dc:date>
</item>
<item>
<title>Super Sylphide 進捗状況(46) -- TinyFeatherの誘導制御スケルトン</title>
<link>http://fenrir.naruoka.org/archives/000843.html</link>
<description>無人航空機(UAV)用オートパイロットシステム TinyFeatherですが、ようやく足回りが終わり、楽しい匂いがするところにやってきました。誘導制御です。ちなみに僕は天邪鬼で、足回りである航法の方が面白かったりします。 誘導制御則を実装するにあたって、その骨組み、スケルトンを作ってみました。 図を説明すると、1つのループが一定時間間隔で繰り返されることで誘導制御を構成しています。中央の円がそのループで、順を追って説明すると 航法情報(どこをどういう状態で飛んでいるのか)の取得入手した航法情報を元に誘導制御(どこをどうやって飛びたいか)の計算をするその計算結果を元に舵面やモータを、サーボ、スピードコントローラで動かす計算結果のログを残す地上局(Ground Station, GS)にテレメトリ(どこを飛んでいるかなど監視用情報)を送信 となっています。加えて、地上局からWay Point (WP)の変更など飛び方の指令が非同期的に送られてくる可能性があるので、それを処理できるよう、図の下に示すアップリンク通知ブロックがあります。 コードはguidance_control_skeleton.cppにあります。航法情報として得られるものはヘッダ guidance_control.h に書いてあります。TinyFeatherとこのコードを使って、皆さん独自の制御則を作ってみることが可能なようにしていきたいです。 ※Tiny Feather用ADSがようやく完成しました。...</description>
<content:encoded><![CDATA[<p>無人航空機(UAV)用オートパイロットシステム <a href="http://fenrir.naruoka.org/archives/000770.html">TinyFeather</a>ですが、ようやく足回りが終わり、楽しい匂いがするところにやってきました。誘導制御です。ちなみに僕は天邪鬼で、足回りである航法の方が面白かったりします。</p>

<p>誘導制御則を実装するにあたって、その骨組み、スケルトンを作ってみました。</p>

<p><img alt="TF_GC.png" src="http://fenrir.naruoka.org/archives/images/TF_GC.png" width="400" height="442" border="0" /></p>

<p>図を説明すると、1つのループが一定時間間隔で繰り返されることで誘導制御を構成しています。中央の円がそのループで、順を追って説明すると</p>

<ol class="block"><li>航法情報(どこをどういう状態で飛んでいるのか)の取得</li><li>入手した航法情報を元に誘導制御(どこをどうやって飛びたいか)の計算をする</li><li>その計算結果を元に舵面やモータを、サーボ、スピードコントローラで動かす</li><li>計算結果のログを残す</li><li>地上局(Ground Station, GS)にテレメトリ(どこを飛んでいるかなど監視用情報)を送信</li></ol>

<p>となっています。加えて、地上局からWay Point (WP)の変更など飛び方の指令が非同期的に送られてくる可能性があるので、それを処理できるよう、図の下に示すアップリンク通知ブロックがあります。</p>

<p>コードは<a href="http://fenrir.naruoka.org/download/autopilot/external/TinyFeather/DSP/autopilot/guidance_control_skeleton.cpp">guidance_control_skeleton.cpp</a>にあります。航法情報として得られるものはヘッダ <a href="http://fenrir.naruoka.org/download/autopilot/external/TinyFeather/DSP/autopilot/guidance_control.h">guidance_control.h</a> に書いてあります。TinyFeatherとこのコードを使って、皆さん独自の制御則を作ってみることが可能なようにしていきたいです。</p>

<p>※Tiny Feather用<a href="http://fenrir.naruoka.org/archives/000845.html">ADSがようやく完成</a>しました。</p>]]></content:encoded>
<guid isPermaLink="false">843@http://fenrir.naruoka.org/</guid>
<dc:subject><![CDATA[Aero &amp; Astro]]></dc:subject>
<dc:date>2011-12-24T23:59:00+09:00</dc:date>
</item>
<item>
<title>ソフトウェアSPIが動かない (解決済)</title>
<link>http://fenrir.naruoka.org/archives/000842.html</link>
<description><![CDATA[マイコンを使っていると、時々マイコンに組み込まれた周辺機能だけでは事が足りなくなって、汎用I/Oポートを使って、ソフトウェア的に機能を実現するということがよくあります。ポートのH/Lをコントロールしたり、はたまた汎用ポートをHi-Z(ハイインピーダンス)の状態にしてH/Lを読み込んだりすることで実現されます。よくやられるのが、ソフトウェアSPIやIソフトウェアUARTといったものです。最近、そのソフトウェアSPIを実装していて嵌りましたので、今回は僕の失敗談を披露したいと思います。 ソフトウェアSPIに限らず、ポートの状態の書き出しとポートの状態の読み込みを行うものでは起こりうる問題なので、せっかくなので一般化して話を進めたいと思います。汎用ポートは、多くの場合、複数のポートをひとまとめとして、1つのレジスタで扱われます。ここではP1というレジスタに8個の汎用I/O、すなわちP1.0からP1.7の8個が割り当てられていたとしましょう。その中でP1.0を状態の書き込みに、P.1.1を状態の読み込みに使うことにします。 たとえば、P1.0(出力)にP.1.1(入力)と同じ信号レベルを出したければ、次のようなコードを書いて実現することが多いかもしれません。 if(P1 & 0x02){P1 |= 0x01;}else{P1 &= ~0x01;} ところが、このコード、特定のマイコンでは、一度P1.1がLになると、たとえ他のマイコン等から再びP1.1にHが出力されようとも以降はLが読み出され、二度とP1.0がHにならなくなりました。僕はC8051というSilicon Laboratoriesのマイコンで今回この失敗を経験しました。 原因はP1というレジスタの構成にありました。レジスタに複数の機能が割り当てられているのでした。ポートが出力として設定されている場合は、1や0を書き込むことでHやLが出力されます。また入力の場合は読み出すことで、ポートのHやLを1や0で返してくれます。 ところが入力の場合に書き込むとどうなるでしょう。C8051では、1を書き込むことによってHi-Zの状態、0を書き込むことによってGNDとショート(厳密にいうと、オープンドレインのFETがONになって、電流を引き込む)になるのです。そのため、P1.1に一度0が書き込まれてしまうと、他のマイコン等ががんばってHを出力しても、電流がどんどん吸い込まれLとなってしまうのでした。 『えっ、入力ポートに書き込んでないんじゃないの?』と思われた方(主に僕)、コードをよくご覧ください。演算子として、|= や &= が使われていますね。この演算子が意味するところは、一度読み出したレジスタを加工した上で、またレジスタに代入するということです。ということは入力ポートとして設定したP1.1にも、当然書き込み処理は行われているのです。これに気づくのにかなりの時間を要しましたorz 結果、僕が使っているC8051では、例題としてあげたコードは、次のコードに書き換える必要がありました。 if(P1 & 0x02){P1 = (P1 | 0x01) >| 0x02>;}else{P1 = (P1 & ~0x01) >| 0x02>;} 最後にですが、汎用ポートを動かす際、レジスタ単位ではなく、ピット単位で動かせるものは、今回のような誤動作を避けるためにもピット単位での操作(P1.0 = 1; P1.0 = 0;)をするべきたと思いました。...]]></description>
<content:encoded><![CDATA[<p>マイコンを使っていると、時々マイコンに組み込まれた周辺機能だけでは事が足りなくなって、汎用I/Oポートを使って、ソフトウェア的に機能を実現するということがよくあります。ポートのH/Lをコントロールしたり、はたまた汎用ポートをHi-Z(ハイインピーダンス)の状態にしてH/Lを読み込んだりすることで実現されます。よくやられるのが、ソフトウェアSPIやIソフトウェアUARTといったものです。最近、そのソフトウェアSPIを実装していて嵌りましたので、今回は僕の失敗談を披露したいと思います。</p>

<p>ソフトウェアSPIに限らず、ポートの状態の書き出しとポートの状態の読み込みを行うものでは起こりうる問題なので、せっかくなので一般化して話を進めたいと思います。汎用ポートは、多くの場合、複数のポートをひとまとめとして、1つのレジスタで扱われます。ここではP1というレジスタに8個の汎用I/O、すなわちP1.0からP1.7の8個が割り当てられていたとしましょう。その中でP1.0を状態の書き込みに、P.1.1を状態の読み込みに使うことにします。</p>

<p><img alt="gpio.png" src="http://fenrir.naruoka.org/archives/images/gpio.png" width="240" height="210" border="0" /></p>

<p>たとえば、P1.0(出力)にP.1.1(入力)と同じ信号レベルを出したければ、次のようなコードを書いて実現することが多いかもしれません。</p>

<p><div class="code">if(P1 & 0x02){P1 |= 0x01;}else{P1 &= ~0x01;}</div>
</p>

<p>ところが、このコード、特定のマイコンでは、一度P1.1がLになると、たとえ他のマイコン等から再びP1.1にHが出力されようとも以降はLが読み出され、二度とP1.0がHにならなくなりました。僕はC8051というSilicon Laboratoriesのマイコンで今回この失敗を経験しました。</p>

<p>原因はP1というレジスタの構成にありました。レジスタに複数の機能が割り当てられているのでした。ポートが出力として設定されている場合は、1や0を書き込むことでHやLが出力されます。また入力の場合は読み出すことで、ポートのHやLを1や0で返してくれます。</p>

<p>ところが入力の場合に書き込むとどうなるでしょう。C8051では、1を書き込むことによってHi-Zの状態、0を書き込むことによってGNDとショート(厳密にいうと、オープンドレインのFETがONになって、電流を引き込む)になるのです。そのため、P1.1に一度0が書き込まれてしまうと、他のマイコン等ががんばってHを出力しても、電流がどんどん吸い込まれLとなってしまうのでした。</p>

<p>『えっ、入力ポートに書き込んでないんじゃないの?』と思われた方(主に僕)、コードをよくご覧ください。演算子として、|= や &= が使われていますね。この演算子が意味するところは、一度読み出したレジスタを加工した上で、またレジスタに代入するということです。ということは入力ポートとして設定したP1.1にも、当然書き込み処理は行われているのです。これに気づくのにかなりの時間を要しましたorz</p>

<p>結果、僕が使っているC8051では、例題としてあげたコードは、次のコードに書き換える必要がありました。</p>

<p><div class="code">if(P1 & 0x02){P1 = (P1 | 0x01) <strong>| 0x02</strong>;}else{P1 = (P1 & ~0x01) <strong>| 0x02</strong>;}</div>
</p>

<p>最後にですが、汎用ポートを動かす際、レジスタ単位ではなく、ピット単位で動かせるものは、今回のような誤動作を避けるためにもピット単位での操作(P1.0 = 1; P1.0 = 0;)をするべきたと思いました。</p>]]></content:encoded>
<guid isPermaLink="false">842@http://fenrir.naruoka.org/</guid>
<dc:subject>Embedded System</dc:subject>
<dc:date>2011-12-14T21:02:11+09:00</dc:date>
</item>
<item>
<title>MTM07 お疲れ様でした</title>
<link>http://fenrir.naruoka.org/archives/000841.html</link>
<description>Make: Tokyo Meeting 07では、Tiny Featherで傾きが検出できるよー、というデモをやっておりました。 ぬるぬる動いたよ! 動画は @lynnlynn1 さん提供 言い訳を一つさせください。動画の中盤以降にあるとおり、あまりに激しい動きをすると追従しきれなくなってしまいますが、これは補正が効いてしばらくたつと動画のとおり戻るので、問題とは考えていません。また内部のパラメータ調整次第で、解消も可能だと思います。室内でGPSが使えない環境下で結構健闘しているとも思います。 ご来場いただいた方、また出展のお手伝いいただいた方、その他の出展者の方、企画者の方、皆様、どうもありがとうございます。 ※追加です。人力飛行機のテストフライトにTiny Featherを載せてとった飛行ログを、フライトの様子とあわせた動画も、当日再生していました。@HirakuTOIDA くん作動画です。 左右にバンクして、S字飛行しています。...</description>
<content:encoded><![CDATA[<p><a href="http://www.oreilly.co.jp/mtm/07/">Make: Tokyo Meeting 07</a>では、<a href="http://fenrir.naruoka.org/archives/000840.html">Tiny Featherで傾きが検出できるよー</a>、というデモをやっておりました。</p>

<div class="block" class="block" class="block"><object type="application/x-shockwave-flash" data="http://fenrir.naruoka.org/misc/flvplayer.swf" width="480" height="300"><param name="movie" value="http://fenrir.naruoka.org/misc/flvplayer.swf" /><param name="allowfullscreen" value="true" /><param name="flashvars" value="file=http://fenrir.naruoka.org/download/archive/movie/MTM07.mp4&image=http://fenrir.naruoka.org/download/archive/movie/MTM07.jpg" /></object><br />ぬるぬる動いたよ! 動画は <a href="http://twitter.com/#!/lynnlynn1">@lynnlynn1 さん</a>提供</div>

<p>言い訳を一つさせください。動画の中盤以降にあるとおり、あまりに激しい動きをすると追従しきれなくなってしまいますが、これは補正が効いてしばらくたつと動画のとおり戻るので、問題とは考えていません。また内部のパラメータ調整次第で、解消も可能だと思います。室内でGPSが使えない環境下で結構健闘しているとも思います。</p>

<p>ご来場いただいた方、また出展のお手伝いいただいた方、その他の出展者の方、企画者の方、皆様、どうもありがとうございます。</p>

<p>※追加です。人力飛行機のテストフライトにTiny Featherを載せてとった飛行ログを、フライトの様子とあわせた動画も、当日再生していました。<a href="http://twitter.com/#!/hirakutoida">@HirakuTOIDA くん</a>作動画です。</p>

<iframe class="block" width="480" height="320" src="http://www.youtube.com/embed/y6T1am_uyvQ" frameborder="0" allowfullscreen></iframe>

<p>左右にバンクして、S字飛行しています。</p>]]></content:encoded>
<guid isPermaLink="false">841@http://fenrir.naruoka.org/</guid>
<dc:subject>Timely</dc:subject>
<dc:date>2011-12-06T13:59:48+09:00</dc:date>
</item>
<item>
<title>Make: Tokyo Meeting 07 出展します!</title>
<link>http://fenrir.naruoka.org/archives/000840.html</link>
<description>ものづくり系イベント、Make: Tokyo Meeting (MTM) が今週末の12/3(土), 4(日)と東京工業大学 大岡山キャンパスでありますが、そこで僕が作っている模型飛行機のオートパイロット装置 Tiny Featherを展示します。MTMの慣わしてとして、『細かいことはいいんだよ! (笑)』という雰囲気がありますので、できるだけインタラクティブな展示に努めたいと思います。 Tiny Feather on 777! こんな展示をする予定です。是非動かしにきてやってください。あ、あと中身はそれなりにすごいことをしていますので、決して「Wiiリモコンと同じじゃん!」なんて言わないでくださいね(笑)。 出展場所 当日は体育館内で展示しています。上の地図のちょうど『はかるひと』の『る』の位置のテーブルです。 『はかるひと』というのは今回のサークル名で、『加速度ジャイロ』というタイトルの共同展示になっています。僕に加えて、人力飛行機をやっている @HirakuTOIDA くんと モデルロケットをやっている @ina111 さま が出展しています。共通点はみんな加速度計やジャイロを使って物の動きをはかっている人たち、『はかるひと』なことです。 では当日、会場で僕と握手! (笑) ※当日のデモ動画を後日あげました。...</description>
<content:encoded><![CDATA[<p>ものづくり系イベント、<a href="http://www.oreilly.co.jp/mtm/07/">Make: Tokyo Meeting (MTM)</a> が今週末の12/3(土), 4(日)と東京工業大学 大岡山キャンパスでありますが、そこで僕が作っている模型飛行機のオートパイロット装置 <a href="http://fenrir.naruoka.org/archives/000770.html">Tiny Feather</a>を展示します。MTMの慣わしてとして、『細かいことはいいんだよ! (笑)』という雰囲気がありますので、できるだけインタラクティブな展示に努めたいと思います。</p>

<p><a href="http://fenrir.naruoka.org/archives/images/tinyfeather_on_777.jpg"><img alt="tinyfeather_on_777.jpg" src="http://fenrir.naruoka.org/archives/images/tinyfeather_on_777-thumb.jpg" width="420" height="560" border="0" /></a><br />
Tiny Feather on 777!</p>

<p>こんな展示をする予定です。是非動かしにきてやってください。あ、あと中身はそれなりにすごいことをしていますので、決して<strong>「Wiiリモコンと同じじゃん!」</strong>なんて言わないでくださいね(笑)。</p>

<p><img alt="MTM07_map.png" src="http://fenrir.naruoka.org/archives/images/MTM07_map.png" width="420" height="530" border="0" /><br />
出展場所</p>

<p>当日は体育館内で展示しています。上の地図のちょうど『はかるひと』の『る』の位置のテーブルです。</p>

<p>『はかるひと』というのは今回のサークル名で、『加速度ジャイロ』というタイトルの共同展示になっています。僕に加えて、人力飛行機をやっている <a href="http://hpaavio.blogspot.com/2011/08/blog-post.html">@HirakuTOIDA くん</a>と モデルロケットをやっている <a href="http://d.hatena.ne.jp/ina111/20111129/1322541479">@ina111 さま</a> が出展しています。共通点はみんな加速度計やジャイロを使って物の動きをはかっている人たち、『はかるひと』なことです。</p>

<p>では当日、会場で僕と握手! (笑)</p>

<p>※<a href="http://fenrir.naruoka.org/archives/000841.html">当日のデモ動画</a>を後日あげました。</p>]]></content:encoded>
<guid isPermaLink="false">840@http://fenrir.naruoka.org/</guid>
<dc:subject>Timely</dc:subject>
<dc:date>2011-12-01T07:53:58+09:00</dc:date>
</item>
<item>
<title>バス接続にならないSPIを複数つなげる</title>
<link>http://fenrir.naruoka.org/archives/000839.html</link>
<description>SPI接続のセンサやA/Dコンバータといった周辺半導体は、何台つなげてもチップセレクト(-CS)の線を台数分増やすだけで他のMOSI, MISO, SCKといった線は共通で済み、配線が節約できて便利です。ところがどっこいSPI接続を謳っていても、-CSがない半導体にめぐり合いました。しかも複数台使いたい。そこで周辺回路を組んで-CSに対応させ、標準的なSPIバスに混ぜられるようにしました。 2台での例 原理は単純で、-CSに同期して周辺機器(スレーブ)のCLKとMISOがハイインピーダンス(Hi-Z)になるようにし、バスから切り離されるよう、3ステートバッファを使います。MOSIはスレーブにとって入力なので切り離さなくても問題ありません。あとは動作していないときのCLKの状態をあわせるために、CLKにはプルアップまたはプルダウン抵抗を入れる必要があります。 例のように2台だったら、ちょうど4回路バッファが入っている74の125を1個で対応できます。最近でしたら74を買うよりもMAXVあたりを出口につけておくのが、色々できていいと思います。...</description>
<content:encoded><![CDATA[<p>SPI接続のセンサやA/Dコンバータといった周辺半導体は、何台つなげてもチップセレクト(-CS)の線を台数分増やすだけで他のMOSI, MISO, SCKといった線は共通で済み、配線が節約できて便利です。ところがどっこいSPI接続を謳っていても、-CSがない半導体にめぐり合いました。しかも複数台使いたい。そこで周辺回路を組んで-CSに対応させ、標準的なSPIバスに混ぜられるようにしました。</p>

<p><a href="http://fenrir.naruoka.org/archives/images/SPI_MUX.png"><img alt="SPI_MUX.png" src="http://fenrir.naruoka.org/archives/images/SPI_MUX-thumb.png" width="425" height="200" border="0" /></a><br />
2台での例</p>

<p>原理は単純で、-CSに同期して周辺機器(スレーブ)のCLKとMISOがハイインピーダンス(Hi-Z)になるようにし、バスから切り離されるよう、3ステートバッファを使います。MOSIはスレーブにとって入力なので切り離さなくても問題ありません。あとは動作していないときのCLKの状態をあわせるために、CLKにはプルアップまたはプルダウン抵抗を入れる必要があります。</p>

<p>例のように2台だったら、ちょうど4回路バッファが入っている74の125を1個で対応できます。最近でしたら74を買うよりも<a href="http://www.altera.co.jp/devices/cpld/max-v/mxv-index.jsp">MAXV</a>あたりを出口につけておくのが、色々できていいと思います。</p>]]></content:encoded>
<guid isPermaLink="false">839@http://fenrir.naruoka.org/</guid>
<dc:subject>Embedded System</dc:subject>
<dc:date>2011-11-20T08:01:18+09:00</dc:date>
</item>
<item>
<title>QFNの半田付け方法を考えてみる</title>
<link>http://fenrir.naruoka.org/archives/000838.html</link>
<description>センサをはじめ半導体をいじっていると、厄介なパッケージに遭遇することがあります。内側までパッドがしっかりあるBGAは、基板を多層化しなければいけない等難易度が遥かに高いので諦めがつくのですが、裏面にしかパッドがないが外周にパッドが並んでいるQFNに代表されるパッケージですと、あと一歩のところなので大変悔しい思いです。 一般的に裏面にしかパッドがないパッケージは、半田マスクを作ってペースト半田を塗布、リフローで半田づけというプロセスを経ます。しかし少量しか作成しないものですと、マスクを作ったり、あるいはオーブンやホットエアといった装置を導入するのが惜しいので、悔しさひとしおです。そこで、半田ごてだけで対処する方法考えてみました。僕が試した限りでは比較的成功率が高い方法ですが、全部が全部うまくいくというわけではないことをはじめに断わっておこうと思います。 コツはチップと基板、両方のパッドに先に半田を盛っておくこと、そしてチップを基板から少し浮かせることだと思います。 カプトンテープでチップをかさ上げをして、フラックスを間に流し込んであげます。あとは適宜半田を外から補充し、表面張力の力を信じまょう。半田付けが成功しているかどうかもぎりぎり目視で確認できます。 もっといい方法をご存じの方、ぜひお教えください。...</description>
<content:encoded><![CDATA[<p>センサをはじめ半導体をいじっていると、厄介なパッケージに遭遇することがあります。内側までパッドがしっかりあるBGAは、基板を多層化しなければいけない等難易度が遥かに高いので諦めがつくのですが、裏面にしかパッドがないが外周にパッドが並んでいるQFNに代表されるパッケージですと、あと一歩のところなので大変悔しい思いです。</p>

<p>一般的に裏面にしかパッドがないパッケージは、半田マスクを作ってペースト半田を塗布、リフローで半田づけというプロセスを経ます。しかし少量しか作成しないものですと、マスクを作ったり、あるいはオーブンやホットエアといった装置を導入するのが惜しいので、悔しさひとしおです。そこで、半田ごてだけで対処する方法考えてみました。僕が試した限りでは比較的成功率が高い方法ですが、全部が全部うまくいくというわけではないことをはじめに断わっておこうと思います。</p>

<p>コツはチップと基板、両方のパッドに先に半田を盛っておくこと、そしてチップを基板から少し浮かせることだと思います。</p>

<p><img alt="solder_QFN.png" src="http://fenrir.naruoka.org/archives/images/solder_QFN.png" width="400" height="201" border="0" /></p>

<p>カプトンテープでチップをかさ上げをして、フラックスを間に流し込んであげます。あとは適宜半田を外から補充し、表面張力の力を信じまょう。半田付けが成功しているかどうかもぎりぎり目視で確認できます。</p>

<p>もっといい方法をご存じの方、ぜひお教えください。</p>]]></content:encoded>
<guid isPermaLink="false">838@http://fenrir.naruoka.org/</guid>
<dc:subject>Embedded System</dc:subject>
<dc:date>2011-11-14T07:50:36+09:00</dc:date>
</item>
<item>
<title>XBeeやANT+が載った基板の実装</title>
<link>http://fenrir.naruoka.org/archives/000837.html</link>
<description>以前、何でも2.4GHz通信を載せてみる基板の構想を書きましたが、実装してみました。黄色い基板です。 裏と表 0.4mmピッチのMAXVを恐れていたのですが、いざ実装をしてみるとそれほど大変ではありませんでした。それよりもMAXVやCC2570のボトムパッドを無理矢理スルホールで接触確保するのが大変でした。 少し悔しい点として、JSTのNSHコネクタ(1mmピッチで強ロック付)を使う予定だったのですが、箱売りしかなくSHで断念しました。JSTは直販小売webショップがあるので、なんでもバラで調達できるだろうと思っていたのが、そもそもの間違いでした。 ※その後、Tiny Featherに繋げてみました。...</description>
<content:encoded><![CDATA[<p>以前、<a href="http://fenrir.naruoka.org/archives/000834.html">何でも2.4GHz通信を載せてみる基板の構想</a>を書きましたが、実装してみました。黄色い基板です。</p>

<p><a href="http://fenrir.naruoka.org/archives/images/wireless_IF.jpg"><img alt="wireless_IF.jpg" src="http://fenrir.naruoka.org/archives/images/wireless_IF-thumb.jpg" width="408" height="306" border="0" /></a><br />
裏と表</p>

<p>0.4mmピッチのMAXVを恐れていたのですが、いざ実装をしてみるとそれほど大変ではありませんでした。それよりもMAXVやCC2570のボトムパッドを無理矢理スルホールで接触確保するのが大変でした。</p>

<p>少し悔しい点として、<a href="http://www.jst-mfg.com/product/detail.php?series=583">JSTのNSHコネクタ</a>(1mmピッチで強ロック付)を使う予定だったのですが、箱売りしかなくSHで断念しました。JSTは<a href="https://order.jst-mfg.com/InternetShopCustomer/?language=ja&requestedPage=mainContent&countryId=392">直販小売webショップ</a>があるので、なんでもバラで調達できるだろうと思っていたのが、そもそもの間違いでした。</p>

<p>※その後、<a href="http://fenrir.naruoka.org/archives/000846.html">Tiny Featherに繋げてみました</a>。</p>]]></content:encoded>
<guid isPermaLink="false">837@http://fenrir.naruoka.org/</guid>
<dc:subject>Embedded System</dc:subject>
<dc:date>2011-11-07T21:44:10+09:00</dc:date>
</item>
<item>
<title>金沢21世紀美術館</title>
<link>http://fenrir.naruoka.org/archives/000836.html</link>
<description>先日、所用があって金沢市内に行ってきました。せっかくなので観光をいくばくか、その中でも金沢21世紀美術館が結構楽しめました。写真が撮れた範囲で気になった展示を載せてみます。 三原色のパネルが貼ってあります。パネルには重なっている部分があるので、オレンジや緑など混ぜた色を楽しむこともできます。 原色系の派手派手な絵。部屋全体が絵なので、でかいです。絵と同じポーズを取る遊びをしてきました。...</description>
<content:encoded><![CDATA[<p>先日、所用があって金沢市内に行ってきました。せっかくなので観光をいくばくか、その中でも<a href="http://www.kanazawa21.jp/">金沢21世紀美術館</a>が結構楽しめました。写真が撮れた範囲で気になった展示を載せてみます。</p>

<p><a href="http://fenrir.naruoka.org/archives/images/NCM_0138.jpg"><img alt="NCM_0138.jpg" src="http://fenrir.naruoka.org/archives/images/NCM_0138-thumb.jpg" width="408" height="306" border="0" /></a></p>

<p>三原色のパネルが貼ってあります。パネルには重なっている部分があるので、オレンジや緑など混ぜた色を楽しむこともできます。</p>

<p><a href="http://fenrir.naruoka.org/archives/images/NCM_0141.jpg"><img alt="NCM_0141.jpg" src="http://fenrir.naruoka.org/archives/images/NCM_0141-thumb.jpg" width="408" height="306" border="0" /></a></p>

<p>原色系の派手派手な絵。部屋全体が絵なので、でかいです。絵と同じポーズを取る遊びをしてきました。</p>]]></content:encoded>
<guid isPermaLink="false">836@http://fenrir.naruoka.org/</guid>
<dc:subject>Photo</dc:subject>
<dc:date>2011-10-29T23:59:59+09:00</dc:date>
</item>
<item>
<title>SDカードのデバッグ</title>
<link>http://fenrir.naruoka.org/archives/000835.html</link>
<description>最近SDカードのデバッグでずっと行き詰まっています。愚痴がてら、デバック環境をさらしておこうと思います。 デバック中… sparkfunにあったmicroSDカードのアダプタがとっても便利です。これにオシロのプローブをつければ信号を簡単に見ることができます。オシロでダメなら、次はロジアナをつなごうとしています。といってもロジアナは現在持っていませんので、秋月電子にあるZeroplusのロジアナを購入することになるのだと思います。 Zeroplusのプロトコル対応表によるとSDに対応している最下位機種はLAP-16128Uなので、それになるのだと思います。もしロジアナでお薦めがあれば教えてください!...</description>
<content:encoded><![CDATA[<p>最近SDカードのデバッグでずっと行き詰まっています。愚痴がてら、デバック環境をさらしておこうと思います。</p>

<p><img alt="sd_debug.jpg" src="http://fenrir.naruoka.org/archives/images/sd_debug.jpg" width="400" height="300" border="0" /><br />
デバック中…</p>

<p>sparkfunにあった<a href="http://www.sparkfun.com/products/9419">microSDカードのアダプタ</a>がとっても便利です。これにオシロのプローブをつければ信号を簡単に見ることができます。オシロでダメなら、次はロジアナをつなごうとしています。といってもロジアナは現在持っていませんので、秋月電子にある<a href="http://akizukidenshi.com/catalog/c/clogiana/">Zeroplusのロジアナ</a>を購入することになるのだと思います。<br />
<a href="http://www.zeroplus.com.tw/logic-analyzer_en/Bus.html">Zeroplusのプロトコル対応表</a>によるとSDに対応している最下位機種は<a href="http://www.zeroplus.com.tw/logic-analyzer_en/products.php?product_id=19">LAP-16128U</a>なので、<a href="http://akizukidenshi.com/catalog/g/gM-03081/">それ</a>になるのだと思います。もしロジアナでお薦めがあれば教えてください!</p>]]></content:encoded>
<guid isPermaLink="false">835@http://fenrir.naruoka.org/</guid>
<dc:subject>Embedded System</dc:subject>
<dc:date>2011-10-16T23:59:00+09:00</dc:date>
</item>
<item>
<title>XBeeやANT+が載った基板の設計</title>
<link>http://fenrir.naruoka.org/archives/000834.html</link>
<description>2.4GHzの通信規格がいろいろとありますが、それを一枚の基板でできるだけなんとかしてしまおうとした、妙に盛りだくさんな基板を設計してみました。兎にも角にもアートワークを載せてみます。 裏と表。サイズ1.1x1.5 inch。 一番重要なパターンは、基板両端にある2mmピッチ、2列 x 10ピンのXBeeパターンです。このパターンをつけることによって、本家のXBeeのみならず、ピン互換商品を使うことでいろいろなモジュールに対応できます。たとえばBluetoothやGPSなどがあります。 その他の怪しげなパターンは、最近フィットネスや自転車のセンサ分野で使われるようになってきているANT+規格に対応させるためのTI CC2570、およびそのアンテナやマッチング回路です。 加えて最後に、CPLDのMAX Vが載っています。今後の配線を基板設計時に考えるのが面倒だったので、実際に基板を使う際になったら色々と組み替えられるよう、とりあえずCPLDで配線を受けるという作戦を使ってみました。一番ピン数が少ないMAX VのEQFP (0.4mmピッチ、ボトムパッドGND) 64ピンが載っています。半田付けには苦労しそうですが、なんといっても1個あたり100円台で買えるCPLDのMAX Vは大変魅力的です。 基板はFusionPCBの0.8mm厚で作ってみることにしました。インピーダンスコントロールは期待していないので、ANT+の部分については電波が受かればラッキーという扱いです。 ※その後、実装完了しました。...</description>
<content:encoded><![CDATA[<p>2.4GHzの通信規格がいろいろとありますが、それを一枚の基板でできるだけなんとかしてしまおうとした、妙に盛りだくさんな基板を設計してみました。兎にも角にもアートワークを載せてみます。</p>

<p><a href="http://fenrir.naruoka.org/archives/images/Wireless_IF_brd.png"><img alt="Wireless_IF_brd.png" src="http://fenrir.naruoka.org/archives/images/Wireless_IF_brd-thumb.png" width="400" height="547" border="0" /></a><br />
裏と表。サイズ1.1x1.5 inch。</p>

<p>一番重要なパターンは、基板両端にある2mmピッチ、2列 x 10ピンの<a href="http://www.digi-intl.co.jp/products/wireless-wired-embedded-solutions/zigbee-rf-modules/">XBee</a>パターンです。このパターンをつけることによって、本家のXBeeのみならず、ピン互換商品を使うことでいろいろなモジュールに対応できます。たとえば<a href="http://www.seeedstudio.com/depot/bluetooth-bee-p-598.html?cPath=139_142">Bluetooth</a>や<a href="http://www.seeedstudio.com/depot/gps-bee-kit-with-mini-embedded-antenna-p-560.html?cPath=144_145">GPS</a>などがあります。</p>

<p>その他の怪しげなパターンは、最近フィットネスや自転車のセンサ分野で使われるようになってきている<a href="http://www.thisisant.com/">ANT+</a>規格に対応させるための<a href="http://www.ti.com/product/cc2570">TI CC2570</a>、およびそのアンテナやマッチング回路です。</p>

<p>加えて最後に、CPLDの<a href="http://www.altera.co.jp/products/devices/cpld/max-v/mxv-index.jsp">MAX V</a>が載っています。今後の配線を基板設計時に考えるのが面倒だったので、実際に基板を使う際になったら色々と組み替えられるよう、とりあえずCPLDで配線を受けるという作戦を使ってみました。一番ピン数が少ないMAX VのEQFP (0.4mmピッチ、ボトムパッドGND) 64ピンが載っています。半田付けには苦労しそうですが、なんといっても1個あたり100円台で買えるCPLDのMAX Vは大変魅力的です。</p>

<p>基板は<a href="http://www.seeedstudio.com/depot/fusion-pcb-service-p-835.html?cPath=185">FusionPCB</a>の0.8mm厚で作ってみることにしました。インピーダンスコントロールは期待していないので、ANT+の部分については電波が受かればラッキーという扱いです。</p>

<p>※その後、<a href="http://fenrir.naruoka.org/archives/000837.html">実装完了</a>しました。</p>]]></content:encoded>
<guid isPermaLink="false">834@http://fenrir.naruoka.org/</guid>
<dc:subject>Embedded System</dc:subject>
<dc:date>2011-10-07T00:02:44+09:00</dc:date>
</item>
<item>
<title>Cortex-M4F がDigiKeyで注文可能に</title>
<link>http://fenrir.naruoka.org/archives/000833.html</link>
<description>浮動小数点演算ができる使いやすい少ピンマイコンを探し続けているのですが、とうとう決め手になりそうなものがでてきました。ARMのCortex-M4Fを採用したSTMicroelectronicsのSTM32F405RGT6です。まだ現時点で在庫がありませんが、DigiKeyで購入可能です。 64ピンのパッケージで168MHzで浮動小数点演算が回ります。拡張バスがないのでメモリの継ぎ足しはできないのですが、SRAMは192KBあります。USBも2.0 high-speed対応(HSの場合は外部PHY必要、FSは内蔵PHY利用可能)でMMCSDインターフェイスももっています。いろいろ作れそうと心躍ったところで、Eagleのライブラリ(スクリプト形式)をこさえてみました。基板もそのうち作りたいです。...</description>
<content:encoded><![CDATA[<p>浮動小数点演算ができる使いやすい少ピンマイコンを探し続けているのですが、とうとう決め手になりそうなものがでてきました。ARMのCortex-M4Fを採用したSTMicroelectronicsの<a href="http://www.st.com/internet/mcu/product/252144.jsp">STM32F405RGT6</a>です。まだ現時点で在庫がありませんが、<a href="http://search.digikey.com/scripts/DkSearch/dksus.dll?lang=jp&site=jp&vendor=0&WT.z_cid=ref_findchips0311_dkc_buynow&mpart=STM32F405RGT6">DigiKeyで購入可能</a>です。</p>

<p>64ピンのパッケージで168MHzで浮動小数点演算が回ります。拡張バスがないのでメモリの継ぎ足しはできないのですが、SRAMは192KBあります。USBも2.0 high-speed対応(HSの場合は外部PHY必要、FSは内蔵PHY利用可能)でMMCSDインターフェイスももっています。いろいろ作れそうと心躍ったところで、<a href="http://fenrir.naruoka.org/download/embedded/STM32F405RGT6.src">Eagleのライブラリ(スクリプト形式)</a>をこさえてみました。基板もそのうち作りたいです。</p>]]></content:encoded>
<guid isPermaLink="false">833@http://fenrir.naruoka.org/</guid>
<dc:subject>Embedded System</dc:subject>
<dc:date>2011-09-30T13:05:30+09:00</dc:date>
</item>


</channel>
</rss>
