2015年8月31日月曜日

【.NET】 .NET FrameworkだけでC#のコンパイル

「.NET」が入っているWindwsに「C#」と「Visual Basic .NET」のコンパイラが標準で
含まれていると聞いたので「C#」で「hellow, world」を試してみる。
※Windows Vista以降だと標準で入っている。

コンパイラは
「C:\Windows\Microsoft.NET」配下の「Framework」or「Framework64」の下
「v#.NETのバージョン#」のフォルダに「csc.exr」(C#)、「vbc.exe」の名前で入っている。

とりあえず、「C#」で「hellow, world」


「hellow, world」のソース

using System;

namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("hello, world");
        }
    }
}

ソースをファイル名「helloworld.cs」で保存。

今回は「C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe」でコンパイル&実行


コンパイル&実行

d:\@temp>C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe helloworld.cs
Microsoft (R) Visual C# Compiler Version 4.0.30319.36242
for Microsoft (R) .NET Framework 4.5
Copyright (C) Microsoft Corporation. All rights reserved.


d:\@temp>helloworld.exe
hello, world


「Visual Studio」無しに「C#」と「VB.NET」のコンパイルができる。

2015年8月25日火曜日

【Intel Edison】Intel Edison Breakout Board KitでLチカ C言語編

Intel EdisonでC言語を利用してLチカをやったのでメモ

回路図は前回を参考。
Intel Edisonに入れてるLinuxは「Release 2.1 Yocto* complete image」
(こっちで初期化した際にいれたやつ)

Intel作成のMRAAライブラリを利用することで
プログラミング言語からIntel EdisonのIOポートが使えるようになる。

Intel提供のLinuxをインストールしている場合は標準で入っているので
インストール手順は省略。

ココとかココとかココを参考に作ったソースがこちら


Lチカのソース
#include <stdio.h>#include <unistd.h>#include <mraa.h>
int main(int argc, char *argv[]){
// MRAAの初期化 mraa_init();
// MRAAのバージョンを出力 fprintf(stdout, "MRAA Version: %s\n", mraa_get_version());
// MRAAでGPIOとして使用するポートを初期化 // 今回は48番ポート(J20-7ピン) // echo "15" > /sys/class/gpio/export みたいなもの mraa_gpio_context gpio; gpio = mraa_gpio_init(48); if (gpio == NULL){ return 1; }
// ポートを出力に設定 if (mraa_gpio_dir(gpio, MRAA_GPIO_OUT) != MRAA_SUCCESS){ return 1; }
int i; for (i = 0; i<10; i++){ fprintf(stdout, "num: %s\n", mraa_get_version()); // echo "1" > /sys/class/gpio/gpio15/valueみたいなもの mraa_gpio_write(gpio, 1); sleep(1);
// echo "0" > /sys/class/gpio/gpio15/valueみたいなもの mraa_gpio_write(gpio, 0); sleep(1); }

// MRAAの終了処理 mraa_deinit();
return 0;}

作ったソースを今回は「test.c」という名前で保存してコンパイル&実行

コンパイル&実行

>gcc -lmraa test.c

>./a.out


「gcc -lmraa test.c」でコンパイル。
 「-lmraa」で「mraaライブラリ」をリンクするの意味。
 「./a.out」で実行。

実行した様子がこちら


とりあえず今後は他の言語でのLチカやセンサーとかをつないで見る予定。
後、ソースコードを綺麗に表示したい。

2015年8月21日金曜日

【PowerShell】PowerShellで「wget」

PowerShell 4.0以降で「wget」が使えるらしいのでやってみた時のメモ


構文
PS>wget -uri URI -outfile 出力するファイル名

「Invoke-WebRequest」のエイリアスらしく他にもいろいろできそう。

とりあえずgoogleのトップページでも落としてみる。

やってみた
PS>wget -uri https://www.google.co.jp/webhp?hl=ja -outfile test.html 

カレントディレクトリにファイル名「test.html」でダウンロードできた。

2015年8月14日金曜日

【Intel Edison】Intel Edison Breakout Board KitでLピカ

Intel EdisonでLピカをやったのでメモ

Breakout BoardのGPIOの電圧は1.8v ドライブ能力3mAらしいので、 直接LEDを繋ぐと故障の原因になるらしい。

そのため、トランジスタを利用して電流と電圧を増幅してやる必要がある。

やってみた際のメモは以下。

  1. 回路図
    1. いろいろ調べて作成した回路がこちら。
      エネループ2本を電源としてLEDへの抵抗は1.0kΩ、トランジスタのベースに繋がる抵抗は10kΩのモノを選択し、Edisonから制御のための信号を送るGPIO(汎用のIOのことらしい)は「GPIO15」を選択した。

      実際に組んでみた写真はこちら


     
  2. GPIOの設定
    1. 「/sys/class/gpio/gpio15/value」に値を書き込む事で制御できるが、起動した段階では「/sys/class/gpio/」に「gpio15」が存在しないため、以下のコマンドで追加しアウトプットとして設定してやる。

      GPIOの設定#echo "15" > /sys/class/gpio/export
      #echo "out" > /sys/class/gpio/gpio15/direction

      「echo "15" > /sys/class/gpio/export」で「gpio15」を使用すると宣言し、
      「echo "out" > /sys/class/gpio/gpio15/direction」で「gpio15」を出力として使うと宣言する。


  3. Lチカ
    1. 「/sys/class/gpio/gpio15/value」に「1」を書き込むことでON、「0」を書き込むことでOFFにすることで制御する。

      GPIOの設定#echo "1" > /sys/class/gpio/gpio15/value#echo "0" > /sys/class/gpio/gpio15/value

      「1」を書き込むとLEDが光る




とりあえず次はLチカと今回作成した回路やGPIOについてのメモをあげる予定。

2015年8月6日木曜日

【PowerShell】バージョンを確認する&「PowerShell 4.0」のインストール。

「PowerShell」のバージョンを確認方法とPowerShell4.0のインストールのメモ


  1. 「PowerShell」のバージョン確認


  2. 「PowerShell」のバージョンはシェル変数「$PSVersionTable」を表示することで確認できる。

    実行例
    PS > $PSVersionTable

    Name                           Value
    ----                           -----
    CLRVersion                     2.0.50727.5485
    BuildVersion                   6.1.7601.17514
    PSVersion                      2.0
    WSManStackVersion              2.0
    PSCompatibleVersions           {1.0, 2.0}
    SerializationVersion           1.1.0.1
    PSRemotingProtocolVersion      2.1


    「PSVersion」の値がPowerShellバージョン。

    PowerShell 1.0に「$PSVersionTable」は存在しないらしいので、エラーが出たら「1.0」


  3. 「PowerShell 4.0」のインストール

  4. 「PowerShell 4.0」は「Windows Management Framework 4.0」に入っているので「Windows Management Framework 4.0」をインストールする。
    ※Windows8.0にはインストールできない。Windows8.1は標準搭載。
    1. 「Windows Management Framework 4.0」のダウンロード
    2. ココからインストーラーをダウンロードする。 
      • Windows6.1-KB2819745-x64-MultiPkg.msu : Windows7 64bitの場合 
      • Windows6.1-KB2819745-x86-MultiPkg.msu : Windows7 32bitの場合 
    3. ダウンロードしたインストーラを実行してインストール(再起動が必要)。

    「PowerShell 4.0」のインストール後に「$PSVersionTable」を表示すると以下のようになる。 

    実行例
    PS > $PSVersionTable

    Name                           Value
    ----                           -----
    PSVersion                      4.0
    WSManStackVersion              3.0
    SerializationVersion           1.1.0.1
    CLRVersion                     4.0.30319.0
    BuildVersion                   6.3.9600.16406
    PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0}
    PSRemotingProtocolVersion      2.2


2015年8月4日火曜日

【PowerShell】ランダムな値を得る。

Windows&PowerShellでランダムな値を作るときのメモ。

「Get-Random」でランダムな値を得ることが可能。

構文
PS D:\@temp> Get-Random

PS D:\@temp> Get-Random -Minimum 最小値 -Maximum 最大値

PS D:\@temp> Get-Random 配列


「Get-Random」は省略して「random」でもOK。

「Get-Random」単体で「0」から「2,147,483,647」までの値を得られる、

「Get-Random -Minimum 最小値 -Maximum 最大値」で「最小値」から「最大値」までの値を得られる。

最小値か最大値にに小数点を含んだ値を入力すると得られる値が浮動小数点数になる。


「Get-Random 配列」で「配列内の値」をランダムで返す。



PS D:\@temp> Get-Random
239611095

PS D:\@temp> Get-Random
1693143731

PS D:\@temp> Get-Random -Minimum 0 -Maximum 99
73
PS D:\@temp> Get-Random -Minimum 0 -Maximum 99
22

PS D:\@temp> Get-Random -Minimum -2.0 -Maximum 2.0
1.6976443564974

PS D:\@temp> Get-Random -Minimum -2.0 -Maximum 2.0
-1.35677739947884

PS D:\@temp> Get-Random @('O型', 'A型', 'B型', 'AB型')
O型

PS D:\@temp> Get-Random @('O型', 'A型', 'B型', 'AB型')
A型

試験データを作るとき等に便利。