GPDWIN 2代目

IMG_3706

正常なバッテリ

今度はバッテリが膨張しました。

最近は持ち運び用途が激減してしまったため、リビングのテーブルの上にスタンドに立てかけて常設利用していたのですが、久しぶりに本体をスタンドから降ろしてみたら本体底面がパンパンに膨らんでた。

IMG_3707

膨張したバッテリ

いやぁ怖い。リチウムイオンバッテリが膨張することは知ってはいたけど…。どの程度で限界に達するのか不明なので、安全優先でやむなく分解。初代のGPDWINから剥がしたバッテリと交換しました。

そのうちスペアのバッテリも手配しないと。

近況とか

 

GPDWINが故障しました。

mini HDMIからTVに接続し、子供の写真や動画を大画面で見せようと企んでいたのですが、GPDWIN側のHDMIコネクタ内の端子が燃えてしまったのです。

HDMIコネクタにケーブルを差し込んだ瞬間、GPDWINの液晶画面が暗くなったので、自動的にHDMI側に出力が変わったのだろうと錯覚しましたが、数秒待ってもTV側には何も表示されず。異変に感じた時には既に遅し。GPDWIN側のHDMIコネクタ内側のピンがショートしたらしく、樹脂部分が融解。GPDWIN側は生死不明で、少なくとも電源ボタンでの起動は不可。という症状。

起動不可はショートしっぱなしで過電流が流れているためと思われたので、とりあえずGPDWINを分解し、問題のショートを起こしているHDMI端子をヒートガンで撤去。なんとか起動成功。しかし今度はCPUの温度上昇が止まらず、OSが起動した頃には熱暴走する、という症状が。

あれこれ試しているうちに完全に起動不可になっちゃいました。おそらく熱で何らかのパーツが二次的に死んだと思われますが、外見からは特定ができず修理を断念。マザー以外は使えるでしょうから予備機に回し、二台目のGPDWINを購入。

二台目はちょうど改良版ロットに当たったようで、CPUがZ8750になっていたり、キータッチが軽くなっていたりで、ますます愛着が沸いてきました。

2017 新年

あけましておめでとうございます。

ここしばらく色々ありまして。サイトの更新も手が回らず放置状態です。
今年もこれから忙しくなるはずなので、無理しない程度に頑張っていきたい所存です。

今後ともよろしくお願いいたします。

 

ATTINY2313とか

ちょっと流行を逃している感じだけど、ATTINY2313へプログラムを書き込める環境を用意。とは言っても大したものではなく、中華製の激安USBAVRライタと、20pinのZIF-ICソケットを準備してブレッドボード上で配線しただけ。しかしUSBAVRライタを準備したことでドライバの動作について意識する必要がほぼなくなったのが嬉しい。今までCH340搭載のArduino Nano互換機のドライバの動作にイライラしたり、FT232RLのFTDIドライバでイライラしたりだったけど。USBAVRライタ経由に置き換えちゃうことにしよう。

開発環境としてはArduinoIDEにATTINY用の定義ファイルをインクルードして、スケッチの書き込みができるところまで確認。ここまでは順調。

お決まりの罠としてBODか外部クロックの設定をしようとしてヒューズビットを書き換えてしまい、それ以降書き込みできなくなる現象に当たってしまった。ので、ヒューズリセットについて色々調べる回り道が生じた。たぶんこのマイコン使うには必要な知識なんだろう。一度書き換えると感嘆には元に戻せないという性質から、トラブルが起きたときの切り分けが難しい部分なので、悩んだらすぐにリセットできるようにヒューズリセッタを準備しておいたほうが良いと思った。そのうちユニバーサル基板上でリセット回路組もう。

 

ロータリエンコーダのマトリクス

rotary_matrix複数のロータリエンコーダの回転の検出続き。

用意したロータリエンコーダはALPSのEC11互換品を謳うもの。ALPSのサイトのデータシートによれば、ロータリエンコーダの内部回路はスイッチが二つ並列になっているだけのように見える。エンコーダ16個ならばスイッチが32個分ということで、シフトレジスタを用いた単純なIOポートの増設よりもキーマトリクス回路の方が良いのではないかってことで回路図を書いた。

Webではロータリエンコーダをマトリクスで構成するという作例があまり見つからなかった。この回路図で期待通りの動作をするかは未検証。たぶんA相とB相の信号が逆流しないようにダイオードを入れる必要がある気がする。エンコーダの内部構造がフォトカプラなら逆流しないので不要だと思うが。

外装の話となるが、ケース上のエンコーダの配置は4×4になるようデザインする予定。Chiptuneのようなイメージ。今鳴っているステップが判別できるように、エンコーダのそばにLEDも光らせたい。なので、回路の話に戻るが、マトリクス回路上にLED点灯用のラインも引き回し。また、エンコーダはプッシュスイッチもついているので、スイッチの判定用のラインも引く。

ここまででちょうど64bit分の入出力となったので、16ポートのIOエクスパンダであるMCP23017を使うと簡単に制御できそうだが、I2Cなので制御用マイコンを選ぶ必要がある。手元に使っていなかった74HC154が転がっていたので、ひとまずこの回路で実験して見る予定。

2016近況

お久しぶりです。

気がつけばあっという間に2016年。なんかもう、1年という単位の重みを忘れかけてる今日この頃です。
ここDIGINOIZ:NETについてはドメイン維持する価値もほとんどないなぁ~と思いつつ、愛着あるドメインなもので、それでもレンタルサーバ代もばかにならないので自宅サーバに移管でもして最小コストで運営したいなと思うところですが、PCとかNet系で試行錯誤していた頃のモチベーションの引き出し方の感覚を失ってしまい、一言で言うと年取りました。

最近の趣味嗜好で言えばある意味で老化したというか先祖返りを起こしてしまい、自分に取っておそらく最初の趣味となった電子工作に再び興味が沸いています。きっかけは多分MonotribeのMIDI改造をしたあたりだと思うんですが、最近のマイコン搭載機器をちょっとまじめにハックしてみたいな的なノリで、中華製の激安ロジアナ買って波形見てみたり、オシロ買ってみたり、Arduinoの開発環境揃えてみたり、ロジックICの原理を復習してみたり。おかげでAliExpressで100pcsのパーツ注文するのにさほど悩まないレベルまでにはなって来ました。積みパーツですが。

いま製作しているのは16ステップのMIDIシーケンサです。もともとは半固定抵抗器いわゆるボリュームを16個、アナログマルチプレクサに接続してボリューム値をMIDIノートに変換して…というのは半日でできてしまったんですが、ステップをいじるボリュームに複数のパラメータ(最低でもノート長とベロシティくらい。できれば設定画面からパラメータも編集したい)を持たせたかったので、そうすると操作性の感覚からどうしてもロータリエンコーダを使いたくなり、さて16個のロータリエンコーダの制御はどうしたものか…と悩んでいるような。手持ちの部品だと74HC165が大量にあるんで、ロータリエンコーダの2ビットの出力を上位2ビットずつ165に入れていこうかなとか、これだと165は4つ必要になるのでもっと手軽な方法はないか模索してる最中です。

こんな感じで、ぼちぼちやっていきます。

2014近況

久々に更新。

ここ数年ですっかりMac使いになった。自宅でWindows触ることはめっきり減った。
基本iPhoneか、たまに寝ながらiPad使う。家計管理とか諸々はMacbookで。

ようやくMBPのSSDを256GBに換装した。
標準のSSDは64GBだと勘違いしていたので4倍になった!と喜んでいたのだけど、ほんとは128GBだった。
4倍になったと思ったら2倍にしかなってなかった。それでも十分足りてるけど。

嫁さんがHP作りたいと言っていたので、ここのdiginoiz.netドメインにサブドメインを設定してみた。ちょっとトリッキーな手段で実現したのでなんか問題あるかもしれない。しばらく様子見。

 

4曲目

いちおう、iPad+BeatMaker2で作成したデモ。

悪い意味で、自分の力量が見えた1曲。

無計画に作り始めて、いろいろ実験しつつ、3ヶ月くらいダラダラといじっていた曲。

結局、手を加えるほどに不満になるだけというのを思い知りました。

備忘録的に制作環境:

  • iPad2+BeatMaker2(DAW)
  • iKaossilator
  • Monotribe(MIDI化)
  • KAOSSPAD QUAD
  • ioDock

スケールはF、コードはI→II→IIImのひたすら繰り返し。何の捻りもない。

Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version here. You also need to have JavaScript enabled in your browser.

3曲目ですよ

Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version here. You also need to have JavaScript enabled in your browser.

んー、トランスです。

眠る前にでもどうぞ。

Evernote for Windows付属のENScript.exeを使う

EvernoteのAPIとか調べていたら、Windows版にはコマンドライン版のフロントエンドが添付されていることを知った。
どれどれとヘルプをざっと見た感じ、ちょっとは使えそうなものがあった。

個人的に大発見だと思ったのは、コマンドラインから検索クエリを実行できる ENScript showNotes というコマンド。

これはEvernoteの検索ボックスの代用として使えるコマンドなのだけど、ランチャーにこのコマンドを登録しておけば”保存された検索”の代用としても使えるよなぁと思い、実際に CLaunch というランチャーソフトに登録してみたという図がこれ。ランチャに登録したことで並び替えも自由にできるようになって、かなりいい感じ。

その他まとめ。

  • 標準入力や標準出力が使えるのは便利。
  • Evernote重いよ!という場合。 ENScript createNote と ENScript syncDatabase を使えば、Evernote for Windowsを起動させずにノートの作成、同期ができる。
  • 保存された検索に一気に飛びたいよ!という場合。ENScript showNotes /q “your_query” をランチャーソフトに登録してしまえ。
  • 重複されたノー トを一気に消したいよ!という場合。exportNotes と createNotebook と importNotes とPerl/Pythonなどのスクリプト言語の組み合わせで何とかなるかも。

全てのコマンド一覧もちょっとした解説つきで載せておきます。個人用メモなので内容は保証しません。

Usage: ENScript createNote [options]

Option:

/s file        file containing the plain text note contents. If omitted, note contents are read from standard input.
/n notebook    notebook to create the note in. If does not exist, lazy create. If omitted, use default notebook.
/i title    specifies note title. If omitted, note title will be generated automatically.
/t tag        specifies note tag. If tag does not exist, lazy create it. Use multiple /t options to specify multiple tags.
/a filename    specifies file attachment. Use multiple /a options to specify multiple file attachments.
/c dttm        note creation date/time. { “YYYY/MM/DD hh:mm:ss” | filetime }. If omitted, use current time.
/u username    user name if not the same as database file name.
/p password    user password to confirm Evernote service access.
/d database    database file name if user name is not specified.

If both database file name and user name are not specified, last login name is used and
if there is none, USERNAME environment variable value is used as a user name.

解説:

/sで指定した既存のファイルから新規ノートを作成する。
/sを省略した場合は、標準入力から新規ノートを作成する。パイプ処理も可能。
作成先のノートブックの指定、タイトル、タグ、作成日付、添付ファイル(プレミアム会員のみ)などを同時に指定できる。
存在しないタグは自動的に作成する。複数のタグを一度につけるには/tを繰り返す。
例えばtag1, tag2, tag3という3つのタグをつけるには、/t tag1 /t tag2 /t tag3 … と指定する。

サンプル:

$ dir /b | ENScript createNote /t file_list /t mypc

注意:

作成しただけでは同期されていないので、後述のENScript syncDatabaseコマンドを用いるか、Evernote for Windowsから同期ボタンを押す必要がある。
/c dttmで日付指定をすると、9時間先の時間(標準時間)になってしまう(バグ?)。
/c を省略した場合は、ローカル時間が正常に反映される。

TIPS:

メールでノートを作成する場合と異なり、存在しないタグは新規に作成する。これを利用すると大量のタグを一気に作成できる。日付別のタグ とか。
た だし、子タグを作ることはできない感じ。

Usage: ENScript importNotes [options]

Option:

/s {file|url}    source .enex file or url. If omitted, stdin is used to gather source specification.
/n notebook    notebook to create the note in. If does not exist, lazy create.
If omitted, use default notebook.
/u username    user name if not the same as database file name.
/p password    user password to confirm Evernote service access.
/d database    database file name if user name is not specified.

If both database file name and user name are not specified, last login name is used and
if there is none, USERNAME environment variable value is used as a user name.

解説:

上級者向け。
.enexという形式のファイルをインポートする。.enexとはEvernoteのデータベースをXMLとして出力したものである。
.enexの形式については後述のエクスポート機能で.enexファイルを出力させてテキストエディタで見てみれば分かる。

Usage: ENScript showNotes [options]

Option:

/q query – query to filter the notes. If omitted, stdin is used to gather query specification.
/u username – user name if not the same as database file name.
/p password – user password to confirm Evernote service access.
/d database – database file name if user name is not specified.

If both database file name and user name are not specified, last login name is used and
if there is none, USERNAME environment variable value is used as a user name.

解説:

/qで指定したクエリに該当するノート群をEvernote for Windows上で表示する。
/qを省略した場合、標準入力からクエリの入力を待つ。

Evernote for Windowsの検索ボックスからクエリを入力した場合と同じ動作を行う。
Evernote for Windowsが起動していない場合は、Evernote for Windowsを自動で起動させたうえ、前述の動作を行う。
/q でクエリを指定するとき、クエリにスペースを含む場合はクエリ全体を “” で囲む。

サンプル:

タグに”evernote”を含む、1週間以内に作成されたノートをEvernoteで表示

$ ENScript showNotes /q “tag:evernote created:day-7”

TIPS:

Evernote for Windowsの”保存された検索”が使いづらいよという人は、このコマンドを適当なランチャソフトに登録すると幸せになれるかも。

Usage: ENScript printNotes [options]

Option:

/q query – query to filter the notes. If omitted, stdin is used to gather query specification.
/u username – user name if not the same as database file name.
/p password – user password to confirm Evernote service access.
/d database – database file name if user name is not specified.

If both database file name and user name are not specified, last login name is used and
if there is none, USERNAME environment variable value is used as a user name.

解説:

おそらくshowNotesコマンドの旧バージョン(未確認)。Evernote for Windows 3.5.4.2343では正常に動作していないように思う
筆者の環境ではEvernote for Windowsのウィンドウがアクティブに変わるだけで、動作していないように見える。

Usage: ENScript exportNotes [options]

Option:

/q query – query to filter the notes. If omitted, stdin is used to gather query specification.
/f file – export .enex file. If omitted, stdout is used.
/u username – user name if not the same as database file name.
/p password – user password to confirm Evernote service access.
/d database – database file name if user name is not specified.

If both database file name and user name are not specified, last login name is used and
if there is none, USERNAME environment variable value is used as a user name.

解説:

上級者向け。
/qで指定したクエリに該当するノート群を.enex形式で標準出力またはファイルに出力する。
/qを省略した場合、標準入力からクエリの入力を待つ。

Usage: ENScript createNotebook [options]

Options:

/n notebook – name of the notebook to create. If omitted, the notebook name isread from standard input.
/t {local|synced} – type of the notebook to create. If omitted, creates a synchronized notebook.
/u username – user name if not the same as database file name.
/p password – user password to confirm Evernote service access.
/d database – database file name if user name is not specified.

If both database file name and user name are not specified, last login name is used and
if there is none, USERNAME environment variable value is used as a user name.

解説:

ローカルまたは同期用のノートブックを作成する。通常はEvernote for Windows上から作成すれば良いと思う。

Usage: ENScript listNotebooks [options]

Options:

/t {local|synced} – type of the notebooks to list on stdout. If omitted, listall existing notebooks.
/u username – user name if not the same as database file name.
/p password – user password to confirm Evernote service access.
/d database – database file name if user name is not specified.

If both database file name and user name are not specified, last login name is used and
if there is none, USERNAME environment variable value is used as a user name.

解説:

ノートブックの一覧を標準出力に出力する。

サンプル:

ローカルノートブックの一覧を新規ノートに追加する。

$ ENScript listNotebooks /t local | ENScript createNote

Usage: ENScript syncDatabase [options]

Options:

/l file name    log file name. Use standard log if omitted. Ignored in GUI implementation.
/u username    user name if not the same as database file name.
/p password    user password to confirm Evernote service access.
/d database    database file name if user name is not specified.

If both database file name and user name are not specified, last login name is used and
if there is none, USERNAME environment variable value is used as a user name.

解説:

同期を行う。Evernote for Windows上で同期ボタンを押した時と同じ挙動をする。
Evernote for Windowsが起動していなくても処理が行われる。