フォークリフト製作記

池田康輔

フォークリフトロボットについて

今年、私はフォークリフトを製作することにしました。埠頭や運送会社などでコンテナを運んだりパレットを運んだりと活躍しているあの車です。このロボットを作ろうと思ったきっかけに「しむりふと」1(右図)というゲームがありました。このゲームは名前のとおりにフォークリフトのシミュレーションで、与えられた指示どおりにフォークリフトを動かし、ミッションをクリアしていくというゲームです。このゲームのフォークリフトの動きが気に入ってしまいました。それを見て、「これはロボットとして作るしかない!」と思ったわけです。

今まで物理部で作られてきたロボット(ショベルカーなど)は左右の車輪が完全に独立して回転し、直進・後進・回転を行っています(左図・左カーブの場合)。後輪のキャスターは車の動きに従ってぐるぐる回っているだけでした。そのためにその車の走り方は普通の自動車の走りとかけ離れたものになっています。

それならば、と今回は普通の自動車のように実際にハンドルを切って走るように作ろうと考えました。フォークリフトはハンドルを切ると後輪が動いてカーブを描きます。コントローラーにハンドルに相当するスイッチをつけ、それに応じてロボット本体のほうでモーターを使いタイヤを転回するようにします。

今年のロボットは「物理部初!ステアリングを切って走るロボット」ということで作り始めました。しかし、この原稿を書いている段階でまだこのロボットは動いていません。この原稿では最初の目標のまま書いていますが、展示に間に合わせるために妥協策を講じているかもしれません。

フォークリフトロボットの構造

このロボットの要はコントローラーの入力に合わせてステアリングを切るところです。この部分はコントローラーに左右にハンドルを切るためのスイッチを取り付け、そこからの入力信号をPICと呼ばれるICで処理するようにします。実際にタイヤを動かす構造はギアボックスを使いタミヤ製のステアリングセットと組み合わせて作りました(右図、右写真)。当初はステッピングモーターを使いダイレクトにコントロールする予定でしたが、思いの外ステッピングモーター2のパワーが弱かったためギアボックスに変更しました。

  • コントローラーのスイッチを倒すと、倒した方向に曲がるようにタイヤが動く
  • 回転の限界位置にリミットスイッチをつけ、曲がり過ぎないようにする。
  • コントローラーのスイッチを戻すと、タイヤが中心位置に勝手に戻る。

ここで問題になったのが最後の「勝手に中心位置に戻る」というところです。普通の電子回路だとなかなか作りにくいところです。今回はPICというICを使ってみることにしました。PICとはICの中にプログラムを書き込むことができ、そのプログラムによりICの端子につながっているセンサーやモーターなどを動かすことができます。今までPICを使ったことは無かったので、「First PICk」というトレーニングキットを買ってきて使い方を習得するところから始めました。このキットには習得用の実験基板と、PICへプログラムを書き込む回路がくっついた基板(左写真)が付いているので、一通りPICについて理解した後もずっと使えます。PICはプログラミング言語がアセンブラ3なのでとても難しいですが、使いこなせればかなり複雑な事までできる面白いパーツです。

このPICを核に電子回路が組まれています。基板の上にはICが2個と大き目のトランジスタ、リレーが1つにその他抵抗などの小さい部品がたくさんついています。基板の表面にパーツが乱雑に乗っている様子や、裏面の適当はんだ付け実装による高密度配線などもなかなか見ごたえがあります、が完成してからではなかなか見えません。

また、タイヤを中央で止めるためには中心位置を判定するためのセンサーも必要です。このロボットではフォトインタプラタというパーツを使うつもりです。このパーツは発光部と受光部に分かれていてその間に物が入ると反応を示すという働きをします。このパーツをクランクのところに取り付ければ、クランクが中心位置に入ったときにモーターを止めるということができます。しかし、まだここまで製作が進んでいないので何とも言えません。

電源はICとモーターを両方とも動かす必要があるので5V電源と3V電源が必要です。単3電池4本と単2電池2本を搭載しています。今の段階ではロボット本体にすべての電池を搭載しているのでとても無骨な印象を受けます。あまりにも重いためステアリングの動きが悪くなっているのでコントローラーに一部の電池を移動させようか検討しています。

ベースになったショベルカーロボット

ロボット本体は2年前に作ったショベルカーロボット(2台あった)を解体して部品や形を流用しつつ作りました。駆動用のギアボックスを取り付けるアルミアングル2本をそのまま使い、その上に乗って車体のベースとなる2本のアルミアングルをショベルカーロボットのパーツと同じ構造で作りました。

リフトの上下はギアボックスとベルトを使い、上下端の判定のためにマイクロスイッチを二つ使っています。ベルトは左図のように2つかけてあり、垂直方向のベルトにリフトが固定してあります。これは配置の関係でこのようになりました。ギアボックスについた大ホイールが白矢印のほうに回転するとリフトが上昇し、黒矢印のほうに回転すると下降します。一番上までリフトが昇ると上端にあるスイッチを押し、昇るための回路が切れてこれ以上上昇しなくなります。逆の降りるための回路はつながっているので、コントローラーで逆のスイッチを押せばリフトを下ろすことができます。一番下にリフトが下りてきたときはこれと反対に動作します。スイッチのついている位置は前ページの写真を見てください。上端はロボットの前面についていて、リフトでスイッチを押します。下端は支え棒の裏側にありリフトの金具でスイッチを押すようになっています。この判定回路にはダイオード4が使われていて多少電圧が失われますが、最も簡単なこの方法を選びました。

フォークリフトロボット製作小話

このフォークリフトロボットの前輪にはギアボックスが2つついていて、そこにタイヤがついています。実はこの2つのうち右側のギアボックスは動作しないようになっています。タイヤをまげてカーブするように車を作ると、実際にカーブするときに左右のタイヤで進む距離が微妙にずれてくるのです。このずれがあるのを無視して両方のタイヤを同じ速さで回転させると全くカーブしない車になってしまいます。そのためにこのずれを生かすように片側駆動になっているのです。後輪が直進の向きになっていれば片方のタイヤしか回転しなくても直進することができるので、その場で回転してしまうということはありません。

また車体に関して、今回はじめて穴開きのアルミ板を使いました。これは見た目がいい上にネジ穴をあける必要が無く便利だろうと思って買ってきたのですが、なかなか間隔と合わずに、ネジ穴を押し広げたり無理やりネジ止めしたりと結構苦労している代物です。最終的に、基板の覆いとして取り付けたりすれば結構見栄えのするパーツだと思います。

電子回路にも小話があります。このロボットではPICというプログラムを書き込むICを使っています。プログラムを書き込むためにICを書き込み基板に差込み、ちょいと休憩を取っていました。そろそろ作業を再開しようと基板の前に戻り少し浮いていたICを押し込もうとして手を触れた瞬間。アチッ!!火傷しました。原因はICの逆挿しでした。不注意でICを逆向きに基板に差してしまったのです。ICは決まった端子に決まった役割があるので、それをつなぎ間違えてしまったために思いっきり発熱してしまったみたいです。触ったときの温度は半田ごての先に触れて火傷したとき並みでした。半田ごての先端が300度近くになっているのでICもかなりの温度になっていたことが分かります。指先にICの形のままの長方形の火傷の跡ができました。ちなみにそのICは破損。その後まともに動作してくれなくなりました。予備のICを使っています。高かった書き込み基板とそれに接続しているコンピューターが壊れなくて良かったです。

…現在このような事をしながら試行錯誤中です。まだ完成までは多少かかりそうですが地道に進めています。無事に文化祭で展示できていることを祈りながらこの稿を終わりにしたいと思います。


  1. 藤石達也さんが製作されたシミュレーションゲーム。フリーソフト。 http://www.h2.dion.ne.jp/~ame/こちらからダウンロードできます。 ↩︎

  2. 普通のモーターが磁石の間を整流子の付いたローターが回転するのに対して、コイルの間を磁石が動くようになっているモーター。外側のコイルにパルス信号を送ることで好きな角度だけ回転させることができる。 ↩︎

  3. プログラミング言語の一種。ハードウェアの中で使われている機械語にちょいと飾り付けしただけのような言語なので、最も機械に近い言葉である。よって非常に難しい。プログラミングにコツが必要である。 ↩︎

  4. 一方向のみに電気を流す働きのある半導体。決まった方向からしか電気を通すことが無く、逆からだと全く流れない。これの性質を利用してリフトの上下回路が製作された。 ↩︎

次へWindowsドッキリプログラミング初級>