2017年11月27日月曜日

Visual Studio Communityのオフライン インストール

仕事柄、自室に有線を引いていない。
メイン回線は旧FREETELの使った分だけプラン。

他方、Visual Studioは以下の通り途方もないデータを要求する。
こんなのを落とした月には、帯域制限間違いなし。


これを回避するため、有線の通信環境で予めインストールデータを保存することに。

1. MSのサイトからインストーラを取得する
vs_community_***.exeという感じの名前になる。
2017/11/27時点だと、vs_community__434634640.1511793803.exeだった。
末尾はバージョンNoっぽいので無視してOK。

2. コマンドプロンプトでオフラインインストールを起動
>> vs_community_***.exe --layout <ディレクトリ>
最後のディレクトリで、保存場所を指定。
20GB以上食うので要注意。


以上。

Arduinoのクロック精度を試す

秋月のI2C接続8x2LCDを使ってみた。

変換基板付きで\600、なしだともっと安い。


写真はLCDのみだが、後でRTCも繋いでみた。
LCDとRTCの制御自体はI2Cの作例がいくつもあるので割愛。
コマンド通りに叩くだけ。

検証したいのは、水晶とセラロックや、基板ごとの周波数精度の違い。
1ヵ月くらいのロギングをやるのに、ATmega+セラロックでOKか、水晶が必要かを見極めたい。
使用予定はLeonardoとUno 3(ATmega単体動作も)とArduino Nanoクローン。
温度ログなのでそこまでずれても痛くないけど、せめて1ヵ月で数分くらいの誤差に収めたいところ。

時間はFlexiTimer2でカウント。
LCD表示器に時計を表示して、電波時計を基準にずれを測定。
目視なので、1秒未満の誤差は防げない。
キッチリやるならRTCを正として差分を蓄積していくべき?

↓↓至ってシンプルなコード。
void setup() {
  Wire.begin();
  init_LCD();
 
  FlexiTimer2::set(1000, timer);
  FlexiTimer2::start();
  pinMode(13, OUTPUT);
}


■結果














何と、正規品のArduino Uno 3が一番ずれずれ。
次いで、Ceralock動作のATmega。
Leonardoが最良なのは不思議ではないけど、Maid in Chinaのコピー品のNanoが大健闘。
たった400円なのに凄い。

MsTimer2にすると、Uno 3もいい結果なのかもしれない。
また、Nano以外はばらつきが小さいのでuSleepを適当に入れれば十分な精度になりそう。

■温度ロガー(Arduino Nano + microSD + RTC)
小さいし安いので、本番はArduino Nanoでロガー作成した。
結局、安いRTCが手に入ったのでArduinoのクロック評価は実は意味なし。
タッパーに入れて、サーバの温度データを外部で保存してみた。
会社だとN/W経由で情報を取れないので、ArduinoでMicroSDに貯めると非常に便利。



## 実験は'17/4~5月にやったが、まとめが延び延びになっていた。
  ブログって、気を抜くとすぐに間が空いてしまいますね。