はじめに
謝罪からスタートの部誌というのもレアだと思いますが、まず、謝らなければならないことがあります。これから書く部誌は、昨年度に2日目の最後の2時間のみ、がばがばな状態で動作した作品についての考察になります。昨年度来ていただいた方には、1年越しになりますが、パンフレット等で宣伝しておきながら申し訳ありませんでした。
というわけで。どうも、高校2年生の部長です。4年目の部誌は、昨年度のクレーンゲームについての考察になります。主な内容は考察なので、電子工作について多く語るというわけではありませんが、読んでくださるならば、嬉しい限りでございます。
作ることになった経緯
作ることになった経緯ですが、興味半分、周囲からの圧力が半分、だったような気がしているような、していないような気がします。興味があって、自作できるのであればやってみたいなという気持ちはありました。そして、調べものをしているうちに、とある方のブログに飛び、そこに貼ってあった動画も何度も見返して、参考にしながら作れるかもしれないと思いました。物理的に実現可能かどうかの意味で、です。中学3年生になり、上の学年がいなくなって、電子工作班は自分にまかされたような、そんな境遇でしたので、一つくらいは大きな作品、要するに、目玉となる作品を作らなければいけない。そんな使命感にも駆られていたのでちょうどいいか、そんな気分でした。
正直なことを言うと、会計と副部長を9月から一気に任され、文化祭のメインたる仕事も後々任されるようになるだろうと思っていたので、あまりよい予感がしてなかったことは、当時からありました。また、メインである筐体の作成も、部室がより自由に使え、資材も届く夏休みに入ってからなので、正直言ってかなり厳しく、辛い1年でした。
なので、実際に製作に本格的に取り掛かり始めたのは、1学期の期末考査後、というわけになります。わかりやすいように手書きのイラストも載せながら書きたいと思います。パソコンで書くよりはるかに速いので、手書きになりますがよろしくお願いします。
クレーンゲームとは?
タイトルからして、わからない人のために感がありますが、そうではございません。自作するにあたって考えなければいけないことなどをまとめます。ページ数等の関係もございますので、クレーンゲームについては既知であることを前提にお話します。右の写真のやつですね。
様々なものを思い浮かべられると思いますが、ゲームセンターに行けばよくある、100円入れて、「右側」と、「奥側」に動かす、よくあるようなものを自作します。皆さんの中にも、保護者の方と一緒にゲームセンターに行って、お金をもらって、100円玉を何枚も無駄にした人もいることでしょう。クレーンゲームは、ボタンを押すだけですが、コツがあったりするので、はまる人にははまるでしょうね。あのアームの力の無さには、詐欺か?というくらいのものもあって、なかなか景品も取れないですよね。
今回の部誌では、便宜上「右側」のこと、すなわちプレイヤーから見て横方向のことを、「x軸」と定義し、「奥側」すなわち、プレイヤーから見て縦方向のことを「y軸」と定義します。また、下方向に自動で動く「下方向」のことを、「z軸」と定義して、今後の話を進めることにします。図を載せるので参考にしてください。図の上の方の斜線部は、クレーンゲームの機構があるところです。下手な絵ですが、一応クレーンゲームの構造を理解していただき、x軸、y軸、z軸がどこのことを指しているのか、矢印も参考にわかっていてくれたら幸いです。
要は、あのような動きを自作で再現できればよいのです。端的に言ってしまえば、100円を入れるかどうかを別にすれば、クレーンゲームの自作のとりあえずの目標は、
ボタンを2つ用意し、1つ目を押している間は、x軸方向に動き、2つ目を押している間は、y軸方向に動き、あとは自動でz軸方向に適切な距離下がって、アームを広げて元に戻し、z軸方向の上方向に上がりながら、元居た位置まで戻って、アームを広げればよい。
ということになります。「何言ってんだこいつ?」という人もいるでしょう。わかる人には、言葉にしてみればそれだけのことか、という意見を持つ人もいるでしょう。まぁ、自分の国語力の無さも相まって、本当に何言っているのかわからない人のほうが多いと思うので、これから解説していくつもりです。
あの文章を読み解くと、どうやら、大事そうなのは、x軸、y軸、z軸、アームの4つほどですね。実際問題、制御をする、という観点で非常に大事なのは、この4つです。お金を入れたら動かすことのできるという点を加えれば、5点になるのですが、最後にまとめるとして、上の4つについてまとめることにします。自分にとっては4つとも難題ばかりでした。
難題なのは、上記4つなのですが、それ以外にもクレーンゲームを語るうえで、筐体、というものは非常に大事になってきます。筐体というのは、外側の枠や、景品が出てくるところなどの動作をしない部分です。予算面や、時間の都合により、外枠しかできなかったので、外枠ということにしておきます。また、動作させるためには回路も作らなければいけません。回路については参考文献に載ってあるものや部品のデータシート、サイト等を活用しパズルのように組み合わせて独自のものを作りました。なので、オリジナリティはほぼ皆無です。また、回路自体も複雑ではなかったので、回路は一番簡単でした。まずは、それほど困らなかった外枠についてから行きたいと思います。
材料
使う材料をまとめておきます。
角材(4mで500円くらいのものです。)
ベニヤ板
キャスター
L字金具
木ネジ
ワッシャー
PPシート(ダイソーで売っています。)
アルミニウム板(ダイソーで売っています。)
ボルト(小さいモノ。アーム用)
基板
/ダブルギアボックス x 4
メタルギヤサーボモーター
Arduino(必要なピン数によってUnoなのか、Megaなのかなどが変わります。)
ボタン(クレーンゲームに使われているボタンも市販されています。) x 2
モータードライバー TA7291P(ギヤーボックスに使われているDCモーターの数)
抵抗器 10kΩ、1kΩ
マイクロスイッチ(リミット用)
ACアダプタ(6V、1.8Aに近い値の物。大きすぎるのもよくない。)
銅線
その他、クオリティをあげたければ、装飾するためにペンキを追加したり、クレーンゲームの機構を、チェーンを使ってやる場合には、DCモーターの代わりに使ったり、クレーンゲームの外枠に大きなアクリル板をつけて本物に近くすることもできます。ただ、今回使った材料はこんなもんです。サイズ、個数等は、自分の作るものに合わせてください。そのために個数表記、サイズ表記していないものもあります。
外枠(筐体)
外枠は上記4要素よりは比較的楽に製作できました。苦労したところはというと、運搬の問題です。エレベーターに入るように大きさを調整する必要がありましたので、大きさをy軸方向に少し小さくしたかなぁ、という感じです。わかりやすく言うと、幅がおそらく普通のものより若干薄いです。
それでも、それなりに大きさはあるので、一人で組み立てるのは非常に大変でした。運搬の問題から、筐体の底にはキャスターも付けました。大きさは、確かキリよくx方向y方向z方向で、1200×600×1800(㎜)で作ったと思います。その底に、キャスターをつけた、という感じです。
4隅に柱を4本、180センチの角材を切り、それに合うように、60センチ×120センチにL字金具などを使って、角材で角なしの長方形(図)を4つ作って、強度を持たせました。サイズが大きいので、難題ではありませんでしたが、何分加工には時間がかかるので、これが出来上がったころにはすでに8月に入っていたような気がします。
X軸(横方向)
難題その1、x軸です。x軸を動かすだけだと思っても、y軸を動かせるように、また、同時にz軸も動かせるように、機構を乗せながら横方向に動かす必要があるので、まずは、このx軸をしっかりと動作させなければいけません。yとzがうまくいってもxが動かなければ意味がありません。筐体の時に作った、60センチ×120センチのものを一つ、x軸のレールとします。その角材の上を、ボタンを押したら、押した分だけタイヤがy軸とz軸の機構を乗せて動けばおしまいです。
ここで難題なのは、4か所にギヤーボックスを取り付けたので、4か所の動きを同時に行わないと、まっすぐに動かず、また、落下防止の柵にかかって、動作が不安定になってしまいます。モーターの制御する数も、4つになり、回路もプログラムの方も複雑になります。実際のところ、x軸もうまくはいきませんでした。モーターの数を増やせば、火力も増えるのですが、少しでもずれるわけにはいかないのにもかかわらず、動作は、どうしても不安定です。後日リベンジしようと思って試作したら、モーターは1個のほうが安定でした。そのほうが回路も複雑でなくずれも生じにくいです。ただし、端っこの方にタイヤが引っかかると詰まってしまうので相も変わらずx軸については安定さが一番の課題です。その辺はさらに考える必要がありそうです。また1個にする場合には、スピード、パワー面の問題が出てきてしまいます。なので、モーターの個数問題もかなり頭を悩ませます。
また、x軸では移動する距離には限界があるので、リミッターというものが必要です。端っこにスイッチをつけておいて、押されたらモーターがこれ以上動かないようなプログラムを書いてもらいます。そうしたら、動きすぎるということがないのです。これをリミッターと呼ぶことにします。
x軸は、モーターを一つにして制御するか、チェーンを使うほうがいいと思いました。
Y軸(縦方向)
個人的には、y軸のほうが、x軸で乗せた機構の上をただ、車みたいなものが走るだけなので、一番簡単だと思っていました。実際、x軸、z軸よりは構造は単純で、4要素の中では一番簡単だと思います。しかし、実際に動かす際は構造が雑になってしまい、x軸とz軸だけで動かしていました。
y軸についても、z軸の機構を乗せて動作する必要があるので、それなりの力は必要ですし、バランスなども安定させる必要があります。y軸の最も難しいところは、z軸との連携です。z軸がなかなかの曲者なので、y軸は縦方向に動かすだけではなく、z軸の機構をともに動かす必要があるところが、y軸の最も難しいところでもありました、自分の場合は。結局のところ、最後の2時間で、y軸抜きで動作させたらうまくいきそうだったので、y軸は動かしませんでした。
ちなみに、y軸にもx軸同様にリミッターが必要です。
y軸もx軸同様に、チェーンを使う方法があったりしますが、車のように走らせるかチェーンのどちらかでしょう。お金はかかりますが安定性、成功率というものを考えるとやはりチェーンのほうがいいと思いますね。
Z軸(上下方向)
最も曲者だったといっても過言ではありませんでした。上下に高度を変えるということが、今の自分の技術力でどれだけ大変だったものか。
Z軸の存在理由は、アームの位置を下げて上げることにあります。アームを上げ下げするのには、基本的に糸のようなものが使われます。どれだけ参考となる動画を見ても、記事を調べても、糸を巻き取るようなものが主流でした。そして、そうすることが、自分の技術力では、一番厳しかったのです。「はじめに」で書いたように、試行錯誤する時間はそれほど残されてはいませんでした。物を注文するにも時間がかかり、あるもの、ないしはすぐに購入できるもので済ませる必要もありましたので、z軸をやるころにはいろいろと焦りが見え始めていました。回路が意外にも早くできた分、やはりクレーンゲームは制御が難しいです。
ギヤーボックスの両側を太くして、そこに糸を巻き取る方法。プーリーを使って巻き取る方法、ギヤーボックスの片方で巻き取る方法など、いろいろあって、自分がやりやすいと思う方法でやることにしました。後々考えてみると、プーリーを使う方法のほうがやりやすそうなのですが、当時選択したのは、ギヤーボックスの両側に巻き取る方法。個人的には全くお勧めしません。片側だけで巻き取ったほうが圧倒的に楽です。傾きづらくもなるので。
ただし、z軸は機構を考えるのに時間がかかった割には、雑だったのですが、それなりの成果を見せてはくれました。とても完璧に近い状態ではなかったのですが、z軸が動かなかったらどうしようもなかったので、最後の2時間は一安心していました。
ちなみに、糸は、アームに使われているネジかなんかに引っ掛けると、持ち上がります。
アーム
アームは、どちらかというと、加工が大変です。これまた、様々なタイプがあり、自分で作りやすそうだなぁ、と思ったものを作るまでです。加工は、薄いアルミ板と、ダイソーで購入したプラ板だけです。アームの部分のメインはプラ板です。PPシートって書いてあったような気がします。ダイソーに行ったらPPシートというものを買うと同じように工作ができます。アルミ板もダイソーには売っています。薄くて、裏側にテープが張ってあるもの限定ですが。
アームもそれっぽい形のものを、PPシートを加工して作ります。ネジやワッシャーも使います。ワッシャーではなく、スペーサーで代用しても構いません。ワッシャーのほうが、融通が利くかなぁと思い、高いのですが、ワッシャーを使いました。
アームは、メタルギヤサーボモーターという部品を使って開閉させます。この開閉の際も様々な方法があり、かなり苦労しましたし、結局動かした時は開閉しなかったと思います。動画を見ていると、楕円をサーボモーターにつけてアームの開閉をする方法がありました。その当時どのような方法で開閉をさせようとしたかはよく覚えていませんが、後日楕円を切ってみると、ちゃんと固定すればしっかりとした動作をしそうだなぁ、という印象がありました。しそうだなぁ、ということなので、本当にできるのかどうかはわかりませんが、正常な動作に一歩近づいた気がしました。要するに、アームの一番難しいところは加工が大変と書きましたが、アームがしっかりと開閉するように加工することが大変なのです。どのように開閉するかを考えて加工しなければならないので、z軸よりも曲者だったかもしれません。自分の場合は、前日までアームの開閉がそれなりにうまくいっていたものを当日になってサーボモーターが壊れてどうしようもなくなったため、あきらめたという感じです。楕円っぽい形のものをつけていたような気がするので、それなりな動作をしたのでしょうかね。今となっては謎です。ちゃんとやろうとすれば、こいつが一番の曲者かもしれません。ほとんど、動画を参考にしたやつをまねただけなので、z軸よりは考えずにとりあえず大量に加工していたのですが、1から考えて作るとなると一番の厄介者でしょう。ただし、アームに関しては市販されているものもあるので、購入してしまえば、やはりz軸が一番の曲者に違いありません。
サーボモーターが壊れた件については、文化祭の当日で何の前触れもなかったので、本当に踏んだり蹴ったりでした。文化祭当日ですら、フロア装飾の仕事があったりしたので、本当にもう…。
回路(モータードライバーTA7291Pの詳説)
なんだかんだ言って、回路が最も簡単に、そしてうまくいきました。何度も言いますが、制御、機構のほうが圧倒的に難しいのです。回路は、2つほどの記事を参考にして、作りました。
回路は、x軸、y軸、z軸、アームの4つを制御するためのものです。それ以上でもそれ以下でもありません。要するに、それらを動かすためのDCモーターと、サーボモーターを制御できればそれでいいのです。今回も機構の制御にはArduinoを使っています。銅線の数も多いので、Arduino Megaです。
Arduinoについて
ここで、Arduinoについて簡単にまとめておきます。2年前にまとめた自分の部誌からも引用したいと思います。回路を作るだけでは、動作に限界があります。その限界を超えるために必要なものが、Arduinoと呼ばれるものです。右図は、Arduino Megaです。マイコンという部品の一種で、プログラミングを書いて、パソコンとUSB経由でつないで、プログラミングをArduinoに書き込みます。例えば、
5歩動いて1秒止まり、90°回転して10歩動く。あるいは、LEDを2つ並列につなげて、それを5秒ごとに交互に光らせるなど複雑な動作をしてくれます。(引用)
5秒ごとにLEDを交互に光らせる、などは回路だけでは難しいです。(できるのかなぁ?)ですが、Arduinoを使えばすぐにできてしまいます。どちらかというと、「あるいは」以下の説明のほうがわかりやすいと思います。今回の回路の機構でいうと、主に、ボタンを押している間だけ、モーターを動かす、という部分です。
DCモーターは、モータードライバーという部品を中間に挟んで制御します。サーボモーターは直接です。あとは、ボタンとも繋いで、x軸とy軸を制御しなければいけません。
モータードライバーは、使い方が決まっていて、配線の場所も決まっているので、記事を参考に回路を組みました。今回使ったモータードライバーは、TA7291Pというよく使われているものを使用します。足が10本あり、どれがどの役割をするのか、明確に決まっています。図と、表を載せて解説します。端子番号については、左から1番です。
端子番号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
端子記号 | GND | OUT1 | NC | Vref | IN1 | IN2 | Vcc | Vs | NC | OUT2 |
まず、簡単なものから、説明します。
端子番号3,9
3番と9番は、NC(Non Connection)といい、端子はそのままで、銅線などはつなぎません。
端子番号1
1は、GND(グラウンド)といって、簡単に説明すると、電池のマイナス極です。
端子番号2,10
2と10のOUT1、OUT2というのは、モーターの端子につなぐものです。どちらにつけるかは問われません。逆向きにしたいのであれば交換すればいいだけの話なので、あまり考えなくてもいいと思います。
端子番号7,8
Vsは、モーター用の電源です。よって、8番には、モーターの電源をつなぎます。モーターは、普通の部品と異なり、電圧が高いほうが良いので、外部電源(電池ボックスの+)を8番とつなぎます。逆に言うと、7番は、Arduinoから供給される電源とつなぎます。Vccは、IC用の電源です。7番は直接、モーターには電源を流しません。Arduinoは最大の電圧が5Vなので、モータードライバーの内部回路を動作させるために、モータードライバーに、モーター用の電源とは別に供給します。
端子番号5,6
5番と6番の、IN1,IN2という端子は、Arduinoのデジタルピンにつなぎます。プログラムでは、HIGHか、LOWの2種類の値を代入します。その値の組み合わせによってモーターが4種類の動作をします。PWNが使用できるピンの番号の所には、「~」のマークがついているのですが、それがあってもなくてもよいです。確実なのは、「~」などが何もついていない、(Arduino Unoであれば)2,4,7,8,12,13番につけるといいです。どこにつけるかは、普通は配線がゴチャゴチャにならないように工夫しながら考えて決めます。この2つのピンの入力次第で、どのようにモーターを動かすのかが決まります。
端子番号4番
4番のVrefというのは、基準電圧回路といい、一定の電圧を出力する電子回路のことです。このピンで、モーターの回転速度を調節します。モーターの回転速度は、PWNというものを使って、Arduinoのプログラミングをするときに0~255の値を入れてモーターの回転速度を決めます。数字が大きいほど、回転速度が速いです。
モータードライバーの①~⑥の特性を理解したうえで、自分は回路をブログで書かれていた回路等を参考にして組み立てました。実際、回路のほうはしっかりと動作しました。回路で一番考えなければいけなかったのは、このモータードライバーについてでした。このことさえ理解できればあとはパズルのようにやっていくだけです。参考文献の資料も基に作った回路図も載せておきます。回路図は正式なものではなく、つなぐ場所がわかるように書きますので、記号等も正しいものではありませんので、専門の方には変な風に見えてしまいますが、技量不足ですので申し訳ありません。
ちなみに、モータードライバーの回路は、使うモーターの数の分だけ作成しますが、電源の類(7番と8番)、GNDはピン同士をつなげて、1つ分で大丈夫です。ただし、これは並列にしていることになるので、5Vより大きい値のACアダプタとつなぐことをお勧めします。モーターや、Arduinoとつなぐピンは、モーターの数だけArduinoとつないでください。サーボモーターは、サーボモーターだけで一つのACアダプタを使ってしまって構いません。GNDは同じにつないでしまっても問題ないです。また、Arduinoの電源はパソコンのケーブルから直接取っています。あと、リミッターと、ボタンの部分の回路の電源も一緒にしてしまって構いません。抵抗器は、4つ並んでいるものが、すべて10kΩ、リミッター用が1kΩです。小さくて見づらかったら申し訳ありません。
回路の中心部分はモータードライバーを中心としたx軸、y軸、z軸を動かすためのモーターと、アームを動かすためのサーボモーターの回路、ボタン、そしてリミッターです。コインを入れたらボタンが押せるようにする機構を作ろうとしたら、その分の回路も作らなければなりませんが、この機構は相当前のほうの段階で断念しました。ざっとこんなもんですかね。
最後に ~感想的な何か~
昨年の出来事を今年の部誌として記憶を掘り起こしながら書いたものなので、ところどころ間違っているところがあるかもしれませんが、部活内に正せる人間がいないと思うので、間違っていたらすみません。
感想的なことを言わせてもらうと、作品作りは一人でやるものではないなと思いました。共同作業でやったほうが効率も良いし、時間もかからないので。筐体と制御の人とアームの人などに分けて作業したかったです。
また、環境も良くなかったかなぁと思います。事務作業ばかりに追われて、やること抱えていることが多すぎました。その当時、すぐに動ける高校生が高1と高2で3人、その下の学年は中2だったというのがかなり厳しかったです。また、文化祭の展示に関わるものも半分以上自分が企画担当的な立ち位置にいたため、クレーンゲームに専念することができなかったこともあります。ついでに善意で手伝ったフロア装飾のおかげで夏休み後半の貴重な時間が大分削られました。もう少し考えてやればよかった。正直言って、今回のこのクレーンゲーム自作が、高校時代の闇となってしまいました。期間的な制約でいうと、中3の3学期が諸事情により、部活があまりできなかった(補習ではない)というのもかなり大きいです。今思うと、かなり厳しい条件で臨んでいたことがうかがえます。
これだけ見てもクレーンゲームの自作は難しいと思いますが、興味深い内容だと思うので場所と予算が許すのならば、小型なものでも、ぜひ自作してみてください。
工作は、電子工作にしろ、DIYにしろ、とても楽しいものです。気軽にやってみてはいかがでしょうか。
というわけで、ここまで部誌を読んでくださってありがとうございました。
参考文献
https://ameblo.jp/tajiri1998/entry-12198599609.html(8月15日アクセス)
https://www.petitmonte.com/robot/motor_driver_ta7291p.html(8月15日アクセス)
2年前の自分の部誌
(参考にさせていただいた動画)
https://www.youtube.com/watch?v=jxn-IcdtVvY(8月15日アクセス)
https://www.youtube.com/watch?v=w2yoIul-6BM(8月15日アクセス)