ユビキタス鉄道模型
赤外線リモコン戦車
レーザ・グラフィックス
USB加速度センサマウス
ビジョンシステム
リアルタイムOS
LCD表示パネル
相撲ロボット
├ ハードウェアについて
├ プログラムの説明
└ プログラム作成の注意点
多自由度ロボット
 開発事例 TOPへ
 HOMEへ
イエローナビ
 ページTOPへ
 開発事例 TOPへ
 HOMEへ
YellowSoft.com
製品紹介 Q&A ダウンロード 開発事例 ユーザ ご購入 価格表 お問合せ
 相撲ロボット


  相撲ロボット「リンパオスA」の開発
    大内 孝司


  ハードウェアについて

    (1)プログラムの概要について


全体ブロック図


H8/3048F CPUボード(YH48-1)とドライブキバン(自作)、そしてデバッグ時はさらにデバッグボード(YH48-2)をスタッキングコネクタで重ねて接続しています。また、モータ駆動時のノイズによるCPU誤動作を防ぐため、FETなどのモータ駆動に関する回路部分はドライブサブキバン(自作)として、モータ用電池と共にCPU周辺から分離しています。

電源としては、+5V(ロジック系)生成用の006P(9V)電池を1ケ、相手センサとFETドライブICの電源用にLiイオン電池(約7.5Vを2ケ直列接続)、モータ駆動用としてラジコン用Ni-Cdバッテリパック(7.2Vを2ケ並列接続)を使用しました。(Liイオン電池はあとから追加したので、上記の構成になってしまいましたが、+5V系もLiイオン電池から生成するということでもよいと思います。)土俵周辺の白線を検知するため、ロボットの底面4角に白線検知キバン(自作)を取りつけています。オープンコレクタ出力で、通常は出力OFFで、白線検知時にONします。

相手検出センサは、FA用に市販されている拡散反射型の赤外線センサ(SUNX社のCX-22)を2ケ使用しました。やはりオープンコレクタ出力です。相手の色等の影響を受けやすく、条件によっては相手に100mm程度まで接近しないと検出できないので、次回は別のものを使おうと調査中です。モータは、タミヤのラジコン用モータ「ダイナテック02H」を2ケ使用しています。カタログによれば、主なスペックは以下の通りです。

・適正負荷時回転数 → 28,900rpm
・最大出力 → 285.22W
・適正負荷時電流 → 20A
・最大許容電流@7.2V → 51.1A


    (2)ドライブキバン、及び、ドライブサブキバンについて

  回路図のダウンロード (32.3KB PDFファイル)



ドライブキバンとドライブサブキバン


ドライブキバン、及び、ドライブサブキバンは、どちらも市販のユニバーサル基板を使って組み立てました。

ドライブキバンは(名前は「ドライブ」となっていますが…)各センサやモータ制御信号の接続コネクタ、及び、リセットスイッチ、スタートスイッチ、立ち会いモード選択用のロータリDIPスイッチ、そして、CPUの状態やセンサの状態を表示するLED(4ヶ)を備えています。また、+5V生成用には、一般的に使われる3端子レギュレータ7805ではなく、低飽和型のμPC2405を使用しました。これにより、006P(9V)電池の電圧が低下しても+5Vを維持できるようになります。H8/3048F CPUボードYH48-1とスタッキングコネクタ位置も含めて同形状にすることで取りつけスペースも小さくできました。

ドライブサブキバンには2つのDCモータを駆動するため、Hブリッジ回路を2組製作しました。IR2110はFETドライブICで、ハイサイド、及び、ローサイド用のN-ch FETを各1ケドライブすることができます。外付けのコンデンサとダイオードでブートストラップ回路を形成し、ハイサイド側FETのドライブ電圧を作っています。ブートストラップコンデンサ値の計算については、IR(International Rectifier)のホームページ(http://www.irf.com/japan/jphome.htm)に資料があります。

FETにはIRF3205を使いました。ON抵抗は0.008Ω、Idは110A@25℃と十分な電流ドライブ能力があります。ケースはドレインとなっているので実装時はショートなどしないように注意が必要です。


    (3)使用するI/Oについて

デバッグボード(YH48-2)を使用して開発していくため、I/Oポート割付は、以下のように考えて行いました。

1. デバッグボードで使っているアドレスバス、データバス、チップセレクト部分は使わない
→デバッグボード使用時は、CPUをモード3で使うため、このときに入出力ポートとして使えないポートを除外することになります。これにより、ポート1(A7〜A0)のすべて、ポート2(A15〜A8)のすべて、ポート3(D15〜D8)のすべて、ポート5(A19〜A16)のすべて、ポート6のビット6〜3(_LWR、_HWR、_RD、_AS)、ポート8のビット4〜3(_CS0、_CS1)は使わないことにしました。
2. カウンタ、A/D、SIOなどの特殊機能を最優先で割り付ける
→今回は、相補PWM機能の出力端子となるPB0、PB1、PB2、PB4、SIO機能のP90、P91、P92、P93がこれに当たります。A/Dは今回使用しませんでした。
3. LEDを直接駆動できるポートをLED制御用に割り付ける
→PB3、PB5、PB6、PB7をLED制御用にしました。
4. 入力専用ポートに入力信号を割り付ける
5. 残りは適当に割り付ける
→今回は、入出力信号の数が少なかったこともあり、4と5は特に意識せず適当に割り付けました。

このようにして割り付けたI/Oポートを表にまとめました。

センサ・
スイッチ名
接続先 I/O ポートの
割り振り
備考
反射センサ センサキバン 入力 P40 右前白線検知
反射センサ センサキバン 入力 P41 右前白線検知
反射センサ センサキバン 入力 P42 右前白線検知
反射センサ センサキバン 入力 P43 右前白線検知
モード切り替えSW bit0 ロータリ
DIP SW
入力 PA4  
モード切り替えSW bit1 ロータリ
DIP SW
入力 PA5  
モード切り替えSW bit2 ロータリ
DIP SW
入力 PA6  
スタートSW モーメンタリ
トグルSW
入力 P80 SW ONの5秒後に動く
拡散型赤外線
反射センサ
CX-22 入力 P46 左側相手センサ
拡散型赤外線
反射センサ
CX-22 入力 P47 右側相手センサ
DCモータ
ドライバ
IR2110 出力 TIOCA3(PB0) 右車輪系駆動bit0(PWM)
DCモータ
ドライバ
IR2110 出力 TIOCA3(PB1) 右車輪系駆動bit1(PWM)
DCモータ
ドライバ
IR2110 出力 TIOCA3(PB2) 右車輪系駆動bit0(PWM)
DCモータ
ドライバ
IR2110 出力 TIOCA3(PB4) 右車輪系駆動bit1(PWM)
モータフリー IR2110 出力 P62 IR2110のSD端子へ
LED   出力 TIOCB4(PB3) 点滅/戦闘状態/白線検知センサ表示用
LED   出力 TOCXB4(PB5) 点滅/戦闘状態/白線検知センサ表示用
LED   出力 PB6 右側相手センサ
状態表示用
LED   出力 PB7 右側相手センサ
状態表示用



← はじめに 2/4 プログラムの説明 →