スクラッチで始めるロボットプログラミング:はじめの一歩

Pocket

1. ロボットプログラミングってなに?

 小学生から始めるスクラッチプログラミングの記事を書いてきましたが、ロボットよりの話題を取り上げてみたいと思います。ロボットと一言で書くと、私の世代などであれば、ガンダムなどの人型のロボットを思いつくのですが、現実の世界では産業用などで主に使われているロボットが大半を占めています。工場内のある作業に特化したロボットで、自動車工場であれば「プレスした鉄板を持ち上げて次の工程に渡す」という作業だけをやるものや、「鉄板の決められた位置に穴を開ける」という作業に特化したロボットです。最近だと人型で動くロボットやペッパーくんのようなものまで登場してきています。今後、より身近になっていくと思われるロボットですが、子供の時からプログラミングなどができるようなツールが最近多く登場してきています。今回の記事は、その一つをご紹介しつつ、ロボットプログラミングに関してご理解いただくというところが目的になります。

2. センサとアクチュエータってなに?

 センサ( Sense (感じる)もの)とアクチュエータ(Actuate (動かす)もの)ということですが、要するに何らかの周囲の状況を機械で処理できる形で取るものと、何かしらの動作をするものという意味です。ロボットにおいては、これら2つの要素が重要になります。先程の例で上げた、工場の機械にしても穴を開ける場所を認識して、穴を開けることになるので、センサとアクチュエータが出てきます。これらの機器をどのように使って動きを作っていくかというのをプログラミングするのがロボットプログラミングということになります。

3. ロボットをコントロール?

 例えば2足歩行をするロボットを作るとなったときに、ロボットの動きをコントロール(制御)してあげる必要があります。足を出すときにどのように角度を曲げて、どの程度のスピードでもとに戻すのか、という動きを作るなどが必要になります。ロボットのコントロールに関しては、それ一つで大きな分野ですので、本格的に学びたい場合は、制御工学などを大学にて専攻されるのをおすすめしたいところです。内容的にも力学(物理)、力学を解くための微積分などの解析学(数学)、幾何学(数学)といった内容の理解が必要になります。(ロボットをやりたいと考えているお子様にはぜひ算数(数学)、理科(物理)をエンカレッジしてあげてください。)大学に行く前段階の小学生、中学生、高校生(高校生だと本気でチャレンジすれば多少頑張れる気もしますが)では、理解するのは難しいのが実態です。ただ、私どもが目指しているクリエイティブコンピューティングという観点で言うと、色々な動きを組み合わせることで何ができるかを考える、創造する、という話に重心があるので、コントロールの方法は多少ブラックボックスとして扱っても、色々な組み合わせで新たなものを作るという発想法の訓練にはなります。また、実際に動きが目の前でわかるので、興味をひきつけやすいという点も重要です。

4. さあ、最初の一歩

  前置きが長かったのですが、最初の一歩の説明をします。やはり電子回路の最初の一歩はLEDを光らせることではないでしょうか。最も単純なアクチュエータとも言えるLEDを光らせてみましょう。LEDを光らせるというとマイコンボードが出てきて、LEDをブレッドボードに差し込んで、といった話を想像するのですが(しないかもしれませんが)、この記事では、子供向けの教育玩具を販売している株式会社アーテックからでている、ロボティストシリーズを用います。特にこの製品でないといけないわけではないのですが、スクラッチをベースとしたビジュアルプログラミングができる環境であるため、最初の導入としては入りやすいのではないかと思います。理解がすすんだところで、本格的な電気回路やモータなどを使われていくのが良いのではないかと思います。

 ロボティストの環境は、Arduino というプログラミングができるマイコンボードをベースにした開発環境であるStudino (スタディーノ)を用います。先程述べたようにスクラッチをベースとしたビジュアルプログラミング環境が利用できるので、プログラミングのブロックをつなげていくとプログラミングができるというのが最大の利点です。また、ロボット自体もブロックをつなげることで出来上がり、そのブロックのパーツも多数入手できるので、自分で好きな構成を組み、ロボットを作っていくことができます。この記事では、スタディーノを用いてご紹介していきます。

5. 環境を整える

  最初にプログラミングをするための環境を整える必要があります。別の記事で紹介しているスクラッチプログラミングでは、Webブラウザで記述できる環境が提供されていたので、特に環境を整備する必要はなかったのですが、ロボットのプログラミングをする場合は、機器を接続してプログラムをダウンロードさせるために、いくつか準備が必要です。

5.1. スタディーノソフトウェアのインストール

  筆者が書いている現時点(2016年6月)では、下記のWebサイトにてソフトェアを入手できます。

http://www.artec-kk.co.jp/studuino/Studuino_dl.html

  ご自分で用意されている環境に合わせてソフトウェアをダウンロードしてください。Windows、Mac、Raspberry Pi 用のソフトウェアが用意されていますが、基本的には、Windows か Mac にて開発をする必要があります。Raspberry Pi の環境はプログラムを作ることはできますが、実機にソフトをダウンロード出来ません。具体的なインストール方法は、上記Webページにあるインストール方法のPDFをご覧いただければできると思います。

5.2. USBドライバのインストール

  もう一つ忘れてはいけないのが、USBドライバのインストールです。これは、USBケーブルでPCとスタディーノ本体をつなげて、プログラムしたソフトを書き込むためです。ドライバソフトウェアも先ほど紹介したサイトからダウンロード可能です。環境に合わせてダウンロードしていただき、インストールしてください。こちらもメーカーが準備しているインストール用のPDFがサイトに掲載されているので、こちらをご確認いただいたほうが良いと思います。

6. いよいよLEDを光らせる(Lチカ)

  さて、環境ができたところで、最初の一歩のLEDに入りましょう。スタディーノの環境では、接続できるセンサとアクチュエータがいろいろ用意されています。センサとしては、タッチセンサ、光センサ、加速度センサ、音センサ、赤外線フォトリフレクタ、ジャイロセンサ、超音波センサ、カラーセンサ、温度センサがあります。またアクチュエータとしては、LED、DCモータ、サーボモータが利用できます。そして、本体に付属している4つのボタンを利用することができます。押すボタンで動きを変えることや、スタート、ストップといった用途で使うことができます。さらには、Bluetooth による通信モジュールも利用できます。スマートフォンとの連動アプリというのも実現可能です。それぞれのブロックの詳細の使い方に関しては、今後の記事に委ねるとして、今回は基本的な内容として、LEDを用いることにします。

6.1. 環境を立ち上げる

LEDを光らせると一言で書きましたが、LEDを点灯させるプログラムを書いてみたいと思います。まずは環境を立ち上げます。

環境を立ち上げる

スクラッチの画面っぽいのが出てきますが、よく見ていただくと細かいところは違っています。一つが、緑色の旗の部分です。スクラッチの場合は、スプライトとよばれるキャラクタをいくつも定義して、それらが緑のはたで同時に動作することができましたが、このスタディーノの場合は、動作するハードウェアは一つですので、固定された状態になっています。また、調べるや動きといったブロックのカテゴリの中身は、さきほど述べたセンサやアクチュエータが対応しています。

6.2. 接続を確認

 ポートの設定 

具体的にどのセンサが、機械のどの場所に対応しているかを設定するのが、入出力設定という画面です。これは、機械のポート(センサやアクチュエータを接続することができる場所)に対応しています。初期設定の値で今回は動かします。LEDはA4が対応していることがわかります。

LEDを接続

LEDを接続しますが、図に示すようにA4と書かれた部分に繋いでください。繋ぐ場合、方向がありますので注意してください。灰色のケーブルが I/O のケーブルになりますので、写真で言うと上の方にくるように接続してください。

6.3. LEDを光らせるブロックを使う

 つぎに、LEDを光らせるブロックを用意します。LEDは「動き」のカテゴリのところにあります。図に示す「LED A4 を 点灯」と書かれた、ブロックを右の方に持ってきます。これは、スクラッチのやり方と同じです。

 LEDを操作するブロック

6.4. LEDを点滅させるプログラムを準備

このまま、点灯ブロックをつなげると光ると思いますが、動きがわからないので、点灯して、消灯して、を繰り返すようにプログラムを書きます。

制御ブロックを使う

そのためには、すでにスクラッチを触っていただいている方には馴染みがあると思いますが(スクラッチ解説記事を見ていただければ幸いです。)、「制御」のカテゴリにある、「ずっと」、「1秒待つ」を使い、点灯、消灯を1秒おきに繰り返すようにプログラムを書きました。非常にシンプルなプログラムなので、お分かりいただけるかと思います。

 6.5. プログラムを書き込むプログラムを書き込む

そして、機械をUSBケーブルで接続し、実行のところにある「プログラム作成・転送」という部分を選択いただくと、ブロックで書かれたプログラムを機械で読み込むことができる形式に変換し、そのデータを機械に送って書き込みます。書き込みが終わるとすぐに用意したプログラムが実行されるはずです。そのため、突然、LEDが点滅し始めると思います。こうなれば、想定通り動作していることになります。

LEDが点滅

おわりに

 今回は、ロボットプログラミングの最初の一歩として、スクラッチをベースとした開発環境であるスタディーノを用いてLEDを光らせるところまでをご紹介しました。スクラッチと同じようにビジュアルプログラミングでロボットのプログラミングができることが、なんとなくご理解いただけたでしょうか。機械さえ準備いただければ、ご家庭でも試していただくことができます。今後、何回かにわたってセンサやアクチュエータの使い方などをご紹介していきます。お楽しみに。


東京都文京区小石川で小学生、中学生、高校生を対象としたプログラミング&ロボット教室を開校しています。コース概要のページで説明しております。創造性や協調性などこれからの時代に必要となる素養を育てるコースです。ご興味ありましたらぜひお問い合わせください。

また、夏休みの企画として、サマースクールを実施します。ここで取り上げているスクラッチやロボットプログラミングを体験できる内容となっています。詳細はこちらでご確認ください。ご参加お待ちしております。

お問い合わせはこちら!

問い合わせをする

Pocket

この投稿へのコメント

コメントはありません。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

この投稿へのトラックバック

  1. […]  前回は、はじめの一歩ということで、マイコンボードなどの解説の王道的内容である、LEDを光らせるいわゆる「Lチカ」までを解説しました。スクラッチをベースとしたプログラミング […]

トラックバック URL