高専の授業は単語を覚えたり、問題を解いたりする座学だけではありません。今回の記事では徳山高専の機械科だった筆者が、実践的な授業である「創造製作・創造演習」について紹介します。目次1.高専の授業「創造製作・創造演習」とは何?2.「CAD」で学ぶ設計3.「プログラミング」で学ぶ制御4.「創造製作・創造演習」本番5.まとめ1.高専の授業「創造製作・創造演習」とは何? 筆者が在籍していた徳山高専の機械科には、創造製作・創造演習というカリキュラムがありました。何をする授業かというと「0からロボットを作って動かす」という授業です。2年時と3年時に実施され、1年間を通して「設計」「制御」それぞれの授業で学んだことを生かして課題に取り組みます。 課題の内容ですが、これは毎年変わっていました。そのため「先輩が作ったロボットを借りてクリアしよう♪」といった事はできません。 毎週進捗を報告する必要もありましたし、課題をクリアしない限り単位は貰えません。大変難しいように聞こえますが、先生も助けてくれますし、クラスの中で得意な人たちで助け合っていたりもしていました。 諦めなければ単位取得はそれほど難しくは無いと思います。2.「CAD」で学ぶ設計 ロボットを作る方法は様々です。実際に手を動かしながら完成を目指したり、完璧な設計図を用意してからその通りに組み立てたり。 授業を受けた感じ、殆どの人はまずは手を動かしながら作っていました。 しかし、授業内で「設計図の提出」が求められます。 つまり「何となく部品を組み付けてロボットを作りました」だけではダメです。 作ったロボットに合わせて設計図を書いている同級生も多くいましたが、どの道設計図の提出が必要なら、設計図を書いてから製作をした方が効率も良く作りやすいと思います。 さて、先ほどから述べている「設計図」ですが、私の在学中と同じなら「SolidWorks」という設計ソフトを用いたCAD(※設計をコンピューター上で行うアプリケーション)によって製作することになります。 授業自体に「CAD」という授業が組み込まれており、その授業でSolidWorksの使い方を学びつつ、創造製作ではロボットを設計する、という流れになります。 CADは慣れるまでは少し大変かも知れませんが、授業を聞いて分からない点をきちんと質問して解決できるようにしておけば問題ないと思います。 有料ソフトのため、学校でしかCADの作業ができない点も大変だと思います。放課後に残って頑張っている同級生なども結構いました。3.「プログラミング」で学ぶ制御 2年時からプログラムによる制御の授業が始まり、プログラミングを学びました。 創造製作では、3年時の課題は「自動操縦」で行う必要があるため、プログラミングの知識が必要になります。 最初は、PCの画面上に文字を出現させる簡単なプログラムを作ることから始まり、マイコンと呼ばれる小さなコンピューターを用いた実習などを行います。 最終的には「自分が作ったロボット」と「自分がプログラムを書き込んだマイコン」を接続し「モノを運ぶ」や「決められたコースを移動する」といった課題のクリアを目指します。 プログラムを学ぶ上で、私が難しいと思う点がいくつかあります。・何をやっているのかを見失いがち プログラムの授業を受講する際、「今何を学んでいるのか」を見失いがちだと思いました。 プログラミングで実現する目的が「作ったロボットで、モノを持ち上げで50cm進んだ所に移動させる」と言う事を最終目標と仮定します。 RPGゲームで例えると「魔王(ラスボス)を倒す」 が最終目的です。プログラムの授業は、言わばチュートリアルでして、「今日の単元は勇者の移動のさせ方」です。という感じで 「今日はモーターを回すプログラム」をレクチャーします。というように進んでいきます。 上記の様に分かりやすい表記なら理解しやすいかも知れませんが、実際の授業の単元は「if文の使い方」「switch-case文を用いた演習」「関数と引数」「関数と戻り値」 等、プログラムを初めて学ぶ人からすればもはや何を言ってるのかわからない状態になると思います。先生が「どういう時に使うか」や「効果的な使い方」などを説明してくれますが、個人的には「プログラムをやってみないことには何の為にあるのか分からない」と思います。 そのため「『たたかう』を押せば敵にダメージが与えられます」と言う説明で魔王の倒し方まで理解出来るのが理想ですが、実際にところは 「『たたかう』を押したら、敵にダメージを与えられたぞ? つまり、敵を倒すには『たたかう』を押せばいいんだな」といった学び方の繰り返しになると思います。 結果的に、プログラムの授業で今何を学んでいるかと言う点はとても見失いやすい様に思います。 大切なのは、今やっていることが何のためにあることなのか分からない、もしくは実感できなかったとしても、とりあえず理解して自分が書けるようにしておくことです。・正解がひと通りでは無い RPGで「強い敵が倒せなくて、倒せるようにしたい」 ということを考えたときに、解決方法はいくつかあって「レベルを上げる」「回復アイテムをたくさん買う」「強い装備を買う」「敵の行動パターンを把握する」 など色々あります。 プログラムも同じで、方法が一通りではない場合があります。プログラムで、とある処理を実行させたいときに時に、自分が知っている知識で何通りも解決方法が存在することがあり、これをテキトーに選んでしまうと、後から直すのが大変だったり、思うように動かなくて困ったりすることがあります。 厄介なのが「一応動く」というパターンがあることです。「今までは動いていたのに、動かすモーターを追加した途端動かなくなる」というようなことが起きたりします。 最悪、頑張って書いたプログラムが1から書き直しになってしまうなんてこともあります。もしそのようなことになっても、自分でプログラムを書いたことによって得た経験値は引き継がれますので、是非コンティニューしてみてください。案外2回目はすぐ書けたりします。・習った事が全て使えないとプログラムが完成しない RPGでいうところの「敵を倒す方法」だけがわかっていても「移動の仕方」や「アイテムの使い方」等が分からないとゲームをクリアすることが出来ないように、ロボットのプログラムも、「タイヤの動かし方」「道順に進む方法」「モノを持ち上げるアームの動かし方」…etc 色んな処理の仕方を全て理解しないと、課題がクリアできません。 せっかくロボットの動かし方が分かっても、道に沿って進むことができなければ意味がないので、プログラミングの授業で分からない単元があった時こそ先生や同級生に聞いて、理解しておくようにしましょう。・とにかく書くしかない プログラミングは、パソコン上で行うモノである都合上「コピー&ペースト(コピペ)」を多用したくなると思います。 これはプログラムが得意だった私の先輩の受け売りですが プログラムは自分で書かないとできるようになりません。 私もプログラムを学んでいてそれを強く実感しました。コピペすれば楽ですが、何のための処理なのか理解していなかったり、細かい誤字などが入ったり、何より自分が成長しません。 面倒臭いと思いますが、頑張って全て手打ちで取り組んでみてください。 また、PCキーボードに慣れていないという同級生も割といました。高専生もそうですが、現代社会ではキーボード入力に慣れていないと大変不便だと思いますので、苦手な方はこれをきっかけに頑張ってみてください。4.「創造製作・創造演習」本番 これまで説明してきた「設計」と「制御」の全てを総動員するのが創造製作・創造演習という授業です。 最初に少し説明しましたが、この授業で単位を取得するには「出された課題をこなすロボット」を作らなければいけません。 私の世代の課題の例を説明します。 2年時は「リモコンで操縦し、散らばったピンポン球を縦に立った筒の中に入れるロボット」の製作。 3年時は「自動操縦で、空き缶を所定の位置まで運ぶロボット」の製作でした。 2年時は競技式で進行していたので、ロボット大会のようで楽しかったです。 3年時は競技式ではなく、ある程度期末になると発表の日が設けられて、そこで披露するといった感じでした。 それぞれ「ピンポン球を全て筒に入れたら合格」「空き缶をゴールまで運んだら合格」つまり「単位がもらえる」ということになっていました。 課題を見て「こういうアームが必要」「こういう制御が必要」ということをまず考えます。先ほど説明したように「設計」⇨「製作」という順序で作るのがおすすめです。ロボットを作る際の材料は、指定はありませんがタミヤのキットを使用している人が多かったですし、適材だと思います。 できたロボットに、コントローラー、もしくは基盤を正しく接続すればロボットが動きます。自動操縦をさせる場合は基盤にプログラムを書き込んで動かす必要があるので、コントローラーで動かすよりよほど大変だと思います。 もし、発表のタイミングで思うように動かなかったりしても、ある程度の期間は「再試」という形で先生がチェックしてくれて、そこでクリアできれば無事単位が出る、という場合もあるので、もし取り組む方、取り組まれる予定のある方は最後まで頑張ってみてください。5.まとめ 創造製作・創造演習は、出された課題に対して、その課題をこなせるロボットの作成を行う授業です。 ロボットの製作は「制御」と「設計」の知識技術が必要になります。 「プログラミング」と「CAD」の授業はしっかり理解しておくようにしましょう。 もし行き詰まったら、先生や知人、友人に助けを求めましょう。 記事をご覧いただきありがとうございました。 機械科の皆さんに限らず、高専の実践的な授業は大変だと思います。 単位取得を目指して頑張ってください。