2013年5月19日日曜日

C#のToString

C#のToStringで正数と負数のフォーマットを変える方法

int a = 10;
string str = a.ToString("000");
の場合 str = "010" となります
しかし a = -10; の場合は str = "-010"; となってしまいます

文字数を安定化させたい場合はこの方法では問題があります

その場合
ToStringのformatを "000;-00;000" としておくことにより
i = 10 で str = "010" となり
i = -10 の場合は str = "-10" となります

format の書式としては
"正数の時のフォーマット;負数の時のフォーマット;それ以外(0の時)のフォーマット"
です
文字列をセミコロンで区切る("000";"-10";"000")のではなく
文字列の中にセミコロンが入る("000;-10;000")事に注意してください

2013年5月10日金曜日

デバイスのレジスタマップ

各種センサのレジスタマップです
列挙型になっています
一応使っているので大きな間違いはないと思いますが
あまり使わないレジスタ(連続で読み出すようなところとか)は間違ってる可能性もあります
フツーのデバイスならアドレスが飛ぶってことも少ないので大丈夫だと思いますが
使う場合は各自確認してください

以下
ADT7420
L3G4200D
L3GD20
LIS331HH
LPS331AP
LSM303DLHC
LIS302DL
LSM9DS0 // 追加 2017/08/13

列挙型本体は続きに


2013年5月7日火曜日

JPEGカメラ

このエントリではストロベリーリナックスで発売しているJPEGカメラについて説明しています
ストロベリーリナックスの商品ページ

なお、スイッチサイエンスでも同等のものが販売されており、
SparkFunのURLが同じなため、同等品であると思われます
スイッチサイエンスの商品ページ

このエントリは時間があるときに少しずつ拡充していきます


このJPEGカメラは
TTLレベルのRS232Cライクな通信を使用して、
簡単にJPEG画像を獲得することができるというものです
解像度はVGA(640x480)/QVGA(320x240/VGAの面積比4分の1)/160x120の3種類から選択出来ます

詳細は後述しますが、
スイッチサイエンスの商品ページには

「解像度はメーカーによると「VGA・QVGA(320 × 240)・160 x 120の3種」となっていますが、当社で確認したところ「320 × 240」から変更ができません。 」
と書かれていますが、これは誤りで 実際には変更することができます
(少なくとも僕が買ったものでは変更ができました)

動作電圧は3.3Vもしくは5Vで、通信は3.3Vです
消費電力はおよそ100mA程度であり、
転送速度は理論値で14秒ほどかかります
(設定により変化)

想定される用途としては
環境モニタリングや工場の監視、医療機器やテレビ電話、セキュリティなどがあるようです

基本的な使い方は、特に難しいことはなく
シリアルポートで特定のコマンドを送受信することで操作します

画像を獲得する手順としては
1) RESET(起動時のみ/省略可能)
2) 画像を撮影する(Take picture)
3) ファイルサイズを獲得(Read JPEG file size)
4) 画像ファイルを読み込む(Read JPEG file content)
5) シーケンスを終了する
(2に戻る)
という感じになります