ワンチップマイクロコンピュータを使った実験装置
第4章 マイクロコンピュータを使った実験装置例
4.12 手動車いす模型(AVR)
はじめに
手動車いすの走行特性はとても複雑です。特に,手で駆動力を与える操作と手を持ち変えるときの慣性走行が交互に行われるのは,普通の動力機械には見当たらない特性です。このページで紹介する手動車いす模型は,そのような手動車いすの走行特性を実験室レベルで手軽に調べるために開発しました。
|
|
車いす模型の概要とAVR回路
基本構成
車いす模型の左右車輪は,それぞれの1個づつの直流モータ(マブチRS-540)で駆動されます。モータにはラジコン自動車用のアンプが接続され,さらにアンプにはAVR回路がつなげられています。また,今回試作した模型車いすは,車いす模型は,ラジコン(R/C)で操作されます。ブレーキ機構を動かすためのサーボモータがあり,R/C送信機のスティックを後進方向に動かすとブレーキが機能します。スティックを前進方向に動かすと,サーボモータに近接して取り付けたマイクロスイッチが機能し,その信号がAVR回路に取り込まれます。
すなわち,R/C送信機を操作することでサーボモータを動かし,その動きに従って左右後輪に断続的な駆動力または制動力が加えられる構造となっています。AVRには,マイクロスイッチの信号を読みとり,アンプに断続的な信号(人間の操作を模擬できるような信号)を送るプログラムを書き込みます。

図1 車いす模型の構成
車いす模型本体の構造
車いす模型は縮尺を約1/3としていて,後輪の直径は204 mmとなっています。左右後輪は2つの直流モータ(マブチRS-540)によって駆動され,左右それぞれ4枚づつの平歯車によって,直流モータの回転を約1/60に減速しています。後輪と車軸の間にはワンウェイクラッチを取り付けてあり,直流モータが正方向に回転する場合には駆動力が与えられ,直流モータが静止している場合には慣性走行の状態になります。また,後輪の前方には,ラジコン模型用(R/C)サーボモータによるブレーキ機構が取り付けられています。
|

図2 車いす模型の構造
|

図3 AVR回路
|

図4 サーボモータ
|
AVR回路
車いす模型に搭載しているAVR回路は,第2章で紹介した回路に数本の入出力の配線を加えた簡単な回路です(図5)。入力ピンPD2〜PD5にマイクロスイッチ及び動作確認用の4Pディップスイッチを接続しています。また,出力ピンPB0〜PB1はR/Cアンプの信号線(白線)に接続されています。
なお,試作した回路では,入力ピンPD0〜PD1とR/C受信機の信号線とを接続していますが,現在は使用していません。
|

図5 AVR回路
画像をクリックすると大きい画像が表示されます。
|
サンプルプログラムの詳細
以上に紹介した回路のAVRに書き込んであるプログラム(ATMEL社AVR用BASICコンパイラ)を紹介します。基本的には,入力ピンPD2〜PD5の信号(ON/OFF)を読みとり,4.3節で紹介したR/Cサーボモータ(今回はR/Cアンプ)を動かすためのパルスをピンPB0〜PB1に出力します。

1行〜17行は,REM文(プログラム上意味のない文)です。18行〜19行はピンの設定をしています。20行〜27行は使用する変数の定義をしています。全て整数(Integer)となっています。29行〜31行は,ニュートラル状態(止まっている状態)を設定しています。変数Centpulseは,1.45 msの幅を意味していますが,厳密な値ではないので,実際のハードウェアで動作確認を行い,微調整しなければなりません。
|

AVRの動作が始まると,37行(Do)から98行(Loop)の間のプログラムが繰り返されます。まず,38行は,PD3とPD5に接続したマイクロスイッチピンがOFF(プルアップ抵抗を入れているので+5V=1)のときに静止するためのサブルーチン(89行〜96行)を実行させる条件文です。
39行と40行は,駆動の最高出力を決めるための条件文です。高速モードでは1.35 msの幅のパルス,低速モードでは1.38 msの幅を意味しています。これらの値は,約1.00 msから静止状態のパルス(約1.45 ms)の間に設定し,動作確認を行いながら,扱いやすい値に設定します。
この後のプログラムはいろいろと試行錯誤を繰り返さなければなりません。41行と42行で設定しているDpulseは加速時の幅を表しています。このプログラムでは48段階で加速しています。43行は初期状態のパルス幅Ontimeを設定しています。44行は1周期中の駆動走行を70回(1.4 sec)としています。45行〜56行では徐々に加速するためのパルス幅を決めています。
57行〜58行では,後のプログラムでWaitmsの命令文(ms単位の待ち時間)を使用するため,ms単位の幅を設定しています。
|

60行〜68行は,マイクロスイッチの状態を読みとり,どちらか一方のアンプを駆動するか(旋回),両方のアンプを駆動するか(直進)を決めています。そして,70行〜73行で指定した時間だけ出力します。
74行〜75行で,出力を0として,18 msだけ待ちます。これでR/Cアンプを動作させるためのパルス(20 ms周期)が完成します。以上の44行〜76行を1.4 secの間だけ繰り返します(駆動走行)。
|

78行〜86行は,静止状態(慣性走行)を50回(1 sec)繰り返す命令です。そして,97行,98行を経由して,37行のDoを繰り返し,マイクロスイッチの状況を読みとりPB0とPB1への出力を続けます。
なお,89行〜96行は,前述した静止状態のためのサブルーチンです。
|

旅客船バリアフリーのページ(海技研)
|