vaio

VAIO VPCZ21AJの液晶パネルを交換した話

困ったこと Windows10の無償アップグレードが出た頃の話になるけれど、ある日突然、VPCZ21AJの画面がスタンバイとかではないのに、プツンと真っ暗になるようになってしまった。(いきなりディスプレイの電源が落ちる感じ) 最初の方は、それでもしばらくすると回復していたし、どうしても画面が復帰しない場合は一度画面を閉じて(スタンバイにする)、本体の電源を入れれば一定時間は使えていた (インバータ回路周辺からのノイズ音(ジーッ)がうるさくて気になって仕方なかったが...) そんな感じで騙しだまし使っていたのだが、これまたある日突然、BIOS画面すら映らなくなってしまった ここまでくるとほぼほぼハードウェアトラブルだろうと思いながらも、いろいろ試したところ、どうも輝度が30未満の場合はバックライトが点灯するっぽい しかし、一度でも輝度が30以上になると、その瞬間からバックライトが消えてしまう上に、復帰させるには輝度30未満にしてからディスプレイの電源を入れなおさないとならない VAIOのBIOS画面は強制的に輝度100で起動するため、この瞬間にバックライトが消灯してしまい、Windows起動時に輝度が30になろうが、復帰しないみたいだ 故障しているのは液晶パネルなのか? 液晶パネルが壊れているなら交換したらいい話なのだが、そこそこお金が必要なので、確証がないと液晶パネルを購入する気になれず 現象から察するに、

  • zienchan
    zienchan
4 min read
java

PDFBoxでのポイント(pt)とミリ(mm)の座標変換

困ったこと JavaでPDFファイルを扱うライブラリとしてPDFBoxを使ったが、単位系がよくわからない そもそもポイント(pt)とは Point (typography) https://en.wikipedia.org/wiki/Point_(typography) を読む限りは1ptは1/72inch, つまり0.35277777777777775 mmらしい ちなみにポイント(pt)は更に複数の種類が存在するみたいだが、PDFやIllustlatorで扱うptはDTP Pointだったので、これからポイント(pt)といえばDTP Ptを指すことにする 実際に座標変換のコードを書く 以上を踏まえた上で、mm/inch,

  • zienchan
    zienchan
1 min read
3dprinter

3Dプリンタのスイッチング電源が故障した話

問題 ABSに初挑戦したところ印刷から1時間程度経過後にパチッという音と共に突然電源が落ちた 主電源を電源を入れなおすも本体パネルのバックライトが点灯しない スイッチング電源のFANは動作している 環境 Anycubic Kossel Delta Plus 3Dプリンタに付属の12V25Aスイッチング電源を使用 解決 出力電圧を調べる 本当に電源の問題なのかを切り分けるために最初に出力電圧をテスタで計測します 出力は0でしたので、電源側の問題でした 可変抵抗で出力電圧の調整ができるっぽいので、試しに回しましたが変化なし そもそもLED1が点灯してないので内部DCも通電してないのでしょう ヒューズの状態を調べる まずはAC側に最も近いヒューズを見て、問題なさそうであればテスタでぱっと通電チェックする 爪でひっかくとパカっと開きます 結果はシロ しかしこれ、配線を追ってもどこにも接続されていない浮いてるヒューズに見えるんだけど... 本当に意味あるのか?? 次に回路側のヒューズを見て、こちらも外見上問題なさそうであればテスタでチェック 結果はシロ どうやらヒューズは切れていないようです しっかしヒューズ以外の壊れ方するのは正直なところかなり怖い壊れ方なんですが... パワートランジスタを調べる ヒートシンクに接続された2個の大きなNPNトランジスタが乗っていたので調べました

  • zienchan
    zienchan
3 min read
3dprinter

3DプリンタでPLAを印刷すると定着せず浮いて反れる問題

問題 PLAを印刷するとプラットフォームベッドにきちんと定着せずに反れてくる 環境 AnycubicのKossel Delta Plus ファームウェアは2019/09/11時点の最新 専用のヒートベッド&ガラスベッド(Ultrabase)を使用 設定温度はヘッド200℃/ベッド60℃(PLAにしてはちょっと高い設定) 対処 ガラスベッドの調査 Anycubic Ultrabase [新技術]3Dプリンタ ヒートベッド用ガラス 丸いタイプ 直径240mm デルタ型 ホットプレート 複合コーティングの材質 プラット シートkosselplus ※クリックで商品ページが開きます 使用しているAnycubic

  • zienchan
    zienchan
4 min read
electronics

スイッチマトリクスを使ってマイコンの入力ポートを節約する話

目的単純なスイッチ(ON/OFF)を判定する際に、できるだけマイコンのIOポートを節約するための方法を考える なぜ単純なスイッチでは駄目なのか単純なON/OFFであれば下記の様な単純なスイッチでも問題ないです。 ※GPIO23は入力ポートとする 単純なスイッチ(1スイッチ/1ポート) GPIO23はプルアップされていて、常にHIGHとなっている状態です。 ここでスイッチが押されるとGNDに接続されてLOWになる感じですね。 個人的にこの設計はシンプルで好きです。迷うこともないし。 しかしこれで例えばキーボードなんて実装しようとしたらIOポートの数の壁にぶち当たるのは想像できますね。 同時押しを考えないでいいのならアナログ入力少し複雑になりますが、原理はわかりやすい。 アナログ入力で判定する(nスイッチ/1ポート)GPIO23をアナログ入力とすると、プルアップされているので常に3.3V付近です。 SW1が押されるとGNDに落ちて0V, SW2が押されると分圧回路が成立して半分の1.65V付近になります。(誤差や熱による変化が考えられるため) なのでアナログ入力で電圧値を読み取ってやれば1ポートで複数のスイッチの状態が得られるというわけです。 ただし、この方法だと同時押しに対応できません。

  • zienchan
    zienchan
3 min read
linux

Ubuntu 18.04.2 LTS (Bionic Beaver)がある日突然、真っ暗になって起動しない件

現象深く考えずにアップデート適用して再起動したら突然、画面が真っ暗になってログイン画面が表示されなくなって詰んだ 環境VMWarePlayer上にUbuntu 18.04.2 LTSをインストール済 解決策セーフモードで起動して下記のファイルを編集してWaylandを無効化する vi /etc/gdm3/custom.conf #WaylandEnable=false これのコメントを外して、 WaylandEnable=false こうする 結果再びログイン画面が表示されるようになる 参考Ubuntu 18.04 LTSが起動しない?Waylandを無効にすれば起動するかも!

  • zienchan
    zienchan
1 min read
electronics

AliExpressで格安ヒートガン(ホットガン)買った話

事の始まり普段から海外の修理系の動画(ex. https://www.youtube.com/user/mymatevince)をYoutubeで見ているわけですが、よくこのヒートガン(ホットガン?)と呼ばれるツールが登場します。 この道具は主に熱風を当ててソルダリング(リ・ソルダリング?)するものです。 半田ごてとは違って、小手先を対象物に物理的に接触してなくてもはんだを溶解することができるので表面実装部品(SMD)などを剥がしたり、接着することができます。 なので主に修理などで用いられるのですが、私は表面実装ICを取り付けたいことが結構あるのでICの裏面に全面GNDとかあるIC(ESP32)を使う場合に欲しくなりました。 なお、こういった表面実装ICのリフローには、はんだでなくて、はんだクリームを使うはずなのですが、どうも修理動画を見ている限りでは再接着とかであれば溶解したはんだでもいけるっぽいですね。 目的AliExpressで下記を満たす良さげなヒートガンを買う 温度調節可能なことスタンド式で安全に手を離したりできること細かい作業もできるようにノズルの経を調節可能なこと持ちやすく、作業中の手元が見やすい形状であること

  • zienchan
    zienchan
5 min read
fusion360

秋月のユニバーサル基板(ブレッドボード)のケースを作った

目的 下記のユニバーサル基板がぴったり収まるケースが欲しい ※クリックすると商品ページへ 背景 ESP32とカラーセンサを使ったLED発光検知&通知のおもちゃを作成する際に、 きっちり収まる汎用のケースが欲しくなったため 解決策 3Dプリンタで作成する STLも配布するので必要な方は下記からどうぞ ケースモデル一式(STL) header.stl -> 上部(蓋) body.stl -> 下部(本体) 基板の寸法に互換性があれば、他のものでも使えると思います 仕様 梱包可能サイズ 名前 mm 長辺 800

  • zienchan
    zienchan
2 min read
fusion360

Fusion 360で押し出した後の位置を修正したい場合

目的 Fusion 360で押し出しツールを適用したが、その後に押し出す値を変更したくなった 背景 今回のケースでは3Dプリンタヘッドの最小幅が0.4mmだったのを知らずに厚さ0.35mの壁を作成してしまったため、これを0.4m以上に修正したくなった ※この手前の上部にある凹みを修正したい 解決策 下記のようにパラメータ変更を使用するだけで一度適用した制約を変更することができる メニューの"修正"→"パラメータ変更"を選択 対象の押し出しパラメータを任意の値に修正 とてもよくできている ただ個人的にプロパティはメッシュなどを選択したら表示してくれた方が直感的かな パラメータの概念を一度理解してしまえばもう迷わないとは思う 失敗談 まず真っ先に思い付いた修正方法は、対象メッシュのスケッチ寸法ツールでの移動だった しかし、これを適用しようとすると過剰拘束(制約の競合)とのエラーが表示されて変更できない では、

  • zienchan
    zienchan
1 min read
python

pythonでzipファイル判定する

目的 pythonでzipファイルか否かをチェックする 環境 python3.6 解決策 判定方法は主に下記の2つになる ファイル名の拡張子からの判定 バイナリファイルのヘッダ(識別子)から判定 ファイル名からの判定は手軽だが、アーカイブ情報を事前チェックする用途には適用出来ないため、はじめからバイナリで判定したほうが後々を考えると都合が良い そのため、ここではバイナリ判定を行うことにした zipfileモジュールを使わなくてもヘッダを読むだけなので、下記でも可能 ただしエラーハンドリングは必要だし、冗長になるので後述のzipfileモジュールを使う方法のが良いと思われる input_file_path = "a.zip" with open(input_file_path, "

  • zienchan
    zienchan
1 min read
electronics

rosbagファイルからjpegを抽出する方法

目的 分割されたrosbagファイルから、対象のセンサノード(ここでは受光センサ)の全フレームをjpegとして出力する なおファイル名はフレーム番号の他、受信時間(ナノ秒)も付与する 環境 Ubuntu 18.04.2 LTS https://www.ubuntulinux.jp/download/ja-remix ROS Melodic http://wiki.ros.org/melodic/Installation/Ubuntu 方法 UbuntuにROS Medlodicをインストールする

  • zienchan
    zienchan
1 min read
python

pythonでpandasからmatplotlibで散布図を作ろうとしたら警告が出る問題の対処

目的 pandasであるデータの一覧を読み込んでいって散布図的なものを出力するってことを下記のような感じで行った結果、下記のエラーが出力された /home/vm/.local/share/virtualenvs/***/lib/python3.6/site-packages/matplotlib/pyplot.py:514: RuntimeWarning: More than 20 figures have been opened. Figures created through the pyplot interface (`matplotlib.pyplot.figure`

  • zienchan
    zienchan
1 min read
android

ERROR: The Android Gradle plugin supports only Kotlin Gradle plugin version 1.3.0 and higher.の修正

問題 Anroid Studio 3.2.1を使っていたが更新があるというので3.3へアップデートしたら ERROR: The Android Gradle plugin supports only Kotlin Gradle plugin version 1.3.0 and higher. と言われてアーハイハイとgradleファイルのプラグインのバージョンを更新した(つもりだった)がダメだった 対策 build.gradle dependencies { implementation fileTree(dir:

  • zienchan
    zienchan
1 min read
java

TensorFlowLiteのJavaインタプリタでハマった話

環境 学習はKeras(back-endはTensorFlow)を使用 スマートフォン上のランタイムはTensorFLowLiteを使用 TensorFlow(PBモデル)からTensorFLowLite(FBモデル)へ変換(変換には公式のものを使用) 入力は8bitグレースケールの画像配列、出力はXY座標とした単純な回帰モデル 現象 下記のように8bitグレースケールで入力バッファを用意してXY座標を取得しようとした。 255で割っているのは、正規化しているため。 public synchronized void recognize(byte[] aImageBytes) { for(byte px : aImageBytes) { mInputBuffer.putFloat(px / 255f); } ... } しかし、推定結果のXY座標が誤差どころではなく、

  • zienchan
    zienchan
1 min read
android

Androidアプリにjavascriptエンジン(DuktapeAndroid)を乗せる

目的 AndroidアプリにJavascriptエンジンを搭載する 背景 ユーザーがアプリ上の機能を自由に拡張できるような仕組みを作るため 解決策 Java上でJavaScriptを実行(eval)させる方法はいくつかあるが、下記のサイトを参考にDuktape Androidを使うことにした comparison-shopping-searching-for-javascript-engines-for-android duktape-android 基本的には上記の公式に従って導入すれば良い 依存関係の追加 build.gradleの変更 implementation 'com.squareup.duktape:duktape-android:1.3.0' とりあえずjavascriptを実行させる 自分はkotlinで書いているので下記になる Duktape.create().use { x -> Log.

  • zienchan
    zienchan
2 min read
docker

[Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgradeを何とかする

環境 mysqlのdockerコンテナ 現象 mysqlイメージをpullしてコンテナへ展開したらいつのまにか下記の警告がわらわら出るようになった 2018-08-28T23:11:54.474791Z 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade 2018-08-28T23:11:54.474878Z

  • zienchan
    zienchan
1 min read
wordpress

WordPressでテーマ適用時に初期コンテンツを自動的に登録する方法

目的 カスタムテーマを適用すると同時に、必要な固定ページなどを一括で登録する 背景 企業向けサイトを作成するときに、いつでもコンテンツをリセットできるような環境を作りたいから 他の環境に移行するなどしたときでも簡単にセットアップできるようにしたいから 解決策 1. 初期コンテンツの作成 下記のようにテーマディレクトリの下にinitializeディレクトリ配下に初期コンテンツを配置する mytheme/initialize/index.page.html mytheme/initialize/contact.page.html mytheme/initialize/form.wpcf7_contact_form.html ... ここではタイトルとページ情報(固定なのかcontact-formなのか)をファイル名に付与してある 実際のコンテンツには色々種類があるため、それらの情報をファイル名にドット区切りで持たせておく

  • zienchan
    zienchan
1 min read
java

jcodecでお手軽にbitmapをmp4にする

目的 BufferdImageに展開されたBitmapをコンテナに追加してmp4動画を作成する 背景 連番PNGや画面キャプチャしたBitmapを動画に変換したい 環境 言語: Kotolin エンコード形式:H264 フレームレート:30FPS 解像度:VGA 解決策 SequenceEncoderを使えば簡単でした メモリ上のBitmapから生成する場合でもBufferedImageのラスタのByteArrayに突っ込んでやるなりしてBufferedImageを作ればそのままいけるはず val tDestinationFile = File("destination.mp4") val tEncoder = SequenceEncoder.create30Fps(tDestinationFile) //とりあえず30枚(1秒)分を生成する for(i

  • zienchan
    zienchan
1 min read
fusion360

Fusion360の延長コマンドとは

Fusion360の延長コマンドについてまとめます 環境 Windows向け v2.0.4343 目的 延長コマンドは名前から察するに、付け足すコマンドなのは推測できますが挙動がよくわからなかったので調べました 結果 ある線が線の向きに対して交差する場所まで延長するコマンドなのがわかりました 下記の画像はそれぞれ、延長コマンドによって赤線部分が追加されることを意味します こんな感じで、異なる線と交差する箇所までが延長の対象となるようです また、線分には向き(?)があるようで、延長可能な向きとそうでない向きがありました 課題 ここまでで、ある線が線の向きに対して交差する場所まで延長できることがわかりました でも下記が何故延長できるのか説明できません/^o^\ 公式のヘルプも見たのですが、 線分を延長しても別の線分に直接接続されないことがありますが... とあります これがどんな時なのかわかりませんでした...orz

  • zienchan
    zienchan
1 min read
android

Googleのマテリアルアイコンセットを使う

アプリケーションを開発しているとなにかと困るアイコンですが、Googleが提供しているオープンソースなマテリアルデザインのアイコンを使うと捗るよというお話 目的 ソフトウェア開発で使うかっちょいいアイコンリソースが欲しい 解決策 GoogleのMaterial design iconsを使う どんなのがあるのか? GoogleのMaterial design iconsを参照するとリストが表示される ライセンスは? Apache License Version 2.0なので使いやすい 色を変更したいんだが白と黒しかないの? git clone https://github.com/google/material-design-icons して、SVGとかベクトル形式のものを動的に変更するなり変換してやればOK それ以外だとAndroid 5.0以降で使えるDrawable tintingを使う方法で色を変更できる もしAndroid

  • zienchan
    zienchan
1 min read
ghost

GhostでAmazonアソシエイト広告の機能を追加する

デフォルトではaタグ(リンク)で貼り付ければ可能ですが、タグ毎に関連する書籍等を表示したい場合、テーマを拡張する必要があります 環境 Ghost v1.25.2 CasperTheme Version 2.3.3 目的 投稿記事に設定されたタグに該当するAmazonの商品を列挙して表示する ただしGhostのプラグインとしては実装せず、単純なjsonpとすることで他プラットフォームへ容易に移植できるように実装する 背景 お勧めの書籍等をタグ毎にまとめたい コンテンツと広告をできるだけ別として管理したい 将来的にGhostから移行しても楽にしておきたいからGhostに依存するコードは書きたくない 解決策 Ghostに依存しないように実装するため、今回は単純なjsonpのモデルとjqueryによるレンダリングで実装する やることは、投稿を表示する際に投稿タグに紐付いたamazon商品を表示するだけ 1. テーマのダウンロード [Design]から対象のテーマをダウンロードする デフォルトのcasperテーマは管理画面上からは上書きできないため、

  • zienchan
    zienchan
6 min read
wordpress

WrodPressでサイト制作するその前に考慮したいこと

"WordPressで企業向けのサイトを作ることになった" なんてこと、よくあると思います ...ありませんか?(白目) さて、世の中には沢山のWordPressテーマを使ったサイト制作の話がありふれていますが、技術的なアプローチ?に関する説明を見かけなかったので今回はWordPressで企業向け、または個人向けサイトを制作して公開、運用することになった場合の俺的ベストプラクティスをまとめました 本当は独自テーマを適用したら初期コンテンツが自動投入されるとか、テーマが依存するプラグインをどうやって通知するとかまで書きたかったんですが、長いのでこれらは次回にまとめます 突っ込みとかあったらコメントでお願いします そもそもWordPressでの実装が正しいのか? さて突然ですが、めでたく(?)WordPressでのサイト制作を依頼されたあなた 早速、WordPressでどう構築するかを考え始めま....せん まず初めは要件を見直すことをお勧めします お客さんは何もわかっておらず Webサイト作成 = WordPress なんて場合が結構あります(マジで) 話を聞くと、コンテンツを管理したくない(管理できる人材がいない)

  • zienchan
    zienchan
3 min read