PIC_colo Common_Frameが動いた
PIC_coloを使ったGUIアプリケーションのテンプレートとして用意したCustom_Frame(<==以前はUser_Frameと呼んでいた)をサンプル・プログラム用に作り直したCommon_Frameが動きました。
Name欄にレジスタ名や変数名を入力すると、Value欄に現在値を表示します。入力に誤りがあるとValue欄に”null”を表示します。(<==get_infoコマンドで返るnullを表示している)
Updateボタンをクリックするとチェックを付けた変数あるいはレジスタのValue欄の値を更新します。
また、Value欄の値を書き換えるとName欄に表示されたレジスタあるいは変数を書き換えます。
さらに、Repeatボタンをクリックするとチェックを付けた変数あるいはレジスタのValue欄の値を1秒ごとに更新します。
パチパチ~
少しずつ、機能を組み込んできたPIC_coloコンソールですが、Common_Frameの登場であちこち機能の重複が目立ってきました。Common_Frame自体も、人手でコマンドの送受を行うつもりで組み込んだ機能が、処理状態を表示する窓になってしまいました。orz
最初に仕様をがっちり固めないで、その時々の思いつきで開発を進めた弊害と言えば、その通りなんですが・・・
まぁ、しょうがない!(<==懲りない奴)
ーーーーーーーーーーーーーーーーーーーーー
最初の頃のUser_Frameはこんな感じでした。
PIC_colo Thereminの開発初期に使っていたのはこれです。
思えば、Custom_Frameも立派に育ったものです。
『PIC_coloの手引き』をCommon_Frameを使ったものに書き換えなくては・・・
PIC_colo_Thereminのセンサーを変更することにした
PIC_colo_Thereminのセンサーには超音波センサ(これ↓)を使う予定でした。
http://akizukidenshi.com/catalog/g/gM-11009/
ところが期待したほどの測距可能距離が得られません。
orz
10数個のセンサで測距可能距離を調べても、大きな違いは無かったので、PIC_colo_Thereminに使ったセンサの不具合では無さそうです。
さらに・・・
超音波センサの感度を調べていて別の問題に気づきました。センサの反応が0.2~0.3秒遅れるのです。
超音波センサ内部の計測処理で何らかのフィルタリングを行った結果だと推察しています。
別の光学センサ(これ↓)を調べてみると測距可能距離の改善は期待できることが確認されました。反応の遅れも(少し遅延はあるものの)超音波センサよりは良さそうです。
http://akizukidenshi.com/catalog/g/gI-02551/
操作に用いる発泡スチロールの玉との相性も良いのですが、計測電圧から測距値への変換に少し工夫が必要です。
5cm以内では操作しないことにすれば、簡単な変換テーブルでなんとか行けそうです。
PIC_colo_Thereminは赤外線測距センサを使って、再設計することを決意しました。
Custom_Frameの扱いを変更しようと考えた
『PIC_coloの手引き』(こんな奴↓)にPIC_coloの操作手順をまとめようとしています。
基板とソフトウェアだけ配布しても使って頂けないことは明白なので、頑張って作るしかないのですが作業はなかなか進みません。しかも、構想がぶれて書き直しになることも度々あります。今もCustom_Frameの扱いに関して変更しようと考え始めました。
これまでCustom_Frameは、アプリケーション・プログラムのユーザ・インターフェースと位置づけ、ユーザがカスタマイズして使うものと考えていました。例えば、PIC_colo_Thereminのデバッグ用Custom_Frameはこんな感じです。
Blink(Lチカ)ではCustom_Frameを非表示にして、PIC_coloコンソールで行う変数操作機能を紹介しようとは考えていたのですが、その操作がなんともまどろっこしい・・・
「これを嬉々として行うのは作った本人だけ何じゃないの?」
手引きに手順を記述して初めて気づきました。orz
Custom_Frameには、ユーザがアプリケーションを作るときの手助けとなるように変数操作機能(get_varコマンドとset_varコマンド)が用意されています。これを使った変数操作機能を紹介した方が良いのではないか?
サンプル・プログラム共通で使うCommon_Frameを設るとか・・・
そんなことを思いついて、早速試して見ました。
(1)Sendウィンドウに”get_var blink_interval”と書いてSendボタンを押す。(2)Recieveウィンドウに”0a"(10)が表示される。
(3)Sendウィンドウを”set_var blink_interval 05”に書き換えてSendボタンを押す。(4)Recieveウィンドウに”complete"が書き足され、Lチカの周期が1秒から0.5秒に
変わる。
うん、この方がず~っと良い!
組み込む機能は要検討ですが、サンプル・プログラムはCommon_Frameを利用する方針に変更します。
PIC_coloの機能がまた一歩前進して、PIC_coloの手引きの完成はまた一歩後退しました。orz
PIC_coloとPIC_colo_Theremin
Maker Faire Tokyo 2018への出展を目指して、開発を続けてきたPIC_coloとPIC_colo_Thereminの目鼻が付いてきました。
まだ、色々課題を抱えていますが何とか形になりそうです。
to
FusionPCBにアクセス出来なく成った
FusionPCB(↓)にアクセスしようとすると・・・
「安全な接続ができませんでした・・・・・・ への接続中にエラーが発生しました。 SSL peer cannot verify your certificate. エラーコード: SSL_ERROR_BAD_CERT_ALERT」と表示されアクセス出来ません。www.seeedstudio.com
やむなく、PIC_colo用のユニバーサル基板はelecrow(↓)に発注しました。
Elecrow.com® Custom PCB Assembly, Fabrication and DIY Electronics
FusionPCBには色々サポートしてもらっているので、次の基板は是非FusionPCBにお願いしたいと思い、SSL_ERROR_BAD_CERT_ALERTの対策を調べてみました。
しかし、googleで検索を掛けて出てきた対策(about:configにアクセスして設定値を変更するとか、特定サイトのSSL証明のチェックを無効にするとか)を試してみたのですが改善しません。orz
認証関連の不具合全般に検索範囲を広げ、あれこれ調べてみると・・・
「%APPDATA%¥Mozilla¥Firefox¥Profiles¥以下にあるcert8.dbを削除する」という対策(↓)に行き着きました。
Deleting Cert8.db for Firefox - IS&T Contributions - Hermes
SSL_ERROR_BAD_CERT_ALERTに関する対策では無かったのですが、認証関連のデータを初期化する方法らしいので藁をも掴む気持ちで試して見ると・・・
ビンゴ~~
ようやくFusionPCBに接続することが出来るようになりました。
やれやれ
ーーーーーーーーーーーーーーーーーーーーーーーーーー
実際に削除したのは以下の二つです。
%APPDATA%¥Mozilla¥Firefox¥Profiles¥amgibljy.default¥cert8.db
%APPDATA%¥Mozilla¥Firefox¥Profiles¥ amgibljy.default¥cert9.db
Firefoxを再起動するとcert8.dbとcert9.dbが新たに作り直され、FusionPCBに接続出来ました。詳しいメカニズムを理解してやったことではないので、この方法を試すのは自己責任でお願いします。
先のサイトにも以下のような注意書きが記されています。
Make sure you've tried other alternatives before deleting cert8.db.