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月にやったが、まとめが延び延びになっていた。
  ブログって、気を抜くとすぐに間が空いてしまいますね。

2017年8月8日火曜日

nano SIMを買って普通サイズのSIMとして使う

■DMMの低速プラン
DMMモバイルと契約した。
Mining向けなので、最低料金\440の200kbpsプラン。
スマホ用にFreetel回線を持っているので、こっちのDMMは自室用。

普通に買うとSIM代だけで\3,000くらいかかるけど、
DMMやFreetelはAmazonで安く買うことができる。
これは送料別で\540だった。
回線開通の初回手数料で\420くらいかかったけど、合計千円以下なので満足。


Wireless GATEやロケモバの神プラン、Freetelの2回線目とも迷ったけど、結果的にいい買い物だったと思う。

Wireless GATEはSIMが入ったAndroid / iPhoneでないと新幹線でWifiが使えないので却下。
パソコンでWifiが使えたら神懸ってるのに・・・。
Freetelは低速モードで\299+税と大変安価で魅力的だけど、1社に絞るリスクは避けたい。
ロケモバは途中で契約容量を増やすことはできても減らせないのがネック。
また、Freetel以外は初期投資も\3,000程度と大きい。

総合的に考えて、容量が自在に変えられ、月額もそこそこ安く、初期投資も抑えられるDMMが最適解と判断。


■nano SIM⇒普通サイズのSIM
さて、今回購入したのはnano SIMだけど、手元で空いている通信端末は懐かしのGS02しかない。
昔emobile時代に活用していた3G専用機だが、こいつは普通サイズのSIMしか使えない。

 作戦1:カードからSIMを切り離さず、普通のSIMサイズで切り取ればOKでは??

やることはシンプルだが、手持ちの道具としてハサミとシャーペンしかない。
定規もどこかに仕舞い込んだまま。
サイズの参考にする普通のSIMもない!!

このままでは通信テストできない・・・。
Miningもできない・・・。




ということで、
 作戦2:トレスして紙に写し取る!!

まず、スマホでnano⇒通常SIMアダプタの正面から見た絵を検索する。
手元のnano SIMとアダプタの写真が同じサイズになるように調節し、
スマホの輝度を最大化してトレース台のようにし、薄い紙の上で線をなぞっていく。
このとき、映し出す画像はなるべく黒っぽいのがよい。よく透けるので。
 紙を置いて透けて見える線をなぞっていく

うまく紙にトレスできたら、紙を切り取る。
次に、実際のnano SIMの部分を紙に写し取った絵と一致させて、SIMの台紙カードに線を引く。 
こんな感じで線が引けた


カードにうまく線が引けたら、思い切りよく切断。
結構いい感じ!左端は細くなるので割らないように注意。


最後はスマホにセットして微調整。
それにしてもGS02とか懐かしすぎだ。
今時3Gって感じだけど、200kbps制限なら無理にLTEにする意味もない。

うまく認識![H]ってなってる。
DMMモバイルはAPN設定も簡単でいいね!




以上、DMMモバイルと、ハサミ・シャーペン・紙だけでできるnano SIMを通常SIMで使う小技について。


17/8/8現在、1日150円くらいマイニングできるので、
1週間もあれば初期投資は回収できる。
毎月3日回せば通信費もOK!
あとはパソコン分をどんどん回収したいな~。



2017年8月6日日曜日

GPU PC組立

久々にPCを組み上げた。
Deeplearningの勉強しつつ、空き時間でMiningするつもり。
Miningは遊びだけど、パーツ代を一部返却できたらいいな~。

前に組んだのはNorthwoodのPentium 4やAthron 64x2の時代だから相当昔だ。
DDR3は触らず仕舞いだ。

自作PCとも呼ぶけど、個人的にはあんまりしっくりこない。
経験してないけど、CバスやISAボードをはんだ付けしていた時代と比べると
ガンプラみたいなものだし。


構成は次の通り
【CPU】Intel Core i7 7700k (Kaby Lake)
【GPU】MSI GeForce GTX 1060 6GB(Short size)
【M/B】Asrock Z270M Extreme 4
【SSD】Crucial CT275MX300 275GB
【MEM】Crucial DDR4-2400 8GB x 2
【CASE】Thermaltake Core V21
【PSU】Seasonic SSR-650RMS (650W 80Plus Gold)
【FAN】Scythe 虎徹 Mark II
【OS】Windows 10 / ubuntu 16.04

ありきたりな構成と思うけど、某掲示板や価格サイトで悪くなさそうなのを選択。
MSIとAsrockは何となく技術が高そうなイメージ。
本当はGTX 1080/1070が欲しかったけど、売り切れ続出で高騰していたので断念。
ケースはネットで書かれている通り、デカイけど組みやすい。相当余裕がある。

パーツの持ち帰りが辛いので、主にTSUKUMOとAmazonから通販。
そこまで最安にこだわらなかったから14万くらいになった。
細かい部分を割り切れるならBTOのほうが早くて安いからオススメかも。


最近のM/Bって秘密の工場みたいでカッコいい。中二心が蘇る。

とにかく作業しやすいケースだった。今までMini-ITXばっか触ってたから余計かも。
安くて頑丈なので、置き場所に困らないならオススメできる。

ちょうどいいサイズのGPU。どれだけ計算が早くなるか楽しみ。


2017年4月22日土曜日

PICkit ICSPの簡単利用

ブレッドボードにICSPの回路を作るのすら面倒な貴方へ。

こうすれば、めちゃくちゃ楽です。
DIPテストクリップに、オス⇔メスのコードを5本繋いで使う。
IC単体、ブレッドボード、本番の回路問わずそのままプログラムできる。


秋月だと28PINか40PINしかないけど、aitendoなら8PINもある。
17/4/22現在で\850。私が秋葉で昔買ったときも\800くらいだったと思う。
 http://www.aitendo.com/product/14967

PICのICSPはだいたい8ピンの範囲に収まっていてありがたい。


フィラメント管で時計を作る(準備編)

昔買ったフィラメント管:IV-9で時計のような数字表示機を作った。
↓完成したものの動画。ケースはレゴで作成。



■フィラメント管IV-9
購入元は秋葉原の真空管屋さん。(サンエイ電機)
今売っているかはわからないけど、1個300円くらいだった。

データシートもネットですぐ見つかる。
 http://www.tube-tester.com/sites/nixie/data/IV-9/iv-9.htm

ニキシー管と違って数Vの低圧で動き、1セグは20mAくらい。
Typの電圧は4.5Vらしいが、アルカリ2本の3Vでも十分光る。
手持ちの4つだと、ピンに限らず3V~5Vの範囲では、消費電流はほとんど変わらなかった。

一般的には共通の1ピンをGNDにし、7セグ相当の3~9ピンと右下のドットの2ピンに正の電圧をかけるらしい。
ダイナミック制御でもうまく光ったが、ネットの作例を見るとスタティックのものが多い。
ロングランでは試していないけど、ダイナミックだとフィラメントにダメージがあるのだろうか?

■PICによるスタティックドライブ
スタティックで点灯させるなら、駆動は1管8個なので4つなら32個必要。
20mA×32個なので最大640mAになる。1管あたりは180mA。
Trをいっぱい並べるのも面倒なので普通は7セグドライバIC(74HC4511)とかTrアレイを使うけど、手持ちで古いPIC(PIC16F648A)が大量に余っていたのでこれを活用する。

このPICは1ピンでぎりぎり20mA出せて、チップ単位で200mAまでOK。
IOもDOがRA0~4, 6, 7とRB0~7の15本がある。
ただし、RA4はオープンドレインなのでDOだと電流吸い込みしかできないので注意。
また、シリアルを使うならRB1:RX, RB2:TXも埋まる。

今回は、アノードコモンとしRA系で7セグを点灯、RB0で2ピンのドットを点灯、baud 9600のUARTで数値を受けることにした。
ネットで作例を探すと、1つのTXから複数のRXを繋いでもうまくいくようだ。

最初の1字でA~Dを送り、管を区別させることにした。
2文字目で表示内容を送る。

2文字ファンクション
0~9数字表示
!全消灯
スペースドット消灯(2ピン)
.ドット表示(2ピン)

例えば「1234.」としたければ、シリアルで以下のコマンドを送る。
 [A1B2C3D4A B C D.]
すべて消灯なら次のコマンド。
 [A!B!C!D!]

■RX並列のテスト
基板を組んでからでは遅いので、RX並列でうまく管の切り分けが可能か確かめる。
上記ファンクションのうち、RB0にLEDを繋いでテストした。

左から順にA, B, C, Dで、[A!B.C.D!]とコマンドを送ると・・・。

結果、問題なく成功。
本当はPICごとに抵抗を繋いだほうがいいかもしれないけど、手抜きでPC側にだけ100Ωを繋いでいる。



あとは、基板を作ってIV-9とPICを繋ぐのみ。

ESP8266でデータロガー(UDP Client)

Switch ScienceのESPr Developperを使えばブレッドボードで即席ロガーが作れる。
左真ん中に繋がっている汚い線が秋月のドア開閉センサで、
左上のICが温度センサのLM61。


ESPr Developperは大事な端子が片側に集まっているので、凝ったことをしなければ小さいブレッドボードで十分。
左側には3.3Vがないので、2つのDiodeで5V⇒4.2V⇒3.4Vを作成。

・ケース入りリードスイッチ
 http://akizukidenshi.com/catalog/g/gP-04025/
・LM61BIZ(4個入りのほうがオススメ)
 http://akizukidenshi.com/catalog/g/gI-09691/

センサデータは、UDPを使ってRasPiで動くRubyのサーバアプリに送信、テキストに直接保存する。


■温度センサ
LM61はリニアな電圧で温度が測れる便利なICで、LM35と違って負電圧にならないので使いやすい。

↓データシートのTyp値。
温度電圧
+100℃+1600mV
+85℃+1450mV
+25℃+850mV
0℃+600mV
-25℃+350mV
-35℃+300mV

式を整理すると、次のようになる。
 <温度>[℃] = (<電圧>[V] - 0.6)×0.1