---「PIC」プログラミング再び (3)---

 パルスを作るのにPICで、自分でプログラムを組みましたが、
 自分でプログラム作らなくても、CCPモードというのがあって、
 このなかにPWMモードという機能があって、パラメーター
 さえ設定してやれば、パルスの生成ができるようです。
 ただ、その設定のパラメーターの与え方は、私には複雑で、
 まだ、よく理解できません。いずれ、マスターしたいと思いますが、
 とりあえず、自作のプログラムでも動いたので、今日もあれこれ
 やりました。
 今日は、
 
 の赤矢印(LOWの時間)の時間を変えることで、パルスの周波数を
 変えてモーターの動きを試してみました。
 2000HZのパルスで回転させていたときは、回転中にモーターの
 軸を指で持つと、回転をストップすることができました。
 このモーター壊れているのかのかなと思いましたが、
 約1500HZぐらいに落とすと、手で止められないくらいのトルク
 がでました。どうやら、設定があってなかったようです。
 1500HZから200HZぐらいまで、段階的に変えてみましたが、
 うまく動いたようです。
 この間で、周波数を変更できれば、スピードのコントロール
 ができそうです。
 PICで可変抵抗を使うには、AD変換が必要なので、
 次なる課題は、AD変換のプログラムです。

---「PIC」プログラミング再び (2)---

 PICのプログラムについて、少しずつ思い出してきました。
 とはいっても、完全にマスターなどしている訳ではないので、
 何年か前の水準にもどっただけです。
 今日は、PICで、ステッピングモーターのパルスを発生さて、
 中古のステッピングモーターを回してみました。
 UDK2120の取説には、必要なパルスの要件は、
 
 

 とありました。アセンブラでプログラムを組むと、命令に必要な
 クロック数から細かい設計もできるのでしょうが、Cからは、
 ちょと面倒で、私にはできません。ということで、実際にプログラム
 しては、動かしてみて、オシロデ確認して組みました。
 /******************************************
2014-10-15
PULSE SEISEI
********************************************/
#include __CONFIG(UNPROTECT & LVPDIS & BOREN & MCLRDIS & PWRTEN & WDTDIS & INTIO);
void WaitTime1 (void);
void WaitTime2 (void);
int dummy;
void main(void){
PORTA=0x00;//PORTAをLOWに
PORTB=0x00;//PORTBをLOWに
TRISA=0x08;//0000 1000 PORTAを出力に(RA3は入力に)
TRISB=0x00;//0000 0000 PORTBを出力に
CMCON=0x07; //1,2,17,18コンパレーターオフ 汎用端子を入出力へ
//パルスの生成
for(;;){
RA1=1;
dummy=1;//待ち時間だけHIGHに
dummy=1;
RA1=0;
WaitTime2();//待ち時間だけLOWに
}
}
// 待ち時間関数の呼び出し
void WaitTime1 (void){
int cnt1=1;
while(cnt1 > 0){
cnt1--;}
}
void WaitTime2 (void){
int cnt2=20;
while(cnt2 > 0){
cnt2--;}

 やってることは単純なことで、一つの端子の出力を、オン、オフ
 をしているだけです。ただ、当初予定していた二つの待ち時間
 の関数を使おうとしましたが、この関数を使うと、パルスの幅
 が50μsぐらいになるので、dummy=1という数字を代入すると
 いう意味のない命令を一つ実行するだけで、だいたい、取説
 にあった5μsの幅になりました。
 WaitTime2()の関数で、待ち時間のカウンターを20にすること
 で、パルスの周波数が約2kHになりました。
 2kHだと約240rpm/mの早さで回るようです。
 
 これで、目的にまた一歩近づきました。

---分厚いカタログ (2)---

 モノタロウから送られてきたカタログです。なんと,用途別に
 5冊。

 

 厚さは,重ねるとこれまた5cmぐらいでしょうか。

 

 結構買い物はしてますが,それほど多くはないので,
 モノタロウもきっと,赤字でしょうねえ。

---「PIC」プログラミング再び (1)---

 ちょっとした制御をPICでやろうとまた思いたちました。以前
 ハンダゴテタイマーをPICで作りましたが,そのプログラムを
 見てみると,全く忘れてしまいました。
 そこで,また,最学習することに・・・・・・・・。
 今回もプログラミング言語は「C」を使いますが,PICの細かい設定
 とうについて,全く忘れてしまいましたので,備忘録代わりに,
 メモ帳代わりに記録していきます。
 以前使った16F627Aです。
 PORTAレジスタ・・・・ポートAの出力端子の電力レベルの設定
      ポートAの出力端子(RA7~RA0)
    例 一括設定
        PORTA=Ob00000000(RA7~RA0が0Vに設定)
             0b・・・2進数
             ・・・・・・8進数
             0x・・・・・16進数            
      単独の設定       
        RA0=0(RA0を0Vに設定)
  PORTBレジスタも同様の設定
 TRISAレジスタ・・・・RA各端子の入出力の設定
             0を書き込むと出力端子になる
             1を書き込むと入力端子になる
    例 一括設定
        TRISA=0b00000000(RA7~RA0が出力端子に)
       単独の設定      
        TRISA3=0  (RA3を出力端子に)
      (16F627Aの場合RA5は入力専用なので,必ず入力に)
  CMCONレジスタ・・・・・・汎用端子の役割設定
       CMCOM=0x07 (下位3ビットを1に設定することで
                   1,2,17,18端子を入出力端子
                   に設定)
 
  今日は,

  

 
この本で,ここまで復習。
 プログラムを覚え初めの頃,
    A=A+1
 という表記が納得いきませんでした。数学や算数では,成り立ちません。
 この場合,「=」はイコール(等しい)ではなくて,代入するという
 意味です。ちなみに等しいかどうかの判別は,「==」イコール
 を二つ並べます。プログラム覚え立ての頃,ここではまりました。
 IF(A=1){処理1}
 こんな風に書いて思った結果がでませんでした。これだと,Aに1が
 代入されてしまいます。正しくは,
 IF(A==1){処理1}
 でした。

---ウッドデッキの修理 (4)---

 ウッドデッキの再塗装をするのに,高圧洗浄機(ケルヒャー)で,
 洗浄しました。
 手すりの部分ですが,かなり,塗料が劣化してます。

 

 洗浄直後の様子です。塗料の劣化もさることながら,木もかなり
 劣化して,劣化した部分が毛羽立っていました。

 

 

 乾燥してから,毛羽立ちを電動サンダーで,落としました。

 

 かなりきれいになりました。再塗装にあたって,古い塗装を剥離
 しなくてもいい塗料にしましたが,高圧洗浄機できれいにとれて
 しまいました。

 

 

 
 毛羽立ちをもう少し落として,再塗装します。

---分厚いカタログ---

 一般企業は,上半期と下半期の切り替えなんでしょうか。
 立て続けに「モノタロウ」と「NBK(鍋屋バイデック)から,
 分厚いカタログが送られてきた。

 

 
 NBKのものは,厚さ約5cm強です。
 同封されていた鏡をみると,『貴社におかれましては,・・・・・・』と
 あるので,主な対象は企業なんでしょうね。
 こんなもの,個人に送ってきて,利益があるのかなあ,と余計
 なこと考えてしまいます。それでも,個人で利用できるのはありが
 たいです。
 ミスミに代表されるように,対象を企業に限っているところも
 あるので。
 最近,プロ専用の会員制のHCが近くに開業しました。
 非常に興味があるのですが,ちょっと無理でしょうね。

---「原点カメラ」---

 手持ちの材料(真鍮)で、原点カメラのホルダーを作りました。
 作ったといいいっても、心中の太さを整え、中心に10mmφ
 の穴を開けて、コードの取り出し口を付けた部品をを一つと
 チャックに加えられるようにした蓋に当たる部品の二つです。

 

 中心に10mmφの穴を開けるのと、チャックに咥える部分
 の作業が面倒でした。特に中心にあけた穴は、原因はわかり
 ませんが、多少偏心してしまい、蓋をねじ入れてみると、
 多少の段差ができました。
 USBカメラを入れてみるとおさまりはいいようです。

 

 中心に開けたあなが、多少大きくなったようで、当初からの予定
 ですが、何カ所かイモネジで固定する予定です。
 フライスに咥えて、動かしてみました。

 

 もうちょっと長さが短いとよかったのですが。
 PCの画面もいいようです。

 カメラの光学軸の補正の方法がいまいちなので、もう一度、
 確認してみようと思います。

 
 また道具が増えました。

---ウッドデッキの修理 (3)---

 せり出し部分の作業がおわりました。

 

 今回土台の部分の以前と同じキシラデコールのバリサンダと
 いう色の塗料を使いました。

 

 足りなくなったので,HCに求めにいくと,なんと取り扱いが
 縮小されてました。後継は,水溶性のもののようで,割高に
 なってました。
 別なHCにいくと,以前の通り,いろんな色のものが並べてありま
 した。
 
 昨日から塗装をして定尺にそろえておいたいたを並べて,
 固定します。

 

 最初は,固定のビスが表面からは分からないように,
 全部裏面から,固定しましたが,今回は,サボって,表面から
 固定しました。
 順番が逆なのですが,固定してから,エッジのバリを
 ベルトサンダーざっとならして,残った塗料で,再塗装。
 上部に目隠しをつけて完了です。
 来週にでも,ウッドデッキ全体の再塗装を行います。
 大分いたんできましたが,再塗装で生き返ると思います。
 再塗装に使うのは,以前にも使ったメーカーのオスモです。

 

 ドイツ製のようで,これも結構な値段がしますが,自然素材を
 使っていて,人間には優しいようです。

---ウッドデッキの修理 (2)---

 定尺に切断した材料のに防腐剤をぬります。だめかとおもいま
 したが,以前に使った残りの塗料があったので,開けてみると
 使えそうなので,それを使いました。この,へんな色がよかった
 のですが,これを塗り終わると,同じ色はなくなります。

 
 その間に,いたんだ板を取り外し,少し長くするので,受けの部分
 を前にだします。左側が終わりましたので,右側を同じように,
 せり出させます。

 

 必要な長さにするのに,ノコギリや電動丸鋸で切ったりすると,
 久しくかいでなかった洋松の良い香りがします。

---ウッドデッキの修理 (1)---

 5年ぐらい前に作ったウッドデッキが大分傷んできたので,
 補修をすることにしました。
 傷みの激しいステップの部分と全体的な再塗装をする予定。

 

 アーチ状にして,ベニヤで囲っていましたが,ベニヤも痛んだので
 外してみると大分くさってました。ここを補修します。
 材料はどうしようかと思いましたが,やはり,同じ材質の
 ウェスタンレッドシザーズにしました。例によって,ウッドデッキを
 作る時に利用した木工ランドから,今回も取り寄せました。
 今日早速材料が届いたので,定尺にカットだけしました。

 

 防腐剤を塗ってから,組み立てます。
 防腐剤は,今回もちょっと高いのですが,オスモカラーの
 オスモ ウッドステインプロテクターにしました。

 

 以前使ったデッキオイルは,廃番になってました。

 再塗装の時に以前の塗料をはがさなくていいというので選んだの
 ですが,時代の流れでしょうかね。