銚子電鉄のホームページには「デキ3」とある。なぜに「デキ5」になったんだろう・・・
2015年4月15日水曜日
2014年7月26日土曜日
2014年7月20日日曜日
G Code Viewer using Cairo、OpenGL
Matplotlibはほんとに素晴らしいんだけど、今や非力な所有ノートPC(T5600)ではファイルが大きくなるほど移動、拡大などが遅い。OpenGLのバックエンドが使えるようになれば良いが、i945GMのバージョン1.4はサポートされるはずがない。
で、必要とする機能は限られているので、Cairoを使ったものと、OpenGLを使ったもので表示部を作ってみたが、マウスポインタを中心に拡大するのは結構大変で、上手く行くまで相当な手間がかかり、つぎはぎだらけのコードとなってしまった。
こんな感じ、
データは、pcb-gcodeで作った、約28000行のG Code。
PythonのpyOpenGLを使ってGtk+3と共存できたのでこちらもやってみた。
Cairo版で悩みに悩んだのと、当然きちんと作られているOpenGLのおかげもあって比較的簡単に。
しかし、OpenGLと言っても図形の描画以外はアクセラレーションの恩恵を受けていないはずで、ちょっと早い(システムモニターで見てCPU負荷が軽い)程度、pyOpenGL自体も遅いとのことだしほとんどの影響はPythonの速度だろうか。
高速じゃないけど遅くはない・・・くらいかな。
(アップロードした動画が荒いのはなぜ?)
2014年3月4日火曜日
Code Configuration Plugin
久々にPICを使おうかと思いMPLABXを最新版にしてMicrochipのページを見ている時に、このプラグインがあることを知った。
使ってみるとなかなか良い。
Device Resourcesから必要なものをProject Resourcesに追加しそれぞれの設定をしてGenerate Codeボタンを押すと、
という感じでファイルが生成される。
PICは12F1822、サーボはかなり昔のFutaba製。残念ながらCapacitive Sensingは用意されていないが、CPSCON0、CPSCON1の2個のレジスタ設定とタイマー0、1のコード自動生成、判定コードを追加すれば良いので大して手間はかからない。ディバグ用にesuartを使ったがprintfを使うのもチェックボックス1つですごく簡単。Cファイル、ヘッダーファイルをみれば使用できる関数も簡単に理解できる。
試したものは、ラジコン用のサーボをトグル動作させるスイッチ的なもので、タッチ入力用にCapacitive Sensing、サーボの制御にPWM、サーボの電源オンオフにGPIOを使うというプログラムを作ってみたが、データシートを見ながらのレジスタ値の設定から開放される。大変ありがたい。
Capacitive Sensingは、AN1103にあるパーセンテージ判定を使用、PWMは、周期を15ms、ニュートラル位置を1.5msとしてタッチでトグル動作させて±に変化させるために使用、GPIOは、サーボの動作時のみ電源を供給するために使用。
ボタンは、薄い透明プラスチックと粘着アルミテープの間に字を書いた紙を挟んだもののアルミ側をブレッドボートの入力ピンの上に載せた。タッチしていない時の容量成分はブレッドボードを含む入力ピンとグランド間で決まっているかなと思う。
動作の様子。
久々にPICを使おうかと思いMPLABXを最新版にしてMicrochipのページを見ている時に、このプラグインがあることを知った。
使ってみるとなかなか良い。
Device Resourcesから必要なものをProject Resourcesに追加しそれぞれの設定をしてGenerate Codeボタンを押すと、
という感じでファイルが生成される。
PICは12F1822、サーボはかなり昔のFutaba製。残念ながらCapacitive Sensingは用意されていないが、CPSCON0、CPSCON1の2個のレジスタ設定とタイマー0、1のコード自動生成、判定コードを追加すれば良いので大して手間はかからない。ディバグ用にesuartを使ったがprintfを使うのもチェックボックス1つですごく簡単。Cファイル、ヘッダーファイルをみれば使用できる関数も簡単に理解できる。
試したものは、ラジコン用のサーボをトグル動作させるスイッチ的なもので、タッチ入力用にCapacitive Sensing、サーボの制御にPWM、サーボの電源オンオフにGPIOを使うというプログラムを作ってみたが、データシートを見ながらのレジスタ値の設定から開放される。大変ありがたい。
Capacitive Sensingは、AN1103にあるパーセンテージ判定を使用、PWMは、周期を15ms、ニュートラル位置を1.5msとしてタッチでトグル動作させて±に変化させるために使用、GPIOは、サーボの動作時のみ電源を供給するために使用。
ボタンは、薄い透明プラスチックと粘着アルミテープの間に字を書いた紙を挟んだもののアルミ側をブレッドボートの入力ピンの上に載せた。タッチしていない時の容量成分はブレッドボードを含む入力ピンとグランド間で決まっているかなと思う。
動作の様子。
2014年2月4日火曜日
Arduino Pro Mini Clone (続)
質問を契機にふと思った。
購入したものには最初からAREFとRESET間にキャパシタはなかった。思い出してみるとebayに出品されているものの中に、これが取り付けられていたものを見た記憶がある。関係ないが、「動かない」とお断りつきで出品されていたものもあった。
これがあるとADCに影響がある程度と深く考えなかったが、よく考えてみると、もし同じように間違えたPCBパターンのものならば、DTRによるオートリセットが上手く行かない可能性がある。どちらのキャパシタも同じ0.1uFである可能性が高い。
同じボードを使用する際は、ここにキャパシタ(赤枠の位置)付いていたら、取り外すか、若干はんだ付けテクニックを要するが、緑枠の位置にずらして付け直す必要がある。
2014年2月2日日曜日
登録:
投稿 (Atom)





