fc2ブログ
 カレンダー

05月 │2023年06月│ 07月
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 -

 プロフィール

はしもと

Author:はしもと
ユーザインタフェース系のお仕事をしてます.関心領域は画像処理,拡張現実感,ヒューマンコンピュータインタラクション,エンタテインメントコンピューティングあたり.モノ書きもやってます.

 工学ナビ

工学ナビは工学系の技術のチュートリアルを扱うサイトです.

 作ったもの

 Twitter

 

 天気予報


 ブログ内検索

 カテゴリー

最新コメント

 RSSフィード

 リンク

このブログをリンクに追加する




工学ナビの中の人 はしもとのブログです. いろんなコトを研究的,工学的な視点で見つめます.
走るノートPCロボット その3 (PWM制御がしたい編)
PWM制御がしたい…のでいろいろ考えてみました.
今日もちょっと専門的な話でゴメンナサイ.

■ PWMって何よ?
 Pulse Width Modulation(パルス幅変調)の略で,パルスのON時間とOFF時間の比(デューティ比)によって対象に与える電力を制御する方法です.主にモータの速度制御,照明の明るさの制御に用いられます.また,最近ブームの二足歩行ロボットに使われているサーボモータもPWM制御で角度制御されています.

■ PWM制御を実装するには?
 考えられる方法をいくつか列挙します.

●PWM機能を持つマイコンを利用する(PIC,H8など)
 最近は多くのマイコンがPWMをサポートしています.PICではset_pwm1_duty()という関数で簡単にデューティ比を設定できるようです.このへんの話はネットや本からいくらでも情報収集できます.PWMができるPICとして,最近は16F84Aと同じピン数でありながら安価な16F648A-I/Pが人気だとか.

参考:DCモータをPWMで駆動し 速度制御を試みる(PDF)

●マイコンのタイマ割り込みを利用してPWMを出力する
 PWM機能を持たないマイコンでも,タイマ割り込みを使ってちょっと工夫すればPWMが実装できます.割り込みの発生回数をカウントし,既定の数に達したときにパルスのON/OFFを切り替えるようにします.割り込みの発生間隔×カウント回数がON時間になるわけです.

参考:タイマ割り込みを利用したPWMの例

●アナログ発振回路を自作してPWMを出力する
 裏技的ですが,意外とみんなやってることみたいですね.回路として,マルチバイブレータを使う方法,タイマIC(LMC555,NE555,uPD5555)を使う方法があります.マルチバイブレータは2個のトランジスタ(あるいはNOT素子)と抵抗,コンデンサなどを組み合わせてパルスを発振する回路です.
 いずれも抵抗の値を変えることによって発振周期,デューティ比が変化します.マイコンからの信号で抵抗値を切り替えるにはアナログマルチプレクサ(74HC4051など)を利用します.

参考:手作りUSB機器―USB‐IOで作る電子ルーレットからWebカメラまで(本)
参考:アナログ発振回路でモータ制御

●擬似的にソフトウェアでPWMをやる
 あまりおすすめできない方法ですが,スリープ命令や単純な加減算の処理時間を利用してパルスのON/OFF時間を制御することはできます.PCのソフトウェア上で,直接PWMをやろうとするとこういう方法になるのですが,Sleep()の最小時間,PCからの最小出力間隔などが壁となって,あまり滑らかな制御はできません.

参考:Sleepの精度-Windows2000の場合

■ 結局どうしましょうか.
 今回はPC搭載のロボットなので,USBから制御信号を出力します.
構成をいくつか考えてみました.

 案1: PC → USB⇔RS-232Cケーブル → PIC → モータドライバ
 案2: PC → USB⇔RS-232Cケーブル → H8 → モータドライバ
 案3: PC → USB-IO → モータドライバ
 案4: PC → EZ-USB → モータドライバ

 マイコン派からすれば案1,案2が割とまっとうなやり方です.PICの場合,開発環境をそろえる上で少々コストがかかります(ライタにもよりますが).H8の場合,開発環境+マイコンで4,000円以下で入手可能です

 案3のUSB-IOは安価(1,500円)でお手軽ですが,擬似的にソフトウェア側でPWMをやるしかなく,しかも速度的な問題からあまり滑らかな制御は期待できません.

そこで案4です.EZ-USBは

 ・4,000円以下で入手可能
 ・PCにUSBで直結できる
 ・マイコンの開発もUSBでできる

というメリットがあります.PWM機能は実装されていませんが,タイマ割り込みができるので,それを利用してPWMが組めます.

…というわけで今回はEZ-USBでモータ制御することにしました.


次回は「USB-IOとEZ-USBでモータ制御」です.


この記事に対するコメント



この記事に対するコメントの投稿














管理者にだけ表示を許可する


この記事に対するトラックバック
トラックバックURL
→http://kougaku.blog28.fc2.com/tb.php/202-5b6b3cd7
この記事にトラックバックする(FC2ブログユーザー)