スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。



にほんブログ村 その他趣味ブログ 趣味の工作へ にほんブログ村 その他趣味ブログ ビデオ撮影・編集へ

全自動引きこもり機3rdの制御回路を考える(Raspberry piとCPLDによるサーボの制御)

前回は引きこもり機のデザイン画を描きました。
次は、CADで設計して細部の構造も決めて行きたいところですが。
注文したサーボが届くのが4月中旬で、それまで部品の寸法がわからないので設計できません。
というわけで、ロボットを制御する回路について考えていきます。
  • 液晶画面の表示
顔の表示には液晶画面を使います。
液晶画面の制御には色々な方法がありますが、今回のような小スペースの電子工作にはマイコンが使われるケースが多いです。
しかし、マイコンを使うと液晶の制御が面倒ですし、SDカードのようなメディアから表示データの読出すのは手間や時間がかかります。
僕も以前マイコンで液晶画面を制御してその大変さを実感しました。
【フレームバッファ】自作デバイスで動画再生したみた
そこで、今話題のRaspberry piという小型のPCを使おうと思います。OSはLinuxです。
Raspberry pi:http://www.raspberrypi.org/


Raspberry Pi(wikipediaより)

PCなので、なにもせずとも画面を接続すれば画面表示ができます。
顔を表示するとしたら、動画や画像ファイルを表示するようにすればいいでしょう。
解像度はもちろんフレームレートも高いですからね。かなり表現力の高い表情表示が期待できますし、それ以外のこともなんでもできそうです。

ちなみに、開発環境を整えれば、開発からデバッグ(動作テスト)までの全ての工程をRaspberry pi上で行えるという便利さもあります。
いままでのように”マイコンにプログラムを書き込んで、対象のボードに差し替えてボードの電源をいれて動かす”といった手間が省けます。

  • サーボモータの制御
Raspberry piには何本か入出力ピンがありマイコンのようにサーボモータやLEDを直接制御できます。
そういうと、このボード一枚で直接ロボットを制御できる気がしますが・・・現実は甘くはないです。


Raspberry Pi
Raspberry piにはPWM出力の端子が2個あるので確かにサーボは制御できます。
しかし、今回は間接制御用に20個のサーボを使いたいので足りません。
GPIO(ただの入出力ピン)はたくさんあるので、回避作としてをGPIOを使ったPWM波形の自作が考えられますが、その場合Raspberry pi上で実行されている他のプロセスの影響を受けるので、ジッター(波形がゆらぐ)が発生して、サーボの動作が安定しません。
さらに、LEDやモータの制御を考えるとRaspberry piのGPIOでは本数が足りなかったり・・・ということでサーボモータ制御用の回路を追加しなければなりません。
追加する回路は何が良いか。
チープなマイコンではサーボを制御する際に同じくジッターが発生するので、市販のサーボコントローラを使う、もしくは汎用ロジックICで回路を自作することが考えられます。
どっちでもいいのですが、”コストが安いことと作る楽しさ”を考えて汎用ロジックICを使おうと思います。


MAXII (オプティマイズMAXIICPLDより)

追記:

汎用ロジックICはマイコンと違って、メモリやCPUが入っていないただの組み換え可能な論理回路です。そのため非常に高速で安定した動作を実現できます。しかし、設計を論理回路レベルで行うので複雑な動作をさせるのは難しいという欠点もあります。

有名どころはFPGAやCPLDです。
今回はたまたま手元にあるMAXII(コストパフォーマンスの良さが売り)というCPLDを使います。
  • 駆動輪モータとLEDの制御
先述のようにサーボモータの制御を他の回路に任せれば、Raspberry piの残りのGPIOピンで駆動輪のモータとLEDを制御できます。
LEDはRasperry piにトランジスタを介してつなげればいいですし
駆動輪のモータは適当なモータドライバを介してつなげればいいです。


タミヤ ギヤードモーター
  • 電源
ロボットはなるべくワイヤレスしたいので、バッテリーを使います。
バッテリーは重いです。二足歩行の場合重心は低いほうがいいので、足や脛(すね)に入れようと思っています。
サーボ20個となると結構な消費電力になりますが、あまり大きくても場所に困るので、無難にタミヤのRC用バッテリーを使おうと思います。


タミヤ7.2vバッテリー
  • 回路全体の構成
以上から回路全体はこんな構成になります。



回路全体の構成
一番難しいのがRasberry piとMAXIIの間のI2C通信、MAXIIでのサーボ制御です。

追記:
I2Cとはシリアル通信のプロトコルです。他にもUSARTやSPIなどのプロトコルがありますが、サーボへの指令値を送るにはUSARTでは遅いし、SPIでは信号線が多いとういうことでI2Cにしました。

MAXIIではI2Cの規格に沿った通信回路やサーボ制御に必要なPWM波形を生成する回路の設計が必要になります。ロジックICでのこういった回路の設計は初めてです。楽しみです。



にほんブログ村 その他趣味ブログ 趣味の工作へ にほんブログ村 その他趣味ブログ ビデオ撮影・編集へ

コメントの投稿

非公開コメント

プロフィール

回路師

Author:回路師
趣味がロボットと動画製作です。
便利な機械やあほなマシンの動画を投稿しています.

最新記事
最新コメント
カテゴリ
電子工作キット








月別アーカイブ
書籍






Twitter
リンク
RSSリンクの表示
ソーシャル

検索フォーム
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。