2020年1月25日土曜日

Project EulerにチャレンジするためのSnippet(素数関係)

計算機で数学的な問題を解くEuler Projectという面白い学習ネタを発見。
答え合わせできるサイト: (捜索中)

まだ10個くらいしか解けていないけど、素数とか公約数公倍数とか似たようなコードを何度も使うのでSnippetを貯めていこうと思う。

手始めに、素数関係2つ。
n番目までの素数リストを返す関数と、素数判定関数。
とりあえずPythonで。

def PrimeNumList(n):
  primeNumList = [2]
  i = 3
  while len(primeNumList) < n:
    for d in primeNumList:
      if i%d == 0:
        i+=2
        break
      if i**0.5<d:
        primeNumList.append(i)
        i+=2
        break
  return primeNumList
def isPrime(n):
  if n == 2:
    return True
  elif n < 2 or n&1 == 0:
    return False
  for i in range(3, 1+int(n**0.5), 2):
    if n%i == 0:
      return False
    return True

2019年12月14日土曜日

温室用の電熱器、サーモを作る

植物の冬越しのため、温室を導入。
温室だけでは夜間や外出時に十分な温度を保てないため、Amazonで安い育苗シートを購入。
こちらは17Wのため、全体を温めるには力不足だった。
そこで、140Wの発熱モジュールとサーモスタット等を導入し、温室内の温度向上を図った。

↓完成したモジュール。アルミ板を温室の最底部に据え付ける。

↓元々使っていた17Wヒータ(LS Hyindoor 10"x20.75" ヒートマット@Amazon)



部品リストは以下の通り。
Amazon, 秋葉原ラジオデパート, 東急ハンズ, 百均で購入。
 ③端子台(ラジオデパート)
 ④ヒートシンク 300円の特価品(ラジオデパート)
 ⑤アルミ板 2mm厚*300mm*400mm(東急ハンズ)
 ⑥電源コード(百均のを切断して利用)
 ⑦ケース(百均のタッパー)
 ⑧その他、配線材等

総額で5,000円程度?市販品を買うよりは安くできたはず。

①⇒ ②⇒












発熱モジュール単体では放熱が不十分なので、ヒートシンクにモジュールを打ち込み、ヒートシンクをアルミ板にネジ止めして面積を稼いだ。

サーモスタットの設定は、20℃以下で稼働としている。
導入効果はかなりのもので、夜間でも室温10℃程度に対し、温室内は20℃以上を保てている。

回路図は以下の通り。
サーモスタットの端子台は小さいので太い配線は使えないので注意。
端子台がないと、複数の配線を組み込むのは難しい。















以上。


2018年10月2日火曜日

Shureのリケーブル(MMCXケーブル自作)

昔採掘したbitcoinでShureを買ったが、他社製を含めMMCXのよい市販ケーブルがない。
大昔のSony製みたいに、左耳側が短くて全長1mくらいのやつがほしい。
また、変な高級端子や銀・金で音がよくなるとも思えない。

ないものは作る!ということで秋葉原でパーツを探す。
以下2点でお手頃に揃えられる。
・千石:MMCX端子、カバー、ミニジャック
・オヤイデ:ケーブル、熱収縮チューブ

MMCX(買ったのは\320の別のやつかも)
https://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=EEHD-4RK8
MMCXのカバー \320
https://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=EEHD-4RK6
左右分岐部分のパーツ URL不明 \320 
ケーブル \324 / mを3mずつ
https://oyaide.com/catalog/products/ofc0-08.html
熱収収縮チューブ 型番不明、たぶん\65 / mを3mずつくらい

⇒合計\3,294くらいのはず まあ妥当なくらい?












物もそろったので早速加工していく。
ケーブルを好みの長さに切りそろえて、4つ組で編んでいく。
このページが非常にわかりやすかったのでオススメ。
http://www.blueapples.jp/amikata/4kumi0707.htm












ずっと同じテンションで引っ張ることで、編み目が等幅に揃えられる。
途中で分岐させて、2本のところは簡単に縒っておく。













このくらい編むのでも1時間はかかったと思う。

続いて、熱収縮チューブを通してドライヤーで縮める。
ドライヤーの排気口すぐまでケーブルを押し込めば、髪用でも十分縮む。

次ははんだ付け。
ジャック側はまあ簡単。























問題はこいつである。とにかく小さい。一円玉が巨大に見える。
先に端子も線材もはんだメッキしておき、かぎ針状にして端子に引っ掛けてはんだを使わずに鏝を当てて溶かし固めるとよい。
側面のGND側も似た感じ。
側面は少しでもはみ出るとカバーが閉まらなくなる。
また、このままだと配線を引っ張られるとすぐ断線やセンターのピンが引き抜かれてしまうので、根元で小さく型結びしておく。

あとはカバーを被せてイヤホン本体とつなげれば完成!
20時半スタートで、気が付いたら23時すぎだった。










以上。














2018年10月1日月曜日

Xperia X F5122の液晶を貼り直す

愛用のスマホの画面が割れた。色々迷ったけど、代替の液晶を買って貼り直す事に。



←見るも無残・・・ 黒い部分がどんどん広がっていく




作業難易度は「スマホ>モバイルノート>>>タブレット>>A4ノート」くらい。
フレキシブルケーブルやアンテナ線てんこ盛りのモバイルノートを経験していないと、結構手間取ったり場合によっては壊すこともあるのでは。
モバイルノートと比べて難しい点は、単純に小さいのと両面テープを剥ぐところのみ。



①買い替えか修理か?
この機にいっそ買い替えるもアリかな~と考えたが、Amazonの履歴を見るとコイツは2017/11/26に\32,000で買ったらしい。
まだ1年も使っていない!MOTTAINAI!!
しかも、2018/9/25時点で新品価格が\39,800!!

これは直すしかない・・・。

②修理に向けて
まずはネットで情報収集すると、Youtubeで分解動画をいくつか発見。
https://www.youtube.com/watch?v=a6Z834-qzB0
https://www.youtube.com/watch?v=n3EHrW2fVEA
ヒートガンはドライヤーで代替できるらしい。

これなら自分でもできそう、ってことで液晶を探す。
Amazonやヤフオクで「F5122 display」とか調べるといくつか候補発見。
https://www.amazon.co.jp/s/ref=nb_sb_noss?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&url=search-alias%3Delectronics&field-keywords=f5122+display
前後面を剥がすときのツールも液晶に付いているので、あとは両面テープがあればよい。

両面テープとピンセットもAmazonで発見。
https://www.amazon.co.jp/gp/product/B00BXYWXY8/ref=oh_aui_detailpage_o01_s00?ie=UTF8&psc=1

合計\7,000で修理できれば、約1年分も元が取れた計算になるので結果オーライか!?

③部品到着、いざ修理!

←液晶は簡素な箱で届いた Sonyのロゴがあるのは嬉しい


←黒い輪っかが両面テープ 幅2mm







まずはスマホ裏面をドライヤーで温めて、付属の吸盤で引っぺがす。
30秒~1分くらい熱すれば十分剥がれてくる。
Li-Poがど真ん中にあり、上部にカメラやCPUやメモリがあるので下部から温めるのがよさそう。
剥がれてきたら、ギターのピックや薄いカードで少しずつ隙間を広げていく。










パカッ!と開く。裏面は金属なのでいい感じにすぐ温まり、作業しやすい。









動画と同様にどんどんハラワタを出していく。正直、カメラは外す必要なかったかも。
Li-Poは白いテープでくっついているが、引き出すのが相当大変だった。
ここは動画をよく見て真似したほうがよい。









今度は液晶を外していく。ガラスが割れている部分はやりづらい。
ただし、裏面と違って内側からも押せるのは楽。
表面の両面テープは再利用できないので、遠慮なくバリバリ外していく。









新しい液晶を貼りつけて組み直す・・・前に、まず仮組でテスト。



←無事動作!!万歳!!







←元の液晶と遜色なし




仮組OKだったので、本組していく。
液晶をくっつけるのに、両面テープを切っていく。



←防水を諦めるなら適当でよい
 そもそも、F5122は公式では防水非対応



裏面を閉じる前に、最終動作チェック。
問題ないようで一安心。









ちなみに、黒縁なのは金色の配送を待てなかったため。
本稿はDIYを推奨するものではないので、悪しからず。


以上。

2018年1月13日土曜日

ビックカメラ.comの買い物をビットコイン(bitFlyer)で支払う

■前置き
最近ビットコインの価格乱高下や徴税関係が話題ですね。
記事を読むと年間20万円以上を利確すると国税に届け出の義務があるとのこと。

私は超小規模でマイニングしているだけなので縁遠い話だけど、せっかく利益が出ているので何かに使ってみたい!
でも、サラリーマンなので確定申告はやりたくない。
となると年20万未満で買い物で使うのが一番簡単そう。

⇒ビックカメラ.comの通販を試してみた。

--------------------------------------------------------------------

先に総括すると、アカウントやアプリ等の事前準備が済んでいればクレジットカード並に簡単に買い物ができた。
ビックカメラ以外でもビットコイン決済が普及するといいな~。

--------------------------------------------------------------------

■事前準備
準備が必要なのは以下の3点だけ
 ①bitFlyerのアカウントを作り、買いたいもの以上の額のビットコインを所有する
 (このとき、本人確認資料の登録や日本円口座の登録は必要ない!!)
 ②カメラ付きのスマホにbitFlyerのアプリをインストールする
 ③ビックカメラのアカウントを作り、商品送付先の住所を登録する


準備さえできていれば使い方は結構簡単で、以下のフローに沿えばOK。


■買い物、注文
ビックカメラの通販サイト自体は特に変わったところはない。
(商品選択⇒カートに入れる⇒支払いへ)
支払いのときに、普通はクレジットカードや代引きを選ぶところだが、今回は「ビットコイン」を選択する。
あとはカードとかと同様に注意事項に同意して注文確定する。


■ビットコインでの支払い
ここまでいくと、ビックカメラのサイトからbitFlyerの支払いサイトに移動する。
指定時間内にビットコインで支払いすれば注文が確定される。
時間切れになると注文がキャンセルされる。

この支払可能な時間、かなり短いのでbitFlyer以外のウォレットでは間に合わないらしい。
(つまり、bitFlyer以外では必ず注文が失敗する)
また、bitFlyer以外だとビットコインの送金手数料が必要になるようだ。

ビットコインの支払い方はいくつかあるようだが、支払い画面のQRコードをパソコンに表示し、スマホのbitFlyerのアプリで読み込ませるのが一番簡単だと思う。
パソコンだけ・スマホだけで買い物している場合は、bitFlyerにログインして支払う。


■支払い金額等
今回は、以下の2つを購入した。
 カナル型イヤホンShure SE215、イヤホンケースZA-BN-SBK

⇒2018/1/13現在 合計11,760円(送料不要)

対して、ビットコインの支払い金額は0.00697 BTCだった。
本日14時時点のレートは次の通り。
 COINGECKO ⇒ ¥1,673,661 per 1BTC
 bitFlyer   ⇒ ¥1,706,078 per 1BTC

支払ったBTCと商品金額だけでレートを計算すると¥1,687,231なので、
特に手数料等はなく注文確定した瞬間のレートで計算しているようだ。

交換所で日本円やアルトコインに変換しても手数料がかかるし、
数万円で欲しいものがあるならビックカメラで買い物するのが一番お得かもしれない。


■その他
・レートの変化
今回はあまりこだわらなかったけれど、BTC/JPYは一日の中でも数万円~数十万円動くこともあるから注文のタイミングが非常に重要。
安い買い物とはいえ数%~数十%は簡単に変化してしまう。

・匿名での買い物
今回は試していないけど、ビックカメラの店頭でも同様にbitFlyerのアプリで買い物できるらしい。
匿名でbitFlyerのウォレットが作れるなら、個人情報が紐づかないウォレットから匿名bitFlyerに送金⇒店頭で購入とすれば、ビックカメラの防犯カメラ以外に買い物情報が残らないけど大丈夫なのかな?



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