FEZCobra_Sensors

FEZCobra_Sensors.jpg

FEZ Cobraに HIH-5031-001(アナログ出力湿度センサ)、 DS1822+(1Wire温度センサ)SCP1000-D01(SPI気圧センサ)を 接続してその値を表示します。 背景にはいまいち萌えない娘を 使用させていただきました。

回路図

湿度センサの回路図です。

FEZCobra_Sensors.png

温度センサはIO74、気圧センサはUEXTコネクタにそれぞれ接続しています。

プロジェクトファイル一式

  • DS1822+制御のバグ修正 2011/02/19

ADCの使い方

analogIn = new AnalogIn((AnalogIn.Pin)pin);

pinをADCとして使用する

analogIn.Read();

アナログ値を読み込む

フォントの作成方法

"C:\Program Files\Microsoft .NET Micro Framework\v4.1\Tools\TFConvert" Msyh24.fntdef Resources\Msyh24.tinyfnt

フォントを変換して「Resources\Msyh24.tinyfnt」として保存

「Msyh24.fntdef」の内容

AddFontToProcess "C:\\Windows\\Fonts\\msyh.ttf"
SelectFont "HE:24,WE:400,FN:Microsoft Yahei"
AntiAlias 8
ImportRange 32 255

画面構成

Panel panel = new Panel();
Image wallpaper = new Image();
Panel panelText = new Panel();
StackPanel stackText = new StackPanel();
Text pressureText = new Text();
Text temperatureText = new Text();
Text humidityText = new Text();

public MainWindow()
{
    pressureText.Font = Resources.GetFont(Resources.FontResources.Msyh24);
    pressureText.HorizontalAlignment = HorizontalAlignment.Center;
    pressureText.VerticalAlignment = VerticalAlignment.Center;

    temperatureText.Font = Resources.GetFont(Resources.FontResources.Msyh24);
    temperatureText.HorizontalAlignment = HorizontalAlignment.Center;
    temperatureText.VerticalAlignment = VerticalAlignment.Center;

    humidityText.Font = Resources.GetFont(Resources.FontResources.Msyh24);
    humidityText.HorizontalAlignment = HorizontalAlignment.Center;
    humidityText.VerticalAlignment = VerticalAlignment.Center;

    stackText.Children.Add(pressureText);
    stackText.Children.Add(temperatureText);
    stackText.Children.Add(humidityText);
    stackText.Orientation = Orientation.Vertical;
    stackText.HorizontalAlignment = HorizontalAlignment.Center;
    stackText.VerticalAlignment = VerticalAlignment.Center;

    panelText.Children.Add(stackText);
    panelText.HorizontalAlignment = HorizontalAlignment.Right;
    panelText.VerticalAlignment = VerticalAlignment.Top;
    panelText.Width = SystemMetrics.ScreenWidth / 2;
    panelText.Height = SystemMetrics.ScreenHeight / 2;

    wallpaper.Bitmap = Resources.GetBitmap(Resources.BitmapResources.kobeimamoe);
    wallpaper.HorizontalAlignment = HorizontalAlignment.Stretch;
    wallpaper.VerticalAlignment = VerticalAlignment.Stretch;

    panel.Children.Add(wallpaper);
    panel.Children.Add(panelText);
    panel.HorizontalAlignment = HorizontalAlignment.Stretch;
    panel.VerticalAlignment = VerticalAlignment.Stretch;

    this.Child = panel;
    this.Width = SystemMetrics.ScreenWidth;
    this.Height = SystemMetrics.ScreenHeight;
}
layout.png
  • pressureText、temperatureText、humidityTextのサイズは表示している文字列で決まる
  • stackTextにpressureText、temperatureText、humidityTextを縦に配置
  • stackTextのサイズは配置したコントロールのサイズで決まる
  • panelTextの中央にstackTextを配置
  • panelTextは右上に配置
  • panelTextのサイズは160×120(LCDの半分のサイズ)に指定
  • wallpaperのサイズはpanelのサイズで決まる
  • panelにwallpaperとstackTextを配置
  • panelのサイズはmainWindowのサイズで決まる
  • mainWindowにpanelを配置
  • mainWindowのサイズは320×240(LCDのサイズ)に指定

添付ファイル: fileFEZCobra_Sensors.zip 574件 [詳細] filelayout.png 419件 [詳細] fileFEZCobra_Sensors.png 397件 [詳細] fileFEZCobra_Sensors.jpg 420件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-02-19 (土) 01:13:10 (2735d)