2016年4月29日金曜日

さぁ大型連休だ(久しぶりにimodelaで基板切削)

ずっとやりたかった基板切削。久しぶりに思い立った。
いろいろ忘れているので、また試行錯誤になってしまった。

今回はAmis用の基板を切削する。





基本的には過去の自分の投稿通りなのだか…
http://continue-to-challenge.blogspot.jp/2014/11/imodelaeagle.html
http://continue-to-challenge.blogspot.jp/2014/11/imodelaeagle_29.html

いくつかハマった点。
・eagleでベタパターンどうするんだっけ?
→ポリゴンを使う。名前をGNDにする。
http://www.piclist.com/images/www/hobby_elec/eagle32.htm

・未結線ってどうやって調べるんだっけ?
→Ratsnestボタンでウィンドウ左下に未結線数が出てくる
http://easylabo.com/2014/07/eagle/1609/
→で、結局どこなのさ? プラグインで表示可能
http://eeebaka.blog47.fc2.com/blog-entry-202.html

・ガーバーデータの出力ってどうやるんだっけ?
http://www.p-ban.com/gerber/eagle.html

そしてひたすら切削。。うるせーー

 久しぶりすぎて水平がとれていなかったらしい。
面だししなきゃOrz

2016年4月16日土曜日

electron.jsで外部プログラムの標準入出力を制御

概要
electron.jsでjavascriptなプログラムをクロスプラットフォームで使えるのだけど、
速度重視やデバイスに依存するプログラムにはまだ適さないように思う。
その場合、c/c++などを用いることになるが、でもGUIまで作るのは非常に骨が折れる…
GUIはelectronを使ってhtmlベースでサックリと済ましてしまって、他の部分はc/c++に頑張ってもらう構成を考えた。
なんだか.netみたいな考えになってしまうけど。



構成
コアとなるのは、サーバー側のindex.jsとレンダラ側のmyapp.js間のIPC通信と
外部プログラム制御のためのchildp.jsのchild_process。

外部プログラム「ec_child_test」
CUIベースのカウントアップダウンタイマーとした
STARTでカウント開始、UPでカウントアップ、DWONでカウントダウン
カウントは1秒周期、STOPでカウント停止、EXITでプログラム停止という単純なもの。
プログラムは最後にまとめて載せた。(gistで部分的に表示する方法は無いのかな・・)
と思ったら、あった。embeddedコードに「?file=[ファイル名]」とすれば良いみたい。


サーバー側「index.js」と「childp.js」
・index.js
  IPC通信でレンダラからもらった命令をchildp.jsに伝えているだけ
・childp.js
  外部プログラムの制御担当
  といっても子プロセスでプログラムを起動して、その標準入出力に読み書きを
  行っているだけ。プロセスの生成監視はもっと厳密にしないといけないが、
  今回はこのまま。
  あと、node側が終了しても子プロセスが生きているので、別途終了処理が必要。

レンダラ側「index.html」と「myapp.js」
・index.html
  
・myapp.js

参考
いろいろなHPを参考にさせてもらいましたが、たくさんありすぎて+時間が経ちすぎて忘れたOrz

その他
「ググるよりもググられたい」という広告が出ていた。刺さる。
なかなか実現できないこともあるけど、まだ諦めずに頑張ろうと思う。


2016年4月3日日曜日

AmisとCGIとの接続(名前付きパイプFIFO)

概要
webからの操作で、AmisボードのLEDを操作する準備として
Amisボードと通信するプログラムと、webでユーザー操作を受け持つcgiとの接続を検討した。

構成
dd-Wrt上のLighttpd(Port81)を使ってwebサーバーを立ち上げる
仮にAmiscommServer.cgi とする
Amisボードとの通信プログラムをAmis-Commとする

考え方は以下とか本を参考にした。
http://www.ncad.co.jp/~komata/c-kouza12.htm
C言語による実践Linuxシステムプログラミング

web側はまだ作成中

CSSフレームワークを使うとなんとなくそれっぽくできるから良いね。
foundation.js を使った。