<?xml version="1.0" encoding="utf-8" ?>


<?xml-stylesheet href="http://d.hatena.ne.jp/ksh0ji/rssxsl" type="text/xsl" media="screen"?>


<rdf:RDF
xmlns="http://purl.org/rss/1.0/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xml:lang="ja">
<channel rdf:about="http://d.hatena.ne.jp/ksh0ji/rss">
<title>なんか作る</title>
<link>http://d.hatena.ne.jp/ksh0ji/</link>
<description>なんか作る</description>

<dc:creator>ksh0ji</dc:creator>
<dc:date>2012-02-27T22:23:34+09:00</dc:date>
<items>
<rdf:Seq>
<rdf:li rdf:resource="http://d.hatena.ne.jp/ksh0ji/20120227/1330348077"/>
<rdf:li rdf:resource="http://d.hatena.ne.jp/ksh0ji/20101123/1290506192"/>
<rdf:li rdf:resource="http://d.hatena.ne.jp/ksh0ji/20101105/1288930126"/>
<rdf:li rdf:resource="http://d.hatena.ne.jp/ksh0ji/20101029"/>
<rdf:li rdf:resource="http://d.hatena.ne.jp/ksh0ji/20101014/1287032798"/>
</rdf:Seq>
</items>
</channel>



<item rdf:about="http://d.hatena.ne.jp/ksh0ji/20120227/1330348077">
<title>LogcatUtils の紹介 (兼、オンラインマニュアル) </title>
<link>http://d.hatena.ne.jp/ksh0ji/20120227/1330348077</link>
<description> 開発の経緯 Androidの開発環境にはLogcatのビューが付いています。しかし、端末をPCに繋いでいるときにバグが出るとは限りません。 複雑なアプリやゲームなど、スレッドを多用するようなアプリのタイミングバグはなかなか発生せず、再現したと思ったらログを取れる状況じゃ</description>

<content:encoded><![CDATA[
<div class="section">
<h4> 開発の経緯</h4>
<p>Androidの開発環境にはLogcatのビューが付いています。しかし、端末をPCに繋いでいるときにバグが出るとは限りません。</p>
<p>複雑なアプリやゲームなど、スレッドを多用するようなアプリのタイミングバグはなかなか発生せず、再現したと思ったらログを取れる状況じゃなかった、ということがままあります。</p>
<p>アプリを操作中にログをいつでも確認・保存できれば、みんなのアプリ開発がちょっぴり幸せになれるのでは…! という思いで作ってみました。</p>
<h4> ダウンロード</h4>
<p><a href="https://market.android.com/details?id=jp.kshoji.logcatlayer" target="_blank">https://market.android.com/details?id=jp.kshoji.logcatlayer</a></p>
<p>すいません、有料アプリ(100円)になります。</p>
<p>なぜかと言うと、アプリの性質上機密ログ情報を扱うので、インターネット権限のある広告を付けるわけにはいかないからです。</p>
<p>広告ついてもいいから無料アプリ希望、という声がありましたら検討してみます。</p>
<h4> LogcatUtilsでできること</h4>
<h4> 他アプリ上へのログの表示</h4>
<p>他のアプリにオーバーレイして、ログを表示します。ログレベルによって色分けされます。</p>
<p>ログの表示は、設定でいくつかのカスタマイズができます。</p>
<h5> 表示設定</h5>

<ul>
<li> フォントサイズが変更できます。</li>
<li> 他のアプリの邪魔にならないよう、文字の透明度が設定できます。</li>
<li> ログ情報と共に「日付」「プロセス名」を表示するかどうかを設定できます。</li>
</ul>
<h5> ログレベルによるフィルタリング</h5>

<ul>
<li> Androidの開発環境のLogcatビューと同様の、指定のログレベル以上のものだけを表示させることができます。</li>
</ul>
<h5> 文字列によるフィルタリング</h5>

<ul>
<li> 流れるログをキーワードによってフィルタリングできます。</li>
<li> プロセスの名称や例外の種類を登録しておくことで、ウォッチ対象のみを確認することができます。</li>
</ul>
<h4> ログの保存</h4>
<p>このアプリのメインとなる機能です。</p>
<p>ファイルに自動的にログ情報を保存します。</p>
<h5> ファイルへの保存</h5>

<ul>
<li> キーワードを指定しておくと、そのワードを含むログを検出した際に、その前後の行をファイルに保存します。</li>
<li> キーワードの前後何行を保存するか設定できます。(20,50,100,150行)</li>
<li> 検出のタイミングでバイブを振動させて、通知させることができます。</li>
</ul>
<h5> 保存したログの表示</h5>
<p>ファイルへ自動保存されたログを一覧表示します。</p>
<p>この画面から、GMailの添付ファイルへの追加など、他のアプリを使ったログ情報の共有ができます。</p>
<h4> 通知領域からのショートカット</h4>

<ul>
<li> 通知領域に常駐させ、よく使う機能を呼び出すことができます。</li>
</ul>
<h5> 通知ショートカットから呼び出せる機能の一覧</h5>

<ul>
<li> ログの表示透明度を変更できます。</li>
<li> 表示しているログレベルを変更できます。</li>
<li> クリップボードへ、現在表示しているログをコピーします。</li>
<li> 現在表示しているログをファイルに保存します。</li>
</ul>
</div>
]]></content:encoded>
<dc:creator>ksh0ji</dc:creator>
<dc:date>2012-02-27T22:07:57+09:00</dc:date>
</item>
<item rdf:about="http://d.hatena.ne.jp/ksh0ji/20101123/1290506192">
<title>外出先から家電をコントロールするシステムの構築</title>
<link>http://d.hatena.ne.jp/ksh0ji/20101123/1290506192</link>
<description> 朝晩が寒くて嫌な今日このごろ。朝目覚めたら、リビングのエアコンを寝室から操作できたらいいじゃなイカ。 どうせなら外出先からもネット越しに操作できたら更に嬉しいじゃなイカ。 赤外線LEDをチカチカさせればリモコン対応家電を制御できる、というのは先人たちが実験済</description>

<content:encoded><![CDATA[
<div class="section">

<ul>
<li> 朝晩が寒くて嫌な今日このごろ。朝目覚めたら、リビングのエアコンを寝室から操作できたらいいじゃなイカ。</li>
<li> どうせなら外出先からもネット越しに操作できたら更に嬉しいじゃなイカ。</li>
<li> 赤外線LEDをチカチカさせればリモコン対応家電を制御できる、というのは先人たちが実験済なので、これを応用してみようじゃなイカ。</li>
</ul>
<h4> 実現する機能</h4>

<ul>
<li> エアコン等の赤外線リモコン対応機器に、機器ごとに対応した赤外線信号を送信する。</li>
<li> 各社の機器に対応できるよう、赤外線リモコン信号のパラメータを通信で設定する。</li>
<li> 自宅サーバ上に赤外線送信を各マイコンに命令するシステムを組むことによって、外出先から制御する。</li>
</ul>
<p>→ サーバは今後mbedに置き換えたい。HTTPの認証機能がなんとかなれば…。</p>
<h4> まずは赤外線リモコンの解析</h4>
<h5> 必要なもの</h5>

<table>
<tr><td>赤外線受信素子</td><td>1個</td></tr>
<tr><td>3.5Φのイヤホンジャック</td><td>1個</td></tr>
<tr><td>5Vの電源</td><td>1個</td></tr>

</table>
<h5> 回路図</h5>
<p><a href="http://dl.dropbox.com/u/3968074/IR_Audio.png" class="http-image" target="_blank"><img src="http://dl.dropbox.com/u/3968074/IR_Audio.png" class="http-image" alt="http://dl.dropbox.com/u/3968074/IR_Audio.png" width="250"></a></p>
<p>赤外線受信素子の出力をPCのマイク端子に接続して、リモコン信号の電圧変化を「録音」して記録する。</p>
<p>44.1kHzとかの普通の音声として録音すればOK。</p>
<p>スピーカーを痛めるので再生はしないこと。</p>
<p>マイク端子などの極性によっては、ON/OFFの信号が上下反転していることがあるので、適宜読み換える。</p>
<p>いくつかの機種のリモコンで試したが、最初のオンの部分の長さ、次のオフの部分の長さ、信号ONの時間、OFFの時間、信号のデータ量、信号を送る回数、信号間の待ち時間</p>
<p>など、いろいろと微妙に違っていたので、それぞれパラメータとして渡せるようにする。</p>
<p>メーカーが同じで設定が同じでも信号の内容が違っていたりした。キリが無いので、解析は代表的な設定のみに留める。</p>
<h4> マイコン側の実装</h4>
<h5> 必要なもの</h5>

<table>
<tr><td>マイコン AVR ATmega168</td><td>部屋数分</td></tr>
<tr><td>3.3V 電源</td><td>部屋数分</td></tr>
<tr><td>XBee 通信モジュール</td><td>部屋数分</td></tr>
<tr><td>適当な赤外線LEDと、適当なトランジスタと、適当な抵抗いくつか</td><td>部屋数分</td></tr>

</table>
<h5> 回路図</h5>
<p><a href="http://dl.dropbox.com/u/3968074/XBee_Arduino.png" class="http-image" target="_blank"><img src="http://dl.dropbox.com/u/3968074/XBee_Arduino.png" class="http-image" alt="http://dl.dropbox.com/u/3968074/XBee_Arduino.png" width="250"></a></p>
<h5> 機能一覧</h5>

<ul>
<li> Web-マイコン間のシリアル通信接続は、有線ではなくXBeeで行う。線這わせるのめんどい。</li>
<li> このためXBeeはブロードキャストでシリアル通信するように設定しておく(今回は出荷時の状態にした)。</li>
<li> マイコンは、XBeeからシリアル通信で受けとったデータを解釈して、必要に応じて赤外線LEDをチカチカさせる。</li>
<li> XBeeにより、サーバ1対クライアントnの通信を行う。その関係上、機器IDを指定できるようなプロトコルにし、関係ない要求については応答はしないようにする。</li>
</ul>
<h4> Webサーバ側の実装</h4>
<p>↓クライアントに表示するHTMLはこんな感じ。</p>
<p><a href="http://f.hatena.ne.jp/ksh0ji/20101123120922" class="hatena-fotolife" target="_blank"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/k/ksh0ji/20101123/20101123120922.png" alt="f:id:ksh0ji:20101123120922p:image:w161" title="f:id:ksh0ji:20101123120922p:image:w161" class="hatena-fotolife" width="161"></a></p>
<h5> 必要なもの</h5>

<table>
<tr><td>PerlならDevice::SerialPort とか、Rubyならruby-serialportとかが動く、自宅Webサーバ</td><td>1台</td></tr>
<tr><td>XBee 通信モジュール</td><td>1個</td></tr>
<tr><td>AE-UM232R USBシリアル変換モジュール</td><td>1個</td></tr>

</table>
<h5> 回路図</h5>
<p><a href="http://dl.dropbox.com/u/3968074/Serial_XBee.png" class="http-image" target="_blank"><img src="http://dl.dropbox.com/u/3968074/Serial_XBee.png" class="http-image" alt="http://dl.dropbox.com/u/3968074/Serial_XBee.png" width="250"></a></p>
<h5> 機能一覧</h5>

<ul>
<li> 他人にいたずらされないよう、Digest認証を設定する。</li>
<li> 指定の信号情報をシリアルで通信して、実行した内容を管理機能に反映する。</li>
<li> iPhoneとかAndroidにやさしいインターフェースは、Appleが提供しているサンプルを流用する。</li>
<li> TODO: 家電の状態を管理して、それぞれの状態をWebページとして表示する。ただし、本来のリモコンで操作することもあるので、あくまで目安として表示する。</li>
</ul>
<h4> プロトコル</h4>
<p>必要なパラメータが全部渡ればいいので、コンパクトにバイナリで話す。</p>
<p>データ化けが起きるか不明だが、チェックサムを付けておく。</p>
<p>LED点灯系は26uSec.の倍数、消灯系は1mSec.もしくは10mSec.単位で指定している。</p>
<p>(1B→1バイト、ビッグエンディアン)</p>
<h5> サーバ→マイコンへの通信</h5>

<table>
<tr><td>'R'</td><td>ヘッダ</td><td> </td><td> </td></tr>
<tr><td>'E'</td><td>ヘッダ</td><td> </td><td> </td></tr>
<tr><td>'M'</td><td>ヘッダ</td><td> </td><td> </td></tr>
<tr><td>'O'</td><td>ヘッダ</td><td> </td><td> </td></tr>
<tr><td>'T'</td><td>ヘッダ</td><td> </td><td> </td></tr>
<tr><td>'E'</td><td>ヘッダ</td><td> </td><td> </td></tr>
<tr><td>${room id}</td><td>部屋ID</td><td> </td><td>1Byte</td></tr>
<tr><td>${lead on}</td><td>リーダのON時間</td><td>26uSec</td><td>1Byte</td></tr>
<tr><td>${lead off}</td><td>リーダのOFF時間</td><td>10mSec</td><td>1Byte</td></tr>
<tr><td>${long}</td><td>信号：長いOFF(信号：1を表す)の時間</td><td>1mSec</td><td>2Bytes</td></tr>
<tr><td>${short}</td><td>信号：短いOFF(信号：0を表す)の時間</td><td>1mSec</td><td>2Bytes</td></tr>
<tr><td>${on}</td><td>信号：ONの時間</td><td>26uSec</td><td>1Byte</td></tr>
<tr><td>${stop wait}</td><td>信号間の時間</td><td>10mSec</td><td>1Byte</td></tr>
<tr><td>${signal repeat count}</td><td>信号を繰り返す回数</td><td> </td><td>1Byte</td></tr>
<tr><td>${signal bit length}</td><td>信号のビット数(n)</td><td> </td><td>2Bytes</td></tr>
<tr><td>${signal's check sum}</td><td>信号のバイト配列のチェックサム</td><td> </td><td>1Byte</td></tr>
<tr><td>${signal}</td><td>信号のバイト配列</td><td> </td><td>${int ceil(n/8.0)}Byte(s)</td></tr>

</table>
<h5> マイコン→ホストへの通信</h5>

<ul>
<li> ヘッダが正常で、部屋IDが一致し、チェックサムが一致している場合</li>
</ul>
<p><pre> signal sent.\n </pre></p>

<ul>
<li> ヘッダが正常で、部屋IDが一致し、チェックサムが一致しない場合</li>
</ul>
<p><pre> send failed.\n </pre></p>

<ul>
<li> 部屋IDが一致しない場合</li>
</ul>
<p>応答しない。</p>

<ul>
<li> ヘッダがおかしい場合</li>
</ul>
<p>応答しない。</p>
<h4> ソフトウェア</h4>

<ul>
<li> <a href="http://dl.dropbox.com/u/3968074/remote_avr_src.zip" target="_blank">AVRのファームウェア</a></li>
<li> <a href="http://dl.dropbox.com/u/3968074/sendSignal.cgi.txt" target="_blank">perlのコード例</a></li>
</ul>
</div>
]]></content:encoded>
<dc:creator>ksh0ji</dc:creator>
<dc:date>2010-11-23T18:56:32+09:00</dc:date>
</item>
<item rdf:about="http://d.hatena.ne.jp/ksh0ji/20101105/1288930126">
<title>monotron部品表</title>
<link>http://d.hatena.ne.jp/ksh0ji/20101105/1288930126</link>
<description> monotronの回路図が公開されてたので、部品の値を一覧してみました。コピペミスあったらすいません。 回路図はこちら→ http://www.korg.co.jp/Support/Manual/download.php?id=512 NU: Not Use R19,R31,R69,R71 NU R41,R65,R83 0 R12 1 R2 820 R43,R48 47 R1,R21 100 R68 2</description>

<content:encoded><![CDATA[
<div class="section">
<p>monotronの回路図が公開されてたので、部品の値を一覧してみました。コピペミスあったらすいません。</p>
<p>回路図はこちら→ <a href="http://www.korg.co.jp/Support/Manual/download.php?id=512" target="_blank">http://www.korg.co.jp/Support/Manual/download.php?id=512</a></p>
<p>NU: Not Use</p>
<p>R19,R31,R69,R71NU</p>
<p>R41,R65,R830</p>
<p>R121</p>
<p>R2820</p>
<p>R43,R4847</p>
<p>R1,R21100</p>
<p>R68220</p>
<p>R62330</p>
<p>R49390</p>
<p>R29,R66470</p>
<p>R7,R11,R17,R20,R26,R27,R30,R33,R34,R511K</p>
<p>R4,R14,R64,R67,R782.2K</p>
<p>R533.3K</p>
<p>R8,R32,R35,R72,R744.7K</p>
<p>R765.6K</p>
<p>R756.8K</p>
<p>R9,R15,R16,R23,R25,R36,R38,R40,R44,R45,R47,R52,R54,R55,R56,R59,R63,R70,R7310K</p>
<p>R4618K</p>
<p>R7722K</p>
<p>R10,R5727K</p>
<p>R37,R8047K</p>
<p>R50,R79,R8268K</p>
<p>R691K</p>
<p>R5,R13,R24,R39,R58,R61100K</p>
<p>R18150K</p>
<p>R28220K</p>
<p>R81270K</p>
<p>R42,R60330K</p>
<p>R3820K</p>
<p>R221M</p>
<p>VR1100 B</p>
<p>VR2,VR3,VR4,VR5,VR6,VR710K B</p>
<p>C5,C12,C23NU</p>
<p>C30,C32100p</p>
<p>C8,C9,C10,C20,C260.01u</p>
<p>C110.01u 50V</p>
<p>C21,C223300p</p>
<p>C6,C7,C13,C16,C18,C27,C280.1u</p>
<p>C1,C4,C14,C17,C25,C291u</p>
<p>C1510u 電解</p>
<p>C2,C19,C2416V 10u 電解</p>
<p>C31,C336.3V 100u 電解</p>
<p>C36.3V 330uF 電解</p>
<p>L14.7uH</p>
<p>Q1IMX9 (2SD2114K ×2)</p>
<p>Q3,Q52SA1774</p>
<p>Q2,Q4,Q6,Q7,Q8,Q9,Q10,Q11,Q12,Q13,Q142SC4617</p>
<p>IC1TPS61071</p>
<p>IC2,IC4LM324</p>
<p>IC3SN74AHC14</p>
<p>IC5TPA6111A2DR</p>
<p>LED1</p>
<p>RIBBON10KB</p>
<p>SW1</p>
</div>
]]></content:encoded>
<dc:creator>ksh0ji</dc:creator>
<dc:date>2010-11-05T13:08:46+09:00</dc:date>
</item>
<item rdf:about="http://d.hatena.ne.jp/ksh0ji/20101029">
<title>プログラマーズナイト 第二夜 資料置き場</title>
<link>http://d.hatena.ne.jp/ksh0ji/20101029</link>
<description> LT発表資料はここ http://dl.dropbox.com/u/3968074/perlTwitter.key </description>

<content:encoded><![CDATA[
<div class="section">
<p>LT発表資料はここ</p>
<p><a href="http://dl.dropbox.com/u/3968074/perlTwitter.key" target="_blank">http://dl.dropbox.com/u/3968074/perlTwitter.key</a></p>
</div>
]]></content:encoded>
<dc:creator>ksh0ji</dc:creator>
<dc:date>2010-10-29</dc:date>
</item>
<item rdf:about="http://d.hatena.ne.jp/ksh0ji/20101014/1287032798">
<title>[工作][Arduino]ガイガーカウンターのカウント数をTwitterに投稿するアプリを作る</title>
<link>http://d.hatena.ne.jp/ksh0ji/20101014/1287032798</link>
<description> 絶賛作成中。 実装済 Google Chart APIを使って、時間単位のグラフを作成する。 周辺環境の放射線検出数をTwitterに定期ポストする。6時間おき(0時、6時、12時、18時)にポストしています。 hashtagは #radiationLog としています。 未実装 急激な値の変化(上昇)時に即時Twee</description>

<content:encoded><![CDATA[
<div class="section">
<p>絶賛作成中。</p>
<h4> 実装済</h4>

<ul>
<li>Google Chart APIを使って、時間単位のグラフを作成する。</li>
<li>周辺環境の放射線検出数をTwitterに定期ポストする。6時間おき(0時、6時、12時、18時)にポストしています。 hashtagは #radiationLog としています。</li>
</ul>
<h4> 未実装</h4>

<ul>
<li>急激な値の変化(上昇)時に即時Tweetする。</li>
</ul>
<h4> 不具合</h4>

<ul>
<li>停電などによるデータ抜けについての情報が、グラフに反映されない。</li>
</ul>
<h4> 用意するもの</h4>
<p><a href="http://f.hatena.ne.jp/ksh0ji/20101018081635" class="hatena-fotolife" target="_blank"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/k/ksh0ji/20101018/20101018081635.jpg" alt="f:id:ksh0ji:20101018081635j:image" title="f:id:ksh0ji:20101018081635j:image" class="hatena-fotolife"></a></p>
<p>↑システム一式</p>

<ul>
<li>Strawberry LinuxさんのUSBガイガーカウンターキット(右下)</li>
</ul>
<p><a href="http://strawberry-linux.com/catalog/items?code=53001" target="_blank">http://strawberry-linux.com/catalog/items?code=53001</a></p>
<p>ただし、USBインターフェースは今回は使用しない。</p>
<p>PSoCの2pinにカウンターからの信号が来ているので、それを使用できるようにする。</p>
<p>検出する線種はフィルターしていない。</p>

<ul>
<li>Arduino(左下)とPC(上)</li>
</ul>
<p>ガイガーカウンターキットに5V電源を供給する。</p>
<p>カウントしてシリアルに値を出力する。</p>

<ul>
<li>Perl</li>
</ul>
<p>シリアルの値を読み、データをログファイルに出力する。</p>
<p>OAuthを使ってTwitterに投稿する。</p>
<p>使ったモジュール：</p>
<p>Device::SerialPort, AnyEvent::Handle, Google::Chart, WWW::Shorten::Googl, Net::Twitter</p>
</div>
]]></content:encoded>
<dc:creator>ksh0ji</dc:creator>
<dc:date>2010-10-14T14:06:38+09:00</dc:date>
<dc:subject>工作</dc:subject>
<dc:subject>Arduino</dc:subject>
</item>
</rdf:RDF>
