学部生研修3日目
Arduinoプログラミング実習
本日の研修では、マイクロコントローラを制御するためのプログラミングを学んだ。Arduinoと呼ばれる8ビットのマイクロコントローラを利用し、プログラムの開発環境としてArduino IDEを用いることで、機械設計によく使われる制御要素のプログラミング技術を習得することを目的とした。
ほとんどの学生が一応Arduinoを触った経験はあるようで、難なく進めることができた。余談であるが、iPICにあるArduinoボードはArduino UNO(5台)、Arduino Mega 2560(5台程度), Arduino Mega ADK(7台程度)である。ボードはケニア現地で調達したと見られ、どれも純正品ではなく、中国製のコピー品である。Arduino Mega 2560と包装された箱のうち、半数以上がArduino Mega ADKであったことには閉口した(プロセッサ自体は両者とも同じものを使ってはいるが)。経験的に多くの場合コピー品でも問題なく使えるが、3台ほどシリアル通信できないボードが存在した。そのうち1台のArduino Mega2560に対してAVR ISP mkIIプログラマーを用いてATmega16u2をシリアルUSBブリッジ化するファームウェアの書き込みを行ったが、そもそもSPI通信ができないようで、チップ自体の破損か基板上に配線不良があると思われる。
このセッションではPWMを用いたLEDの連続的な光量制御、A/D変換によるポテンショメータ端子電圧の読み取り、FETを用いたDCモータの速度制御、ポテンショメータを用いたサーボモータの角度制御などを学習した。
ロボットアームの製作
このセッションからは、いよいよロボットアームを製作することになった。ロボットアームの設計はThingiverseで公開されている以下をベースとして用いた。
このプロジェクトを選定した理由は、構造がシンプルであることと、レーザーカッター用のDXF/PDFがすぐに加工可能な形で用意されていたことである。また、こちらで調達できる高トルクなサーボモータHD-1501MGにフィットする寸法であったこともある。メンテナンス不良によりiPICのレーザーカッターが不調だったため、もとFabLab Nairobiのファブマスター、いまはGearboxというメイカースペースを運営しているKamauを訪ね、事前にアクリル板のレーザー加工を行い、パーツは準備しておいた。
学生たちが早速ロボットアームの製作にとりかかると、設計の不備と材料の不足に気づき始めた。ネジの長さが足りない、穴の大きさが小さくてネジが入らない、スペースが小さく部品の干渉が起こる、などである。
筆者は本プロジェクトを実際に自分で組み立てたことがないため、このような問題は出るだろうとは予め想定はしていたものの、解決策の提案は参加者に任せようと思っていた。どうするのだろうかと観察していたところ、一人の学生がやってきて、穴が小さすぎるのだが大きくすることはできるか?という質問を投げかけてきた。Mr. Omondiと話すと、隣の工作室にあるボール盤で穴の追加工をやってみようということになった。所望の径のドリルビットがiPICになかったため、工学部ワークショップから取り寄せて使うことができた。
また、径の長いネジに関しても工学部ワークショップからの調達を図ったが、微妙に長さが足りなかったため、近隣のネジ屋に頼んで手に入れることができた。JKUATの近くにネジを購入できる場所がある、と知れたのは今後のためになる収穫であった。
本ロボットアームの設計は、アクリル板に空けた穴にボルト・ナットを通して組むものであったが、製作を通して、ボルトの頭が干渉する箇所がある、ピボット軸がない、などの問題が出てきた。このため、ホットボンド(グルーガン)をアクリル板の接着に使えないか、という議論になり試したところ、かなりの強度で接着することができたため、以後多用することとなった。
この日は16時が研修の終了時刻であったが、学生が延長を希望したため、結局18時過ぎまで作業することになった。遅くまで残っても帰ろうとする参加者はおらず、一生懸命取り組んでいたのが印象的であった。