• 締切済み

PICマイコン 制御プログラム 教えてください

カイト フォトをやるのですが  デジタルカメラのスタンドを 製作するのに 電気的な 知識が 何も無い私にアドバイスを お願いします 空中撮影ですから ラジコンで シャッターを切るか 自動的に 上空で シャッターを切る装置を載せるしかないのですが 1つは ラジコンで サーボモーターを使い シャッターを切りその後 自動的に 旋回モーターが 何秒か回り 位置を変え 停止する 旋回モーターは タミヤのギヤーボックスを使います 360度 をいくつかに分け 写真を撮るのですが 上空では カメラが どの方向を向いているか確認が難しく そのため 位置を 設定するためです とにかく シャッターを切れば 次の位置に 自動的に 止まるようにしたいのですが。 もう一つは ラジコンで動作開始 信号を送ると 自動的に ギヤーボックスが 何秒か動き 停止 1秒が後に サーボで シャッターが切れ またそこから自動的に 同じ動作を 繰り返す その動作を何回か繰り返し停止 その繰り返す回数も 設定できれば 一度開始信号を入れたら 360度回りながら 写真を 分割した数だけ シャッターを切って停止させたいのです。 このような プログラム PICマイコンチップに 出来るんでしょうか もしそのような プログラムを入れた 基盤 製作していただくとしたら 費用は どのくらい掛かるのでしょうか 教えてください

みんなの回答

  • monyupo
  • ベストアンサー率50% (1/2)
回答No.4

実際に作ることを考えますと、ラジコン用のサーボを使うのが簡単です。パルス信号送るだけで必要な角度まで動きますから。 また、PICマイコンよりも、私としてはAVRマイコンをお勧めしたく思います。と、いいますのも、PICは何かとしんどいことが多いです(特に16Fシリーズ以下)。今回の製作程度だと苦しまされることは少ないと思いますが、少し長いプログラムとなってくると、やれプログラムカウンタがどうだの、「えっと確かこのレジスタのここの値は1のときに出力だけど、ここのは0のときに出力設定で・・・」やら、フラグ類の立ち方が妙だの、バンクだどうのこうのと頭が痛くなってきます。 PICアセンブラでの開発も慣れれば(そしてICEがあれば)問題ありませんが、慣れてもやはり疲れることは疲れます。C言語あたりでの開発をお勧めしたく思います。AVRマイコンだとPIC同様安く、またC言語での開発環境も無料で整っているのでお勧めです。またデータシートが日本語訳されているものが豊富で、またレジスタの設定が統一感があるというのが、初めての人にもとても使いやすいと思います。 部品としては、ギアボックス用のモータを動かすためにトランジスタ1個と、そのベース抵抗1本、ラジコン用サーボモータ1個、モータのON/OFF時に発生する電圧を取り除くためのダイオード1個、これらの制御用にワンチップマイコン1個、パスコン用のコンデンサ1個、電池ボックスと電池、といったところでしょう。マイコンのクロックは、クロック内臓タイプのものを使えば部品点数を削減できますし、電池をマイコン、サーボが共に動作できる5Vあたりに調整すれば、専用の電源回路を組むこともありません。 ラジコン用のサーボを動作させるには、パルス信号を送る必要があるわけですが、これも、マイコンに内臓されたPWMなどそういうややこしそうなものを使うのでなく、単に、 1信号ON 2ループで待ち時間を作成 3信号OFF 3ループで待ち時間を作成 1に戻る という処理で可能です。ラジコン用のサーボの詳しい動かし方についてはそういうサイトが数多くありますので参考になるかと思います。 なかなかに文献だけではマイコンは意味不明で、まずは、開発環境(ライタ、実験基板など)を整え、サーボを動かしてみることをなさると、「なるほどなるほど」とパーンとわかって、実際にもすぐに作れるかと思います。 マイコンがひとつ使えるとなると、アイデア次第で色々なことができるようになるので、がんばってみてください。

  • Kon1701
  • ベストアンサー率24% (1445/5856)
回答No.3

PICでもできるとおもいますが、この程度のことでしたら機械的にやることもそう難しくないと思います。 たとえば、360度を一定間隔で撮影鶴とすれば、カメラをゆっくり回転させながら一定間隔ごとにスイッチが入るようにすれば似たようなことができますね。回転が速ければぶれますが、屋外での撮影ですから、シャッター速度はかなり速くできるので、2分で1回転程度なら大丈夫だと思います。回転を始めるのをラジコンでもよいですし、たいまでたとえば5分後に回転開始、というのもそう難しくないでしょう。 シャッターを切るのはサーボでシャッターを押す、という仕組みをお考えでしょうか? これは機械的には難しいと思いますが、たとえばカメラに外部から電気的にシャッターをきる接点がつけられるなら簡単ですし、その気になればカメラを改造することもできます。もちろん保障外ですが、今のカメラ、シャッターはただのスイッチですから。 なお、PICの基盤、プログラムを作るとすると、たとえば知人のために好意で作るとすると数万円程度でしょうか? 業務ならその10倍でしょうか? (これは自信なし) でも、万一の事故(部品の落下による被害)を考えるとためらってしまうかもしれませんね。

ja2yyn
質問者

お礼

有難うございます なるべく軽く 制御回路を作るには やはり PICマイコン しかないと 思うのですが 回転は 20秒で1回転です  決めた方向で 停止 タイムラグを おいて サーボでシャッターを切り ぶれを補正します また カメラの傾斜角を 自動に 変える 事もしないとなりませんから もう少し 自分で 考えて見ますよ 有難う ございました

回答No.2

>360度に成り元の位置に近付く 近づくだけでいいのなら時間で角度を管理してもいいと思います。ただ、外乱(バッテリーの残量やバッテリーの種類等)で角度が結構変わると思うので注意が必要です。(モーターの回転速度は電圧や電流で結構変わります) >プログラムの上で書きかえられれば良い 失礼ですが、このような質問をしてる時点でプログラムの知識は0に等しいと感じてます。書き込みソフト・ハード、コンパイラを用意して自分で0からプログラミングすると言うことでしょうか。無理とは言いませんが、身近に少しでも知識のある人が居ないとコンパイルすら出来ないかもしれませんよ? また、SWで設定が変更できればある程度の変更は屋外で出来るのでいろいろと便利なんじゃないかなぁと思います。もちろんプログラムに完全に依存するのも一つの手ですので、それでよければそっちの方がプログラム的には簡単です。 >パルス信号で動作をはじめるように出来ませんか これは楽勝です。送受信機自体の作成が大変なので、それを買ってくるなら問題は無いと思います。 >ラジコンで サーボを動かしシャッターを切った後にパワーギヤーが 何秒か動き止まる 方法は プログラム作れるのでしょうか 1回の信号で360度回転して数回撮影の方法のほうがソフトとしては面倒です。(まぁ、大差ありませんが) なので、1回の信号で撮影→60度移動→待機 と言う動作もプログラムで作成可能です。 プログラムで出来ないことは 1、曖昧な判定(約とか位とか気分で変わるものには対応できません) 2、マイコンのクロックやソフトの作り方で結構変わるのですが、超高速な動作 です。 また、プログラマーの理解できない事はプログラム出来ません。理解出来たとしてもそれを細かく分割できないことはプログラムできません。 (例えば2足歩行のロボットが出来なかったのは、2足歩行のために必要な制御をうまく分割できてなかったからだと思います。) ハードの要因としては、検出方法が無い場合はどうしようも有りません。(水質を測るソフトを作るには水質を測るセンサが無いと作れません) 今回の場合これらを全て満たしているので作れると思います。

ja2yyn
質問者

お礼

有難うございます とにかく 機械の組立て 設計は 仕事でやるんですが 電子関係は 何もわからないんです モーターの容量 100v 200v 電磁接触機 などは判るんですが シーケンサーは まるで判りません。 この様な 部品を この様に配線し 半田付して下さいと 図面があれば 基盤は 組めるんですが プログラムは この様に 書きこんでくださいと プリントして いただければ  ロムライター などを用意して 製作できるんですが アッセンブラ マシン語 など わかりませんから プリントして いただいた物を 打ちこむしか出来ません あしからず とにかく カメラのフレミングに収まる 範囲で 360度を分割撮影できれば良いのですが また 私の近くでは あまり PICマイコンを 理解している方は いません  基盤の作る方と プログラム 教えてくださる方 捜しております

回答No.1

PICマイコンのプログラム自体は比較的簡単にできると思います。 問題は回路ですよね。 サーボモータの駆動回路 旋回モータの駆動回路 回数設定スイッチ 回転時間設定スイッチ このあたりは回路自体は簡単です。 が、スイッチで設定できる個数を増やすと増やすほどPICの入出力ポートを使うので大きいPICを使うことになります。 無線回路 もし俺が作るとしたらこれが一番ネックになります。 市販のキットを買ってくるのが確実ですが、使ったことが無いのでなんともいえません。 工作として難しそうだと思うのがデジカメのスイッチじゃないかと思います。 サーボで押すとはいえ、軽いサーボはパワーが無いんじゃないですか? また、美味いこと押せますかね。 あと、旋回モーターで360度で停止させると言うのをどうするか?気になります。 360度検出スイッチをつけるのか、ステッピングモータにするのか、コッチもサーボモータにするのか。 ちなみに、無線ができるのであれば1の方がプログラムは簡単です。 金額はちょっと分かりません。 ただ、自力で作っても回路だけで5000円は硬いかなぁ と思います。(仕事位しか回路をいじらないのでほんっとうに適当です。スイマセン)

ja2yyn
質問者

お礼

有難うございます デジタルカメラを 360度 回転されるには タミヤのクラフトシリーズの 低速パワーギヤーを 使用したいのですが また ギヤーが10秒駆動停止 60度ぐらい 向きが変わると思うのです その動作を 6回繰り返せば 360度に成り元の位置に 近付くと思うのですが それと その動作回数 何秒で 停止するか 次の動作に何秒 タイムラグを取るかは スイッチではなく プログラムの上で 書きかえられれば良いのです また ラジコンは 市販のラジコンプロポを使用します 受信機から出た パルス信号で 動作をはじめるように 出来ませんか サーボ自体は トルクがあり カメラの シャッターは 押せます。 これは ラジコンで 1回 信号を送れば 自動的に 回転して 指定した枚数写真を写してくれる パターン です ラジコンで サーボを動かしシャッターを切った後に パワーギヤーが 何秒か動き止まる 方法は プログラム 作れるのでしょうか  

関連するQ&A

  • DCモーター2つを制御する際の障害について

    マイコンの勉強がてら、赤外線ラジコンを制作しようと試みているのですが、モーター制御で躓いてしまい、質問させて頂きました。 秋月電子で購入したモータードライバDRV8832を2つ用いて、FA-130の制御をしようと試みています。 本モータードライバは障害検知機能があり、過電流、電圧降下、温度上昇で、出力を停止するようです。 このドライバを用いで、2つのモーターの正転⇔逆転(動作反転時は10ms待機)を1秒単位で繰り返すプログラムを作成し、動かしてみたところ、何回か動作を繰り返した後、片方のモーターが障害検知して、動作停止してしまいます。 試しに、1つのモーターのみを接続した場合は、障害が発生することなく、回り続けました。 また、モーターはギアを噛まして車輪に接続しているのですが、この車輪を外してモーターだけで動かした場合は、 2つ同時に回して障害が起こることはありませんでした。 電圧降下を疑って、ドライバにコンデンサを追加してみましたが、特に改善はされず、温度についても触った限り高温になっている感じではありません。 モーターの反転時に高負荷がかかり、消費電流が増えていることは理解できるのですが、モーター1つでは正常に動くのに、2つ駆動だと障害が発生する理由が分からず、行き詰ってしまいました。 お知恵を頂けると幸いです。

  • サーボモータの位置決め制御

    位置決め制御にて、 モータが指令した位置に達すると位置決め完了信号(ON)を出すと思うのですが、 もし、すぐに位置決め完了幅から抜けてしまってOFF信号を出した場合には、 モータが(アンプが)自動的に位置決め完了幅まで動くのでしょうか? もしくは、OFF信号が出たとユーザが(プログラムで)確認して再度、位置決め指令を出すのでしょうか。

  • モータの位置決め方法について

    測定器を正確な位置で停止する位置決め装置の製作をメーカへ依頼しました。停止位置は直線上の2箇所で、A点で停止し5秒後、B点へ移動しB点で停止。1分後に再びA点へ戻り5秒停止、B点へ移動を繰り返すというものです。 私のイメージでは、よくロボット制御に使われるサーボモータ? を使った位置決めシステムを製作してくると思ったのですが、メーカはDCギヤードモータを使い、停止位置の手前にスイッチを設置し、そのスイッチでモータ電源を切り、惰性で動く分を機械的ストッパで止め位置決めをするというものでした。 測定器はボールネジで可動します。ギヤードモータの仕様はDC24V、3W程度、モータ回転数5000rpm、減速比1/500です。 設置当初、スイッチが故障で作動せず、モータに電源がかかったまま機械ストッパーに当りモータを焼くトラブルがあったのですが、A点からB点の移動時間+3秒以内にスイッチが入らなければモータ電源を切るという回路を追加しモータの焼損はなくなったのですが(実際にはスイッチが故障していないので3秒間でモータが焼損するか確認はしていないのですが・・・)、停止時に機械ストッパーへ毎回ぶつけて止めているので、減速器のギヤーへストレスがかかり、今度はギヤーが壊れないか心配です。 メーカーは、ストッパーへ当たる時には手前にあるスイッチでモータの電源が切れているので、無理はかかっていないと言っているのですが本当でしょうか?・・・専門的な知識がなく、反論できないのでアドバイス願います。

  • H8/3048 マイコンのプログラムについて教えてください。

    すいません、助けてください。 モーターを制御するインバーターがあります。 そのインバーターには、左回り、右回りという、 2つの入力があります。 これは、スイッチをつけて直接グランドに落としている時間だけ回るという入力です。 この入力に対して、H8を追加して動きを自動化したいと思っています。 内容は、 左、右、リミットの3つのスイッチをつけ、 端まで動いて、リミットスイッチが切れたら止まるというものです。 リミットスイッチがOFFの場合、 左または右を押した場合、0.5秒 その方向に回り、停止。 リミットスイッチがONの場合、 左または右を押した場合、リミットスイッチがOFFになったら止まる。 このような動きの場合、どんなプログラムを書けば いいんでしょうか? よろしくお願いします。

  • モータの位置制御についてご教授ください.

    DCモータ(マブチ,RE280)のポテンショメータ(コパル,JC10)における位置制御を行おうと考えています.OPアンプは東芝のモーター用パワーオペアンプTA8407Pを用いております. トラブル現象としては,モータの位置制御を行うため,フィードバック回路をモータ駆動用アンプのー入力に入れたのですが,出力電圧は変化するものの,モータの位置制御が行われません. オシロで確認したところ,フィードバック信号は駆動用オペアンプ手前まで入力されているのですが,モータは一向に位置制御せず,停止しません. ポテンショの±の電源を逆にしたり,オペアンプを交換したりといろいろと試して見ましたが,改善されませんでした. どこかチェックするべき箇所がありましたら,ご教授いただけないでしょうか.よろしくお願いいたします. また,上記オペアンプ以外でモータの位置制御を行えるアンプがありましたら,それもあわせましてご教授ください.

  • サーボモータの制御に付いて

    サーボモータを位置決めを精度良くPLCの位置決めユニットで制御しようとしています。モータのエンコーダはインクリメンタルタイプです。 例えばA点→B点→C点と位置決めしていく場合、 開始点A(仮に座標0)から右回転し、B点(Aから目標2000の位置)に位置決めしたとします。 このとき、仮にアンプで位置決め完了範囲を20パルスと設定していた場合、サ-ボアンプは2000±20パルスの位置にくればインポジション信号を出すと思います。 2000ぴったりの位置で停止することはないので、2000付近をふらふらしながら、サ-ボアンプ自体は2000ぴったりになるように制御をし続ける。 この状態で次の命令、C点(Aから5000)への移動命令がきた場合、例えば1990の位置にいるときにこの命令がきたら、1990+3000=4990を目標値とした位置決めが行われるのですか? 要は位置決めを繰り返すたびに、誤差が累積していくのですか? これを避ける方法、位置決め精度を上げる方法があればアドバイス願います。

  • ラジコンで加速重視のセッティングを教えてください

    ラジコンはかなりの初心者なのですが、1/10スケールの一般的な車のラジコンで加速度重視のセッティングはどのような方向で進めたらよいか教えてください。 ラジコンはタミヤのTA05verIIをつかっています。 モーターとギア比だけいじって、加速をあげたいと思っています。 最高速は低くても結構で、イメージとしては1秒程度で0→20km/hくらいにならないかなと。 (それぐらいの加速がでないかなと) ギア比やモーター回転数など計算しましたが、トルクの計測ができないためなかなかセッティングの方向性がわかりません。 よろしくお願いします。

  • 再版 タミヤ 1/16 ゲパルトをモーターライズに

    最近、タミヤ 1/16 ゲパルトが再版されましたがディスプレイなのが大変残念です。 (かつて、ラジコンやリモコンだったからこそ魅力があったのに、ディスプレイとは興ざめで魅力も半減です) そこで、市販のギヤーボックスやモーターで何とかモーターライズ化(走行、砲塔、レーダー回転)させることは無理でしょうか・・・?

  • マイコンH8-3664 走行カー C言語プログラム改良

    SW0がONで3秒間前進して停止 SW0がOFFの後、再度ONで3秒間前進して停止  するプログラムです! これを、 3秒間前進後、3秒右旋回(右モーターのみ回転)後、3秒間前進、3秒右旋回を繰り返し、元の位置に戻るというプログラムに改良せよ!というのですが? /**************************************************************/ #include <stdio.h> #include <sysio.h> /*タイマーA*/ #define TMA (*((volatile unsigned char *)0xFFA6) /*割り込み*/ #define IENR1 (*((volatile unsigned char *)0xFFF4)) #define IRR1 (*((volatile unsigned char *)0xFFF6)) #define PDR8 (*((volatile unsigned char *)0xFFDB)) #define PCR8 (*((volatile unsigned char *)0xFFEB)) long count = 0; long x = 0; void interrupt timer( ) { IRR1 &= ~0x40 ; if( count == 300 ) { x = 1 ; count = 0 ; } else { count++; } } void main( ) { unsigned char a; TMA = 0x03 ; IENR1 |= 0x40 ; PCR8 = 0x0f ; while(1){ a = PDR8 >> 4 ; if( x == 0 && a == 0x0e ) { PDR8 = 0x0a ; _ei( ) ; } else if( x == 1 ) [ PDR8 = 0x00; _di( ) : if (( PDR8 >> 4) == 0x0f) { x = 0 ; } } } } /**************************************************************/ 尚、SW はプルアップされている!

  • 10秒位で1回転数が得られる、プーリーセットかギアーボックスはあるでし

    10秒位で1回転数が得られる、プーリーセットかギアーボックスはあるでしょうか?。 1.5Vのホビー用モーターを使います。