ROBOLABソフトウエアでマルチタスクを使うと,プログラムが簡単になるよという話しを前回書いた。続いて,ロボット・プログラミング講習会に参加している小学生に変数をどう教えようか考えていた。一般的なプログラム言語の入門書ではHello World(こんにちは,世界)の次は決まって変数の使い方である。ところがMindStormsで作ったロボットを動かすROBOLABでは,ここはどうしても変数を使わなければという場面にはなかなか出くわさない。たとえば5回ループさせたい場合でも,数値定数で5と指定するだけで5回繰り返してくれる。変数をカウントアップして5になったかなどとチェックする必要がない。変数の使い方を説明するサンプルプログラムを作ってみるが,どうもわざとらしいものになりがちである。
変数のまっとうな用途して,過去の状態を覚えておくためとカウントアップするために使ってみよう。
タッチセンサーで何かにぶつかったことを検知しバックした後,どっちかの方向に曲がり,また真っ直ぐ進み出す。そんなプログラムを作るとき,いつも同じ方向に曲がってばっかりいてはおもしろくない。さっき右に曲がったから,こんどは左に曲がろうと判断するために変数を使ってみる。
変数のことをROBOLABではコンテナという。青コンテナ,赤コンテナ,黄コンテナが用意されている。青信号の横の一番はじめの黄色いコマンドはMindStormsの本体RCXの液晶ディスプレイ(LCD)へ青コンテナの値を表示する。次の0と書いてあるコマンドはコンテナの初期化である。青コンテナを初期化している。値を設定するときは背景が青いコンテナ,値を取得するときは背景が白いコンテナを使う。
タッチセンサーが押し込まれたときは,A,Cのモーターを逆回転させバックした後,青コンテナの値が0より大きかったらAのモーターだけを回す。その後,青コンテナに0を代入する。0以下だったらモーターCだけを回し,青コンテナに1を代入する。こうすることで,何かにぶつかるたびに違う方向に進むことになる。サイコロマークの時計はランダムな時間を返す。4という数値定数が上限値である。何も指定しないと0から5秒の間のランダムな時間待つことになる。
次のプログラムは変数を使って黒い線の数をカウントする。
ライトセンサーの返す値が40より小さくなったら,黒い線の上に来たと判断し,赤コンテナに1を加算する。赤コンテナの値が2以下のときは,黄色ジャンプで,黄色着地に戻り,また前進する。ジャンプする前に,明るくなるまで待つコマンド入れ忘れると一本の黒い線の上でなんども暗いと判断して,前に進まない。
コンピュータの判断は,私のようなおじさんと違い速い。この例のように太い線でなくても,人間の目には細く映る線でも何度も読み取りを行う。ロボットのプログラムを考えるときは,このっさんの時間の単位はミリ秒(1000分の1秒)とか,マイクロ秒(100万分の1秒)なのだと頭にいれておく必要がある(富山弁解説 このっさん:この人,この方という意味。あのっさんはそう!「あの人」。ちなみに,このっさんには別の意味もある。学校の帰りに肉屋でコロッケなどを買いぐらいすることも「このっさん」という。カレントユーザーは稀少。次男かずが通う中学の近所の肉屋では,あのっさんもこのっさんもこのっさんしている)。
この画像は前のロボットの画像と同じように見えが実は違う。LCDに注目してほしい。-17と表示されているのがお分かりだろうか。次のプログラムでは,青コンテナと赤コンテナで引き算をしているのだ。
まず,赤着地の横のコマンドで1番のポートにつながっている光センサーの値を赤コンテナに入れている。0.2秒間前進して,こんどは青コンテナに現在地の光センサーの値を入れる。そして,マイナスマークのコマンドで青コンテナから赤コンテナの値を引く。光センサーは明るいところでは大きな値,暗いところでは小さな値を返すので,引き算した結果が0より大きければ明るいところへ移動した,0以下ならば暗いところへ移動した(あるいは変わらない)と判断できるのだ。明るいところへ移動したときは高いC(ド)の音を鳴らし,そうでないときは低いC(ド)の音を鳴らす。LCDには青コンテナの値を表示している。
第228話 ROBOLABで変数を使わなくていけないときは
あなたにお薦め
今日のピックアップ
-
不要な製品の購入を強いられる、ブロードコムのVMware買収で悪影響
-
米GitHubが「Workspace」を開始、ソフト開発の課題をAIが自動解決
-
Core Ultra搭載の「dynabook R9」、35時間駆動の実力
-
パスワード管理や不正サイト対策はEdgeもChromeも充実、複数機器の同期は選べる
-
コメント関連が使いやすくなった新Acrobat Reader、「クイックツールバー」に集約
-
M3搭載「MacBook Air」とM2搭載モデルを比較、外付けディスプレー2台接続も試す
-
有名人になりすまして投資広告を掲載、SNSで接触してみた結果
-
NECが受注したe-Govのガバクラ移行が大幅遅延、構築手法の途中変更が影響か
-
IIJ公式サイトのPVがある日突然13倍に、バズったわけでも炎上したわけでもない裏側
-
アリババのデジタル人材育成プログラム、世界の起業家や若者4千人以上にノウハウ提供
-
縦長のWebページ全体を画像で保存、メニューから選べるEdgeがChromeより便利
-
「四重苦」で伸び悩む日本市場、なぜ海外スマホメーカーが開拓に本腰を入れるのか
注目記事
おすすめのセミナー
-
「仮説立案」実践講座
例えば「必要な人材育成ができていない」といった課題に、あなたならどう取り組みますか? このセミナ...
-
CIO養成講座 【第35期】
業種を問わず活用できる内容、また、幅広い年代・様々なキャリアを持つ男女ビジネスパーソンが参加し、...
-
改革リーダーのコミュニケーション術
プロジェクトを成功に導くために改革リーダーが持つべき3つのコミュニケーションスキル—「伝える」「...
-
パワポ資料が見違える「ビジネス図解」4つのセオリー
インフォグラフィックスとは、形のない情報やデータなど伝えたいことを分かりやすい形で表現する技法で...
-
間違いだらけの設計レビュー
本セミナーでは、現場で多く見られる間違ったレビューの典型例を示し、そうならないための現場の改善策...
-
オンライン版「なぜなぜ分析」演習付きセミナー実践編
このセミナーでは「抜け・漏れ」と「論理的飛躍」の無い再発防止策を推進できる現場に必須の人材を育成...
-
問題解決のためのデータ分析活用入門
例えば「必要な人材育成ができていない」といった課題に、あなたならどう取り組みますか? このセミナ...
-
業務改革プロジェクトリーダー養成講座【第16期】
3日間の集中講義とワークショップで、事務改善と業務改革に必要な知識と手法が実践で即使えるノウハウ...
注目のイベント
-
日経クロステックNEXT 関西 2024
2024年5月16日(木)~5月17日(金)
-
日経ビジネスCEOカウンシル
2024年5月16日(木)17:00~19:50
-
WEURO DIVERSITY & INCLUSION FORUM
2024年5月17日(金)13:00~17:30(予定)
-
VUCA時代に勝ち残る戦略的サプライチェーン構築に向けて
2024年 5月 24 日(金) 10:00~16:20
-
人手不足を乗り越える 日本の産業界成長のシナリオ2024
2024年5月30日(木)10:20~17:45
-
人的資本経営版:日経ビジネスLIVE 2024 Spring
2024年6月3日(月)~6月5日(水)
-
DX Insight 2024 Summer
2024年6月4日(火)、5日(水)
-
付加価値ある意匠デザインを実現するものづくり技術2024
2024年6月7日(金)10:30 ~ 17:00
-
WOMAN EXPO 2024
2024年6月8日(土)10:00~17:30
-
デジタル立国ジャパン2024
2024年6月10日(月)、11日(火)
おすすめの書籍
-
ソフトバンク もう一つの顔 成長をけん引する課題解決のプロ集団
ソフトバンクにはモバイルキャリア事業以外のもう一つの顔が存在する。本書ではキーパーソンへのインタ...
-
対立・抵抗を解消し合意に導く 改革リーダーのコミュニケーション術
本書は、改革リーダーに必須のコミュニケーション術を3つのスキルの観点からまとめ上げたものです。今...
-
もっと絞れる AWSコスト超削減術
本書ではコスト課題を解決するため、AWSコストを最適化し、テクニックによって削減する具体策を紹介...
-
優秀な人材が求める3つのこと 退職を前提とした組織運営と人材マネジメント
「学生に人気のコンサルであっても、大手企業であっても、せっかく獲得した人材が数年で辞めてしまう...
-
Web3の未解決問題
ブロックチェーン技術を主軸とするWeb3の技術について、現在の社会制度との摩擦と、その先にある新...
-
ロボット未来予測2033
ロボットの用途・市場はどう拡大していくのか。AI実装でロボットはどこまで進化するのか。技術の進展...