【きむ茶工房ガレージハウスの掲示板】

FC2BBS

50252

誹謗、中傷、虚偽情報や商用目的・宣伝目的等の利用と判断した場合は削除する事があります。

名前
件名
メッセージ
メールアドレス
URL
アイコン
文字色
編集/削除キー (半角英数字のみで4~8文字)
プレビューする (投稿前に、内容をプレビューして確認できます)

感謝&ご教示ください 千田克彦76歳 URL

2023/08/03 (Thu) 21:24:48

毎々お世話様です。貴H/P拝見して可能性を感じましたので連絡させていただきます。
小生、思い付きで点字、を表現しようと始めましたが、音声(短音)⇒9アクチュエータを駆動するシステムが構築できません。マイクロテクニカ社のMOD100Cを紹介されている貴H/Pから、次に何かを繋げれば、9Lineの駆動出力が出せるのでは?ご教示ください。

無題 - 機械猫

2023/03/23 (Thu) 15:40:59

新型コロナワクチンはスパイク蛋白を生成する事により血栓症を引き起こし脳血栓や心不全や目の血管が詰まって失明の危険も有るそうです。
更に免疫機能の低下も有るそうです。
ジャーナリストのリチャードコシミズが言うにはスパイク蛋白にはイベルメクチンが有効と言っていました。
もし、免疫機能の低下や血栓症の疑いが有るのならば検査で証拠保全を行い日本政府に因果関係を突き付けて賠償を求めると良いと思います。
お身体お大事にしてください。

ありがとうございます - gnmkb

2022/07/10 (Sun) 22:26:10

18F14K50 で HID キーボードを作りたく資料探していたらたどり着きました。
色々参考にさせていただいたきました。ありがとうございました。
お身体お大事にしてください。

MyHPの中断について - きむしげ

2022/04/26 (Tue) 12:10:21

こんにちは、
250超えの高血圧により、右目の毛細血管がズタズタになり、目がぼけてしまい、
文字やパソコンを見る事がつらくなりました。
なのでぇ、一時ホームページを止めます、復帰は未定です、本当に御免なさい。 m(_ _)m

Re: MyHPの中断について - yangmin

2022/05/26 (Thu) 19:36:03

一ケ月も過ぎてからの書き込みすみません。
眼圧障害との記事を拝見し驚いています。
当方も単眼だけ白内障による手術を受け視力差や眼精疲労に悩まされており心中お察しいたします。
できる限りご養生ください。
ご回復を心よりお祈り申し上げます。

Re: MyHPの中断について - きむしげ

2022/05/31 (Tue) 19:12:47

こんにちは、yangminさん。
コメントありがとうございます。
行いたい実験等有るのですがぁそれもぉままならないです。
目は飛蚊症も入ってきて、太陽の下では目が光りまぶしいです。
困ったものですね。

DFPlayer miniについて 木下

2022/03/31 (Thu) 22:52:29

「MP3プレーヤーminiモジュールを使ってみます(PIC編)」を参考に自分なりのプレイヤーを作っていますが、ルートのフォルダ数を問い合わせたいと色々と触ってみましたが、上手く行きません。
DFRPM_Send(0x4F,0); のコマンドを送信後 
DFRPM_Receive() ; で受け取るのでしょうが
DFRPM_Receiveは戻り値がないので DFRPM_RcvBuf[6]に
フォルダ数が入っているのでしょうが使えません。
C言語の理解不足も有りますが、
記事に書いてある「※ 送信するコマンドは、モジュールに"返答は不要"で全て送信しています。」が関係していますか?

教えてください オオヌキ ショウイチ

2022/03/23 (Wed) 11:59:05

木村様
始めて投稿させていただきます。
小生78才の爺です。年寄りの冷や水でPICをいじり始めました。ADConの出力を長時間記録するためにEEPROMへの書き込みをやっていましたが、メモリの容量が不足するのでSDcardに書き込む勉強を始めました。NETで色々調べていたら貴記事の”MMC/SDカードを接続し読書きを行って見ます”を見つけました。お手本にさせていただいて、手持ちの部品に関係で少し改造をさせていただき、苦労しましたが、何とかお手本の様にSDcardに文字を書き込むところまでたどり着きました。しかし、””でくくった文字は書き込めるようになったのですが、ADConからの出力データを書き込むことが出来ません。なにせ老人なので基礎が全く出来ていないので途方に暮れています。超初心者なので難しい事は分からないので、小学生にも分かるようなレベルでやり方をお教え頂けると幸甚です。勝手なお願いで恐縮ですがよろしくお願いします。
小生の環境は,Windoes7Pro64bit、MPLABXver4.01、XC8ver2.35、PIC1939です。
大貫より。

Re: 教えてください - きむしげ

2022/03/26 (Sat) 18:54:44

オオヌキ ショウイチさん
こんにちは!
後ほど、メールします。

PICでのL6470制御について - yangmin

2021/07/14 (Wed) 23:43:44

こんばんは。
初心者なので以前より色々と記事を参考にさせていただいており大変感謝しております。
今回"ステッピングモータドライバ(L6470)を動作させて見ます"
http://zattouka.net/GarageHouse/micon/Motor/L6470.htm
の記事を拝見し伺いたいことがありまして投稿させていただきました。

公開していただいているプログラムソースを使用して、L6470やPIC18Fのデータシートや秋月やストロベリーリナックスのPDF資料などを紐解きながら、もうかれこれ2ヶ月以上毎週末に試行錯誤を続けていましたが思ったように制御出来ず悪戦苦闘しております。

最近になりmotor41.cやmotor42.cのプログラムソース内の
以下の"5秒後に開始"というのを6秒程度にしたところ制御出来ているような気がします。
Wait(500) ; // 5秒後に開始
// SPI(MSSP1)の初期化を行う、通信速度は4MHz
SPI_Init(SPI_MODE3,SPI_CLOCK_DIV16,0) ;
// ステッピングモータドライバの初期化を行う
ans = L6470_Init() ;

それまでは理由も分からず、トータルで5秒以上あれば良いのかな?とウェイトを3秒にして、その後PICの動作確認用にLED点滅(点灯・消灯)を0.5秒おきに3回(計6回で3秒)の命令を挟んでいたりしましたが、これも上手く動かない原因の1つのような気がします。
この5秒待つというのはどういった役目を成しているものなのでしょうか?
教えていただけると助かります。

Re: PICでのL6470制御について - きむしげ

2021/07/15 (Thu) 10:25:06

yangminさん、おはようございます。

ごめんなさい、思い出せません。m(_ _)m

L6470のデータシートの一部を翻訳してみましたのサイトで、
http://spinelify.blog.fc2.com/blog-entry-79.html
6.1 Device power-up
電源投入時には以下の条件が満たされるまで、
デバイスがリセット状態になります。
と言うのが関係しているかもです。
電源投入時に十分な電圧・電流が必要なのかも?

Re: PICでのL6470制御について - yangmin

2021/07/15 (Thu) 14:17:15

早速の回答をありがとうございます。
たくさんの情報を公開してくれていらっしゃいますし、おそらくずいぶんと前の記事でしょうから、こちらこそ今になってのお問い合わせで申し訳ありません。
やはり電源投入後、十分な電圧や電流が必要な可能性がありそう…ということですね。
ご回答いただき感謝いたします。
ありがとうございました。

Re: PICでのL6470制御について - yangmin

2021/07/18 (Sun) 19:50:57

度々のお問い合わせで申し訳ありません。

・モーターの動作について
"motor41.c"のRun命令なのですが、
この記述を続けて2回記載すると、ほぼ確実に動くことを発見しました。
なぜ2回記載しないと動かないのか?原因について思い当たるようなことがありましたら、アドバイスをいただけましたら幸いです。
もしかしたらSPIの通信速度が関係しているのでしょうか?
--
// 約750step/sの速度で正転回転させる
L6470_Run(Forward,50000) ;
--
これを以下のように連続して記載するとなぜか動きます。
L6470_Run(Forward,50000) ;
L6470_Run(Forward,50000) ;


・動作周波数について(一部思い違いがあったため訂正しました)
ご紹介いただいているページに「今回のPIC18F26K22のCPUクロックは64MHzで動作させています。」との記載があるのですが、
当方もPIC18F26K22を使用しておりますが、動作周波数とSPI通信速度の関係は"motor41.c"ソース内62行目以下の記述のところで良かったでしょうか?
ソースは以下のような状態になっていましが、
--
// SPI(MSSP1)の初期化を行う、通信速度は4MHz
SPI_Init(SPI_MODE3,SPI_CLOCK_DIV16,0) ;
--
この"SPI_CLOCK_DIV16"の状態ですと64MHz/16で4MHzで通信を行っているということになるのかと思いますが、
上述の2回続けて記述すると動作するというような場合、例えばFosc/64に変更し64MHz/64=1MHzとして通信速度を遅くしてみると改善される可能性があるというような考え方で良いのでしょうか?


・モーターのステップモードの変更について
ステップモードの指定は"skL6470.c"ファイルで指定するのだと思うのですが、
このソース内93行目の"val = step_mode.DT ;"の記載を"val = STEP_SEL ;"に変更して、
91行目の"step_mode.STEP_SEL = FULL_STEP ;"のFULL_STEPの記載を"skL6470.h"の定数の定義に記載されているHALF_STEPやMICROSTEP8に書き換えることでステップモードを変更できるという考え方で良かったでしょうか?

複数案件のお問い合わせとなりまして申し訳ありませんが、
お力添えいただけましたら助かります。

Re: PICでのL6470制御について - きむしげ

2021/07/19 (Mon) 16:12:43

・モーターの動作
 当時のL6470実験時の回路が出てきました、PIC周りの回路だけ追加すれば動作する様なのでぇ動かしてみました。
結果、Wait(500) ;でも200でも関係なく動作します。
思うにL6470_Run()前でアラームが発生しているかもですね?
ans = L6470_Init() ;
の"ans"値はいくらですかねぇ、正常値は"7C03"ならOKだと思います。
68行にブレークポイントを置いて、デバッグモードで起動し、
停止したら65行の"ans"値を見る事が出来ます。
http://zattouka.net/GarageHouse/micon/MPLABX/Debug1.htm
”MPLAB XとPICKit3でPICをデバッグしてみる”を見ましょう。
でぇ、L6470_Run()を2回したらそのアラーム内容がクリアされるのかも??

・動作周波数について
 L6470のSPI動作速度はMAX5MHzなのでそれ以下でも動作するでしょうが
改善とかの話ならそれは意味ないでしょうたぶん

・モーターのステップモードの変更について
 motor42.cの所に書いて有る様に
”skL6470.c ”の”L6470_Init ”関数で
step_mode.STEP_SEL = FULL_STEP ; // フルステップに設定---91行
が記述されているので、書き換えるだけです。
とあります、もし、1/128マイクロステップモードにするなら
step_mode.STEP_SEL = MICROSTEP128 ;
です。他はいじらないで下さい。

Re: PICでのL6470制御について - yangmin

2021/07/22 (Thu) 19:20:58

度々の素人質問にまたご回答いただきましてありがとうございました!
当時の回路もまだお持ちでわざわざ試していただいたとのこと、大変ありがとうございます!

通信速度は直接動作命令に関係ないのですね。
作業が出来る週末になり、早速教えていただいた方法でブレークポイントを置いてmotor41.cを試してみました。

ちなみに使っているモーター用電源は12V、モーターは17PM-K044-AKZ(https://akizukidenshi.com/catalog/g/gP-06578/
コイル抵抗5.6Ω 定格電流0.9A(このことから動作電圧は5Vと判断)を使っておりまして、
"停止時よりも回転時の方が電流が流れにくくなるので HOLD<ACC<RUNとした方が脱調しにくい"との情報を見掛け、
更にテスト中は低い設定のKVAL_HOLD、KVAL_RUN、KVAL_ACC、KVAL_DECでも動いたため、
現在はKVAL_HOLD(0x01)<KVAL_RUN(0x12)<(KVAL_ACC、KVAL_DEC)0x10としておりますが、
その結果をVariablesウインドウで見たところ、
L6470_Initのans値は以下のようになっていました。
※モーターの定格電圧に近い4.9608V(0x6A)や4.68V(0x64)などの値にしても結果に変わりはありませんでした。


きむしげ様のご回答(正常値)
アドレス:0x34
Value:0x7C03
111 1100 0000 0011

そのままコピペしたプログラム使用時
アドレス:0x34
Value:0x7D03
111 1101 0000 0011
※UVLO[9]
 UVLOフラグは電源投入時及びリセット時に強制的にLOWになります。
 モータ電源電圧がVsthoff電圧を下回ると、LOWになります。

自分が動作確認のためにPICのRA0-RA0を出力に設定してLED点滅などを追加したプログラム使用時
アドレス:0x34
Value:0x7C83になったり0x7D03になったりでした
111 1100 1000 0011
※WRONG_CMD[8]
 “1”で有れば、指示したコマンドは全く存在しない。

なぜ同じPIC同じ回路なのに自分は0x7D03や0x7C83になってしまうのか…。

Re: PICでのL6470制御について - きむしげ

2021/07/23 (Fri) 09:22:27


ans値見ると、どうもぉモータ起動実行が失敗している様ですね。

SM-42BYG011(私の実験モータ)
https://akizukidenshi.com/catalog/g/gP-05372/
(17PM-K044-AKZ)
https://akizukidenshi.com/catalog/g/gP-06578/

モータの結線する線の色が異なっていますがぁ...
それを考慮して配線は出来ていますよね。
もう一度確かめて下さい。

Re: PICでのL6470制御について - yangmin

2021/07/23 (Fri) 15:11:41

きむしげ様
ご丁寧に何度もありがとうございます!

モーター起動実行に失敗ですかぁ…。
モーター配線の色は何度か確認しているんですが、念のため再度確認しましたが間違いありませんでした。
使っているモーターの定格は5V 0.9A/相となると思うので過電流のTHは
L6470_OCD_TH 0x02(1125mA)
ストール電流のTHは
L6470_STALL_TH 0x0F(500mA)
程度にしているのですが、同じモーターで実験する必要がありますかねぇ。
調達しに行けそうなら明日にでも行ってみようかと思います。

Re: PICでのL6470制御について - きむ

2021/07/25 (Sun) 09:40:27

おはようございます!

データシートを見ていたら、
VS Motor supply voltage VSA=VSB=VS 8-45V
となっていますがぁ、

5Vで行っているのでしたら少ないのでは?

Re: PICでのL6470制御について - yangmin

2021/07/25 (Sun) 19:57:27

きむしげ様
データシートも見ていただきましてありがとうございます。
モーターは買いに行けませんでした…。

仰る通りモーター電源は 8-45V必要なようなんですが、
ストロベリーリナックスのページに
"このモジュールのモーター電源は8V~45Vが必要です。L6470がサポートする電圧です。8V以下はL6470のローボルテージロックアウトが働くので動作しません。モータ電源には必ず8V以上必要です。
モーターはこの範囲のものが使えますが4V,3V以下のものでもパワーのコントロールができますので使用可能です。
このパワー設定は停止時、回転時、加速時、減速時のそれぞれに設定ができますから、停止時は省エネのためにパワーを落とす、加速・減速時は脱調しないようにパワーを大きくするといったきめ細やかな設定ができます。"
という記述があり、
元々デフォルトのRUN/ACC/DECの値も0x29=(41)x0.0039*12V=1.9188V(12V電源の場合)0x29=(41)x0.0039*24V=3.8376V(24V電源の場合)なので、
12V電源を使っての定格5Vのモーター制御が可能だと思っておりました。
https://strawberry-linux.com/support.php/12023/1471031


北の国からの…様のページのコメント回答に
"L6470はモータ用電源が7.2Vを下回ると、L6470の保護機能?でモータが動かなくなります。=UVLO(詳細は L6470仕様書の VsthOFF、VsthON、UVLO(アンダーボルテージロックアウト機能?)の項目を参照してください。)
私の勝手な解釈になりますが、
モータが回転始めようとしたその際に、初動電流によって、電源電圧が12Vから7.2V以下まで瞬間的に電圧降下してしまい、
それをL6470が検知して、保護ロックが働いているのだと思います。
(電圧降下のイメージとしては、家庭の電子レンジを動かした瞬間に、蛍光灯が一瞬暗くなるのを想像してもらえれば分かるかと思います。)
解決方法は 
・電源電圧を上げる。(電圧降下しても7.2Vを下回らない電圧まで上げとく 大概14~15Vあれば大丈夫だったと思います。)
・電源の種類を変える(電圧降下しにくい電源にする。スイッチング電源→直流安定化電源装置やバッテリーなど)
・L6470の電源端子近くにコンデンサを挟む。(電圧降下を緩和する。)
のどれかです。
私は12V1Aのスイッチング電源を使用していた際に発生していた記憶があります。その際は、コンデンサで解決したような記憶があります。"
という記述を見付けたので、今まで24Vスイッチング電源アダプタを介して自作の3V~12V用可変スイッチング式電源装置から12Vを供給していたものを、24Vスイッチング電源アダプタ直接供給にしたり100μFのコンデンサを220μFにしたりしてみたのですが、ansの値は0x7C03になったり、0x7C83になったり、0x00000000となったりと動きが不安定なままの状況は変わりませんでした。
http://spinelify.blog.fc2.com/?m2=res&no=66&sp=1&page=1
https://strawberry-linux.com/support.php/12023/1485524

Re: PICでのL6470制御について - yangmin

2021/09/21 (Tue) 00:27:49

きむしげ様
プログラムのバージョンアップをありがとうございました。
バージョンアップしていただいたプログラムも利用させていただき、あれからもずっと続きに取り組んでおります。
ステッピングモーターも同じ物を調達し、新しく公開していただいた"motor43.c"や"skL6470.h"や"skL6470.c"でのアラーム発生を試してみたく、ソースを全くいじらずそのままの状態で書き込んみましたが、やはりansの値が正常値の"0x7C03"にならず"0x7D03"や"0X00000000"となることが多いです。
プログラムが全く同じなのに動かないということはハード構成に問題があるとしか思えないのですが、チャージポンプ用のダイオードも紹介していただいている物を買って使用しておりますし、コンデンサや配線なども何回も見直しましたが実装図の通りに配置出来ていると思います。
モーター用電源は自作の3V-13V可変スイッチ電源を12Vで使用しておりましたが、12Vの市販の電源アダプタ(これもおそらくスイッチングだと思いますが)に変更してみたりもしましたが改善が見込めず、何が原因で動作不良なのか分かりません。

また"motor43.c"ソース内のアラーム発生状況用であるLED点灯命令"LATC0 = 1 ; // LED ON"や"LATC0 = 0 ; // LED OFF"ですがLEDが点灯(消灯)しません。
以前"motor41.c"に自分なりに追加していた動作確認用LEDの"PORTAbits.RA3 = 1;"や"PORTAbits.RA3 = 0;"などでの点灯(消灯)は出来ていたので、"PORTCbits.RC0 = 1;"や"PORTCbits.RC0 = 0;"へと変更してみましたがそれでもLEDは点灯(消灯)しませんでした。ちなみに接続はピン側がアノードでGND側がカソードにしています。

度々で申し訳ありませんが、なにかご助言をいただけましたら大変ありがたいです。

音声合成LSI(ATP3011F4-PU)を使ってみます の記事について 吉田春夫

2021/07/29 (Thu) 16:52:43

PICマイコンの初心者です。
PICマイコンでの製作記事を拝見いたしました。早速LSIを調達してI2Cで実験いたしました。PIC12F1822、PIC16F1823、PIC16F1827ではいずれも正常に動きました。が、本来使いたかったPIC16F1825では動きませんでした。音沙汰なしの状態です。このPICだけ何か特別な設定が必要なのでしょうか?
ご指導いただければありがたいです。よろしくお願いいたします

Re: 音声合成LSI(ATP3011F4-PU)を使ってみます の記事について - きむしげ

2021/07/30 (Fri) 10:22:39

おはようございます、吉田春夫さん
私は、PIC16F1825を動作させた事がないのでぇ何ともですがぁ、
PIC16F1823を動作させられたならPIC16F1825も動作すると思いますがぁ...
1823が2Kでぇ、1825が8Kのメモリ容量の差だけだと思いますのでぇ、

Re: 音声合成LSI(ATP3011F4-PU)を使ってみます の記事について - 吉田春夫

2021/07/30 (Fri) 14:26:52

こんにちは
早速のコメントありがとうございます。
私の希望もその通りで、PIC16F1823を使っていたのですが、メモリ容量が足りなくなったので、PIC16F1825で動かそうとしているんです。
ブレッドボードに組んだカイロでPICをとっかえひっかえ実験しております。
ビルドも書き込みも正常に終わっており動作させると、LSIの初期化までは動くのですがチャイムの命令で止まったままになってしまします。
残念ながら私の力では解決できそうもありません。
他の手を考えるしかないですね。
ありがとうございました

picのタイマーについて sho

2021/06/20 (Sun) 14:55:21

いつも大変参考にさせて頂いています.

大変初歩的な質問ですが,
16F1827について実験しています.
大変初歩的な質問ですが,TIMER0とTIMER2は共存できるのでしょうか?
TIMER0で動いているソースにTIMER2の設定の記述をしただけで動作しなくなりました.
もともと,だめなのかと思ってお伺いしました.
よろしくお願いいたします.


Re: picのタイマーについて - きむしげ

2021/06/20 (Sun) 19:29:44

shoさんこんばんは!
TIMER0とTIMER2はレジスタも異なっているので
共存できます。
レジスタ設定が正しくないのかもですね。
あ、当然出力ピンは分けないとダメですよ。

Re: picのタイマーについて - sho

2021/06/21 (Mon) 15:15:35

さっそくのご回答ありがとうございました.
PEIE = 1 ; // 周辺装置割り込み有効
これをremしたらエラーにならずにすみました.
PEIEの意味がよく分かっていませんが…とりあえず回避できました.
ありがとうございました.

赤外線リモコンに関連して Kesamaro

2021/05/27 (Thu) 18:14:54

Arduino初心者のKesamaroと申します。
Arduinoによる赤外線リモコンの記事、興味深く読ませていただきました。当宅の日立エアコンリモコンで受信してくれません。多分、家製協フォーマット形式ではないかと思われます。
そこでArduinoスケッチのどの部分を変更すれば良いかご教示いただけたらと思います。

Re: 赤外線リモコンに関連して - きむしげ

2021/05/28 (Fri) 14:42:19

こんにちは、Kesamaroさん。
NECフォーマットと家製協フォーマットは同じ様なデータタイミングでして
ON/OFFの長さが違うだけで読めると思われますがぁ...
もしかしたら家製協フォーマットのリーダ部のONが短いかも(2.8-4.0ms範囲)の
様なので、スケッチは3.4m以上となっています。
なのでぇ、"if (t >= 3400) {"の行を"2800"と変更してみてください。
でぇ、ダメなら
"if (t >= 1000) IRbit[i] = (char)0x31 ; // ON部分が長い"
を"900"位にしてみてみて。

Re: 赤外線リモコンに関連して - きむしげ

2021/05/30 (Sun) 13:08:23

家のも日立のエアコンだったので試してみました。
上の治療ではダメですね、読める様に改良した物を
アップして置きました。
参考にしてください。


Copyright © 1999- FC2, inc All Rights Reserved.