昨日に引き続き,モグラ取り器の制作ですが,今日は,弁をつけて
モグラ取り出し口をつけて完成です。
弁を水糸でつけました。
根本の方に切り込みを入れて,とります。
これをガムテープで塞いで完成です。
明日にでも,釣具屋さんに行って,ミミズを購入し,中に
入れて,仕掛けてみようと思います。
mabo個人のサイトです。いろんなことを日記風に書いてます。場合によっては,間違った記載もあるということをご承知おきください。表題をクリックして,個別のページの最下部からコメントをお願いします。
庭が以前からモグラの被害にあってました。
そこで,いくつものモグラ取り器を仕掛けてきました。
唯一,筒状のモグラ取り器に2~3匹捕獲することができました。
過去記事
ただ,この捕獲器は,土中に埋めるせいか,錆がかなり
でてきました。
一説によると,モグラは,においには敏感で,人工的な物
の臭いがあると,警戒するとの記事も見かけました。
そこで,YouTubeにもでていた,竹製の捕獲器を制作する
ことにしました。
知人の家から,太めのの竹と,細目の竹をもらってきて加工
します。
太めの竹です。孟宗竹かな。
これを6等分ぐらいにします。
これを電動カンナで,厚さ4~5mm程度の板状に加工します。
糸鋸でだいたいの形を切り出し,グラインダーで整形します。
中くらいの竹と加工した弁です。
水糸?で竹の中に半固定します。
後,モグラの取り出し口をつけると完成です。
過日,いろいろ試すのに◯mazonkから,PWM信号発生器を購入し,
便利に使ってました。
商品の説明にもシリアル通信ができると記述があり,基盤の裏
にも TXD RXD の記述があるので,外部からコントロール
できるのかなと思ってました。
手持ちのシリアル通信のアダプターに接続し,PCから,あれこれ
やってみました。
最初「テラターム」でやりましたが, FAIL の文字が帰ってくる
だけで,通信はできているようでしたが,うまくいかないようでした。
「シリアル通信ソフト」というソフト名のプログラムをベクターから
DLして,試してみると,あっけなく通信ができました。
(起動にあたっては,管理者権限で起動しないとだめでした。)
難しいプロトコルが必要かとおもいましたが,簡単なコマンドで,
制御できるようです。
写真は, ”read” のコマンドで,設定の状態を読んでいます。
F055 → 周波数
D090 → DUTY%
と,表示されている数値を読み取ることができました。
ちなみに,設定するには,
周波数 001→999 F*** (ex F090 →90Hz)
周波数 1.00→9.99 F*.**(ex F1.45 →1.45KHz)
周波数 10.00→99.9 F**.*(ex F10.45 →10.45KHz)
周波数 1.0.0→1.5.0 F*.*.*(ex F1.4.6 →146KHz)
DUTY 1→100 D***(ex D090 →90%)
read 設定データの読み取り
でした。まだ,やっていませんが,PICからもコントロールでき
そうなので,これを使った方が,手軽にPWMの信号のコントロール
できるかもですね。
ーーMACH パラレルポートでのPIDコントロールーー
パラレルポートでの,PIDコントロールについて,調べました。
Smooth Stepper では,うまくいかなかったのですが,
パラレルポートでは,うまくいきました。
kernel Speed 100Hz
Moter Control
Use Spindle Motor Output と PWM Controlにチェック
Special Function
Closed Loop Spindle Control にチェック
P→1.6 I→1.0 D→1.0
PWMBase Freq 100
Index 入力 ポート 1の11ピン
PWM 出力 ポート 1の14ピン
の設定で試してみました。
入力した回転数に,MACHの方で,追従していく様子が確認
できました。
MACHは,やはり優れ物です。
PIDの設定を最適化すれば,応答速度等,よくなるような気が
します。
最初デフォルトの
P→0.25 I→1.0 D→0.3
でやりましたが,入力回転数に追従する時間が多少かかり
ました。Pを1.6に増やしたら,かなり追従までの時間が
短くなりました。一端上がって,下がります。
念のため外部の回転計でも回転数を計測しましたが,
MACHの表示とほぼ同じでした。
パラレルポートでは,確認できましたが,Smooth Stepperで
実施するには,なにか設定があるのでしょうかね。
私が確かめたのは,写真のような実験環境です。
パラレルポートにジェンダーコネクターをつなぎ,ジェンダー
コネクターから引き出した線に各信号線を結線しであります。
今回使ったPWMのコントローラーは,◯華製のもので,
PIDコントロールしないと,MACHからのPWM信号よりかなり
高めの回転をします。
2019年6月18日の記事
で確認した,IRF740等のFETを使うと,きっと,応答速度
もよくなるのかと思います。
ポケモンgo等のゲームで,歩く距離を稼げるのうたい文句
で,ちょっと前にAmazonで購入しました。
最近,システム側で,この装置の検出を組み込んだみたいで,
以前のようには,距離を稼げなくなりました。
そこで,ダメ元で,ちょっと分解してみました。中には,
コイルが。
振り子の裏側はトランジスタとおぼしき半導体が。
という簡単な構造でした。
ネットでくぐると,多分下記のような,回路ではないかと
想像できました。
この動作原理はちょっとわかりませんが,
簡単な構造だったんですね。
分かる方なら,ちょっとの改造で,規則的な振り子の運動
を,不規則なものに改造できるんでしょうね。
ちなみに,システムに感知されないように,不規則な動き
ができるようになったものが,発売になってます。
ーーーグレイコード(3)ーーー
A相とB相の信号を使えば,回転方向を検出できることは,
理解できました。
これをプログラムで実現するには,いくつか方法がある
ようです。
自作のMPG関連では,B相の立ち上がりを検出し,それを
DFFのICにいれて,回転方向を検出してました。
今回は,別な方法でやってみようかなと思います。
基本的な考え方は,◯月の取説にあったように,前回と
今回の2回のサンプリングをして,その組み合わせの全部
から回転方向を決める方法です。
エンコーダーから,出力されるグレイコードをバイナリ変換
して,前回と今回の2回のサンプリングの差を取って,+1
の場合は時計方向,-1の場合は逆時計方向としてもいい
のですが,バイナリ変換するのにビット操作が必要なので,
私にはちょっと苦手かなと思います。
それで,組み合わせを全部拾い出し,それをインデックスに
して,回転方向を決めるのが私には分かり易いかなと思い
ました。
前回グレイコード(2)記事の表から,前回と今回の
サンプリングの可能性を考えて見ます。
可能性は,次のようになります。
時計回転
前回→今回
00 →00 動かない(0)
00 →01 時計回転(+1)
00 →11 一つ先に移動(エラー)
01 →01 動かない(0)
01 →11 時計回転(+1)
01 →10 一つ先に移動(エラー)
11 →11 動かない(0)
11 →10 時計回転(+1)
11 →00 一つ先に移動(エラー)
10 →10 動かない(0)
10 →00 時計回転(+1)
10 →01 一つ先に移動(エラー)
逆時計回転
前回→今回
00 →00 動かない(0)
00 →10 逆時計回転(-1)
00 →11 一つ先に移動(エラー)
10 →10 動かない(0)
10 →11 逆時計回転(-1)
10 →01 一つ先に移動(エラー)
11 →11 動かない(0)
11 →01 逆時計回転(-1)
11 →00 一つ先に移動(エラー)
01 →01 動かない(0)
01 →00 逆時計回転(-1)
01 →10 一つ先に移動(エラー)
全部で16通りありますので,前回を2ビットシフトして,
今回と合計すると,その数値がインデックスの数値として
使えることになります。エラーを100とすると,
m[(前回<<2)+今回]=数値
m[0000]=0
m[0001]=1
m[0011]=100
m[0101]=0
m[0111]=1
m[0110]=100
m[1111]=0
m[1110]=1
m[1100]=100
m[1010]=0
m[1000]=1
m[1001]=100
m[0010]=-1
m[1011]=-1
m[1101]=-1
m[0100]=-1
のようになり,[ ]内を16進数に直すと,
m[0]=0
m[1]=1
m[3]=100
m[5]=0
m[7]=1
m[6]=100
m[F]=0
m[E]=1
m[C]=100
m[A]=0
m[8]=1
m[9]=100
m[2]=-1
m[B]=-1
m[D]=-1
m[4]=-1
のようにすることができます。この配列を使えば,
回転方向の検出ができることになります。
ーーーグレイコード(2)ーーー
グレイコードをWikipediaでは,
グレイコード(英: Gray code、交番二進符号
(こうばんにしんふごう、英:Reflected Binary Codeなどとも)
とは、数値の符号化法のひとつで、前後に隣接する符号間
のハミング距離が必ず1であるという特性を持つ
よような事が書いてあります。なんの事やらと思いましたが,
どうやら,連続する2進数の符号の変化が,一つだけする
表記の仕方のようでした。
ですから,通常の表記とは,違ってるようです。下記がその
対比表です。
通常の2進数では,
3→4の変化で 0011→0100
のように3箇所変化してますが,
グレイコードでは,
3→4の変化で 0010→0110
のように,1カ所しか変化していません。
この性質が,エンコード等のデータの変化を取り出すのに
エラーが少なくなるとのような記載もありました。
エンコーダーの出力をみてみると,その出力は,まさに,
グレイコードでした。
エンコーダーの出力を Hightを 1 Lowを 0 として,
B相を1ビット目,A相を0ビット目とした,2進数の出力と
見てみると,見事にグレイコードの出力になってました。
なぜ,回転の出力をA相,B相の出力に分けてあるのか,
なんとなく理解できました。