48時間以内の記事は
で表示されます

ヤフオクのPC

フライス盤用に専用のノートPCを使ってきましたが、
急に、Cドライブ自動補修の表示が出ました。
もともと、ヤフオクで買ったものでしたので、
思い切って買い換えました。
でも、買い換えたPCもヤフオク製(笑
でなんですが、やっとセットを終えて、初めて運転しました。
エラーが出ずに最後まで終えました。
以前は、エラーが出ていやになっていましたが、、、、
やっぱ、PCとの相性ってあるんですかね〜?
写真は、出品者が使っていた写真です。
今度のは、早いし、タッチパネルなので便利ですよ。
Re: ヤフオクのPC
TRさん,こんにちは。
>急に、Cドライブ自動補修の表示が出ました。
ハードデスクのエラーでしょうか。ハードデスク(HDD)も,
寿命があるようで,ある一定期間過ぎると,エラーセクターの割合が,
多くなるようです。
少しずつエラーがでてくれるとまあいいのですが,突然,読み書き不能,なんてことになると,あせりますね。
前に,一度,メインで仕事でも使ってたノートがこの状態になりました。
幸いバックアップとっておいたので,大事にはいたりませんでしたが・・・・・・
HDDも当たり外れがあるようで,もつものは結構もつようですが,だめなものは,短いですね。
あまり好きではないのですが,最近は,HDDではなくて,SDDを使ってるものもあるようですね。
これも寿命があるようですが・・・・・・。
ところで,今やっている,おもちゃ作成のめどがたちましたので,ボチボチアップしていこうかと思います。
今回,やっていることはたいしたことはないのですが,
PICのEEPROMを使ってみようかなと思ってます。
>急に、Cドライブ自動補修の表示が出ました。
ハードデスクのエラーでしょうか。ハードデスク(HDD)も,
寿命があるようで,ある一定期間過ぎると,エラーセクターの割合が,
多くなるようです。
少しずつエラーがでてくれるとまあいいのですが,突然,読み書き不能,なんてことになると,あせりますね。
前に,一度,メインで仕事でも使ってたノートがこの状態になりました。
幸いバックアップとっておいたので,大事にはいたりませんでしたが・・・・・・
HDDも当たり外れがあるようで,もつものは結構もつようですが,だめなものは,短いですね。
あまり好きではないのですが,最近は,HDDではなくて,SDDを使ってるものもあるようですね。
これも寿命があるようですが・・・・・・。
ところで,今やっている,おもちゃ作成のめどがたちましたので,ボチボチアップしていこうかと思います。
今回,やっていることはたいしたことはないのですが,
PICのEEPROMを使ってみようかなと思ってます。
Eagle断念

少し前からここで、PICによるポンプ制御をやってきましたが、
昨日、壊れたポンプを写真のポンプに交換しました。
今度も中華製ですが、少し弄って思いましたけど、
最近の中華製は、品が良くなってきたと思いました。
安いし、、、ますます日本製が負けそうです。
表題ですが、
プリント基板作成ソフト Eagleを少しかじってみました。
それでなんですが、FISION360に取り込むのが、めんどくさそうです。
あまり手掛けない基板なので、断念しました。
以下のURLをみたら、げんなりしました(苦笑
https://ehbtj.com/electronics/make-circuit-board-with-cnc/
Re: Eagle断念
TRさん,猛牛ロックさん,こんばんは。
またまた亀レスです。
Eagleですけど,Autodeskの傘下に入ったようですね。
詳しくみてないのですが,Gコードも楽にだせるかも・・・。
猛牛ロックさん,ちょっとお聞きしたいのですが,
PIC等のヘッダーファイルから,
コンパイルが通る正しい表記が推測できるのでしょうか?
#deefine
の部分は分かるのですが,
その後に書かれている構造体の意味がちょっと不明です。
具体的に書くと,
次のような記述から, PCONbits.OSCF という表記がわかるのでしょうか。
// Register: PCON
#define PCON PCON
extern volatile unsigned char PCON __at(0x08E);
#ifndef _LIB_BUILD
asm("PCON equ 08Eh");
#endif
// bitfield definitions
typedef union {
struct {
unsigned nBOR :1;
unsigned nPOR :1;
unsigned :1;
unsigned OSCF :1;
};
struct {
unsigned nBO :1;
};
struct {
unsigned nBOD :1;
};
} PCONbits_t;
extern volatile PCONbits_t PCONbits __at(0x08E);
またまた亀レスです。
Eagleですけど,Autodeskの傘下に入ったようですね。
詳しくみてないのですが,Gコードも楽にだせるかも・・・。
猛牛ロックさん,ちょっとお聞きしたいのですが,
PIC等のヘッダーファイルから,
コンパイルが通る正しい表記が推測できるのでしょうか?
#deefine
の部分は分かるのですが,
その後に書かれている構造体の意味がちょっと不明です。
具体的に書くと,
次のような記述から, PCONbits.OSCF という表記がわかるのでしょうか。
// Register: PCON
#define PCON PCON
extern volatile unsigned char PCON __at(0x08E);
#ifndef _LIB_BUILD
asm("PCON equ 08Eh");
#endif
// bitfield definitions
typedef union {
struct {
unsigned nBOR :1;
unsigned nPOR :1;
unsigned :1;
unsigned OSCF :1;
};
struct {
unsigned nBO :1;
};
struct {
unsigned nBOD :1;
};
} PCONbits_t;
extern volatile PCONbits_t PCONbits __at(0x08E);
Re: Eagle断念
eagleからdxfやNCコードの出力は、ulpを選べば出来ます。
ただ、雑多にいろんな物があるので選択するのも大変です。
印象ではJWWの外部変形みたいな感じで、同種類のものが複数あります。
fusionに取り込むならdxfからになるのかな?
一番面倒なのは新規部品を作らなければならない所ですね。
> MABOさん
私の場合はちゃんと学習した訳ではないので、何となくしか判りません。
そしてこのような記述を私自身がしたことはありません。
で、私の理解ではこの記述部分は、「その機能はあるけれど、アドレスしかないレジスタの場所に
名前を付けている」所です。
・変数PCONのレジスタの番地が0x8Eにある。=0x8eのアドレスを変数PCONと名付けている
・共用体変数PCONbits_tは下位から、nBOR(1bit),nPOR(1bit),※空き=リザーブ(1bit),OSCF(1bit),nBO(1bit),nBOD(1bit)となっている。
※多分上位2bitは空きだと思います。
・共用体変数PCONbits_tもアドレスは0x8eである
と言う事だと思います。で、
PCONbits_t.OSCF=0;
と書けばこの0x8eにあるレジスタ(PCON)の下から4番目が0になります。
<追記>
ちょっと間違えたかもしれません.
extern volatile PCONbits_t PCONbits __at(0x08E);
の部分はPCONbits_tの形をしたPCONbits変数という意味で、変数名としてはPCONbitsになるのかもしれません。
それだと
PCONbits.OSCF=0;
という形ですね。
ただ、雑多にいろんな物があるので選択するのも大変です。
印象ではJWWの外部変形みたいな感じで、同種類のものが複数あります。
fusionに取り込むならdxfからになるのかな?
一番面倒なのは新規部品を作らなければならない所ですね。
> MABOさん
私の場合はちゃんと学習した訳ではないので、何となくしか判りません。
そしてこのような記述を私自身がしたことはありません。
で、私の理解ではこの記述部分は、「その機能はあるけれど、アドレスしかないレジスタの場所に
名前を付けている」所です。
・変数PCONのレジスタの番地が0x8Eにある。=0x8eのアドレスを変数PCONと名付けている
・共用体変数PCONbits_tは下位から、nBOR(1bit),nPOR(1bit),※空き=リザーブ(1bit),OSCF(1bit),nBO(1bit),nBOD(1bit)となっている。
※多分上位2bitは空きだと思います。
・共用体変数PCONbits_tもアドレスは0x8eである
と言う事だと思います。で、
PCONbits_t.OSCF=0;
と書けばこの0x8eにあるレジスタ(PCON)の下から4番目が0になります。
<追記>
ちょっと間違えたかもしれません.
extern volatile PCONbits_t PCONbits __at(0x08E);
の部分はPCONbits_tの形をしたPCONbits変数という意味で、変数名としてはPCONbitsになるのかもしれません。
それだと
PCONbits.OSCF=0;
という形ですね。
Re: Eagle断念

PIC、やっていますね。
構造体って言葉をつい最近耳にしました。
理解しようとしたけど、資料が見つからず断念しています。
分かりやすく解説されていたらいいのに。
実は、今日、やっと、SEC基板へのインターフェース(自作)を直せました。
作った当時は、電気が分からなくて、大変でした。
図面も引けずに、なんちゃって実態配線図(笑
その祟りで、分かるまで時間がかかりました。
今思えばってことが、出てきました。
時間ができたら、改良したいです。
写真は、自作インターフェースを収めた操作盤の中です。
今回、ついでに、最新のMach3とスムースステッパーのソフトも入れなおしました。
が、相変わらず、一度だけでしたが、エラーを起こして停止しました。
ま〜、今回のソフトの入れなおしたことによって、エラーは断然減った感じです。
Re: Eagle断念

******TRさん*****
TRさん,制御基板ののボックご紹介ありがとうございます。
きれいにまとまってるので,うらやましく思いました。
私はいつもそうなんですけど,後で自作のもの見てみると,
なんでこんなことやったのか,わからなくなりますので,
いつも記録は大事だななんで毎回思ってます。
まあ,そのためのブログでもあるんですけど。
構造体は,
http://www.isl.ne.jp/pcsp/beginC/C_Language_14.html
あたりにも説明ありますよ。私も一番苦手な部分です。
構造体やポインタの操作になると,頭かかえてしまいます。
======猛牛ロックさん=====
猛牛ロックさん,丁寧なご説明ありがとうございます。
やっと,なんとなく分かりかけました。(笑)
PCONbits_t.OSCF になるか PCONbits.OSCFなるのか,
明確に分かるような記述がヘッダーファイルにでもあると,とても親切だと思うのですが,
諸兄のみなだんは,この辺は,難なくクリアーなのかなあと思ったりしてます。
それから,もう一つ相談なのですが,今,カラーセンサーの読み取りに挑戦してます。
秋月のS9706というセンサーなんですが,プログラムで,
ポーリングがいいか,割り込みがいいか,思案してます。
読み取りに手順は,
10ms程度,データを積算で取り込む
次の36パルスでデータを読み込む
という動作なのですが,これ,割り込みで処理する意味あるでしょうか。
諸兄のプログラム見ると,みなポーリングのようです。
本日,部品が届いたので,変換基板に半田付け線をつけました。
Re: Eagle断念
遅レスになりました。
データシートを見ましたけど、基本的にはどちらでも良いと思います。
積算時間も10ms固定なら__delay_ms(10)で済みますけど、
暗い条件だと100msや1sにしないと測定できません。
どうするかは「その他の処理」次第ですね。
センサーも1個なのか複数なのか?1回測定するだけなのか、測定し続けて処理するものをつくるのか?
そして、その結果を受けて、単に表示するだけなのか、連続して動作させるものを作るのか?とか、全体の条件です。
データシートを見ましたけど、基本的にはどちらでも良いと思います。
積算時間も10ms固定なら__delay_ms(10)で済みますけど、
暗い条件だと100msや1sにしないと測定できません。
どうするかは「その他の処理」次第ですね。
センサーも1個なのか複数なのか?1回測定するだけなのか、測定し続けて処理するものをつくるのか?
そして、その結果を受けて、単に表示するだけなのか、連続して動作させるものを作るのか?とか、全体の条件です。
ワーク原点
謹賀新年
皆さん明けましておめでとうございます。
今日は、超久しぶりに、元朝参りに行きました。
区長ってご存知ですか?
都会では死語かも。
実は、今年度、区長になりまして、地域住民と行政のパイプ役を担っています。
元朝参りも、区長の仕事の一つです。
神社でお札を預かってきて、希望者に配ってきました。
勿論、希望者はお金を払っています。
話題替わって、昨年末からのAD変換ですが、
以下のように、ひと工夫をして、
ボリュームの開き具合に応じて、低中高の3段階に分けて、
点滅速度に変化を付けました。
結構楽しんでいます。
今年も、どうぞ、宜しくお願いします。
unsigned int adconv() {
GO_nDONE = 1; // アナログ値読取り開始指示
while (GO_nDONE); // 読取り完了まで待つ
//3段階動作表示用LED点滅
if (RB7 = 1 && ADRES < 500) {
LATA1 = LATA0 = 1;
__delay_ms(50);
LATA1 = LATA0 = 0;
__delay_ms(20);
}
else if (RB7 = 1 && 500 <= ADRES && ADRES < 800) {
LATA1 = LATA0 = 1;
__delay_ms(25);
LATA1 = LATA0 = 0;
__delay_ms(10);
}
else if (RB7 = 1 && 800 <= ADRES) {
LATA1 = LATA0 = 1;
__delay_ms(10);
LATA1 = LATA0 = 0;
__delay_ms(5);
} else {
LATA1 = LATA0 = 0;
}
return ADRES;
今日は、超久しぶりに、元朝参りに行きました。
区長ってご存知ですか?
都会では死語かも。
実は、今年度、区長になりまして、地域住民と行政のパイプ役を担っています。
元朝参りも、区長の仕事の一つです。
神社でお札を預かってきて、希望者に配ってきました。
勿論、希望者はお金を払っています。
話題替わって、昨年末からのAD変換ですが、
以下のように、ひと工夫をして、
ボリュームの開き具合に応じて、低中高の3段階に分けて、
点滅速度に変化を付けました。
結構楽しんでいます。
今年も、どうぞ、宜しくお願いします。
unsigned int adconv() {
GO_nDONE = 1; // アナログ値読取り開始指示
while (GO_nDONE); // 読取り完了まで待つ
//3段階動作表示用LED点滅
if (RB7 = 1 && ADRES < 500) {
LATA1 = LATA0 = 1;
__delay_ms(50);
LATA1 = LATA0 = 0;
__delay_ms(20);
}
else if (RB7 = 1 && 500 <= ADRES && ADRES < 800) {
LATA1 = LATA0 = 1;
__delay_ms(25);
LATA1 = LATA0 = 0;
__delay_ms(10);
}
else if (RB7 = 1 && 800 <= ADRES) {
LATA1 = LATA0 = 1;
__delay_ms(10);
LATA1 = LATA0 = 0;
__delay_ms(5);
} else {
LATA1 = LATA0 = 0;
}
return ADRES;
Re: 謹賀新年
あけましておめでとう御座います。
今年もよろしくお願いいたします。
元朝参りも、ずーっとしていませんね。
それどころか、ここ数年は初詣もしていません。
寒いのは苦手なんです。それに大酒のみなので。
昨日はタクシーで実家に行きました。
> if (RB7 = 1 && ADRES < 500) {
文法的に間違いでは無いのでエラーにはなりませんけど、多分思っている事とは違います。
本当は「==」だと思います。
で、その文の意味は
RB7=1
の部分はRB7に1が代入されて評価されます。
1で代入なので常に真です。
なので、そのままの意味なら
RB7=1;
if(ADRES < 500) {
と同等の意味になります。
※そこ部分をRB7=0とした場合は常にRB7は偽なので、if文も常に偽になります。
あと、もう一つは、この位の点滅間隔だと「点滅の速さ」では無く「明るさ」の違いになります。
でも、3つの点滅パターンは点灯:消灯の割合は50:20(71%)、25:10(71%)、10:5(67%)と、どれも同じ程度の明るさです。、
「チラ付き具合の区別」という感じです。
点滅間隔での判断なら、全点灯/0.6s毎の切り替え/0.2秒毎のきりかえ、のような3段階が良いと思います。
明るさで判断したいなら、全点灯/40%/10%等のduty比にした方が良いです。そして、チラつきがを感じないような
100Hz程度以上の周波数にした方が良いです。
※でも識別としてはどうしても点滅間隔には敵いません。明るさは変化して比較対象が無いと難しいです。
プログラムのデバッグとしても、明確に、「どこの部分で止まっている」かを識別できるようにした方が良いです。
void adconv(void) {//戻り値が必要でないなら
GO_nDONE = 1;
while (GO_nDONE);
if (RB7 == 1) { //RB7がHIGH
if (ADRES < 500) {
LATA1 = LATA0 = 1;
} else if (ADRES < 800) {
LATA1 = LATA0 = 1;
__delay_ms(600);
LATA1 = LATA0 = 0;
__delay_ms(600);
} else {
LATA1 = LATA0 = 1;
__delay_ms(200);
LATA1 = LATA0 = 0;
__delay_ms(200);
}
} else {//RB7がLOW
LATA1 = LATA0 = 0;
}
}
今年もよろしくお願いいたします。
元朝参りも、ずーっとしていませんね。
それどころか、ここ数年は初詣もしていません。
寒いのは苦手なんです。それに大酒のみなので。
昨日はタクシーで実家に行きました。
> if (RB7 = 1 && ADRES < 500) {
文法的に間違いでは無いのでエラーにはなりませんけど、多分思っている事とは違います。
本当は「==」だと思います。
で、その文の意味は
RB7=1
の部分はRB7に1が代入されて評価されます。
1で代入なので常に真です。
なので、そのままの意味なら
RB7=1;
if(ADRES < 500) {
と同等の意味になります。
※そこ部分をRB7=0とした場合は常にRB7は偽なので、if文も常に偽になります。
あと、もう一つは、この位の点滅間隔だと「点滅の速さ」では無く「明るさ」の違いになります。
でも、3つの点滅パターンは点灯:消灯の割合は50:20(71%)、25:10(71%)、10:5(67%)と、どれも同じ程度の明るさです。、
「チラ付き具合の区別」という感じです。
点滅間隔での判断なら、全点灯/0.6s毎の切り替え/0.2秒毎のきりかえ、のような3段階が良いと思います。
明るさで判断したいなら、全点灯/40%/10%等のduty比にした方が良いです。そして、チラつきがを感じないような
100Hz程度以上の周波数にした方が良いです。
※でも識別としてはどうしても点滅間隔には敵いません。明るさは変化して比較対象が無いと難しいです。
プログラムのデバッグとしても、明確に、「どこの部分で止まっている」かを識別できるようにした方が良いです。
void adconv(void) {//戻り値が必要でないなら
GO_nDONE = 1;
while (GO_nDONE);
if (RB7 == 1) { //RB7がHIGH
if (ADRES < 500) {
LATA1 = LATA0 = 1;
} else if (ADRES < 800) {
LATA1 = LATA0 = 1;
__delay_ms(600);
LATA1 = LATA0 = 0;
__delay_ms(600);
} else {
LATA1 = LATA0 = 1;
__delay_ms(200);
LATA1 = LATA0 = 0;
__delay_ms(200);
}
} else {//RB7がLOW
LATA1 = LATA0 = 0;
}
}
Re: 謹賀新年
猛牛ロックさん、おめでとうございます。
お〜!
大酒のみだったんですか。
自分は、ほどほどの程度です。 でも、晩酌はやっています、習慣になています。
>> if (RB7 = 1 && ADRES < 500) {
文法的に間違いでは無いのでエラーにはなりませんけど、多分思っている事とは違います。
本当は「==」だと思います。
これ、掲示板に書き込んだ後に気づきまして、速攻で治しました(笑い。
この件も、何度も言われていましたので、気付きました。
>void adconv(void) {//戻り値が必要でないなら
本当にそうでした。
何故か、PWMが動作しなくなりました。
それと、点滅を加えたら、動作が緩慢になりました。
32MHzにしないと駄目かもしれません。
テスト中の話ですが、気のせいか、PICがほんのりと暖かなったような気がします。
追記
自作の基板は、プリントですか?
それと、はんだ付けの際、ピンセットを使いますか?
https://www.amazon.co.jp/dp/B07C4MPJSW/?coliid=I38WVPZXS6XWWP&colid=1PYQ17QDJ13GR&psc=0&ref_=lv_ov_lig_dp_it
お〜!
大酒のみだったんですか。
自分は、ほどほどの程度です。 でも、晩酌はやっています、習慣になています。
>> if (RB7 = 1 && ADRES < 500) {
文法的に間違いでは無いのでエラーにはなりませんけど、多分思っている事とは違います。
本当は「==」だと思います。
これ、掲示板に書き込んだ後に気づきまして、速攻で治しました(笑い。
この件も、何度も言われていましたので、気付きました。
>void adconv(void) {//戻り値が必要でないなら
本当にそうでした。
何故か、PWMが動作しなくなりました。
それと、点滅を加えたら、動作が緩慢になりました。
32MHzにしないと駄目かもしれません。
テスト中の話ですが、気のせいか、PICがほんのりと暖かなったような気がします。
追記
自作の基板は、プリントですか?
それと、はんだ付けの際、ピンセットを使いますか?
https://www.amazon.co.jp/dp/B07C4MPJSW/?coliid=I38WVPZXS6XWWP&colid=1PYQ17QDJ13GR&psc=0&ref_=lv_ov_lig_dp_it
Re: 謹賀新年

> それと、点滅を加えたら、動作が緩慢になりました。
何ででしょうね?多分、動作クロックのせいではないと思います。
> PICがほんのりと暖かなったような気がします。
これが関連しているのかも知れません。暖かくなるというのはそれだけPICの出力があると言う事です。
全体のプログラムや回路が解らないのですけど、もしかしたら出力が多すぎるのかも知れません。
※大きく見れば、PICも1つの抵抗のような物です。PICの内部を流れる電流の量によって、PICが発熱します。
今回は片面の生基板を使っています。大抵は?CNCで削っています。
添付図はその図面です。
(大小1つずつでよかったのですけど、それだけ同時に作りました。)
手配線は苦手です。また、ケースなどに綺麗に収めるのも苦手です。
そのピンセットは良さそうですね。セラミックですか。
かっこいいのに安くあるんですね。
はんだ付けの時にはちょっとだけ使いますね。でも普段使っているステンレスのやつです。
基板のはんだ付けは、左手に半田、右手にコテなので、前後の作業ですね。
あっ、SMDの抵抗とかはピンセットも使います。
でも、はんだ付けも素人レベルですよ。
一番重要なのは顕微鏡だと思います。
Re: 謹賀新年
TRさん,猛牛ロックさん,新年おめでとうございます。
今年もよろしくお願いいたします。
=====================
TRさん,私も何年構えに,やったことあります。
私の地区は,いくつかの組が集まって,藩が組織され,
藩がいくつか集まって,町の組織になり,その上に市の組織があります。
私がやったのは一番下の組の組長です。
まあ,仕事と言えば町内会費を集めることと,回覧板を
まとめて,回覧できるようにする手はずぐらいです。
私も,例年通り元旦参りいきましたよ。
**************************
猛牛ロックさん,
>今回は片面の生基板を使っています。大抵は?CNCで削っています。
>添付図はその図面です。
(大小1つずつでよかったのですけど、それだけ同時に作りました。)
いいですねえ。CNCで基盤削れれば,配線のミスもすくなくなりますよね。
今年は,挑戦してみるかなあ。
今年もよろしくお願いいたします。
=====================
TRさん,私も何年構えに,やったことあります。
私の地区は,いくつかの組が集まって,藩が組織され,
藩がいくつか集まって,町の組織になり,その上に市の組織があります。
私がやったのは一番下の組の組長です。
まあ,仕事と言えば町内会費を集めることと,回覧板を
まとめて,回覧できるようにする手はずぐらいです。
私も,例年通り元旦参りいきましたよ。
**************************
猛牛ロックさん,
>今回は片面の生基板を使っています。大抵は?CNCで削っています。
>添付図はその図面です。
(大小1つずつでよかったのですけど、それだけ同時に作りました。)
いいですねえ。CNCで基盤削れれば,配線のミスもすくなくなりますよね。
今年は,挑戦してみるかなあ。
Re: 謹賀新年

基板自体は、EAGLEやKiCADを使って見たことはありますけど、暫く使っていません。
部品図面や高さなどの検討だとどうしても、JWWが必須となります。
そうなると、そのままそこに配線も書きだしていく、という感じになっています。
で、それをNCVCでNCコードにしています。
プログラミング(IDE)はPRO MICROでもSTM32ボードでも、ARDUINO IDEです。
あとよく使うのは(OPEN OFFICEの)CALCです。(EXCEL相当のソフト)
ダイヤル部の加工などは、JWWでの座標(点)を拾って、CALCで編集しています。
<追記>
> 配線を描いて、mach3用プログラムの為のソフトは何を使っていますか?
もしかして、これはドライバ的な事を聞いたのでしょうか?
それなら何もありませんよ。
私の作ったのは変形キーボードです。なので、ウィンドウズの標準ドライバで、HIDキーボードと認識します。
MACHにとっては通常のキーボードの↑↓→←等のキーで操作するのと何も変わりません。
Re: 謹賀新年

STM32なら、右側は「+」「-」「STOP」と同じ様にSWのみです。
(なので、簡単すぎて図面も書く必要が無かったのです)
添付図にある、抵抗値だけはちょっと気を使っています。
※この部分は以前やった事のある抵抗値を使いまわしています。
この割合にすると、
char num=(analogRead(A1)+72)>>7;//72は適当な幅を持たせるためのもの
とすると、numが
8の時はどのボタンを押していない。
0〜7ならその数字に相当するボタンを押している
となります。同時押しは通用しません。
LED出力はありますけど、それはマイコン外でのSW処理です。
(でもマイコンコントロールにした方がよかったかも?)
本当は単色=白を予定していたのですけど、丁度いい高さのスライドスイッチが見つからず、
他で使っているのと同じ3ポジションの物を使って、半ば仕方なく赤青2色LEDにしました。
今更ですけど、ボタン確認用のブザー、或いはLEDを付けておいても良かったな、と思っています。
Re: 謹賀新年
>配線はJWWです。ここでの投稿も作図したものは殆どJWWで書いています。
そうでしたか。
抵抗等の穴あけピッチは、逐一、インチで計算して作図しているのですか?
そして、Z軸の掘り下げる深さはどれくらいにしているのでしょうか?
きっと、FUSION360でも出来そうですね。
そうでしたか。
抵抗等の穴あけピッチは、逐一、インチで計算して作図しているのですか?
そして、Z軸の掘り下げる深さはどれくらいにしているのでしょうか?
きっと、FUSION360でも出来そうですね。
Re: 謹賀新年
電気系の場合は等倍で、目盛(GRID)を2.54で、1/2を標準にしていますね。
もちろん、途中で、切り替えることもあります。
新規部品を書くときには寸法を入れますけどインチを入れる事は殆ど無いです。
大抵の図面でもmmでかいてありますから。
基板のパターン切削なら、0.1mmです。穴は2.3か2.4程度だと思います。
勿論、FUSIONでも出来るでしょうけど、基板パターンだけならやはり基板CADの方が簡単でしょうね。
線がくっ付いて連動して動きますし、配線チェック機能もあったりしますから。
※はんだ付けはやはりプリント基板の方がやりやすいですよ。
何といっても予備半田がしてありますから、SOPとかTQFPなんかだと小手を押しあてただけでも綺麗にくっついたりします。
もちろん、途中で、切り替えることもあります。
新規部品を書くときには寸法を入れますけどインチを入れる事は殆ど無いです。
大抵の図面でもmmでかいてありますから。
基板のパターン切削なら、0.1mmです。穴は2.3か2.4程度だと思います。
勿論、FUSIONでも出来るでしょうけど、基板パターンだけならやはり基板CADの方が簡単でしょうね。
線がくっ付いて連動して動きますし、配線チェック機能もあったりしますから。
※はんだ付けはやはりプリント基板の方がやりやすいですよ。
何といっても予備半田がしてありますから、SOPとかTQFPなんかだと小手を押しあてただけでも綺麗にくっついたりします。
Re: 謹賀新年
こんなページを発見してしまった。(フォルムさんの所です)
arduino テパ
http://forme26a.blogspot.com/2017/02/arduino.html
やっぱりSTMボードにしておけば良かったなぁ〜。
PRO MICROは誰でもやりそうだし。(といっても誰もいないと寂しいかも)
でもこれ、何でPRO MICROを同じ面に付けてるんだろう?
単に試作用、と言う事かな?
基板も超シンプルです。GNDは思いっきり共通ですね。こうした方が良いのかなぁ?
arduino テパ
http://forme26a.blogspot.com/2017/02/arduino.html
やっぱりSTMボードにしておけば良かったなぁ〜。
PRO MICROは誰でもやりそうだし。(といっても誰もいないと寂しいかも)
でもこれ、何でPRO MICROを同じ面に付けてるんだろう?
単に試作用、と言う事かな?
基板も超シンプルです。GNDは思いっきり共通ですね。こうした方が良いのかなぁ?
大晦日のご挨拶

今年もいよいよ終わりですね。
大変お世話になりました。
今年は例年になく、あっという間に終わったって感じがします。
お陰様で、病気や怪我もなく過ごせました。
今日は、最後の大掃除、適当にやって、後は好きな事でもやります。
それから、モーターのPWM制御ですが、写真がそれです。一応、完成としました。
以前のものは、秋月のPWMキットと、SEC基板からの信号を受けるボードの2枚が必要で、大きなものでしたが、
PICにより、便利になり且つ、小さくなりました。
これも、皆様方のお陰です。
来年も宜しくお願いします。
Re: 大晦日のご挨拶

あと残るのは
・若干のコードの書き換え
・表示シール
・USBケーブル(1.5mのケーブルだとちょっと短かったので3mのを発注)
位になりました。
動作確認をしたのですけど、例えば1クリックあたり1mmや0.1mmだと
速く回すとバッファに溜まった分が、ダイヤル停止後もマシンが動きます
この辺りがやりにくいように感じました。
というか、1mmのレンジは逆に誤動作に繋がりやすいので付けない方が賢明でした。
MABOさんの手パはその辺りはどうなっているのでしょうか?
私はその位置(1mmのレンジを予定していたスライドスイッチ位置)は疑似パワーオフ=操作不可にしようかと思っています。
それと、ダイヤルを回すと↑→などのキーを送っているのですけど、STEP指定は送っていません。
デフォルトでSTEPにしているからです。
でも、途中で、PC画面上でCONTに切り替えた場合に、切り替えた事を、疑似手パが判っていないのでCONTモードに
なってしまっています。
そのあたりの、例えば
・前回動作から1秒以上経過していてダイヤルが回ったらSTEP指定のコードを入れる&誤動作防止の為に
1クリック目は回さない
つまり、前回から1秒経過していたら、最初のクリックはSTEP指定を入れて、経過していなければ動かすキーコードをいれる
という対処にしようと思います。
ていうか、その部分のコードは既に書き換えました。疑似パワーオフの方は全体を見なければならないのでまだです。
もう一つ残念な点は、おもちゃエンコーダなので、ダイヤルを付けると径が大きくてクリック感が少なくなります。
そうなると、回りやすくなってしまい、誤動作に繋がりやすいと思います。
なので、自分で割りを入れて、停止位置を作るかもしれません。でも、それは後に置いといて、取りあえずそのまま使おうと思います。
いやー、実は新PCの方なのですけど、使っていたら何故かMACHが立ちあがらなくなってしまって、
「MACH3を起動すると同時にPCが再起動する」、という現象に見舞われました。
PCとしては何の異常も感じられずサクサク動きます。
で、パラレルドライバやMACHの再インストール等をしてなんとかMACHを起動させるところまで行っても、
何故か軸は動かない(けれども、リミットスイッチ等は反応している)という状況でした。
で、パラレルドライバ?を違う設定に変えたら、またPCの再起動になったり…と、堂々巡りです。
結局、OSのリカバリーから始めて、前のPCに付いていたグラフィックボードを取り付けたら安定しました。
その後に、手パの基板切削やダイヤル部の加工などを、テストを兼ねてしていたのですけど、その間は何も問題無しです。
プログラム上で一番困難だったのは、文字コード→キーコード変換でした。
送った2バイトのコードはMACH3に付いているSCREEN4で、ホットキー入力の時に確認できるのですけど、
実際に、マイコンから送られるコードが、ちょくちょくそれと一致しないんですよね。
特にCtrl+Altを使うと全然違うキーコードが生成されたりします。
ALTだけでも、例えばMACH3の停止(STOP)はALT+Sキーですけど、
Keyboard.press(KEY_LEFT_ALT);
Keyboard.press('s');
とSが小文字の方じゃないと駄目だったりです。
マイコンからは、コードを書いてマイコンに書き込んで、SCREEN4のその画面で試して同じ数字になるかを確認、
みたいなことをしないと何番を実際に送っているのか判らないので大変でした。
また、WINDOWSやMACH3自体に使われているショートカットキーがはっきりしないので、どのキーに割り当てていいのか?という部分が
思いのほか手間取りました。
探せばどこかに一覧表みたいなものがあるのでしょうか?
まぁ、思わぬ所に落とし穴はあるものです。
Re: 大晦日のご挨拶
完成まじかまで来てよかったですね。
猛牛ロックさんならできるのでしょうけど、凄いですよ。
ちょっとだけ教えてください。
No.1386で、
>実際は前の数行の内の50→50.0と「.0」を付けてほしい、と言う事です。
と言っていますが、どうして0を付けないといけないのでしょうか?
宜しくお願いします。
追記
ネットで「浮動小数点」で検索したら、ありました。
コンピューターの世界のことのようですね。
桁数あふれを起こさないように、小数点以下第1位の0を付けて計算させた訳ですね。
猛牛ロックさんならできるのでしょうけど、凄いですよ。
ちょっとだけ教えてください。
No.1386で、
>実際は前の数行の内の50→50.0と「.0」を付けてほしい、と言う事です。
と言っていますが、どうして0を付けないといけないのでしょうか?
宜しくお願いします。
追記
ネットで「浮動小数点」で検索したら、ありました。
コンピューターの世界のことのようですね。
桁数あふれを起こさないように、小数点以下第1位の0を付けて計算させた訳ですね。
Re: 大晦日のご挨拶
これにはintが何ビットなのか、つまり何ビットを標準にしているコンパイラなのか?という問題があります。
ウィンドウズのCコンパイラなら大抵は32bitですけど、8ビットマイコンのコンパイラは大抵は、16bitがint=基準となる
整数の型です。XC8もintは16bitです。
で、計算する過程は標準で16bitまでの計算になります。つまり計算用に16bitのメモリが用意されます。
例えば
unsigned char a=256*256/512;
とした場合、通常の計算なら128ですけど、256*256の計算ですでに0x10000(65536)なので、0x「1」0000の
1はメモリ範囲外になるので消えて0になります。つまり0/512でaが0になります。
※ただしこの式の場合は、マイコンには計算式は入らす、コンパイル過程で、すでに「256*256/512」を計算して
元々unsigned char a=128;と書かれているプログラムとして、コンパイルされると思います。256が変数として考えてください。
long a=
とした場合は最初から32bitが計算用のメモリとしてあてがわれます。
計算順序は四則演算はおおよそ普通の計算と同じです。
()カッコが付いている部分が優先され、次に*/%が優先され、次に+-で最後は=です。
そして、x/%+-は左から右に計算されます。=は右から左です。
num=(num-50)*(1023-500)/(1023-50)+500;
は、ちょっと変形(計算)すると
num=(num-50)*523/973+500;
なので、最初の(num-50)*523の段階で、numが175程度の段階で桁が溢れます。
あとは暗黙の型変換、というものを理解する必要があります。
charとintとの計算ではintとして計算されます。
intとlongではlongとして計算されます。
charやintやlongとfloatの計算ではfloatとして計算されます。
つまり範囲の広い方で計算されます。
なので、50ならばintとして16bitの整数ですけど、50.0と「.0」を付けるとそれはfloat型の浮動小数のメモリに配置されます。
で、(num-50.0)はfloatとして計算され、次に*523もまたfloat×intなのでfloatとして計算され、…となり、桁あふれにはなりません。
そして、最期の「num=」の時にそのfloat値がintとして変換されて代入されます。
ウィンドウズのCコンパイラなら大抵は32bitですけど、8ビットマイコンのコンパイラは大抵は、16bitがint=基準となる
整数の型です。XC8もintは16bitです。
で、計算する過程は標準で16bitまでの計算になります。つまり計算用に16bitのメモリが用意されます。
例えば
unsigned char a=256*256/512;
とした場合、通常の計算なら128ですけど、256*256の計算ですでに0x10000(65536)なので、0x「1」0000の
1はメモリ範囲外になるので消えて0になります。つまり0/512でaが0になります。
※ただしこの式の場合は、マイコンには計算式は入らす、コンパイル過程で、すでに「256*256/512」を計算して
元々unsigned char a=128;と書かれているプログラムとして、コンパイルされると思います。256が変数として考えてください。
long a=
とした場合は最初から32bitが計算用のメモリとしてあてがわれます。
計算順序は四則演算はおおよそ普通の計算と同じです。
()カッコが付いている部分が優先され、次に*/%が優先され、次に+-で最後は=です。
そして、x/%+-は左から右に計算されます。=は右から左です。
num=(num-50)*(1023-500)/(1023-50)+500;
は、ちょっと変形(計算)すると
num=(num-50)*523/973+500;
なので、最初の(num-50)*523の段階で、numが175程度の段階で桁が溢れます。
あとは暗黙の型変換、というものを理解する必要があります。
charとintとの計算ではintとして計算されます。
intとlongではlongとして計算されます。
charやintやlongとfloatの計算ではfloatとして計算されます。
つまり範囲の広い方で計算されます。
なので、50ならばintとして16bitの整数ですけど、50.0と「.0」を付けるとそれはfloat型の浮動小数のメモリに配置されます。
で、(num-50.0)はfloatとして計算され、次に*523もまたfloat×intなのでfloatとして計算され、…となり、桁あふれにはなりません。
そして、最期の「num=」の時にそのfloat値がintとして変換されて代入されます。
Re: 大晦日のご挨拶
猛牛ロックさん早速にありがとうございます。
しかし、猛牛ロックさんが今回作った品は、お値段によると思いますが、
興味のある人に売れるんじゃないですか?
USB対応のようですが、自分のスムースステッパーに差し込んで使えるかな〜。
今の手パは、配線が凄いんです。
それと、作品は、自作の基板ですか?
いいですね〜。
自分はユニバーサルですよ。
流石です。
USB接続OKなら、すっきりとしますね。きっと。
しかし、猛牛ロックさんが今回作った品は、お値段によると思いますが、
興味のある人に売れるんじゃないですか?
USB対応のようですが、自分のスムースステッパーに差し込んで使えるかな〜。
今の手パは、配線が凄いんです。
それと、作品は、自作の基板ですか?
いいですね〜。
自分はユニバーサルですよ。
流石です。
USB接続OKなら、すっきりとしますね。きっと。
Re: 大晦日のご挨拶
猛牛ロックさん,TRさん,こんばんは。
===================
今年もおしせまりましたね。
いろいろありがとうございました。
勉強になりました。
来年もよろしくお願いいたします。
=================
*************************
猛牛ロックさん,
>というか、1mmのレンジは逆に誤動作に繋がりやすいので付けない方が賢明でした。
>MABOさんの手パはその辺りはどうなっているのでしょうか?
これ,すみません。私の環境では,確認していません。
というか,CNC等,を含めて,工房が実家の方にあるので,
このところ,いじってないのです。
という訳で,なんともいえないので,申し訳ありません。
それと,
>結局、OSのリカバリーから始めて、前のPCに付いていたグラフィックボードを取り付けたら安定しました。
は,原因はグラフィックボードだったんでしょうかね。
私も,念のためCNC用のPCには,ONボードのグラフィック外して,安いグラフィックボード挿してます。
もう一つ,
>マイコンからは、コードを書いてマイコンに書き込んで、SCREEN4のその画面で試して同じ数字になるかを確認、
みたいなことをしないと何番を実際に送っているのか判らないので大変でした。
察するに,猛牛ロックさんでも,ご苦労なさるんですから,難しいのかなあと思ってます。
ちなみに,くぐってみると,
http://blog-imgs-70-origin.fc2.com/g/a/r/garagejb/mkp13.jpg
http://blog-imgs-70-origin.fc2.com/g/a/r/garagejb/mkp14.jpg
https://blogs.yahoo.co.jp/borog_602/19815995.html
がヒットしました。
****************************
////////////////////////////////////////////////////////
TRさん,完成おめでとうございます。
ご自分で考えられて,それ,実用にしてしまうのですから,
いつも感心させられます。
私は,いつも,発想はいいのですが,途中挫折,
なんていうパターンが多いので,困ります。
===================
今年もおしせまりましたね。
いろいろありがとうございました。
勉強になりました。
来年もよろしくお願いいたします。
=================
*************************
猛牛ロックさん,
>というか、1mmのレンジは逆に誤動作に繋がりやすいので付けない方が賢明でした。
>MABOさんの手パはその辺りはどうなっているのでしょうか?
これ,すみません。私の環境では,確認していません。
というか,CNC等,を含めて,工房が実家の方にあるので,
このところ,いじってないのです。
という訳で,なんともいえないので,申し訳ありません。
それと,
>結局、OSのリカバリーから始めて、前のPCに付いていたグラフィックボードを取り付けたら安定しました。
は,原因はグラフィックボードだったんでしょうかね。
私も,念のためCNC用のPCには,ONボードのグラフィック外して,安いグラフィックボード挿してます。
もう一つ,
>マイコンからは、コードを書いてマイコンに書き込んで、SCREEN4のその画面で試して同じ数字になるかを確認、
みたいなことをしないと何番を実際に送っているのか判らないので大変でした。
察するに,猛牛ロックさんでも,ご苦労なさるんですから,難しいのかなあと思ってます。
ちなみに,くぐってみると,
http://blog-imgs-70-origin.fc2.com/g/a/r/garagejb/mkp13.jpg
http://blog-imgs-70-origin.fc2.com/g/a/r/garagejb/mkp14.jpg
https://blogs.yahoo.co.jp/borog_602/19815995.html
がヒットしました。
****************************
////////////////////////////////////////////////////////
TRさん,完成おめでとうございます。
ご自分で考えられて,それ,実用にしてしまうのですから,
いつも感心させられます。
私は,いつも,発想はいいのですが,途中挫折,
なんていうパターンが多いので,困ります。
- JoyfulNote v6.02 -
++ Edited by Hamel ++