PICをあれこれいじってます。
ところが,昨日,突然,PICへの書き込みができなくなりました。
思いつくこと全てやりましたが,だめでした。
それで,PICKITが故障かなと思い,安いの早速ポチりました。
夜,また試してみようと,あれこれやると,
原因が判明しました。PICと基盤接続の自作のコードの一本が
コネクターの部分で,断線してました。
あーあ,あーあ,
ジェジェジェジェッ
でした・・・・・。
---SPINDLEのPWM制御 (その2) (5)
---SPINDLEのPWM制御 (その2) (4)
スピンドルをPWMでコントロールすべく,いろいろやって
ました。
MACH上に,回転数数を表示するのに,以前,
EESX911R
というオムロンのフォトインタラプタ―を使いましたが
〇月にある、
CNZ1023
を使おうと思いました。使えれば、CNZ1023の方が
一個20円と格安なので、コスパ最高なのですが。
結論から言うと、オシロでは、きれいな波形が確認で
きるのですが、残念ながら、私の力では、MACHに
取り込めませんでした。
諸兄のHPを参考に、
プルダウンの抵抗やらいろいろ変化させてみましたが、
だめでした。もしかしたら、前回のように、フォトカプラー
等で、処理しないとだめなんでしょうかね。
ということで、前回使った
EESX911R
で、回転数を取り込んで表示さて、入力した数値との
比較を行いました。
結果、クローズドループのコントロールになるかなと
思いましたが、だめでした。
結果は次のようでした。
回転数入力 ポート2 10番ピン
PWM出力 ポート2 14番ピン
カーネル 2500khz
PWM基本周蓮 1000Hz
MACH SRO 20パーセント
(これが一番数値が近かった)
入力 表示 RPM
1000 1339
2000 2339
3000 3178
4000 3932
5000 4623
6000 5250
7000 5778
8000 6218
9000 6222
MACHの、フィードバック、クローズをコントロール、の
項目にチェックをいれても大きな差はありませんでした。
ただ、またまた未知数なのですが、P、I、D の設定の
項目もあり、ここはデフォでしたので、もしかして、設定
によっては、うまくいくのかな、と思ったりもしました。
ありきたりの実験の様子です。
MACHからのPWMの基本周波数は変換してませんので、
後日、変換した後どうなるか、見てみたいと思います。
なかなか思うようにできないですね。
---SPINDLEのPWM制御 (その2) (3)
MACHからのPWM制御で,PWMコントローラを通して,
モーターを回してみましたが,入力値と,回転数がかなり
離れています。
MACHの問題なのか,PWMのコントローラーの問題か,
それとも,別の問題なのか分からないので,
PWM発生器から,DUTY比を変えて,回転数との関係
を見てみました。
PWMの基本周波数は,2khzにしました。
モーターの最高回転数は,9400rpmです。
DUTY比 回転数
10% 3466rpm
20% 5700rpm
30% 7058rpm
40% 7800rpm
50% 8200rpm
60% 8600rpm
70% 8800rpm
80% 9000rpm
90% 9400rpm
100% 回転せず
PWMのDUTY比と回転数は,比例しないようです。
正確なコントロールをするには,やはりループバック
でコントロールする必要があるのでしょうかね。
回転数をMACHに入れて,ループバックでのコントロール
をしてみたいと思います。
---SPINDLEのPWM制御 (その2) (2)---
前回の記事書いたのもう3年もまえなんですねえ。
やるつもりでしばらく(ずっと)中断してました。
機会があって,またその続きをしました。
今回は,実際のスピンドルモーターをMACHから,
コントロールしてみました。といっても,私の実験環境
でですけど。
次の環境で確認しました。
MACH3→Smooth Stepper→◯ECさん基盤
↓ ↓
スピンドルモーター ステッピングモーター
MACH3からのPWM信号は,
◯ECさん基盤→汎用出力 14番
Smooth Stepper→ポート2の 1,14,17
のそれぞれで確認でき,写真赤丸の
PWMコントローラーを介してモーターをコントロールで
きました。
という訳で,今回は,MACHへの数値の入力と実際の
回転数について調べました。
kenerl Speed 25000Hz
Pwm Base Freq. 1000
Pully Selection Min Speed 0
Max Speed 10000
Ratio 1
の設定です。ちなみに,モーターをPWMコントローラー
を介さないで回すと,9949rpmで,約10000rpm
位ですね。
入力数値 実際の回転数
500 2488
1000 4300
2000 6540
3000 7668
4000 8254
5000 8610
6000 8813
7000 8997
8000 9105
9000 9200
10000 回転せず
小さい数字の入力だと
100→約1000
200→約2000
で入力のほぼ10倍になってました。
回転数をMachにフィードバックしていませんので,
フィードバックするように
Use Spindle FeedBack in Sync Mode
チェックを入れるともっと正確になるんでしょうかね。
諸兄のHPにあった,基本周波数と分解能の問題
のような気もしますが。
多分,基本周波数を上げて,分解能をあげると
もっと細かい制御ができるのかなと思います。
後日,基本周波数を変更して,確かめてみようか
と思います。
芝生の手入れ--芝刈り機のメンテ
暖かくなってきたので,芝生の手入れを始めました。
少し刈り高を短くするのに,今まで刈り高を高くするアダプター
を芝刈り機から外して,使ってみました。
アダプターなしだと,5mm~25mmでので調整ができます
ので,10mmのセットで,刈ってみました。
結果,
のように,設定より深く刈り込んでしまったようです。
過負荷の表示で,モーターが止まってしまいます。
刃が切れないので,ロータリー刃と固定刃の間に芝を
沢山巻き込んでしまって,止まってしまうようでした。多分,
本来だと,この巻き込んだ部分で,切ることができるのだと
思います。
ロータリー刃を固定刃を手で触ってみると,全然抵抗が
なく,刃先が丸まってるのが分かります。
まあ,この芝刈り機の購入が2011年の4月ですから,
8年あまり,使ったことになります。
思い切って,ロータリー刃と固定刃を交換することにして,
早速ポチりました。
送料節約のため同じところにしたかったのですが,
固定刃を固定する,5M×8の六角皿ネジと固定刃の
両方取り扱ってるのが,◯タロウだけでしたので,
固定刃→→◯タロウ
にしました。
ロータリー刃も◯タロウでと思いましたが,残念ながら,
◯タロウでは,取り扱いが終了してました。(メーカーで,
芝刈り機本体の製造も中止になるのかと邪推してます)
そこて,
ロータリー刃→→◯天
にしました。
本体からロータリー刃と固定刃を取り外すのに苦労しました。
長年,油も差さずに使ってたので,固定に使われている
ネジがさびて,固着してしまっていました。自分だけでは,
外せず,自動車やさんの友人にもお手伝いしてもらいました。
まあ,あとどれくらい使えるかはわかりませんが,
後々のメンテを考え,全部ステンレスにすることにしました。
M6×20のステンレスのキャップボルトは,HCで入手でき
ましたが,
その他の物はHCではありませんでしたので,
M5×8の六角皿ネジ→→◯タロウ
M6×45の細目キャップボルト→→◯ルガ
で,購入しました。M6×45のネジは,送料等入れると,
一本300円オーバーの値段になってしまいました。
2本あればよかったのですが,余分に購入しました。
ここは,最低購入金額が500円なので,中途半端な本数の
購入になりました。
まあ,あまったネジは,◯オクにでもだしましょうかね。
この一番左のネジがくせもので,細目ネジかなと検討はつけ
ていたのですが,念のためメーカーに問い合わせてみましたが,
M6×45以上の情報だ資料に記載がないので,公開でき
ないとのことでした。
初めからそうすればよかったのですが,ピッチケージピッチを
計ってみると,0.75で,やはり細目のピッチでした。
ネジ関係がそろいましたので,後は,ロータリー刃と固定刃
の到着待ちです。
おもちゃの作成(5)---I2C LCD ACM1602
制作のついてでに,手元にあるI2CインターフェースのLCD
をケースに入れて動作を確認しました。
PICのプログラムを組んでももかったのですが,デバック等
多少手こずりそうだったので,諸兄のHPにあったaruduino
をパクりで,動作を確認しました。
諸兄の作られたaruduinoのACM1602用のライブラリーも
そのまま使わせていただきました。あっけなく完動いたしまし
た。
諸兄の配線図では,ACM1602とaruduinoを直接つないで
いるようでしたが,念のため,間にレベル変換の基板をいれ
て,接続しました。これ必要ないのかもですね。
諸兄の配線図では,A4とA5を3.3Vにプルアップして,LCD
に直接つないでいるようでした。このへんの詳細がちょっと
分かりません。
とりあえず動きましたので,これから,ボチボチPICの方も,
プログラム見ていきたいと思います。
おもちゃの作成(4)---おもちゃの正体
おもちゃの作成を初めて何日か過ぎました。
やっと,だいたい完成です。
おもちゃは,なんのことはない,ポケモンgoプラス
という,ポケモンをボタン一つで捕獲できる器具を,自動で,
動作できるようにしたものです。
このポケモンgoプラスの中身を,諸兄のHPを参考に,
スイッチと振動モーターの結線を引き出し,フォットセンサー
で読み取った光に応じて,フォットカプラーにて,引き出し
た線を短絡させるという動作を,自動で行うようにしたものです。
諸兄のHPのように短絡させただけで,自動化できるのですが,
ちょっと,面白みがないので,手に入った光センサーと組み合わ
せて作りました。
ちょっと,大きいのですが,プラスチックの箱にいれて,遊んで
みる予定です。
おもちゃの作成(3)---プロトタイプ?完成
備忘録で,回路図の掲載です。
冗長なプログラムですが,掲載します。
あっちこっち,ゴミが残ってますし,一貫した表記では,
ないですね。その時の気分で,細かい部分が変わってしまいまし
た。
そうそう,回路図書いていて,フォットカプラーとタクトスイッチ
が逆になってること気がつきました。
回路図が間違いですね。面倒なので,そのままです。
LCDの接続には,全部で8本の結線が必要です。
I2C方式だと,半分の4本で済みます。
手元にI2C用のLCDもあるので,LCDのライブラリー
も諸兄のページを参考に作っておこうかと思います。
ついでにケースにいれときますかね。
おもちゃの作成(2)---プロトタイプ?完成
このところ取り組んでいたおもちゃのプロトタイプがほぼ完成
しました。
完成の前に,いくつかはまりました。今日は,AD変換の配線
にはまりました。
電気の基礎ができてる方は,こんなことはないのでしょうが,
AD変換がうまくいかなく,もがきました。
原因は,なんのことはない,AD変換のボリュームは,分圧して
ることを忘れていました。つまり,-側の配線をしていません
でした。こんな知識もないのか,とちょっとがっかりしました。
それと,センシングが微妙で,光源にセンサーが近すぎると
緑成分と青成分の両方に感応してしまいます。センシングの
時間を短くすると感度が悪くなるしで,ちょっと,いたちごっご
でした。
ただ,それぞれの色を感知するときは,その色の数値が
他の色の数値より多くなるので,プログラムで処理しまし
た。
備忘録のために,回路図,プログラム等,順次掲載しようと
思います。
作ったおもちゃはなんのことはない,青と緑のLEDの光を感知
して,感知した色を点灯させて,外部スイッチ(フォットカプラー)
をONにするという単純なものです。
外部スイッチをONにする時間と点灯LEDの時間,をどうするか
迷いましたが,外部スイッチをONにする時間とLEDをONに
する時間は,0.1秒程度にしました。
それと,長い時間その色を感知すると,0.1秒点灯の繰り返し
になりますので,一度,点灯させたら,1秒程度やすませる
というようなプログラムにしました。
単純に delay を使ってもよかったのですが,その間,センシング
も止まるので,割り込みを使って,約1秒の待ち時間をつくって
みました。