最新の10件を表示しています。 コメントページを参照

  • レイアウト -- 2019-09-24 (火) 14:00:24
  • wifi -- 2023-11-14 (火) 12:33:45
お名前:

22/02/16: gitコマンドでpushするための公開鍵の設定など

https://nishinatoshiharu.com/how-to-gitpush-with-ssh/

22/02/08: RaspPiをボタン1個でシャットダウン

https://qiita.com/ryo-a/items/2edabbbe2b67654e29c9

22/02/03: bitduinoでビルドできなくなる

ArduinoIDでATtinyを使うbitduinoは、Digisparkを入れるとコンパイラが入れ替わっちゃう(unknown MCUというエラーが出るようになる)→DIgisparkを消してbitduinoを入れ直せばOK

https://make.kosakalab.com/arduino/arduino-ide_avr-gcc_why/

https://make.kosakalab.com/make/electronic-work/arduino-ide/attiny10-13_dev/

22/01/10: M5Stack UnitV2をsshでつないで動かす&OpenCV

いろいろと罠がある。例えば/dev/nullのパーミッションがなくてscpできないとか。

一応こちらを参考にビルドはできたんだけど、opencv関連のライブラリがUnitV2(のここに書かれている場所)にない。ディレクトリ構成が変わってるんかな。

https://rt-net.jp/humanoid/archives/3962

ただし環境構築で以下のような罠があった。


env NM=nm CFLAGS="" ./configure --prefix=$(pwd)/build --host=arm-none-linux-gnueabihf --build=x86_64-linux --enable-shared --without-gtk --without-python --without-qt --without-imagemagick --disable-video CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++

→ --without-xshmを./configureに追加

git clone https://github.com/m5stack/UnitV2Framework.git

UnitV2Framework


cmake -DOPENCV_DIR=/home/akita/UnitV2/opencv/platforms/linux/build - DTARGET=camera_stream .
make

CMakeLists.txtでg++/gccの指定

arm-none-linux-gnueabihf-gcc -> arm-linux-gnueabihf-gcc
arm-none-linux-gnueabihf-g++ -> arm-linux-gnueabihf-g++

YOUR ???>とあるところを環境変数を参照するように修正(2箇所)

  • #set(OpenCV_DIR <YOUR OPENCV DIR> )(コメントアウト)
  • add_executable(example main/${TARGET}.cpp)

Pythonでimport cv2はできたけど、cv2.VideoCaptureでカメラは取得できるっぽい(NULLではない)んだけど、cap.read()するとFalseが返ってくる。

もうちょっとちゃんと使い込むか。

21/12/22: Digisparkを使う

起動時の5s待ちをなくす

https://qiita.com/nak435/items/67aca33ca49b6f328faa

なおM1 Macではコンパイラが使えない(M1用がない)ので、とりあえずNGっぽい。

21/12/08: Re:VIEWをDockerで使う&タイトル改行

https://mochikoastech.hatenablog.com/entry/2019/08/05/130711 https://mochikoastech.hatenablog.com/entry/2019/08/08/102254

https://kyabe.net/blog/review-newline-arbitrary-position/

21/12/08: MacでCH340

https://github.com/WCHSoftGroup/ch34xser_macos

21/12/05: M1 MacでHomebrewのupdate等でgit関連のエラー

https://sig9.hatenablog.com/entry/2021/03/04/000000

21/11/06: Windwos11でタスクバーの位置を変更

タスクバーの位置が下で固定で、それをいじるのはレジストリをいじらないといけない。https://de2887diary.blogspot.com/2021/09/windows11.html

21/11/01: M1 MacでEmacs

こちらのEmacs、M1にネイティブ対応、と書いてあるんだけど、実行すると強制終了してしまう。 プロパティをみると"Rosettaを使って実行"にチェックが入っていた。 これをはずしたらネイティブで実行OK(なのですごく快適)。

https://emacsformacosx.com/about

21/10/22: 組版ソフトのRe:VIEW

https://zenn.dev/y_uuu/articles/f459284652d0ca15a6b7

Markdownからの変換ツールもある

https://dev.classmethod.jp/articles/how-to-use-md2review/

(21/10/28追記)図のサイズのしては一工夫。 https://raintrees.net/news/154

21/10/07: Fusion360でサーフェスをソリッドに

Fusion360で、サーフェス(面)でかこまれた立体を、ソリッドにするには、ステッチ、でできる。ソリッドにすれば3Dプリントもできる。

https://knowledge.autodesk.com/ja/support/fusion-360/learn-explore/caas/sfdcarticles/sfdcarticles/JPN/How-to-create-a-Body-from-surfaces-in-Fusion-360.html

21/09/07: CH340KをMacで

IntelMacなら、この方法で使えるとのこと。ただしM1 Macはバイナリがないっぽい。

https://github.com/LilyGO/LILYGO-T-OI/issues/3

21/09/01: ESP32/8266のDTR/RTSリセット・書き込み回路

https://days-of-programming.blogspot.com/2018/05/esp8266dtrrts.html

21/08/12: Macのスクリーンショットのプレビューを消す

Macのスクリーンショット(Cmd+4)で、スクショ直後に表示されるプレビュー(その分、保存が遅れる)を止める方法

https://unsolublesugar.com/20190513/143130/

21/08/04: ArduinoIDE+ESP32でビルドのエラー

こんなエラーが出たことがあった。。

C:\{...}/xtensa-esp32-elf-ar: unable to rename 'core\core.a'; reason: File exists

このあたりによると、無視してOK、とか、アップロードはできる、とか、ウイルス対策ソフトを切ればOK、とか、よくわからない。ArduinoIDEのバージョンを古いのにしたらでなくなったりした。

https://forum.arduino.cc/t/error-compiling-unable-to-rename-core-a/84863/6

21/08/02: WindowsでPython

いろいろやりかたがあって、どれがいいのやら、だが、とりえず本家の手順でいこう。まずは、他のものを一斉削除、からはいるのが順当。このほかにも、自前でPythonを抱えてて環境変数を設定しているアプリ(例えばレイアウトエディタのGladeがそう)も、環境変数をはずすなどの注意を忘れずに。(←pip installしようとしたら、環境変数PYTHONHOMEでGladeのほうを見に行っててエラーになった)

https://www.python.jp/install/windows/venv.html

ついでにOpenCVもpipで入れられる。

https://avinton.com/academy/opencv4-5-1-python3-8-ubuntu20-04-install/

21/07/27: MS Teamsの通知

設定項目が多すぎる。 https://auto-worker.com/blog/?p=1126#toc_id_5

21/07/24: MacからWinにリモートデスクトップ接続時のバックスラッシュ

バックスラッシュ(アスキーコード0x5c)が、\(¥:Unicodeの0xc2a5)になってしまうのを回避。ただしWindows側のキーボードの設定ではうまくいかなさそう。

https://qiita.com/KNaito/items/174404ea42470d00c063

https://qiita.com/Hige-Moja/items/782a46edf18977638549

https://qiita.com/KNaito/items/e4436cb73f9ff257394d

21/07/23: Qtのアプリのアイコン&配布

アイコン: http://qt-log.open-memo.net/sub/other__set_app_icon.html

アプリの配布(Win): https://qiita.com/koyayashi/items/4d26d9f7a45c95e2f6c8

インストーラをつくってもいい(Win)。 http://qt-log.open-memo.net/sub/other__make_installer_by_inno_setup.html

アプリの配布(Mac): https://blog.ch3cooh.jp/entry/20180421/1524290019

※macdeployqtコマンドは、/Users/(user)/Qt/(バージョン番号)/macos/bin にある

21/07/14: Qt事始め

WindowsでもMacでもLinuxでも,GUIアプリをつくれるQtのはじめかた。まずバージョンがいろいろあり,バージョン間の互換性が乏しいので,どのバージョンを使うかは注意。現時点だと標準インストールでQt5が入る模様。

  • コンパイラのXcode(Mac)かVisualStudioCommunity(Windows)のインストール
  • Qtのインストール
  • 適当な新規プロジェクトを作成→ビルドして実行,で動作チェック

※なおMacではQt Creatorが「アプリケーション」フォルダに入らないので注意(/Users/(user)/Qt/ に*.appがある)。

GUIパーツは,VisualC++のようにmain.cppに手動で書いていってもいいし,mainwindow.uiをダブルクリックで開くDesinger画面でボタンを配置したりするのでもいい(このほうが直感的)。ボタンを押したらこの関数を呼ぶ,みたいなのは,シグナル/コネクトという方法で行う。

http://vivi.dyndns.org/tech/Qt/QtDesigner.html

21/07/09: Inkscapeのデフォルトの線幅

編集→Inkscapeの設定のツール内の「シェイプ→矩形」や「ペン」等で、「新規オブジェクトのスタイル」で「このツール独自のスタイル」を選び、「選択オブジェクトから取り込み」すると、新規作成時にそのスタイルになるので、レーザーカッター向けに「ストローク赤・幅0.1mm」などを選んでおくと便利。

21/07/08: Macでrootパスワードを設定

https://monogusa.hatenablog.com/entry/2017/06/08/131725

21/07/05: VirtuosoでCalibre Interactiveを使う

Calibreを起動できるようにしておく(パスを通しておく)のに加えて、.cdsinitに、以下を書いておく必要あり

load( strcat( getShellEnvVar("MGC_HOME") "/lib/calibre.skl" ))

21/07/05: MacでXウインドウを開くときのエラー

sshで-Xオプションをつけて接続時に、以下のエラーが出て、Xウインドウを開けない。

Warning: untrusted X11 forwarding setup failed: xauth key data not generated

こちらの方法で/etc/ssh/ssh_configに追記して解決

https://banbara-studio.hatenablog.com/entry/2017/12/02/140245

21/06/15: Macでアプリのインストール時に付帯フォルダのコピーがはねられる

Macでアプリのインストールを、こんな感じでファイルをドラッグしてコピーする方法の場合で、アプリ以外のファイルのフォルダをコピー時にはねられてコピーできなかった。これは管理者権限が必要っぽくて、コピー先のフォルダをFinderで開いて、そこにドラッグするとコピーできる。KiCADもそうだった。

21/05/23: CMOSの素子分離が必要な理由

並んでるMOSFETだけならLOCOSはいらないけど、配線としてのPolySiが通るとLOCOSがないとマズい、と。

https://terakoyamiho.wordpress.com/%E7%B4%A0%E5%AD%90%E5%88%86%E9%9B%A2%E3%81%AE%E3%81%8A%E8%A9%B1%E3%81%97/

21/05/15: AndroidのDozeモードを解除

スリープに入って通知が来ない、というのを回避。 http://android.f-tools.net/Q-and-A/Doze-Off-Setting.html

21/05/11: 技適のとり方

FCCがすでにとられているのは楽そうだけど、ゼロからだとけっこう大変そう(特に回路部分がシールド、とか)。micro:bitはどうやってとったんだろう。

https://tech-blog.cerevo.com/archives/725/

※210515追記:マクニカのサイトに詳細手順があった。

https://www.macnica.co.jp/business/semiconductor/articles/texas_instruments/127181/

21/04/09: Macでファイルを開くデフォルトのアプリの変更

右クリック→このアプリで開く、から選択しても、どうもうまく設定できないこともあるみたいで、ファイルの情報、から選択する方法だといけそう。

https://support.apple.com/ja-jp/guide/mac-help/mh35597/mac#:~:text=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E9%96%8B%E3%81%8F%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E6%81%92%E4%B9%85%E7%9A%84%E3%81%AB%E5%A4%89%E6%9B%B4%E3%81%99%E3%82%8B&text=%E3%80%8C%E6%83%85%E5%A0%B1%E3%80%8D%E3%82%A6%E3%82%A4%E3%83%B3%E3%83%89%E3%82%A6%E3%81%A7%E3%80%81%E3%80%8C,%E5%A4%89%E6%9B%B4%E3%80%8D%E3%82%92%E3%82%AF%E3%83%AA%E3%83%83%E3%82%AF%E3%81%97%E3%81%BE%E3%81%99%E3%80%82

21/04/01: Win10-20H2でタスク切換えでEdgeのタブが別々に

まったくこういういらない更新をよくやってくれるなあ・・・

https://dekiru.net/article/20419/

21/03/23: Macでコマンドをショートカットで実行

https://applech2.com/archives/20160801-icanhazshortcut-shortcut-manager-for-macos.html

21/03/23: Macでオーディオ入出力をコマンドで切替

SwitchAudioSourceが便利そう (Earsでもできるはずだが、どうもうまく切り替わらない)

https://electricdoc.net/archives/7650

21/02/16: XREAサーバのhttps化

https://mimikakimemo.hatenablog.jp/entry/2018/07/14/185227

21/01/06: 太陽電池のMPPTをマイコンで

https://blog.goo.ne.jp/paramako/e/fa0c697f02eb981741befb2fe15c59dd

21/01/05: ESP32でWebサーバ・固定IPとmDNS

http://marchan.e5.valueserver.jp/cabin/comp/jbox/arc202/doc21106.html

ついでに、ESP32で固定IP

https://qazsedcftf.blogspot.com/2018/07/ip.html

ついでにmDNSで指定した名前は、<名前>.local でアクセスできる。

https://www.webzoit.net/hp/it/internet/homepage/env/iot/esp8266/mdns_avahi_bonjour/

21/01/04: Windows用のXサーバ

なかなか決め手がないみたいだけど、この MobaXterm はsshクライアントとセットになってて、ある程度は使えそう。

http://www.elc.ees.saitama-u.ac.jp/CAD/PCsetting.html

20/11/25: M5StackのLiPoバッテリのコネクタ

Molexの530470210(ピン間1.25mm)

https://www.digikey.jp/product-detail/ja/molex/0530470210/WM1731-ND/242853

20/11/07: note.muで記事の公開に失敗する

ただ「記事の公開に失敗しました」とだけ出て公開できないことがあって、原因がわからなかったけど、調べてみたらこちらの記事にたどり着いて、これで解決でいた。わかりにくい。

https://note.com/y_labo/n/n59690168e562

20/10/26: TeraTermで公開鍵認証ログインと、それをデフォルトに設定する

https://webkaru.net/linux/tera-term-ssh-login-public-key/

https://www.j-oosk.com/teraterm/authorized_keys/306/

ついでにscpコマンドなどでは、~/.ssh/ に秘密鍵を置いておけば、毎回指定しなくてもOK

20/10/07: TensorFlowとかKerasのバージョン間互換性

びっくりするほど互換性がない。特にTensorFlowの1.xで書かれたコードは、2.xでエラーが結構出る。

Google Colabで、強制的に1.x等にバージョンを変更して実行することはできる(が、毎回やらないといけない)

https://colab.research.google.com/drive/1pKE4KH87mCDsBG9F81MptJlKNcir0Avm?usp=sharing

例えばtf.to_float(x)は、tf.cast(x, tf.float32) のように書き換えることになる。APIドキュメントを見ると、どう書きかえるか(どの関数を代わりに使うか)が書いてあるのでそれを参考に。なお実行時に、Warningとして、将来のバージョンでは使えなくなるよ、という情報が出ているのものある。

https://www.tensorflow.org/api_docs/python/tf/cast

20/10/04: ATmega328Pと微妙に互換な激安マイコンLGT8F328P

http://powerele.sblo.jp/article/185374432.html

20/10/02: 深層学習フレームワークの比較

https://rightcode.co.jp/blog/information-technology/machine-learning-frameworks-keras-pytorch-comparison-mnist

20/09/29: M5StickVでMaxiPyIDE

まずkflash_guiで、ファームウエアの*.kfpkg(*.binだけでもいいかもだけど、関連ファイルを含む*.kfpkgをまとめて書いておくのが無難か)を書き込む。

その後は、ターミナルで直接MicroPythonしてもいいし、MaxiPyIDEから、接続してから、*.pyを書いて実行、でもよい。

20/09/26: KiCADのダイオードの回路図シンボル

pspiceライブラリ内のDIODEは、1=anodeだが、他(Deviceライブラリ内のDや、ほとんどのフットプリント)は逆の1=cathodeなので、要注意。

https://twitter.com/akita11/status/1309823694072549377?s=20

20/09/24: UbuntuでNVIDIAのドライバが読み込めない

こちらを参考にUbuntuでNVIDIAのドライバを入れてるんだけど、動作確認でドライバが読み込まれていない、とでる。 結果として、BIOSでセキュアブートを無効にして、再度入れ直したら、OKそう。

https://qiita.com/ksasaki/items/b20a785e1a0f610efa08?#%E3%81%8A%E3%81%BE%E3%81%91-nvidia-%E3%83%89%E3%83%A9%E3%82%A4%E3%83%90%E3%83%BC%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB

20/09/11: Kerasで転移学習

まとまっていて、ソースコード例もあって、わかりやすい。

https://elix-tech.github.io/ja/2016/06/22/transfer-learning-ja.html

20/09/07: RazerサブキーボードをMacで使う

https://daisystar.hatenablog.com/entry/2018/03/11/010704

20/09/06: ESP8266IRKitをcurlでつつく

ESP8266ボードでIRKit互換機を作るESP66IRKit https://github.com/toskaw/ESP8266IRKit

こちらにならってcurlでつつくと、400 Bad Requestが返ってくる https://qiita.com/ikeyasu/items/dfb991007a31d5aa03c2

ESP8266IRKitのソースを読んだところ、HTTPヘッダに"X-Requested-With"が必要のようなので、curlに-Hでつける。 https://qiita.com/kumechang/items/80007cf25688244b9ccc

なおdeviceID等を含めたHTTPリクエストの内容は、そのESP8266IRKitをWebブラウザで開く(IPアドレスはIRKitアプリから確認できる)とみえるminlRumで確認できるが、どうもclienttokenが毎回異なり、それにあわせてdeviceID等も毎回変わってしまい、確かにAPIのPOSTはできるんだけど、赤外線送信等の動作がおこらない。→deviceidとclientkeyはIRKitアプリのデバイス(の詳細)から確認できるので、その値を使ってHTTPでpostすれば動作OKそう。

20/09/05: UbuntuをインストールしてDockerを入れる

  • ブート用USBメモリ runfsでISOイメージからブートUSBメモリをつくり、BIOSで起動先をUSBメモリに設定 (ramdiskの展開に失敗、みたいなエラーが出るが、ちゃんと起動する模様)

20/09/03: Ubuntuで機械学習

クラウドのGoogle ColabとかだとTensorFlowのバージョンが変わったりするので、いろいろとハマることもあって、一番安心なのはローカルで持つこと。NVidia Dockerあたりだとインストールや管理も楽そう。ついでにJupyter Notebookも入れておくと、Colabとあまり変わらない環境にできる。

20/09/01: Win10でドライバ署名を無効にする

けっこうめんどくさいけど、しょうがない。 http://pasofami.game.coocan.jp/Win10_DrvIns.htm

20/08/27: WinでEmacs

これまでgnupackに含まれるEmacsを使っていたんだけど、新しいPCで起動しない(ウインドウが出てこない)。このあたりっぽいけど、どうもうまくいかない。

http://www.dab.hi-ho.ne.jp/sasa/biboroku/misc/gnupack-pretest_devel-2018.11.25.html

そこでIMEパッチがあたってるビルド済みEmacsをつかうことにする。

http://cha.la.coocan.jp/doc/NTEmacsFont.html

設定ファイルはこのあたり。

https://gabekore.org/windows-emacs-beginner

20/08/26: KLayout(Win)の設定ファイルの場所

c:/Users/(user名)/AppData/Roadming/KLayout/

(初回起動時に作られるはずが、なければつくる)

なおキーバインドなどが書いてあるklayoutrcは、 c:/Users/(user名)/KLayout/ に置かれる仕様になった模様。

20/8/20: MacをHighSierraにしたらXウインドウが開かない

ssh -Xで接続後にXウインドウアプリを起動すると以下のエラーでXウインドウが開かなくなった。

Warning: untrusted X11 forwarding setup failed: xauth key data not generated

こんな対処でOK

https://banbara-studio.hatenablog.com/entry/2017/12/02/140245

20/08/17: MacのM5BurnerでファームウエアをDLできない

read-only filesystem、とやらでDLできないときは、管理者として実行する。

https://qiita.com/decobisu/items/5d748122bfd345bff5c3

20/06/26: IrKitをIFTTTでつつく

https://qiita.com/ikeyasu/items/dfb991007a31d5aa03c2

20/06/08: M5StickVで転移学習

M5StickVで転移学習の話。転移学習とは、ある特性のデータで学習させたモデルを、別の特性のデータに適用すること。

こちらに笹尾さんのM5StickVで転移学習の話がある。 https://qiita.com/ksasao/items/6d6bcac4c5e92fa692a2

これは、本来画像の識別用に学習させたCNNの途中の層の出力を使って、別の学習に使おう、ということ。この例では、29層目の768次元ベクトルを使って、データ間の距離を求めて識別などに使っている。

ベースになるのはこちらのBrownie_learn

https://github.com/ksasao/brownie/tree/master/src/brownie_learn/doc/NTKanazawa2020

ただM5StickVのFWが少し変わっていたりM5UnitV対応があったりするので、少し変更スべき点がある(もうすぐドキュメントは更新するとのこと)

なおM5StickVのFW書き込みはこのあたりを参考にkflashを使う https://qiita.com/nnn112358/items/6f4934f8b81902b8e98c

20/06/08: ThinkPad X395で、「ステレオミキサ」

PCスピーカの音をテレビ会議なので音声入力にまわすために使う「ステレオミキサ」。

https://www.realtek.com/ja/component/zoo/category/pc-audio-codecs-high-definition-audio-codecs-software ここからコーデックをダウンロードしてインストール→コントロールパネルーハードウェアとサウンドーサウンドのオーディオデバイスの管理→録音タブを選ぶ→ステレオミキサーを有効化

20/05/19: KiCADで面付け

基板エディタを単独で開いて、基板データを読み込む。ついでにVcutの設定なども。元の基板で外形線をつけず、面付け後に外形線をつけるほうが楽かも。(ただしベタの塗りつぶしをやり直さないように注意)

https://spiceman.jp/kicad-panelizing-board/

20/05/19: MS Officeで、デフォルトでローカルにファイルを保存する

ファイル→オプション→保存、から、「既定でコンピューターに保存する」をチェック

20/05/11: LaTeX Workshopで、サブファイルをbuildするときのメインファイルの指定

文中にコメントとして「% !TEX root = <filename>」を入れておくと明示的に指定できる。

https://texwiki.texjp.org/?Visual%20Studio%20Code%2FLaTeX#jf392861

20/05/01: Win10でオーディオ入出力の切り替えをショートカットキーで

https://nelog.jp/audio-switcher

20/04/20: VSCodeで行を右端で折り返し

View→Toggle WordwrapでON/OFFを切り替え

20/04/08: platformIOのCOMポート

アップロードやモニタで使うポートの番号や通信速度は、platformio.iniに指定できる。

upload_port = COM6
monitor_port = COM6
monitor_speed = 115200

シリアルモニタを開くのは、コマンドパレット(Ctrl+P)でplatformio->serial monitor、か、Ctrl+Alt+S

20/04/08: TangNano/GW1NのDONE/RECONF等のピンをIOピンとして使う

Place&Routeの設定の"Dual Purpose Pin"で、使えるように設定できるらしい。

https://twitter.com/ciniml/status/1247718257848487937?s=20

20/04/08: Verilogでgenerate/for/alwaysの順序

順序があるみたい。 http://yuinore.net/2016/12/genvar/

20/04/07: platformIOでM5StickCの開発

M5Stackライブラリとは別に、M5StickCライブラリ(大文字小文字区別するので、この名称で探す)をいれておくと、#include<M5StickC.h>が使える

20/04/02: MIFファイルの作製

メモリの初期化のMIF (Memory Initialization File)のつくりかた。Quartusでとりあえずは作れる。

http://www.lab3.kuis.kyoto-u.ac.jp/~takase/le3a/flow/ram.html

20/04/01: GitHubでorganizationのリポジトリをGitHubアプリからpushできない

https://qiita.com/fiftystorm36/items/11ee4d0dfc9f4b9bf8c8

20/03/26: ブラウザから使えるプレビューつきMarkdownエディア

https://code-life.hatenablog.com/entry/markdown-editor-stackedit

20/03/18: Pythonでバイナリデータを扱う

標準入出力の読み書き https://hhelibex.hatenablog.jp/entry/2017/10/17/214438

整数・バイナリ等の型の変換 https://gist.github.com/devlights/ff14ad78ec2a2ace8b13304976c5c355

stdoutのbuffer(-uをつけると、buffer出力がblockingになって、printとかと出力のタイミングが揃う) https://qiita.com/keisuke0508/items/ea68e4dfd3043cc49957

16進数の表記 https://note.nkmk.me/python-bin-oct-hex-int-format/

20/03/18: dvipdfmxで作成したPDFで、EPS図がずれる

https://qiita.com/zr_tex8r/items/089b56291588f7b05b02

https://qiita.com/zr_tex8r/items/442b75b452b11bee8049

https://qiita.com/zr_tex8r/items/5413a29d5276acac3771

  • \usepackageで[dvipdfmx]オプションを指定する
  • colorパッケージを使っている場合は、そちらでも[dvipdfmx]オプションを指定する※←映像情報メディア学会誌のスタイルファイルではこれが原因だった
  • dvipdfmxではPDFも図として取り込める(が、Inkscapeから出力するPDFはバウンディングボックスが自動で設定されない)

20/03/14: コンパレータのヒステリシス

計算がけっこうめんどいけど、計算ツールもある。 http://sim.okawa-denshi.jp/compkeisan.htm

20/03/11: ステッピグモータの型番のNEMA

http://mimono.wpblog.jp/2018/01/15/nema%E3%82%B9%E3%83%86%E3%83%83%E3%83%94%E3%83%B3%E3%82%B0%E3%83%A2%E3%83%BC%E3%82%BF%E3%81%A8%E3%81%AF%E3%80%81/

20/03/02: Excelで条件を満たすデータの標準偏差

平均は=AVERAGEIF()でいけるが、標準偏差は=STDEVIF()はないので、こんな方法で。要は{=IF(範囲=条件,値の範囲)}とすれば、条件を満たす値の配列が得られるので、それに対してSTDEVをかけることになる。

https://mikadukim2.tumblr.com/post/114475106672/excel-%E6%9D%A1%E4%BB%B6%E3%81%A4%E3%81%8D%E3%81%A7%E6%A8%99%E6%BA%96%E5%81%8F%E5%B7%AE%E3%82%92%E6%B1%82%E3%82%81%E3%82%8B-stdevif%E7%9A%84%E3%81%AA%E9%96%A2%E6%95%B0

20/01/31: platformIOのライブラリ等の置き場

https://qiita.com/watarukato/items/455c74c625e178de385d

20/01/29: Eagle使いがKiCADで気をつける点

一通りKiCADを使ってみて、気づいた点

  • フットプリントのパッドはTH/SMDで共用(プロパティで設定する)
  • 移動とドラッグが別(端点を持って変形はドラッグ)
  • 配線削除で、フットプリントも削除できてしまうので注意

20/01/29: KiCADでガーバー出力

  • ガーバーはProtel互換形式を選べば拡張子がFusionやElecrowで注文できる形式になる
  • ドリルはPTH/NPTHをマージ、を選ぶ

http://support.seeedstudio.com/knowledgebase/articles/1187731-kicad%E3%81%8B%E3%82%89%E3%82%AC%E3%83%BC%E3%83%90%E3%83%BC%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E5%87%BA%E5%8A%9B%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95

20/01/28: 謝金手続きの出勤簿と報告書

学生の場合は出勤簿+報告書、それ以外の場合は報告書のみ

20/01/24: iMacのSSD換装とHDD内容のリカバリ

交換は意外と簡単そう。交換後、リカバリーモードで起動し、TimeMachineから戻すのが簡単そう。

https://d-xanthus.com/blog/tips/imac-27-inch-mid-2010%E3%81%AE%E3%80%81ssd%E3%81%B8%E3%81%AE%E4%BA%A4%E6%8F%9B%E6%89%8B%E9%A0%86

https://like-apple.com/imac2010-ssd-setting/

20/01/20: EagleのライブラリをKiCADにインポート

Eagleで回路図に部品を置いて、それごとKiCADにインポート、という手が使える模様。

https://make.kosakalab.com/make/eda/eagle-lib_to_kicad-50/

20/01/20: AndroidAutoGoogleMap

似てる気もするけど、基本別物で、前者はクルマの中で使いやすく設計されている、ということか。 https://cobby.jp/android-auto.html

20/01/15: 海外で日本のラジオを聞く

https://4keta-blog.com/sp-raziko/

https://4keta-blog.com/rajiko/

http://xn--o9j0bk1lofn705a2r6b.com/%E6%B5%B7%E5%A4%96%E3%81%A7%E6%97%A5%E6%9C%AC%E3%81%AE%E3%83%A9%E3%82%B8%E3%82%AA%E3%82%92%E8%81%B4%E3%81%8F%E6%96%B9%E6%B3%95/

20/01/15: 海外への大きめの荷物の送付

郵便局UGX: https://www.post.japanpost.jp/int/UGX/ / 詳しく→ https://netshop.impress.co.jp/node/5242

展示会の荷物の例(カルネ手帳) https://butsuryu-techo.com/ata-carnet2/

20/01/14: Win10でコマンドプロンプトから環境選定を設定&保存

setxコマンドで、設定&保存をまとめてできる。

https://qiita.com/tomorrow56/items/7e3508ef43d3d11fefab?fbclid=IwAR2iZIw2hJNdk3l5Y1vHxVDsgaOi2W0HuUgkIbhw8a6sLdg4a9iXJgWRaP0

20/01/09: Macで入力方法を切り替えるショートカットキー

設定→キーボードのShortcutからいける

20/01/07: ArduinoIDEのコンパイル結果の場所

コンパイル結果の*.hexや*.binは、c:\Users\(ユーザ名)\AppData\Local\Temp\arduino_build_????\ の中。ArduinoIDEの環境設定でコンパイルのdebug messageを表示させておくとログに表示される。 [#oe75f6aa]

20/01/06: Eagle9のキー定義などの設定ファイル

c:\Users\(ユーザ名)\AppData\Roaming\Eagle\settings\(バージョン番号)\eaglerc

19/12/23: 中国金盾でブロックされているかの確認

https://www.comparitech.com/privacy-security-tools/blockedinchina/

19/12/23: ProMicroの文鎮化とその復旧

SparkfunのProMicroは、ArduinoLeonard互換だがブートローダが少し違う。Lenoardは起動後8秒間書き込みを待機して、なかったらプログラムが起動する。ProMicroはこの待ち時間が750ms。ただしProMicroでリセットを素早く2回押すと、Leonardと同じ8秒間待ちになる。ProMicroの文鎮化(英語ではBricked)は、クロック設定が違う設定で書き込んだときにもおこる。まずは素早く2回リセット→8秒間だけシリアルポートが現れるので、そのポートを選んで正しい設定でプログラムを書き込む、で復旧できる。(8秒間しかないので素早くやる)

https://learn.sparkfun.com/tutorials/pro-micro--fio-v3-hookup-guide/troubleshooting-and-faq

19/12/18: Eagleのライブラリで長穴をつくる

http://trac.switch-science.com/wiki/ssciPCB-milling

19/12/15: GitHubで新しいリポジトリを作って既存フォルダを置く

GitHubで空リポジトリをつくったあと、

  • ローカルにCloneしたあと、そこに既存フォルダをコピーしてPush(ローカルのGit履歴はGitHubには残らない)
  • ローカルでGitでリポジトリをつくっていたら、それをgitコマンドでremote add http://(...).gitしてpush originする(ローカルのGit履歴がGitHubに残る)

19/12/12: VSCodeとPlatformIOでM5stackのプログラム

  • MS製のエディタがVSCodeがなかなか便利らしい。Extension追加でEmacsキーバインドもいけそう。(Metaキーの扱いだけ要調査→Awesome Emacs KeymapだとAltでいける)

https://qiita.com/bussorenre/items/bbe757ef87e16c3d31ff

  • VSCodeのExtensionのPlatformIOは、各種マイコンのコンパイラ・書き込み・デバッグの統合環境で、ArduinoIDE互換にもできる。
  • シリアルモニタの通信速度はplatform.iniに書く。なおTerminalで、コンパイル中のメッセージとシリアルモニタがシームレスに切り替わって表示されるので、明示的に切り替える必要はない。

https://kunsen.net/2018/07/28/post-618/

19/11/13: ThinkPad X240sのトラックパッドをX250のものに交換したあとのドライバ・設定

https://minkara.carview.co.jp/userid/206485/blog/35635376/

https://takanotume24.com/blog/x240-x250

19/11/11: PlatformIOでArduino

VisualStudioCodeでArduino開発できる。

https://www.media.lab.uec.ac.jp/?page_id=1414

19/10/22: USB-CをUSB2.0っぽく使うときのCC1/2の扱い

https://hanpenblog.com/11049/

19/10/17: Win10で休止モードを有効にして電源オプションに表示させる

https://www.atmarkit.co.jp/ait/articles/1808/20/news026.html

19/10/15: Xiaomi AmazFitの文字盤の自作

https://www.hide10.com/archives/30291

19/10/15: Win10でウインドウの位置を記憶

以前のWin7の頃にはpositionSpiceというのを使っていたんだけど、Win10でどうもうまく動かない。これなら大丈夫そう。

https://www.vector.co.jp/soft/dl/win95/util/se401241.html

19/10/15: Win10のコマンドプロンプトでウインドウのサイズ・位置を指定

https://news.mynavi.jp/article/win10tips-316/

19/10/12: GPUの消費電力

けっこうバカにならないことはわかった。 例えばGeForce GTX1060で120Wくらい。 GPUをのせるPCの電源は400W以上が推奨されている http://www.ccre-alp.org/post02.html

19/10/10: レーザーカッターでコピー用紙でハンダマスク

UniversalLaserの設定メモ。Power=40, Speed=100, DPI=500

19/10/10: GerberをDXFへ

KiCADのみでできる。これで、PCBEで設計した基板のソルダーマスクをレーザーカッターでつくれる。

https://denshikousakusenka.jimdo.com/%E3%81%9D%E3%81%AE%E4%BB%96/%E3%82%AC%E3%83%BC%E3%83%90%E3%83%BC%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92dxf%E3%81%AB%E5%A4%89%E6%8F%9B/

19/10/07: Fusion360のちょっとした操作の設定

  • マウスホイールとズームの向きが逆な気がするのは設定で逆にできる
  • マウスの中ボタンを押したままドラッグ=回転、がどうもうまくいかないが、設定をTinkerCADにすると→ボタンを押したままドラッグ=回転、となるので、このほうがいいかも。

http://fusion360.info/sitecontrol/

19/10/02: Windows10でリモートデスクトップで複数セッション

http://kougen.iobb.net/hobbygardens/article.php?id=65

https://itjo.jp/windows/remote-desktop-multiple-account/

19/09/24: レイアウトGDSのプロットアウト

KLayoutできれいに印刷できそう。プリンタのプロパティで、原稿サイズ=A0(sq)、用紙サイズ=A0とすれば、プレビューでは解像度が粗いが印刷すれば大丈夫。

19/09/20: AndroidのuSDカードを内部ストレージにしてアプリを置く

https://digitalnews365.com/android-sdcard-internal-storage

19/09/13: Qflowの配置配線のパラメータ

一般的には、initial densityで初期配置の密度、rowSepで行間の配線領域の幅(トラック数)を指定するが、initial densityが高ければレイアウトが小さい、というわけでもない(配置作業の結果、レイアウトが大きくなることが大きくなることもある)。 配線が密そうな場合は、rowSepを大きめにとって(たとえば0.6)、initial densityを高めにするほうが、配線が最後まで行くことが多い印象。

19/08/11: Webの情報の新鮮さ

ESP32でArduinoIDEでタイマ割り込みを使うのに、「ESP32 Arduino タイマ割り込み」でGoggleって、こちらのページの方法を試してみたら、ウオッチドッグタイマ(WDT)でひっかかってハングる。(ちなみにいま気づいたけど、masawoさんの記事)

https://qiita.com/tomorrow56/items/fcf5ea7bfd2056e8f88f

日付が1年前な事に気づいて、他に調べてみたら、どうも標準ArduinoIDEのTickerでいけるっぽい。 Webの情報は日付を確認しましょう(特に変化が早い分野は)、という話。

19/08/08: Windows10のスタートメニューのある場所

https://www.nishishi.com/blog/2016/02/windows10_start.html

19/07/14: 自作キーボード入門

自作キーボード沼には、沼の住人しかわからない暗号や暗黙知がけっこうあるので、メモ。

https://www.diatec.co.jp/products/CHERRY/ http://www.kailh.com/en/Products/Ks/CS/321.html

  • PCBのフットプリント:両者それぞれのデータシートから穴の位置は決められる。両者のORをとれば、どちらでも実装できる基板ができる。こんな感じになるはず。

https://gyazo.com/48c95b8616e1001f38c0570bf8a9bf42

ちなみにKiCADライブラリはこちら。 https://github.com/foostan/kbd/tree/master/kbd.pretty

  • 3足/5足:CherryMXスイッチで、位置固定用のボス(突起)があるものとないものがある。あるものが5足、ないものが3足。(基板は5足用に穴をあけておけばよい)
  • フットプリントのミラー:Meishiキーボード>などをみると、フットプリントが鏡像対称っぽくなっている。これは、左右分離キーボードで両側の基板を共用(反対側は裏面に部品を実装する)するためのアイディア。
  • キーピッチ:使うキートップによるが、19.05mm間隔、が標準。

19/07/11: 俗にいう"AI"関連の用語

お恥ずかしながら、俗に「AI」と呼ばれる技術でいろいろ出てくる用語が、いまいち区別がついてなかったので、いまさらながらお勉強。

  • CUDA:NVIDIAのGPU向けコンピューティングのプラットフォーム。いわゆるGPGPUのベース。
  • Deep Learningの方法の1つ、DNN(Deep Neural Netowork)の計算ライブラリ:Therano, TensorFlow, Torch7, Caffe, Chainer, CNTK(それぞれ開発元やライセンス形態などが違う) https://ai-kenkyujo.com/2018/10/25/framework/
  • ニューラルネットワークの、より抽象度の高いライブラリ Keras : TensorFlow等の上で動く

ミクミンPさん情報 https://twitter.com/ksasao/status/1148932941440929793

  • K210が載っているM5StickVやMAiXでMAIXPyを使って物体認識: https://bbs.sipeed.com/t/topic/682
  • モデルの構造を観る: kpu.netinfo(task) https://maixpy.sipeed.com/en/libs/Maix/kpu.html#netinfo
  • 層の途中までの計算結果が欲しいときは kpu.set_layers(task,レイヤID) 
  • MobileNetで求めた特徴量間の距離だけで画像認識をする例 https://gist.github.com/ksasao/ad8fb722d45a2efa3745f34c1df28bdf
  • ただしMAIXPyにはnumpyはない
  • MobileNetで特徴量だけ求めて(=CNNの出力層の手前の値(特定のn次元の値)をベクトルとして使って)、その特徴量間の距離で類似度を求める、というのもあり。
    • 要はCNNはフィルターかけて次元数を減らしていく処理なので、最後の結果(classificationの結果)にする手前のレイヤーの値=「なんとなく特徴により値の異なる値の配列」。(たとえば車を判別するMobileNetのモデルは「車の特徴を数値化するモノ」として使えるので、手前の出力をベクトルとして特徴量を求め、マスタデータのそれと比較することで、学習させてない車種の判別もある程度できる)

19/07/08: 3Dプリンタのステージ用のフィルム

こんなお試し記事が。

http://www.fumi2kick.com/komekame/archives/2079

19/07/07: MAiXのボードを使う手順の備忘録

  • 環境構築→20クラス分類モデル変換→クラス分類まで一通り

https://qiita.com/k2kdisk/items/9d092ac94e88ba719049

  • Maix ToolboxでTensorFlowLiteのモデルをkmodel(SipeedボードのK210で使える形式)に変換できる。ただしレイヤ構成などに制限がある模様。
  • こちらでも20クラス分類のデモ。uSDカードに保存する方法も。

https://qiita.com/kingyo222/items/048a7bf477f0dad488ef

  • メモ
  • MaixPy本体のmaixpy-??.bin, ユーザプログラム(*.py)、モデル(*.kmodel)は、それぞれ別領域に置かれる。
  • ユーザプログラム(Pythonスクリプト)はPyloaderで転送するのが便利。使い方は https://github.com/BetaRavener/uPyLoader で、最初にファイル転送スクリプトをFile->Init Transfer Filesで転送する必要がある(がどうもうまくいかない:転送中にハングる?)

19/07/04: Gladeの細々としたこと

  • スケマでMOSのインスタンス名は、そのままネットリストに出力される。つまりスケマでのインスタンス名をMから始まる名前にしておかないと、SPICE/LVSでMOSとして扱われない。(LVSだとdeviceがないよ、というエラーになる)
  • ウエルコンタクト・基板コンタクトがないと、MOSのB(ボディー)が「なくなる」。つまりネットリスト出力時に、MOSがS/G/Dのみの3端子の素子として出力される。

19/06/25: Emacsの色の変更

関数の色、とかの細かい設定もできる。 https://qiita.com/AnchorBlues/items/91026c4f1c0745f5b851

19/06/17: SQliteでCSVを読み込んで2つのテーブルを紐づける

SQliteの使い方を含めて。例えばこのあたり→https://www.dbonline.jp/sqlite/

  • 起動
    sqlite3 データベースファイル ※SQlite内でデータベースに操作(テーブルの作成や操作を含む)を加えると、そのデータベースファイルが更新される
  • CSVをインポートして新規にテーブルを作成(※改行コードはCR+LF)
    .mode csv
    .import file名 テーブル名
  • テーブルの情報
    .schema テーブル名
  • テーブルの表示
    select * from テーブル名;
  • テーブルの指定したカラムのみ表示
    select COL1,COL2,... from テーブル名;
  • 列COLUMNの値でソート
    select * from TABLE order by COLUMN asc/desc; (昇順 or 降順)
  • 列COLUMNが指定した値のものを抜き出し
    select * from TABLE COLUMN='data';
  • 列COLUMNが指定した値(複数)のものを抜き出し
    select * from TABLE where COLUMN IN(data1, data2, ...);
    または
    select * from TABLE where COLUMN=data1 OR COLUM=data2 OR ...;
  • 内部結合
    select * from TABLE1 inner join TABLE2 on TABLE1.COLUMN1 = TABLE2.COLUMN2;
  • テーブルにカラムを追加
    alter table テーブル名 add column カラム名[ データ型];
  • テーブルにデータを追加
    insert into テーブル名 values(値1, 値2, ...);
  • テーブルの指定したカラムにデータを追加
    insert into テーブル名(カラム1, カラム2, ...) values(値1, 値2, ...);
  • カラムの値を演算して取得(例:カラムAの値×10+カラムBの値)
    select カラムA*10+カラムB from テーブル名;
  • カラムの値を演算して取得して別のカラムに追加(例:カラムAの値×10+カラムBの値をカラムCへ)
    insert into テーブル名(C) select A*10+B from テーブル名;
  • カラムのヘッダを表示/非表示
    .headers ON|OFF
    .show ←現在の設定を確認する
  • カラムが指定した値のものみ表示
    select * from テーブル名 where カラム=値;
  • テーブルの作成
    cerate table テーブル名(カラム名1[ データ型], カラム名2[ データ型] ,...);
  • 列を選ぶときに別名を付ける
    select A as NAME from テーブル; // A列にNAMEという名前を付ける
  • 列の値を更新する
    update TABLE set COL=値;
    例えば、以下で、C列の値=A列の値+B列の値(全てのデータに対して)、になる。
    update TABLE set C=A+B;
  • 終了
    .exit

19/02/13: Photoshopで写真をきれいに二値画像にする

http://www.geki-t.com/photoshop%E3%81%A7%E5%86%99%E7%9C%9F%E3%82%92%E6%A0%BC%E5%A5%BD%E8%89%AF%E3%81%8F%E4%BA%8C%E9%9A%8E%E8%AA%BF%E3%81%AB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/

19/02/04: COMポートの整理

https://trac.switch-science.com/wiki/Delete_device_driver

19/02/01: スマホ対応のWebページ

ヘッダにviewportを記述しておくのが、とりあえずは簡単か。

https://www.u-ziq.com/blog/2011/01/post_61.html

(このページの下の方にテンプレート例がある)

19/01/20: M5stackのケース

https://macsbug.wordpress.com/2018/03/09/make-a-case-of-m5stack/

19/01/17: M5stackのLiPo電池残量

内蔵の制御ICに、残量を測る機能自体はある模様。(ただし外には出ていない)

http://asamomiji.jp/contents/documents/electronics/battery_indicator_for_m5stack

19/01/11: tomu USBをつつく

https://qiita.com/hirano/items/7ded24ecefc4fd99ab8b

Winだとなぜかmakeの最後のobjcopyでエラー(メモリの範囲外)が出る。MacだとOK。Winでつくった*.elfをMacのobjcopyで変換するのもOK。arm gcc toolchainの両者のバージョンは同一。謎い。

19/01/11: Macにarm-gcc toolchain

https://www.yokoweb.net/2016/09/03/macos-arm-gcc/

19/01/09: M5stackのMicroPython(オフライン版)

https://buty4649.hatenablog.com/entry/2018/12/20/192330

19/01/08: LatticeのちっこいFPGA

Latticeのちっこい手半田できそうなFPGA。

  • iCE40のLP384(QFN32)、LP1K(QFN84)、HX1K(QFP100)、HX4K(QFP144)
  • iCE40UPのLP1K/2K/4K・UP5K(QFN48)。

http://www.latticesemi.com/Products

19/01/02: NanoPiPaSoRiでFelicaを読む&GPIO制御

https://gato.intaa.net/archives/10256

https://qiita.com/t114/items/819a9cdfe90ea98dd4d3

https://qiita.com/nanbuwks/items/9f7e709025b587c038d2

18/12/05: Virtuosoの.cdsinitでレイヤ切り替えのショートカットキー設定

こんな感じでprocedureを定義して、それをショートカットキーに割り当てる

procedure( MetalSelect(num "x")
 let(((MetalList list(sprintf(nil "M%d" num) "drawing")) ) 
  	leSetEntryLayer(MetalList) 
   hiRedraw()
 )
)
hiSetBindKey("Layout" "Ctrl<Key>1" "MetalSelect(1)") 

参考:http://venividiwiki.ee.virginia.edu/mediawiki/images/5/5e/Toggle_bindkeys.il

18/11/28: IIJmioのSIMでテザリングできいない

APNタイプにdunを追加する、というのが解決策になることもある模様。

http://nij.hatenablog.com/entry/2018/09/03/Xiaomi_Mi_Max_3_%E3%81%A7%E3%83%86%E3%82%B6%E3%83%AA%E3%83%B3%E3%82%B0

18/11/23: M5stack/ESP32のFlash Download Toolsの起動エラー(UnicodeDecodeError)

FlashDownloadToolsがおいてあるパスに日本語などの2バイト文字が含まれると、このエラーになる模様。 https://github.com/espressif/arduino-esp32/issues/860

18/10/15: Virtuosoで起動時にキー割当を読みこむ

.cdsinitに書いておく

https://community.cadence.com/cadence_technology_forums/f/custom-ic-design/11755/how-do-i-automatically-load-bindkeys-every-time-i-open-virtuoso

18/10/03: ofoの登録

本人認証のためにパスポートの写真や、それを持っている自分の写真、をアップロードするところが、ちょくちょくある。(eSenderの登録、ofoの登録)

https://diary.shuichi.tech/entry/2017/07/15/175937

http://panda-note.hatenablog.jp/entry/2017/05/31/185844

18/09/11: 平型Nd磁石の固定方法

セメダインあたりでいける、工業用だとより強力、とのこと。 https://www.neomag.jp/mag_navi/mames/mame_glue.html

18/09/07: docomo WiFiの二重ログイン解除

スマホ側で0000docomoに接続→ログイン→ログアウト。その後、PC等で0000docomoに接続→ログイン、でいけるらしい。めんどくさいな。

https://platzblog.com/mobilephone/docomo/docomo0000-wi-fi-error-trouble-shooting

18/08/21: ATmega328のヒューズリセッタ

http://100year.cocolog-nifty.com/blog/2014/05/atmega488816832.html

18/08/16: GladeのLVSで謎挙動2つ

OpenRule1umでLVSをかけてて謎挙動が2つ。

  • 回路図からネットリストを出力すると、トップの回路に.SUBCKTがつかない。(階層型(Hierarchical)LVSでは、これが必要
    .SUBCKT top_name <---- これが必要だが出力されない
    X0 n0 n1 inv1
    ...
    .ENDS
  • MOSFETの幅(W)が、LVS時に2倍になる。例えばこんなこんなかんじ。
    <ro3_extracted.cdl> : 回路からのネットリスト。W=2umと書いてある
    MM1 n3 n0 n1 n1 nch w=2e-06 l=1e-06 as=4e-12 ps=6e-06 ad=4e-12 pd=6e-06 $X=5.8 $Y=2.8
    これが、LVSの結果をみると、W=4になっている。(当然ながらLVS不一致エラーになる)
                       ro3_extracted.cdl                    ro3.cdl_flat 
    (1) Device type:                N                                N 
        Inst name  :              MM1                            M0/X1 
        Model      :              nch                              nch 
        S:                          n3                              n2 
        D:                          n1                              vss 
        G:                          n0                              n0 
        W/L:  (um)        4.000/1.000                      2.000/1.000

この2点を、Gladeユーザフォーラムで質問中。

18/08/11: Arduinoで大きな数を扱う

https://github.com/nickgammon/BigNumber

このBigNumberが神ライブラリ。castとかそのまま四則演算ができる。必要に応じて必要桁数も指定できる。 ただし細かい点は要注意。

  • long型をそのままcastできない。→sprintf(buf, "%ld", num)でいったん文字列をつくってから、castすればOK
  • 指数表記の文字列(1e2など)はcastできない。→固定少数点表記のみ。

18/08/11: ATmegaにArduinoブートローダを書き込む

ArduinoUNOを使い方法、以前はトラブルが多かった印象なんだけど、最近は安定している模様。

https://qiita.com/moh-lee-3/items/1bbbf5d35cd67ece0d41

18/08/09: ATmega168用のArduino Pro Mini 8MHzのFuse設定

ATmega328と同じだろうと思ったら大間違いで、ATmega168とATmega328はExtendとHighのヒューズ構成がまったく違う。結果的にこちらでOKそう。(要は、BOOTRST=ON、SPIEN=ON、ほかはOFFで、OSCをIntRCにする)

  • ATmega328 : Extend=0xff, High=0xda, Low=0xe2
  • ATmega168 : Extend=0xf8, High=0xdf, Low=0xe2

18/08/08: Arduinoで大きな数を扱う

例えば2^23は、「(uint32_t)1 << 23」のように、シフトの前に明示的に16bitを超える値というとを示しておかないと16bitの範囲でシフトされて0になっちゃう。

18/07/23: iTunesの曲をmp3に変換

iTunes単体でできる。 https://support.apple.com/ja-jp/HT204310

18/07/02: Pythonで標準入力から1行ずつ読み込む

https://maku77.github.io/python/read-stdin.html

18/07/01: Pythonでファイル書き込み

https://hayataka2049.hatenablog.jp/entry/2018/01/24/192000#pprint%E3%81%AE%E5%A0%B4%E5%90%88%E3%81%AF%E3%81%A1%E3%82%87%E3%81%A3%E3%81%A8%E9%81%95%E3%81%86

(18/07/03追記)このあたりも詳しい。https://note.nkmk.me/python-file-io-open-with/

18/07/01: Pythonで少し待つ

import timeして、time.sleep(1)で1秒待つ

https://qiita.com/7of9/items/f674e155f53f0fd06458

18/07/01: M5stackでMicroPython

シリアルコンソースから対話的に実行したり、M5cloud経由でダウンロードしたり。

https://qiita.com/inachi/items/d23b9e39551836cddb09

(181017追記)Windows版はこちらを参照 https://github.com/m5stack/M5Cloud

18/07/01: Pythonのmodule内に関数の一覧

dir(モジュール名)でみられる。

https://qiita.com/7of9/items/eecaa520c52a3b4e6cdc

18/06/12: 工作室のフライス盤のドリルチャックの交換

回転軸の頭の部分のネジを六角レンチで、少し(10mmくらい)ゆるめ、木の板をはさんでハンマーで軽くたたくと、回転軸が落ちてはずれるので、その後、ネジをはずしてとりはずす。取り付けはこの逆。

18/06/12: マルチファンクションスイッチATD-004Aのピン配置

aitendoで売ってるマルチファンクションスイッチ(ATD-004A)のピン配置。

http://www.aitendo.com/product/6930

https://twitter.com/akita11/status/1006333179374923777

18/06/11: TWE-LiteのUARTアプリでUART双方向通信

インタラクティブモードに入って設定を変更。 m=T(透過モード)は、1-1の通信でバイナリも遅れる。 m=D(プロンプトなしチャット)は、ブロードキャストでテキストのみ。(感覚的にはこれが透過モードかと思い込んでいた)

18/05/30: WindowsでGDSをプロットアウト

  • KLayoutだと、どうもビットマップのの解像度が低くて、荒い。これを設定変更する方法がみあたらない。→(18/05/31追記)プリンタ(プロッタ)設定で、「原稿サイズ=A0(sq) (831x831mm)」、「ロール紙幅に拡大」を設定すると、十分高い解像度で印刷できる。
  • GDS Viewだと、ちょっと印刷は遅いけど(あとたまにVIAの位置がおかしいことがある)、解像度は十分。ただしハッチングの線の間隔を印刷ダイアログで指定するが、標準の3mmだとけっこうスカスカなので1mmくらいがいいかも。

18/05/29: VirtuosoでPathの幅を変更

F3キーでダイアログを出して設定。

http://www.cse.psu.edu/~kxc104/class/cse577/11s/hw/hw1/CadenceLayoutTips.pdf

18/05/28: Eagle→基板切削NCデータの生成

https://github.com/JohnAtl/pcbgcode / https://macsbug.wordpress.com/2011/12/11/pcb-gcode-%E5%82%99%E5%BF%98%E9%8C%B2/ / http://www.richa1.com/RichardAlbritton/create-g-code-from-an-eagle-file/

http://zeroalpha0.blog.fc2.com/blog-entry-33.html

ガーバーデータから変換するのもある。http://eng.homuzorow.net/pyGerber2Gcode.html

こういうのもある。http://flatcam.org/manual/installation.html#microsoft-windows

18/05/28: 旧バージョンのEagleのダウンロード先

http://falabo.blog115.fc2.com/blog-entry-221.html

18/05/07: GoogleカレンダーAPIで終日イベントの取得

どうも扱いが微妙にドキュメントと異なるようで、終日イベントは、$item->start->dateに日時が入り、$item->start->dateTimeが空欄になる。開始終了時間を指定のイベントは、その逆。

http://d.hatena.ne.jp/fujisan3776/20130822/1377179701

18/05/07: DIY製本

いろいろある。

無線綴じ : https://nanapi.com/ja/1598 http://tojisuke.trylife.jp/how-to-use-tojisuke/make-a-bool-by-hotmelt/

このほか、中綴じ、平綴じ、など。

(180509追記)背を固定するホットメルトシートを、グルースティックから作る方法もある。http://ebook.dojin.com/how-to-make-hotmelt-sheet/compare-hot-melt-sheet/

あるいは直接グルーガンを塗る方法も。 http://tojisuke.trylife.jp/how-to-use-tojisuke/how-to-make-a-book-by-glue-gun-text/

18/05/06: NanoPiの青LEDを消す

/sys/class/leds/blue_led をつつく。

https://gato.intaa.net/archives/8337

ただしsudo -sしたあと。

http://www.dc7jzb.de/node/124

18/05/01: Android版WeChatのファイル保存先

内部ストレージ→tenscent→WeChat(画像)/Download

18/04/26: LINEのスタンプをLINE Payから支払う

PC版からイケるみたい。ややこしい。

http://did2memo.net/2017/05/08/naver-line-line-pay-convert-to-line-coin/

18/04/24: Arduinoでシリアル受信割り込みでスリープから復帰

http://tetsuakibaba.jp/index.php?page=workshop/ArduinoBasis/sleep

http://playground.arduino.cc/Learning/ArduinoSleepCode

18/04/19: ATtiny10/13でWS2812制御

https://make.kosakalab.com/avr/attiny10-ws2812/

18/04/18: Wordの「区切り」

ページ区切り(物理的区切り)とセクション区切り(論理的区切り)があって、ページ番号の振り直しなどは後者じゃないとできない。

https://dekiru.net/article/14291/

18/04/12: Wordでの図などの番号の参照の更新

フィールドの更新、または、印刷する(直前でとめてキャンセルしてもよい)と更新される。

http://www4.synapse.ne.jp/yone/word2010/word2010_zuban_kousin.html

18/04/11: Fusion360のタイムライン

操作履歴が残っているので、戻って修正、とかができる。 Undoをものすごく強化したもの、という考え方もできる。

https://www.myautodesk.jp/JEFF/Fusion360_ATC_201603.pdf

18/04/09: Androidアプリのファイルの保存先

どうもアプリごとにバラバラで、なかなか覚えられない。 基本的に、内部ストレージのDownload、なのかな。

18/04/06: TWE-Liteプログラミングの情報

例えばこのあたり。 http://dsas.blog.klab.org/archives/52201101.html

18/04/05: curlでLINE Notifyを送る

https://engineering.linecorp.com/ja/blog/detail/88

18/04/05: Nano Piでcurl

https://mzyy94.com/blog/2017/11/10/nanopineo2-homekit/

18/04/05: mbedでhttps

https://os.mbed.com/forum/team-886-GR-PEACH_producer_meeting-community/topic/5330/

18/04/05: Arduino/ESPでLINE Notifyを送る

https://codeiq.jp/magazine/2017/07/52949/

18/04/02: C/CSマウントレンズのフランジバック

Cマウントが17.526mm、CSマウントが12.5mm

https://www.asanumashoukai.co.jp/sanki/opt_trivia/detail/1.html

18/03/14: バッチファイルでファイル名だけ抜き出す

拡張子だけ、とか、いろいろできる。

http://orangeclover.hatenablog.com/entry/20101004/1286120668

18/03/06: Voltera V-Oneでノズルのつまりをとる

ギターのスチール弦の一番細いやつを通す、のがいいらしい。アセトンをつけながら、も効果的っぽい。

https://community.voltera.io/t/how-to-fix-clogged-nozzles/393/6

スチール弦はこのあたりによれば、一番細いのは0.01インチ=0.254mm

http://livearth-music.com/school/contents/1549/

18/02/27: VirtualBoxでディスク容量を変更する

https://qiita.com/ryokato_eras/items/3b2298f9016a8a002ecd

18/02/27: Windows10のRDPで複数接続

https://yamahide.biz/archives_114.html

https://www.kougen.dev/hobbygardens/article.php?id=65

(210119追記)RDPwrapper https://www.rootlinks.net/2019/10/04/rdp-wrapper%E3%81%AEtermsrv-dll-ver-10-0-17763-771%E3%81%A7%E3%81%AE%E5%AF%BE%E5%BF%9C/

https://github.com/stascorp/rdpwrap

(210816追記)RDPwrapperの使い方 https://memonotealpha.net/blog/archives/3152

18/02/25: コリメート光

光学系で平行になるように調整された光のこと。レーザーポイインタとかに入ってるのがコリメートレンズ

https://www.global-optosigma.com/jp/community/comm01_1bn4.html

18/2/23: Windowsで画面外に出てしまったウインドウを移動

https://support.microsoft.com/ja-jp/help/880147

(18/08/07)↑のリンクが切れているようだが、この方法。ウインドウを選択後、Alt+SPC→Mで、移動モードになるので、カーソルキーで移動できる。 http://www.atmarkit.co.jp/ait/articles/0312/06/news006.html

18/2/20: ArduinoIDEでAVRISPmkIIを使う

AtmelStudioをインストールすると、AVRISPmkII用の純正ドライバが入ってしまうが、それだとArduinoIDEから使えない。そこでこのあたりを参考に、libusbドライバを入れる。

http://jujurou.blog34.fc2.com/blog-entry-301.html

(18/03/06追記)このドライバを入れても、AtmelStudioから書き込みはできる。

18/2/17: Inkscapeで円や曲線(らせんなど)にそって図形を並べる

基本的に、沿わせる図形も並べる図形も、オブジェクトやストロークをパスに変換してから、エフェクトをかける。

円周に均等に: https://hail2u.net/blog/software/align-objects-circularly-and-equally-with-inkscape.html

曲線にそって: https://inkscape.paix.jp/manual/edit-path/path-effect-editor/pattern-along-path/

18/2/12: VirtualBox + Ubuntu16.04で、共有フォルダ

基本事項なのかもしれないが、意外と書いてないので備忘録。まずはゲストOS(Ubuntu)側で、Guest Addtionsを入れないといけない。これでvboxsfが使えるようになるので、それを指定してmountする。

https://qiita.com/haseken/items/982c5369988636991a4a

※ちなみにここに書いてある「mount -v vboxsf」は、「mount -t vboxsf」が正しい。

18/1/23: ArdunoIDEでATtinyのプログラムを書く

http://make.kosakalab.com/make/electronic-work/arduino-ide-dev/

18/1/21: Inkscape→Fusion360でサイズがずれる

Inkscapeで描いたSVGを、Fusion360でスケッチとして読み込むと、なぜかサイズが1/1.07倍くらいに微妙に小さくなる。 Inkscapeの長さの単位pxが、1px=1/96inch→1/90inchに途中で変わったのが原因という話もあるけど、微妙に縮小率が違う。 というわけで原因はよくわからいけど対処療法。Inkscapeで10mmのものがFusion360で9.344mmになるので、全体を10/9.344=1.0702倍にするために、SVGファイルの<g のところで、"<g transform="scale(1.07024)">"を手動で追記したら、Fusion360で実寸で読み込めた。

18/1/20: VivadoでZyngBerryでブロックRAMへ自作回路からアクセス

BlockRAMには、BlockRAMControllerとStandAloneの2つのモードがあって、前者だとCPUからAIXバスでアクセスできるBlockRAMContollerをつなげば、CPUのメモリ空間にマッピングしてアクセスできる。StandAloneモードではそれができない。

自作回路からこのBlockRAMにアクセスするには、StandAloneモードであれば、一般的なRAMと同じ制御線でアクセスできるが、BlockRAMContollerモードでは、それができない(まぎらわしいが、BlockDiagramでは、アドレス線やwrなどの一般的なRAMと同じ制御戦がBlockRAMのブロック図にあるんだけど機能しないっぽい)。

BlockRAMをDualPortモードにすると、2つのポートで、BlockRAMContoller/StandAloneモードを分けることはできない。

したがって、AポートをCPUからアクセスし、Bポートを自作回路でアクセスする、という使い方のためには、BlockRAMControllerモードにして、CPUとはAIXバス経由でBlockRAMControllerでつなぎ、自作回路とは、別のBlockRAMController経由でAIXバスでつなぐ、つまり自作回路でAIXバスをつくる、しかない。

AIXバスには、AIXとAIX Liteがあって、バースト転送や32bit以外の読み書きを使わないなら、AIX Liteでもできて、それだとだいぶ素直な仕様。信号線が多いが、クロック同期でアドレスを出し、RAM側(Slave)でデータが出てきたらReadyがたつので、データを読む、みたいな、けっこうシンプルなアクセスなので、最低限であれば実装はそれほど難しくない。詳しくはARMのOfficialから、AMBA/AIXの仕様書を読むのが吉。↓から「AMBA AXI and ACE Protocol Specification Issue E」あたり。

http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.set.amba/index.html

(18/01/23追記) AXI4Liteについてはこの辺りも詳しい。 http://dora.bk.tsukuba.ac.jp/~takeuchi/?%E9%9B%BB%E6%B0%97%E5%9B%9E%E8%B7%AF%2FHDL%2FVivado%E3%81%A7AXI%E3%83%90%E3%82%B9%E3%82%92%E5%88%A9%E7%94%A8

18/1/19: VivadoでZynqBerryのこまごまとしたこと

  • HDLで書いた回路を、IP化せずに、直接BlockDiagramへ入れられる。(HDLソースを右クリック→Add Module to Block Diagram)ちょくちょくいじる場合はこのほうがいいかも。
  • ブロックメモリ(Block Memory)を、モードをBRAM Controlにすると、BlockMemoryController経由でAIXバスにつなげる=ARMプロセッサのソフトウエアからアクセスできる。例えば以下のような感じ。なおサイズは、AddressEditorで割り当てアドレスを指定すると、それにあわせたサイズになる。モードをStandaloneにすると、AIXバス経由でアクセスできない。
 XBram bram;
 XBram_Config bram_config;
 bram_config.DeviceId = XPAR_BRAM_0_DEVICE_ID;
 XBram_CfgInitialize(&bram, &bram_config, XPAR_BRAM_0_BASEADDR);
 volatile uint32_t *p = (volatile uint32_t *)XPAR_BRAM_0_BASEADDR;
 *p = 0; // 書き込み

18/1/18: OLEDの消費電流

もちろんモノや点灯条件によるが、目安として、↓で、全画素消灯で5mAくらい、1/3くらいの画素が点灯した状態で10mAくらい。

https://www.switch-science.com/catalog/829/

18/1/12: Xilinx Vivado SDKのxcmdの使い方

ZynqBerryでの使い方の例

connect arm hw // 接続
rst            // リセット
con            // 動作継続(リセットのあと。runではだめ)
disconn [id]   // 切断(Flash書き込み時にはいったん切断)

18/1/8: gnupackでEmacsの起動エラー(vfork)のときの回避方法

最近のgnupackには修復ツールがバンドルされている。

http://d.hatena.ne.jp/ksugita0510/20150502/p1

18/1/6: Replicator2Xのフィラメント送りのつまりの修復

Replicator2Xで、フィラメント送り機構のうち、モータのすぐしたの金属の穴に入る部分でフィラメントが折れて、押しても先からフィラメントが出てこなくなることがある。フィラメントが溶けるのは、ここよりだいぶ先のほうなので、load filamentでフィラメントを溶かしても、ここの部分は溶けないので、押し出せない。本来ならば穴とフィラメントのすべりがよければ押し出せるはずだが、押し出せなくなることがある(カスがつまっているから?)。

このような場合は、この詰まった部分を、ドリルで削りながら、掻き出すのが現実的。20mmくらい奥まで、1.5mmドリル(フィラメント径は1.75mmなので、周りに少し隙間がある)で、穴の周囲のフィラメントを削りながら掻き出す。一番奥に、半分溶けたフィラメントの塊があるので、それを引き出せるまで、掻き出す。途中、フィラメントを押し込んで、スムーズに奥まで入っていけるまで、掻き出す。奥まで入っていけたら、load filamentで溶かしながら、フィラメント押し出しつつ、セットする。

18/1/6: Git LFS

Gitでバイナリを管理する仕組み。git 2.xから利用可能。GitHub等のサーバ上にバイナリ実体を置き、ローカルではそこへのポインタをもつ。

https://qiita.com/minagawa-sho/items/582c086311d3630563bc

18/1/4: ArduinoのSoftwareSerialで同時送受信

SoftwareSerialは送信も受信もタイマ割り込みを使うので、送信と受信は同時にできない。 つまりTXとRXをつないで受け取ったデータをそのまま送り返すloopback(オウム返し)は、送信中にデータの受信開始を見落とすため、受信できない。

18/1/2: Eagleでラリブラリから他のラリブラリへ部品ごとコピー

コピー先のライブラリを開いた状態で、コピー元の別ライブラリの対象部品を右クリック→Copy to Library

18/1/1: ESP32のArduino環境

https://www.mgo-tec.com/arduino-core-esp32-install

17/12/25: ESP8266でIRKit的なもの

http://eleclog.quitsq.com/2016/09/minirum.html

17/12/23: IFTTT

いまさらながらIFTTT。IFTTT=If This Then That。指定したトリガー(各種Webサービスが指定できる)がかかったら何かする(アクション)、というもの(Webサービス)。そのうちMakerChanne(2017年ごろにWebhookに名前が変わったlが、これに対してPOSTでつついてトリガーをかけられ、それに対してあらかじめ指定しておいたURLをつつく、ようにできる。

※Windows用のcurlだと、いろいろハマるので注意。例えばSSL証明書は-kで回避。また"と'の扱いがMacと異なるようで、どうも最後の赤外線コマンドを直接curlでPOSTするのが謎エラーになるので、直接IFTTTにいったほうがいい。

17/12/22: ESP32でTwitterなど

http://makezine.jp/blog/2017/12/twitter-api-arduino-esp32-trend-get.html

17/12/21: Gladeで長方形のサイズを変更

Reference(最近はGladeインストールディレクトリにある)にはっきり書いてないけど、dbGetOverlaps(q, layer)のlayerは、レイヤ番号じゃなくて、LSWに並んでる使っているレイヤの通し番号。 ちなみに階層構造の中の長方形をいじるには、dbGetHierOverlapsを使うっぽいんだけど、その使い方がはっきり書いてない。このあたりのやりとりが参考になりそうではあるので、あとで読む。 http://www.peardrop.co.uk/forum/index.php?tid=124

17/12/10: Google HomeでiTunesで登録している曲を再生

GooglePlayMusic経由でいける。

http://www.itmedia.co.jp/pcuser/articles/1711/08/news046.html

17/11/24: ICパッケージの開封

http://makezine.jp/blog/2017/11/how-to-decap-and-explore-ics.html

17/11/07: GPD Pocketに休止モード

https://www.dream-seed.com/weblog/note/how-to-gpd-pocket-hibernate-on

17/11/07: Python(Anaconda)でOpenCV

https://blog.mktia.com/how-to-install-opencv-into-anaconda/

17/11/03: Excelで住所←→郵便番号

Excelマクロがある。 https://www.becoolusers.com/excel/wizard-postcode.html#add-code

あと住所をGoogle検索すると、地図とともに郵便番号が表示される。

17/11/02: ZynqBerryでLチカ

チュートリアルのとおりがけっこうはまったのでいろいろメモ。

https://www.trenz.jp/tutorial/zynqberry-tutorial/

こちらからいく。

  1. Vivado 2016.4用のreference design (te0726-test_board-vivado_2016.4-build_08_20170519161338.zip:ボードのピン配置とかの情報がまとまっているファイル群、という理解でよさそう)があるようなので、こいつを使う。
  2. チュートリアルにそって、blink回路をVHDLでつくって追加し、IPとして登録して、MPU(ZyngにはARM Cortex-A9が2個入っている)からつつけるように、AXIバス↓でつなぐ。ここまではチュートリアルどおり。
  3. Generate Bitstream (ビルドのようなもの)すると、エラーがでる("Cドライブに書き込めない、のような感じ)が、とりあえず無視してよさそう。Warningはチュートリアルどおり無視してよさそう。
  4. SDKにうつってMPU側のプログラムを書く。ただしここでチュートリアルに載っているプログラムと、どうもGPIO周りのヘッダファイル名、関数名がいろいろ変わっているようで、そのままだとビルドがとおらない(xpgio.hがない、など)。vivado/test_board.sdk/blink_bsp/include 以下をいろいろ探して調べて、以下のように書けばよさそう。
    #include "xparameters.h"
    #include "xgpiops.h"
    #include <stdio.h>
    #include <stdlib.h>
    int main()
    {
      XGpioPs led;
      XGpioPs_Config led_config;
      char s_interval[100];
      int i_interval = 1000;
      int count;
      led_config.DeviceId = XPAR_PS7_GPIO_0_DEVICE_ID;
      XGpioPs_CfgInitialize(&led, &led_config, XPAR_PS7_GPIO_0_BASEADDR);
      XGpioPs_SetDirection(&led, 1, 0);
      while(1){
         printf("input Interval[ms] (now %d [ms])\n", i_interval);
         scanf("%s",s_interval);
         i_interval = atoi(s_interval);
         printf("set %d[ms]\n\n",i_interval);
         count = i_interval * 50000; //50000 = 50000000[MHz] / 1000 (input [ms])
         XGpioPs_Write(&led,1,count);
      }
      return 0;
    }
  1. 続いてFSBLつくってBootImageをつくるとき、Vivadoでつくったbitファイルがリストにあがっていないっぽかったので手動で追加し・・・と思ったら、TargetのHardware Platformが、zsys_wrapper...にデフォルトではなっていなかったので作り直し(これだとこれらがリストにあがっている)、Boot Imageを作成し、書き込み。

※Vivadoのビルド時のCドライブが・・・のエラーは、これかな?と思ったけど、どうも関係なくて無視してよいエラー、っぽい。 https://forums.xilinx.com/t5/Synthesis/Could-not-open-C-for-writing/td-p/790890/page/2 (171103追記:もう一回やったら、このエラーはでなかった・・・なんぞ)

(171103追記:最後のFlash書き込みは、xcmdでconnectした状態だとできないっぽい・・・?(エラーになる)

17/11/02: AXIバス

Xilinx Zynqなどで、MPUと自作IPをつなぐのに使うバス。 http://dora.bk.tsukuba.ac.jp/~takeuchi/?%E9%9B%BB%E6%B0%97%E5%9B%9E%E8%B7%AF%2FHDL%2FVivado%E3%81%A7AXI%E3%83%90%E3%82%B9%E3%82%92%E5%88%A9%E7%94%A8

17/10/30: Eagle8でのショートカットキーの割り当て

Eagle7のころとは設定方法が違う模様。 http://kerororobot.blog.shinobi.jp/cad/eagle%208%E3%80%80%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E3%82%AB%E3%83%83%E3%83%88%E3%82%AD%E3%83%BC%E3%81%AE%E8%A8%AD%E5%AE%9A

17/10/27: Fusion360でSTL出力

3Dプリント、からでもいけるけど、左の一覧からオブジェクトを右クリック→STLで保存、でもいける。 http://fusion360.blog.jp/blog/20151103/1044196383

17/10/26: Pythonで標準エラー出力

import sys
print >> stderr, "文字列"

http://d.hatena.ne.jp/kakurasan/20101008/p1

17/10/25: Dropboxの設定(ログイン)が真っ黒になる

闇夜の操作。。。

https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12173743577

17/10/23: Emacsのタブとインデント

http://yohshiy.blog.fc2.com/blog-entry-264.html

一時的に、自動でのタブなどを解除するには、M-X fundamental-modeでFundamentalモードに戻す、というのもあり。

http://fpga.kice.tokyo/design/vlgmode

ちなみにVerilogモードでも設定できる。

https://ameblo.jp/concello/entry-10818413020.html

(17/10/26追記)このあたりが設定項目について詳しい。ちなみにverilog-indent-level等が、インデント時の字下げのスペース数。

http://d.hatena.ne.jp/bluerepliroid/20071227/1197882707

17/10/20: Fusion360でスケッチの拘束条件

このあたりがまとまっている。 http://fusion360.blog.jp/blog/20151104/1044253210

拘束条件の解除は、拘束条件のアイコンを選択→DEL

ちなみにFusion360の操作入門は、このあたりが詳しい。 https://fabcross.jp/list/series/fusion360/

17/10/17: Windows10でBluetoothテザリングをショートカットでON/OFF

AutoHotkeyのスクリプト。

http://hitoriblog.com/?p=25466#ASUS_VivoTab_Note_8

ただしUI制御の回避スクリプトがobsolateになっているが;最近のAutoHotkeyではRun as UI Controlを右クリックメニューから指定できるので、そのスクリプトをこれで実行すればOK

https://autohotkey.com/docs/Scripts.htm#Installer_uiAccess

17/10/17: 磁界を使った位置センサ

どっちかが静磁界、どっちかが交流磁界、っぽい。

17/10/13: GPD Pocketのキー割り当ての変更tips

http://shikarunochi.matrix.jp/?p=1790

http://brand-new.tokyo/gpd-pocket-japanese

17/10/13: GDSのdatabase unit (dbu)とGladeでの扱いの整理(疑問あり)

  • GDSの内部寸法は、[dbu] (database unit)という単位であらわす。これが実寸の何[um]に対応するかは、[dbu/um]という単位で、ライブラリやGDSデータ自身が保持する。例えば1000[dbu/um]での1[um]は1000[dbu]、100[dbu/um]での1[um]は100[dbu]ということになる。
  • GDSのdbuは、1000[dbu/um]である場合が多い(標準的)で、多くのGDSビューアはこの1000[dbu/um]を仮定している。
  • 100[dbu/um]で作ったライブラリで100[um]を作成すると、内部的には100*100=10000[dbu]ということになる。ここからGDSを作成すると、100[dbu/um]なので、10000[dbu]となるが、これを1000[dbu/um]を仮定して読み込むと10[um]になることになる。
  • Gladeでは、1000[dbu/um]で作成したライブラリに、このGDSを読み込む際に、"Set dbu/um from GDS"をチェックする場合としない場合では、以下のようなログになる。
  • "Set dbu/um from GDS" checked
    >>> ui().importGds2("test1000", "C:/Users/akita/Documents/test.gds", "", 0, 0, 1.000, 0.000, 0.000, 23, 102, 0, 1, 1, 0, 2, 0, -1, 0, 1, 0, 0, 0)
    # INFO: Database unit is 1e-09 metres
    # INFO: Database units per user unit are 100
  • "Set dbu/um from GDS" unchecked
    >>> ui().importGds2("test1000", "C:/Users/akita/Documents/test.gds", "", 0, 0, 1.000, 0.000, 0.000, 23, 102, 0, 1, 0, 0, 2, 0, -1, 0, 1, 0, 0, 0)
    # INFO: Database unit is 1e-09 metres
    # INFO: Database units per user unit are 100
    # WARNING: dbuPerUU is 100, scale factor set to 1.000000
  • チェックしない場合(=ライブラリが1000[dbu/um]で、GDSが100[dbu/um]と異なる)、warningが出るが、scale factorが1.0になるのが謎。この場合は、10000[dbu]を1000[dbu/um]のライブラリに読み込むので10[um]になるのが正しいはず(照会中)。
  • ちなみにGladeのGDS読み込み時の"scale factor"は、いわゆるoptical shrinkで、座標を単純にこの係数倍に拡大・縮小して読み込む。

17/10/13: Win10で管理者権限が必要なプログラムをスタートアップで起動

Startupフォルダに入れても管理者権限で実行できないので、タスクスケジュールで指定する。 http://forest.watch.impress.co.jp/docs/serial/win10soudan/1006245.html

17/10/13: ASUS RT-AC3200ルータのネットアクセスログ

Linuxが動いていてsshでログインして、設定をいじれる。

ログの表示は、Webアクセス設定画面の「接続」ログ表示のときに呼ばれる/www/Main_ConnStatus_Content.asp を解読すると、netstat-natコマンドで表示していることがわかる。 https://tweegy.nl/projects/netstat-nat/

これは、/proc/net/nf_conntrack を表示するコマンドなので、要はこのファイルを読めばよく、たしかにアクセスログが残っている。ただしタイムスタンプが記録されていない。

一般的なファイアウオールはiptablesコマンドでつくるが、一般的なその設定ファイルの/etc/sysconfig/iptables などがみあたらない。いったいどこにあるのか引き続き探す。Linuxのディストリビューションが特殊なやつなんかな。

最終的にはタイムスタンプつきのログとり→リモートのsyslogdへ飛ばす、をやりたい。(17/10/10の内容)

17/10/12: Windows10でスタートアップに登録を簡単に

shell:startupでフォルダを開ける。 https://windows-sousa.com/2015/12/06/post-1148/

17/10/10: ASUSの無線ルータRT-AC3200のsyslog設定

ちょっと機種が違うけどだいたい同じ。

https://fatmin.com/2015/01/04/configure-syslog-logging-levels-on-the-asus-rt-ac66u-router/

17/10/02: プリント基板の表面処理HASL

HASL=有鉛半田レベラー。鉛入りハンダ処理。

その他の表面処理:https://unicraft-jp.com/pcb/order/word/finishing.shtml

17/09/25: ArduinoLeonardでD0(RX)/D1(TX)を使う

Serial1を使う。 https://trac.switch-science.com/wiki/Guide/ArduinoLeonardo

17/09/22: GitHubのWeb操作でディレクトリを掘る

ファイルを追加するところで、ファイル名のところに/で区切ってディレクトリを書けば、それが掘られる。

17/09/15: VisualC#で桁数を指定してToString()する

なかなかおぼえられない。 例えば16進数なら、ToString("X2") とすれば、2桁にそろう。

https://dobon.net/vb/dotnet/string/inttostring.html

17/08/29: レーザーポインタの径を絞る

コリメートレンズ

https://ameblo.jp/amano-jacky-nochio/entry-11775548254.html

17/08/23: 導通チェッカー

印加する電圧は低めに。コンパレータで低抵抗を検出。

http://www.ht-net21.ne.jp/~mkanari/checker.html

17/08/22: Eagleで配線をぜんぶはがす

ripup; でぜんぶはがす(未配線に戻す)

http://101eagle.blogspot.jp/2009/12/eagle-ripup-all.html

17/08/12: PythonのライブラリとWindows

WindowsでPythonのライブラリをpipで入れるのに、*.whl(パッケージファイル?)とネットワークからダウンロード、の2系統があって、混在するとマズいっぽい。例えばこちら。 http://toriaezu-engineer.hatenablog.com/entry/2016/10/09/084428

anacondaを入れる、のがよさそうな模様。

http://qiita.com/t2y/items/2a3eb58103e85d8064b6

ちなみにanacondaで入らない(見つからない)ライブラリは、pipで入れるのが吉か。 http://oyamazemi.wiki.fc2.com/wiki/%E6%96%B0%E3%81%9F%E3%81%AA%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%81%AE%E5%B0%8E%E5%85%A5

17/08/08: リモートデスクトップの接続を速くする

SSL証明書の取得をoffにすると接続が速くなる(が、ログイン情報がほぞんされない)。

https://everyday-growth.com/?p=647

17/08/08: Virtuosoでレイアウト上で離れているpinをつないでLVSをかける

レイアウト上で離れているが、実はつながっている(上位でつながる)pinを、つないだ状態にしてLVSをかけるには、LVS Options→Connect→Connect nets named:、でつなぐpin名を指定して、仮想的に接続する。

17/08/03: LTspiceメモこまごま

  • 実測データのV-IペアなどをLTspiceで表示するには、ltsputilでデータを変換。使い方は、LTspiceが吐く*.rawを参考に、Title〜Valuesのヘッダをつけて、そのあとにタブ区切りで変数を並べて書く。(変数の数と名前、計測点数もヘッダ内に書く)その後、
    ltsputil -toa ???.txt ???.raw
    で???.rawをつくったら、それをLTspiceでwaveformとして開いてadd traceすればグラフを描画できる。

https://groups.yahoo.com/neo/groups/LTspice/files/%20Util/ltsputil/

  • 素子モデルのパラメータ解析は、.model内に、例えば IS={X} のように変数Xを定義し、それを回路図のほうでspice directiveとして、.step param X ....と振るパラメータを指定すればOK。(.step param X start stop step または .step param X list a b c ...のように書く)

17/08/03: I-V特性の測定器

いろいろな呼び方があるようだけど、SMUとかエレクトロメーターと呼ぶ装置。

http://jp.tek.com/keithley-source-measure-units/smu-2600b-series-sourcemeter

http://www.adcmt.com/techinfo/product/intro/i_8252.html

17/08/01: ケーブルの5つ編み

これが一番わかりやすかった。

http://www.wb.commufa.jp/powetcho/ituami.html

17/07/25: リングオシレータの理論解析

調べ物をしていて、こんな記事を見つけた。リングオシレータの理論解析とインバータ2個のRC発振回路との関係、そこからの偶数段リングオシレータ。http://qhodo.at.webry.info/201110/article_8.html

17/07/23: Studuino

サーボ用コネクタがあったりする、ロボット向けArduino互換機。Scratchでもいける。

http://www.artec-kk.co.jp/studuino/ja/

17/07/23: 光学マウスをArduinoからつつく

http://arms22.blog91.fc2.com/blog-entry-565.html

17/07/12: ArduinoLeonardでHIDキーボード

http://qiita.com/MergeCells/items/17bdc1c1fb35949195b5

17/07/11: 最近のシンセンの技術事情

高須さんから聞いた話の備忘録。

  • 公板(gong ban): 規格化されているいろいろなボード。これが部品になって、これをくみあわせてガジェットをつくれる。
  • 公模: 公板と同じように、規格化されている外装部品。
  • 張牌: 牌=ブランド。ブランド化すること。公板・公模でつくったガジェットにブランドをつけること。OEMみたいなもの。

(2017/7:20:追記) ↑にちょっと誤解があったのでメモ。

  • 公板は、別に規格化されているわけではないが、リファレンスデザインが、設計データと実際のパーツ(コンポーネント)として流通している。JENESISがやっているのは公板・公膜を使った設計といえる。
  • 公板に関する記事→https://fabcross.jp/topics/tks/20160922_Shenzhen_02.html https://wirelesswire.jp/2016/09/56792/
  • 貼牌(↑は字が違う)は、ノーブランドの完成品にブランドロゴを貼る行為。自社では設計をしていないものに、ブランドロゴだけ貼るOEMみたいなもの。

17/07/11: TWE-LiteをArduinoでシリアル通信として使う

http://jumbleat.com/2016/10/21/twe-lite_send_1/

17/07/10: ArduinoでNTSC出力

http://ht-deko.com/arduino/tvout.html

17/07/05: MacのExcelが異様に遅くなる

Cacheなどを削除すると改善するかも。

https://ideacloud.co.jp/blog/other/mac-excel.html

17/07/04: CalibreのDRCエラーのファイル(*.db)を確認する

CalibreのRVE(Virtuosoから起動できる)で、*.dbを読み込む。

http://www.mentorg.co.jp/products/ic_nanometer_design/calibre-integration/cadence/

17/07/01: GladeのF3/F4

ヘルプの奥の方に書いてある。

  • F3: コマンドのOption Dialogの表示On/Off
  • F4: オブジェクト選択モード(Full/Partial)の切り替え

17/06/30: Seeeduino v3のブートローダ

Arduino Duemilanove (ATmega328)と互換なので、このあたりを参考に

http://d.hatena.ne.jp/rin1024/20111109/1320819673

HEXファイル: https://github.com/arduino/Arduino/blob/master/hardware/arduino/avr/bootloaders/atmega/ATmegaBOOT_168_atmega328.hex

17/06/20: VisualStudioのautoraiseをオフにする

いわゆるX-Mouseで、カーソル移動だけでウインドウにフォーカスが移りつつも、そのウインドウを前に持ってこない(autoraiseをオフ)にするには、このあたりのツールでまとめて行える。 http://d.hatena.ne.jp/bellbind/20091203/1259789832

ただVisualStuioなどはそれでもautoraiseしてしまうが、このあたりのツールで抑制できる。(True X-Mouse)

https://stackoverflow.com/questions/121111/how-do-i-keep-visual-studio-from-autoraising-when-i-activate-focus-follows-mou

17/06/14: AVRのCLIでプログラム書き込み

http://blog-yama.a-quest.com/?eid=970178

17/06/08: Vivadoで*.mcsの作成

tclスクリプトで生成、ということのようだ。

http://www3.hdl.co.jp/spc/xcm/466-q20160229.html

17/05/31: Eagleでオペアンプ、論理ゲート等の電源ピンを表示

シンボル→Invoke

http://www.technoveins.co.jp/develop/eagle/libedit.htm

17/05/11: STM32L151をmbed的に使う

STM32L152と構成がほとんど同じで、L152のmbedはあるので、それを使うのがよさそう。

https://developer.mbed.org/questions/68705/does-mBed-support-the-STM32L151/

↓にある、RF-LinkのLoRaモジュールのRM-92AのマイコンはSTM32L151。 ちなみにもう一つのES920のマイコンはMKL16Z128で、mbed対応はないっぽい?

17/05/01: ATtinyをHighVoltageモードで書き込む

このあたりの付加回路で、Arduinoを使ってイケるっぽい

http://mightyohm.com/blog/products/hv-rescue-shield-2-x/

https://arduinodiy.wordpress.com/2015/05/16/high-voltage-programmingunbricking-for-attiny/

17/04/28: LoRaについて調べたメモ

LPWA(LowPowerWideArea)のうち、LoRaはもろもろ。SIGFOXはクローズドな規格っぽい。

http://japanese.engadget.com/2017/04/14/iot-lpwa/

LoRaについてけっこうまとまっている情報源。 http://qiita.com/miminashi/items/a74a55d86a74251f213e

LoRaモジュールいくつか。 http://www.rflink.co.jp/index.html

https://tokyodevices.jp/items/233

http://joomlaweb.blog117.fc2.com/blog-entry-541.html

FONみたいに、みんなでゲートウエイを、というプロジェクト。 https://www.thethingsnetwork.org/

↑の東京版もある。 https://www.thethingsnetwork.org/community/tokyo/

http://japanese.engadget.com/2017/04/14/iot-lpwa/

17/04/28: Eagleのcream-dxf.ulpで、SMDのStopとCreamが一致しない部品のマスクをつくる

"Ignore pads with no stop flag"をはずしておけばOK(普通はStopとCreamの形は一致するんだけど、それが一致しない(Creamだけ)ものを無視せずに出力する、ということ)

17/04/16: Excelで行と列を入れ替える

http://shikaku.biglobe.ne.jp/pc_technic/excel/03_1.html

17/04/14: MATLABで変数を表示する

実行過程の表示とかで変数を表示するにはdisp()がつかえる.

https://jp.mathworks.com/help/matlab/ref/disp.html

17/04/10: Arduinoのライブラリのインストール(ライブラリマネージャ経由)

library.propertiesというファイルをおいておくと、ArduinoIDEのライブラリマネージャからzipのままインストールできる

https://www.mgo-tec.com/arduino-ide-lib-zip-install

17/04/08: CalibreのLVSで謎っぽいエラー

LVS結果のmismatchの解読のコツの一つ。

Layout/Sourceでそれぞれ、ある端子が、片方にあってもう片方でmissingとなる(お互いに)場合、バス配線の添え字が1個ずれてたのが原因のことがあった。たしかにこういうエラーになるけど、このエラーから原因を読み解くのはちょっとコツがいりそう。

17/04/05: iPhoneの拡大鏡

3本指タップでON/OFF http://iphone-howto.jp/gamen-kakudai-kaiketu-98

17/04/04: Windows10でウインドウの周りが微妙に空く

レジストリの設定で直せる模様。

http://tonyjaa.blog.fc2.com/blog-entry-71.html

17/03/16: gnupackでの環境変数HOME

環境変数HOMEは設定しないといけない。 (別のアプリでHOMEのパスをLinux風に/で区切るように設定をしていて、それからEmacsが起動時にエラーをだす(vforkなんとか)ようになって、原因がこれだったという話)

http://yoshiiz.blog129.fc2.com/blog-entry-794.html

17/03/13: Windowsでウインドウの位置を覚えさせる

Ctrlを押しながらウインドウを×で閉じると、位置を覚えさせられる。

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12108240532

17/03/07: Virtuosoの初期設定ファイル.cdsinit

Virtuosoの初期設定ファイル.cdsinitは、マニュアルには~/にあれば読みこむ、と書いてあるが、ホームではなく、起動ディレクトリにないと読み込まないっぽい。

17/03/04: JAISTにあるプリント基板加工機MitzElevenAutoの使い方メモ

  1. DesignProを起動、アプリケーションをConverterにして、ガーバーとドリルを読み込む。
  2. 設定からドリル、ミリング、ルーターのツール番号を実際にあわせて設定
  3. ドリル、基板パターン、外形の各データを作成
  4. アプリケーションをCam-Zにする
  5. 加工ボタンを押す
  6. 加工開始前のダイアログが出るので、位置合わせ→基板左下(P1点)にヘッドを移動させて、HOMEでP1点を設定
  7. ツールをミリングに変更(持たせる)し、空いているところにヘッドを移動→スピンドルON→DOWN→適当に移動→UP→スピンドルOFF、で溝をほる。これが0.3mmになるように高さ(深さ)を調整。
  8. 加工開始

17/02/19: UNIX系コマンドでカラー表示をやめる

Cygwinのlsコマンドなどは、見やすいようにファイル種別などごとに色がつくが、このためのESCシーケンスコードが、gawkなどにパイプで渡すときにじゃまになる。 そこで--color=neverをつけると色がつかなくなる。 つまり

ls -l --color=never | gawk '{print $NF}'

のような感じ。

17/02/09: LPE

いわゆる回路抽出(寄生素子を含む)のこと。 Layout Parameter (or Parasitic) Extractionの略

http://techon.nikkeibp.co.jp/article/WORD/20081224/163310/?rt=nocnt

17/02/03: GitHub/SourceTreeメモ

雑多なメモ。

  • (SourceTreeの)HEADは、ブランチの途中に戻るときにできるが、どこのブランチにも属さない現在位置なので、存在するべきではない→そこからのブランチ(過去のチェック用として)を切るべき
  • コミットを戻す(なかったことにする)ことはできない。→revert(コミットの打ち消し)を使う。これだと、「そこに戻す」というコミットでブランチが進む。
  • リポジトリを別のリポジトリの一部にする(submodule)ことは可能だが、元リポジトリの管理から外れるので、やらないほうがいい。別リポジトリの中にフォルダを新規に作ってそこにファイル一式を移動させる、のが現実的。

17/02/01: LaTeXでEPSの図の位置がずれる

BoundingBoxが正しくてもずれる場合、\usepackage{graphicx}のところで[dvipdfmx]を指定しているかを確認。

http://qiita.com/zr_tex8r/items/089b56291588f7b05b02

17/01/31: GitHubのリポジトリ名の変更

http://d.hatena.ne.jp/MonteCut/20110819/1313742250

17/01/16: ArduinoのI2Cライブラリの使い方

http://qiita.com/MergeCells/items/20c3c1a0adfb222a19cd

よくある、「レジスタアドレスをwrite→repeat start→読み出し」の手順は、

 Wire.beginTransmission(slave_addr);
 Wire.write(reg_addr);
 Wire.endTransmission(false); // repeat start
 Wire.requestFrom(slave_addr, Nbyte, true); // true: 読み出しが終わるまで待つ
 byte val = Wire.read(); // Nbyte回くり返す

となる。 なおslave_addrは、7bitアドレス(書き込みも読み出しも同じ)なのに注意。

17/01/13: MATLABの*.mの実行

MATLABコマンドラインから、その*.mファイルのファイル名(拡張子を除く)、で実行。hoge.mなら、hoge、で実行される。

17/01/12: WAVファイルのフォーマット

基本的にヘッダのあとは生データが続く。

http://www.graffiti.jp/pc/p030506a.htm

17/01/12: CPUファンの3p/4pコネクタの結線

http://www.intel.co.jp/content/www/jp/ja/support/boards-and-kits/desktop-boards/000005560.html

おまけ:ifdlkpのCPUファン交換のときに調べた情報。まったく同じCPUファンの交換をしている方がいた。http://sea.netyasun.com/article/294916869.html

17/01/05: WordPressの復旧

更新に失敗しちゃったときなど、復旧させる方法。

http://nobuo-create.net/wp_down/

要は、新しいWordPressを展開して、themeとuploads(とplugin)とwp-config.iniをオリジナルから戻してアップロードする。

17/01/05: ChromeでBackspaceでページ戻り

拡張機能を入れれば復活させられるっぽいけど、フォームの入力中に文字を消そうとBackspaceを押してページが戻って消えてしまう、のも事実なので、Alt+←で戻る、に慣れるのが吉か。

http://blog.clock-up.jp/entry/2016/08/17/chrome-backspace

17/01/05: Wiiの映像端子のピン配置

https://www33.atwiki.jp/pentagon/pages/76.html

16/12/27: Eagleのデフォルトの長さの単位

eagle.scr/eaglerc.usrに、Gridで書ける。例えばGrid mm 1 On;とすれば、1mmになる。

http://blog.goo.ne.jp/yggdrasill033/e/e61509476be6190d5cbf3f8aadfcfb34

16/12/27: WindowsのGPTパーティション

最近のWindowsのHDD/SDDは、ブートレコーダがMBRではなくGPTという形式になっている(MBRは2TBまで、GPTはサイズ制限なし)。GPTでは2つの不可パーティションがあるが、BIOS設定で起動ドライブ順序が、自動だと、起動できないパーティションが指定されていて起動できない旨のメッセージが出る場合があるが、起動ドライブを同一ドライブの別のパーティション変更すると起動できる(場合がある)。

16/12/20: セラミックコンデンサのESR

一般に電極材料などが効いて、他よりもESR(等価直列抵抗)はだいぶ小さい。

http://www.murata.com/ja-jp/products/emiconfun/capacitor/2011/04/14/en-20110414-p1

16/12/13: 箱の展開図

http://www.order-box.net/view/

16/12/08: GoogleAPIでカレンダーを取得

結果的にこの方法で取得できたけど、だいぶはまった。主な要因は、バージョンをあわせる、こと。最新バージョンのほうがよい、というわけではない。

http://www.spiceworks.co.jp/blog/?p=7603

16/12/08: C++の関数のデフォルト値と引数の数

たとえば

void hoge(int a, int b, int c=10);

とかくと、引数が2個で使おうとすると引数a,bとなり、3個目のcはデフォルト値の10が使われる。また引数3個で使うこともできる。 また

void hoge(int a, int b=10, int c);

とすると、引数が1個(a)と2個(a,b=10)しか使うことができない(ほんとか?)ので、引数3個で使おうとすると、該当する関数がないというエラーになる(ほんとか?)

16/12/08: Git/GitHubのメモ

  • ブランチ=ローカルにある情報
  • リモート=サーバにある情報
  • チェックアウト=ブランチの切り替え
  • (SourceTree)コミットするときに、Hunk(修正のかたまり)単位で、無視する(破棄)こともできる
  • コミット先行してたら、プルしてからコミット、が吉
  • (SourceTree)スタッシュ=一時保管場所。ブランチに関係なく、スタッシュに保存した変更点を反映できる(たとえばデバッグ用メッセージの出力、など)

16/12/07: CypressのCYBLE-022001-00

分かればなんでもないんだけど、この「CYBLE-022001-001」というのがチップ名のようなもので、PSoC CreatorのプロジェクトでDevice Settingで選べるので、これを選べば、それに応じた(モジュールの)ピン配置になる。

https://www.switch-science.com/catalog/2503/

16/12/05: Windowsのジャンクション

シンボリックリンクとちょっと違うジャンクション。 例えばDropboxのフォルダ名が「Dropbox(個人)」みたいになったのを、 「Dropbox」という名前のジャンクションをつくると、その名前でアクセスすることができる。

http://www.atmarkit.co.jp/ait/articles/1306/07/news111.html

16/11/28: BLEのHID-Over-GATTでキーボードをつくる

https://lowreal.net/2016/08/30/2

16/11/21: USB Type-Cの(充電)規格

http://andmem.blogspot.jp/2015/12/usb-type-c-current-issue.html

16/11/16: GoogleカレンダーAPIでカレンダー情報を取得するPHP

http://www.spiceworks.co.jp/blog/?p=7603

16/11/09: Windows10の標準アプリを削除する

http://www.lifehacker.jp/2015/08/150819_win10_app_uninstall.html

16/11/09: ChromeをDドライブにインストールする

Chrome Portale、が吉か。

http://portableapps.com/apps/internet/google_chrome_portable

16/11/09: XBee (S2C)をペアリングモードで使う

基本的にはこのあたりを参考に、片方をRouterモード、もう片方をCoordinatorモードに設定し、Destination (DH/DL)を相手のMACアドレスに設定する。

http://mag.switch-science.com/2012/08/01/startup_xbee_zb/

ただしX-CTUのバージョンが新しいやつは、Function setでRouter/Coordinatorを切り替えられないが、設定項目の中にCE (Coordinator Enable)があるので、これをCoordinatorモードにするほうだけEnableにすればOK

http://hawksnowlog.tumblr.com/post/143431424040/xbee-zb-s2c-%E3%81%A7-zigbee-%E5%85%A5%E9%96%80

16/11/08: 赤外カットフィルタをはずしたカメラで撮った画像の色味の補正

赤外カットフィルタをはずして撮影すると赤っぽい画像になるが、gimpの自動補正→ホワイトバランス、でホワイトバランスを自動補正するとだいぶ自然になる。

16/11/02: Eagleライブラリで矩形以外のパッドをつくる

一応できなくはない・・・らしい。(詳しく読んでない) http://jiwashin.blogspot.jp/2016/08/trial-to-create-polygon-smd-pad-for-eagle-library.html

16/11/02: EagleライブラリのパッケージでCreamをSmdPadと別形状にする

SmdPadのプロパティでCreamをはずし、Cream形状を別に描画する。

http://www.s-m-l.org/eagle.html#Cream形状をPAD形状と違う形にする

16/10/21: iOSの「書類とデータ」を削減

アプリでためこんでいる「書類とデータ」は、アプリをいったん削除→再インストール、で削除できるっぽい。 https://i-bitzedge.com/tips/how-to-manage-documents-and-dat

16/10/21: PSoC Designer時のアカウント権限

管理者権限のあるアカウントでも、インストール時に"You don't sufficient privilege"とはねられる場合がある。 インストーラを右クリック→管理者として実行、でいけるっぽい。 「管理者アカウントで普通に実行」と「管理者として実行」は違う、ということうか。

16/10/12: Macキー割当変更アプリKarabinerのMacOS sierra対応のKarabinier-elementの設定方法

http://fanblogs.jp/macyarounanoka/archive/226/0

※(16/10/17追記)英字キーボードとして認識されるというknown bugがあるようで、とりあえずちょっと古い0.90.46で回避できる模様。http://qiita.com/kamoc/items/93550dd7f5bbae15e70f

16/10/01: Jupyter

Python等の実行環境つきのメモ帳、という理解でいいのかな。

http://pythondatascience.plavox.info/python%E3%81%AE%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83/jupyter-notebook%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%BF%E3%82%88%E3%81%86/

http://techlife.cookpad.com/entry/write-once-share-anywhare

16/10/01: Docker

PCのハードウエアごとソフトウエアでエミュレートするのが仮想化で、アプリケーションの実行に関する部分だけソフトウエアでエミュレートするのがDocker、という理解でいいのかな。

http://cn.teldevice.co.jp/column/detail/id/102

16/10/01: MQTT Broker

MQTT Broker=MQTTの仲介役、つまり公開されているMQTTサーバみたいなもの、という理解でいいのかな。

http://acro-engineer.hatenablog.com/entry/2015/06/19/120000

16/09/07: Inkscape SVG→Autodesk 123D DesignのSketch

Inkscapeで描いた図形を123D DesignでSketchとしてimportするとき、Inkscapeの1px=123D Designの1mm、になる。つまりInkscapeでグリッドを1pxにしてこれを1mmだと思って描けば、実寸で123D Designに取り込める。

16/09/05: Facebookの投稿へのリンクURL

投稿日時のところからたどれる。

http://ameblo.jp/724685/entry-10820481613.html

16/09/01: Win10でショートカットをスタートメニューにピン留する

要はスタートメニューの実体フォルダにショートカットをコピーしておく、ということ。

http://loumo.jp/wp/archive/20150812000033/

16/08/30: Win10でVPN接続のショートカットをつくる

http://www.atmarkit.co.jp/ait/articles/1608/17/news024.html

16/07/28: インクジェット用不織布でポスター印刷

http://www.nakagawa-mfg.co.jp/product/poster/large-inkjet/large-inkjet-09/

EPSONの大判プリンタだと用紙設定は「PX/MCプレミアムマット紙」。用紙自動カットはつかわずに手動でカット、とあるが、一応自動カットもできそう。用紙吸引などは標準設定のままで大丈夫そう。

16/07/15: VisualC#からDOSコマンドを実行する

http://dobon.net/vb/dotnet/process/standardoutput.html

16/07/11: ダイオードのPN接合と空乏層

まず基本的に、半導体内のキャリア(電子・ホール)の振る舞いは、拡散(勝手に動いて広がる)とドリフト(電界による移動)と熱平衡をあわせて考えないといけない。

PN接合では空間電荷が空乏層を形成して内部電位をつくり、これがキャリアの拡散をおさえて平衡状態になっている。

順方向電圧を加えると、N領域の電子が空乏層を超えてP領域入り、ホールと再結合して空間電荷になる(ホールが減る)、が、熱平衡状態ではP領域内の電子とホール密度の積は一定なので、他のところに電子-ホール対が現れて熱平衡状態が保たれる(と考える)。さきほどの空間電荷になった電子は順方向電圧に引っ張られてP領域の端に向かって、この生成された電子-ホール対のホールを転々と移動し、最終的にはP領域から出る(=電流)。 なおこの順方向電圧印加時には、P領域にある負の空間電荷(電子)もP領域の端側向きに力を電界から受け、↑の熱平衡を保ちながら電子が移動し、結果として空乏層は薄くなる。

逆方向電圧を加えると、↑の逆で、多数キャリア(N領域の電子など)が、空乏層とは反対側に向かう力を電界から受けるため、N領域内の電子の分布が空乏層から離れる向きに偏るため、結果として空乏層は厚くなる。

16/07/08: GDSレイアウトのプロットアウトのためのWindowsツール

なかなか決め手がなくて一長一短だが、KLayoutがよさそう?

  • Owl: Java。印刷できない
  • KLayout: レイヤ表示パターンが多いて表現しやすい。印刷能力は未検証
  • GDSview: 大きなGDSだと表示が一部怪しい(違う位置にVIAが印刷される、など)
  • layoutEditor: 製品(けっこう高い。しかも1年単位ライセンス)。体験版でも機能制限はない。印刷は速い。

16/06/29: MacのOfficeでファイルを開くと、昔閉じたファイルも開かれるのを抑制する

https://teachme.jp/contents/26495

16/06/17: レーザーカッターのラスター密度とレーザー出力と刻印品質

ラスター刻印のラスター密度(↓)を下げると加工時間が短くなるが、Y方向の密度が下がってスダレのようになる。その分レーザー出力を上げれば1本の横線が太くなるので、スダレが目立ちにくくなる。コルクへの刻印の例だと、密度を2ぐらいまで下げてもレーザー出力を標準から+10%くらいあげると、だいぶスダレが目立ちにくくなる。

16/06/10: レーザーカッター(ユニバーサルレーザー)の加工パラメータの調整

CorelDrawから印刷、を送ったと、ULCの設定画面では変更できない加工パラメータ(Image Densityとか)がある。これは印刷を送る前に、プリンタのプロパティ、からだと設定変更できるので、ここで設定する。

16/06/10: mbedのwait()と割り込み

mbedのwait()は、内部でタイマ1割り込みを使っているので、割り込みを__disable_irq()などでとめてしまうと、wait()は所定の時間を待つという動作をせず、すぐにループを抜けるので、見かけ上waitする時間が短くなるように見える。

16/06/08: mbedのクラスの初期化

あたりまえのことではあるのだけど,備忘録. シリアル(Serial)のオブジェクトをメンバに持つクラスを定義し,そのクラスをmain()の外のグローバル変数として宣言すると,main()が始まる前にこのオブジェクトのコンストラクタが呼ばれる.

そのコンストラクタ内で,baud()で通信速度を設定すると,そのときはまだmain()が呼ばれる前なので,例えばmain()内でクロックの設定をすると,その前にbaud()が呼ばれることになる.

16/06/08: STM32FのSYSCFGレジスタの設定

SYSCFGレジスタもAPBクロックの下にあるので,RCC->APB2ENBでSYSCFGへのクロック供給をONにしないと,値の変更ができない.

16/06/07: ArduinoIDEの*.bin/*.hexの所在

ユーザフォルダ/Local Settings/Temp/build???? の中

https://www.arduino.cc/en/Hacking/BuildProcess

16/05/31: STM32Fのクロック切り替え(ブートローダ関連)

STM32F/mbedでブートローダ関連で、2つのプログラムを行き来する際に、クロックの設定が必要。 基本的には、別のプログラムに分岐する前に内蔵オシレータ(HSI)で動作するようにクロックを切り替えて(&フラッシュのプリフェッチバッファ(FLASH->ACR)もオフにしたほうがいいかも)、分岐すればいいんだけど、どうも失敗する。

原因をいろいろ調べた結果、結論として、system_stm32f0xx.cのSystemInitが初期化時に呼ばれるが、そこでのクロック設定を指定している以下の#defineがポイントだったっぽい。

#define USE_PLL_HSE_XTAL (1) /* Use external xtal */

#define USE_PLL_HSE_EXTC (0) /* Use external clock */

HSE_EXTCを(1)にしておくと、外部クロック(水晶でなく)を使おうとする。基本的には「使おうとする」だけで、切り替えてみてクロックがきてなかったらあきらめて別の設定にする、というように書いてあるので、普通は問題はない。 ただし今回のようにHSEをONにしたりOFFにしたりをしていると、OFFにした直後はまだOSC_INに発振波形が残っているのか、SystemInit時に外部クロックが供給されているように誤解→外部クロックを使う設定(HSE=1,HSEBYP=1)にするが、実は外部クロックは着ていないのでハング、ということのようだ。 というわけで明示的にHSE_EXTCを(0)にしておけば、最初から外部クロックを使おうとは試みないのでOK。 たしかにSTM32F070のUserManualのRCCのHSEクロックのところにも、Cautionとして、それっぽいことが書いてある。

16/05/25: ARMのSysTick

ARMの基本機能なので、各社のマイコンのデータシートには詳しく書いてない。

https://sites.google.com/site/stm32datasheet/home/060-STM32-program-smpls/43a-systick

16/05/24: Eagleデータ→SVG

FritzingのライブラリをEagleデータから作りたいな,と思ったら,Eagle→SVGはULPがあるので,そこをスタートとするのがよさそう.

https://learn.sparkfun.com/tutorials/make-your-own-fritzing-parts

16/05/23: RasPiでsyslogd

http://www.angelcurio.com/raspberrypi/index.php?Raspberry%20Pi%2Fsyslog%E8%BB%A2%E9%80%81

16/04/19: MATLABで行列転地 or 行/列ベクトルの変換

http://jp.mathworks.com/help/matlab/ref/transpose.html

これを使えば、行ベクトルAと列ベクトルBを2行or2列の行列にまとめる、なんてこともできる。(AとBを並びでCSV形式で出力するときにcsvwrite()するときに必要)

16/04/19: Windows10の自動更新&再起動の設定

レジストリをいじると、もう一息詳しく設定できる。 http://answers.microsoft.com/ja-jp/windows/forum/windows_10-update/windows10%E3%81%AB%E3%81%8A%E3%81%84%E3%81%A6windo/1e714cab-d507-4923-917e-a7f8d51adc73

16/04/18: 昇圧DC/DCコンバータの出力側への電圧印加

昇圧DC/DCコンバータの出力側に、外の電源から電圧を加えると、壊れやすい。そりゃそうか。

16/04/04: Replicator2Xのノズルの交換

http://yasurigake.com/blog/2015/06/18/replicator2x_nozzle/

16/03/29: EagleのULPをショートカットで実行する

run hogehoge.ulp でULPをできるので、これを適当なショートカットに割り当てればOK。

16/03/27: EagleのTearDropの解除

VIAの移動などがめんどいので、設計終わってから、ほぞんご、別ファイルに対しておこなうべき。 解除は、VIAとUnrouteのレイヤを見えなくしてRipUpすると、少し楽。

16/3/16: gitのmasterとブランチ

一般的には、masterを安定板、として、そこから開発版としてdevelopなどのブランチを切り、そこからさらに開発要素ごとにブランチを切って開発を進め、安定したらmasterにマージする、という使い方。

16/03/15: Linuxでシリアルのデータを横からよむ

socatというので、ソケット通信全般を接続先を切り替えられる。デバッグに便利そう。

http://ma-tech.centurysys.jp/doku.php?id=mae3xx_tips:use_socat:start

http://momijiame.tumblr.com/post/48934531325/socat-%E3%82%92%E4%BD%BF%E3%81%86%E3%81%A8%E5%90%84%E7%A8%AE%E3%82%BD%E3%82%B1%E3%83%83%E3%83%88%E3%81%AE%E6%93%8D%E4%BD%9C%E3%81%8C%E6%8D%97%E3%82%8A%E3%81%BE%E3%81%8F%E3%82%8B%E4%BB%B6

16/03/14: STM32FのDFUモードFW書き換え

https://rur.mech.tuat.ac.jp/robotbot/archives/645

16/03/11: mini/microUSBのID端子

GNDにつなぐとUSBホスト(OTG=OnTheGo)、オープンで普通のUSB。

http://s2jp.com/2011/06/about-usb-host-cable/

16/03/10: gnuplotでボーデ線図

i={0,1}で虚数単位を定義して、例えばexp(i*x)で、exp^{ix}を書けて、real()とimag()で実部と虚部や、abs()とarg()で絶対値と偏角を求めてグラフにも描ける。ついでにこちらの方法で絶対値と偏角で軸をわければボーデ線図が描ける。

http://www.int.otaru-uc.ac.jp/lyx-howto/writing/gnuplot/two-graphs

16/03/05: 不要なCOMポート(Bluetooth SPPの予約ポートなど)を消す

http://airvariable.asablo.jp/blog/2013/02/22/6727432

16/03/01: リモートデスクトップのポート番号を変更

レジストリをいじって再起動して、ファイアウオールのポートをあける。

http://www.atmarkit.co.jp/ait/articles/0309/27/news003.html

16/02/25: GoogleグループのMLの返信先をML宛てに変更する

https://open.shonan.bunkyo.ac.jp/sysroom/?p=8148

16/02/23: Sony Digital Paper DPT-S1のWebDAVのファイルアップロード

WebDAVサーバの設定で「送信フォルダ」を指定しないと、追記したPDFがそのままアップロードされる。

16/02/22: Xilinx ISEで入力・クロック制約

クロック周期の制約をかけたり、入力信号のセットアップ/ホールド時間の制約をかけたり。特にクロック信号は、ちゃんと制約をかけないと、変な回路ができてぜんぜん動かないこと、がある(FPGAツールの特性)ので注意。

http://japan.xilinx.com/support/documentation/sw_manuals_j/xilinx11/pce_db_setuptime-clockinfo-dialog.htm

http://marsee101.blog19.fc2.com/blog-entry-1246.html

http://marsee101.blog19.fc2.com/blog-category-59.html

16/02/22: Windows10のスタートメニュー/スタートアップ

http://jmatsuzaki.com/archives/15784

16/02/20: iPhoneのイヤホン端子のマイク

4極のピン配置はCTIAという規格のものが多い模様。DCバイアスが出ているので、そのままコンデンサ経由でアンプにつなげばいい、ということか。

http://sceneryandfish.withnotes.net/?p=852

ついでに、3極でプラグインパワーのマイクのピン配置は、いくつかの規格がある模様。 http://ameblo.jp/shin-aiai/entry-10374359455.html

16/02/18: Excellonドリルフォーマットの方言(?)

PCBEでつくったドリルデータをSeeedに送ると、ズレている、と言われることが多い。 いわゆるExcellonフォーマットに方言が多くあるのが原因なので、備忘録。

方言の種類 http://www.p-ban.com/others/vol20.html

Mコードの解説例: http://www.isoplotec.co.jp/index2.htm

PCBEが吐くドリルデータの例:

G71
M48    ←データ先頭
M71    ←ミリ系(インチ系はM72)
T01C4.000
%
G90
T01
G81
X6000Y160000
G80
M30

ちなみにEagleでSeeed用CAMで吐いたドリルデータの例:

%
M48
M71
T01C4.000
%
T01
X60000Y1600000
M30

両者を比べると、Gコードをとればよいようだ。あとSeeedでは小数部桁数は4桁しか受け付けてくれない(ことがある:担当者依存)ので、PCBEでもそれにあわせるか、3桁で出力して手動で最後に0を追加するか。PCBEでは整数部が4桁だが、Seeedでは2桁で取り込まれる(ことがある:担当者依存)ので、明示的に4桁と指定したほうがいい。

16/02/17: Adobe Readerのツールパネルを表示しない

http://solomon-review.net/acrobat-reader-dc/

16/02/16: Xilinx ISEのChipScope

動作中のFPGAの内部を外部から観測できる。 インプリメント後に、Inserterを実行する、のが、元の回路に修正をくわえなくてよくて楽か。

http://japan.xilinx.com/support/documentation/sw_manuals_j/xilinx11/ise_c_process_analyze_design_using_chipscope.htm

16/02/15: SDカードにDropboxをおく

http://johokankyo.com/cloudwork/onedrive/tablet_microsd/

16/02/14: Eagleで特定領域にベタGNDをつけない

PolygonでCutOffを選んで描画すると、そこの中はベタGNDがつかない。

16/02/13: Windowsでウインドウを端へもっていくと最大化、をやめる

http://windowstip.web.fc2.com/WindowsTips/tips/window-max.html

16/02/10: 充電専用uUSBケーブルの結線

http://xn--n8jtcug9751a.biz/post-2969/

16/02/08: ESP8266の開発環境rtos

Native開発環境に近いとのことで、導入メモ。

まずUbuntu14.04をVirtualBoxに導入。32bitのほうがいいかも。 ついでに共有フォルダを設定しておく。→http://qiita.com/HirofumiYashima/items/6044cfc64cfa3e84f97c

次に、こちらの手順で、esp-open-sdkを入れる。 https://github.com/pfalcon/esp-open-sdk/ まずRequirementに書いてあるパッケージを入れて、buildして、pathを通す。Ubuntuでは~/.profileに書く(ref: http://qiita.com/takanemu/items/6027291be8a2a6af9adc

次に、esptool.pyを入れてpathを通す。 https://github.com/themadinventor/esptool ただしsetuptoolがない、と言われるので、こちらの通りいれる。 http://stackoverflow.com/questions/14426491/python-3-importerror-no-module-named-setuptools

最後にesp-open-rtosを入れる。これは自分のホームディレクトリでもいい。 https://github.com/SuperHouse/esp-open-rtos

FTDI-Basicをつなぐとttyデバイス(COMポート)ができるが、標準ではpermissionが自分にないので、こちらに沿って、/lib/udev/rules.d/50-udev-default.rules にMODEを0666としておけばOK。 http://d.hatena.ne.jp/kinneko/20140118/p2

シリアルターミナルはこのあたり。

http://linuxandxx.blog.fc2.com/blog-entry-34.html

16/02/03: リモートデスクトップ接続先でWinキーが押しっぱなしになる

例えば下カーソルでウインドウが最小化される、などの現象としてみえる。 とりあえずの回避策として、Winキーを1回押す、というのが有効な模様。

https://prepro.wordpress.com/2009/05/14/remotedesktop%E3%81%AE%E3%83%90%E3%82%B0%E3%81%A7%E3%82%AD%E3%83%BC%E3%83%9C%E3%83%BC%E3%83%89%E6%83%85%E5%A0%B1%E3%81%8C%E3%82%AF%E3%83%AA%E3%82%A2%E3%81%95%E3%82%8C%E3%81%AA%E3%81%84/

16/01/25: Macで左クリックが効かなくなることがある

元電源をぬいてしばらく待って戻してSMCリセット、が効く、か?

https://discussionsjapan.apple.com/thread/10086191?tstart=0

https://support.apple.com/ja-jp/HT201295

16/01/17: OneDriveをWebDAVとしてドライブレターを与える

http://www.code-lab.net/?p=230

16/01/08: Eagleでグリッド変更をショートカットで

http://trac.switch-science.com/wiki/EagleShortCutSetting