Monthly Archives: November 2016

マイクロマウス研修 プログラミング4

さて、前回なんとなーく分かったような所を改めて自分が理解する為に書いてみましょう。

ここで取り出したのは、かなり前に購入した「教えて♪プログラミング」という本。
IMG_0190
前にも書いたのですが、この本は私のような超初心者の為に書かれたプログラミング入門書で
コードが一行も書かれていません。
「まずはなんとなく分かることが大切よ!」と表紙に書いてあり、
会社の先輩が後輩に教えていく会話形式で一冊丸々書かれています。

まずは「プログラミングとは何か」をこの本は説明してくれています。
今更そこかい!というツッコミはおいておいて。

プログラミングとは、目的達成の為に
1.アルゴリズムを作り、
2.そのためのデータを扱うためのもの。

アルゴリズムとは、目的達成の為のロジック、ストーリーのこと。
データの扱い方は、参照、保存、更新、削除の4種類しかない。

ふーん、ふんふん。(あまりよく分かっていない)
そして?

ロボットに朝食を食べさせるって目的のプログラムだとしたら、こんな感じ。

1.最初に手を合わせて「いただきます」と言う

2.お味噌汁を一口飲む。具がじゃがいもだったら、ご飯を食べる。
 具がしじみだったら、サラダを食べる

3.鮭を食べた後は、ご飯を2口食べる。
 煮物を食べた後は、ご飯を3口食べる。

4.煮物の味付けが薄かったら、辛子を冷蔵庫から取ってくる。
 1回付けて食べ、まだ足りなかったらそれを繰り返す。

5.ご飯がなくなって、もしまだお腹が空いていたら「おかわり」と言う。
 もしお腹が空いていなかったら箸を置いて「ごちそうさま」と言う。

この中にプログラミングの要素、アルゴリズム(ロジック、ストーリー)と
データの扱い(この場合ご飯、おかず、調味料)の全てが入っている。

IMG_0194
ここには、アルゴリズムを組み立てるのに使う制御方法は3つ、とあります。

順次実行:上から順に命令を実行する。
分岐:もしXだったらYを実行せよ、という形で条件によって実行する内容を場合分けする。
繰り返し:繰り返し同じ処理を実行すること。

ん??これって、この前ブザーを鳴らした時にあった「無限ループ」が
繰り返しに当たるのではないかな!??

アオキ師匠から頂いた資料がこちら。
2016-11-18
プログラミングで出会うif文、for文、while文、switch文がコンパクトにまとめられています。
もちろん私はこれを理解している訳ではありませんが・・・。
文系脳をフル回転させると、if文は上で言う所の「分岐」(もしXだったらYを実行せよ)かな。

上の資料を抜粋すると

If(条件式1){
命令;
}else if(条件式2){
命令;

続きを読む ›

Posted in 研修


マイクロマウス研修 プログラミング3

さて、前回初めて自分でちょこちょことっとプログラムをいじって、
LEDを交互に点滅させられたshibuです(ドヤァ)

でもプログラムを理解しないままやっているので、同じ道で引っかかりそうです。

今回はマイクロマウスの「ブザーを鳴らしてみよう」です。
音を写真に写すことは出来ないので・・・写真がありません。地味な記事です。

例のアオキ師匠の丁寧な資料を読んでいきます。
2016-11-11

流石に文字が小さいので、こちらに概要を書くと・・・

ブザーには、電源を入れて音が鳴るものと、ON/OFFを繰り返さないと音が鳴らないものがある、と。
電源を入れるだけのタイプは色々な音を出せない為、今回はON/OFFを繰り返すタイプを使用する、と。

ON/OFFでなぜ音が鳴るかというと、音というのは空気などの媒体が周期的&連続的に
運動した時に聴覚に伝わるものだから、だそうです。
2016-11-11 (2)

ふ~ん。薄ぼんやり分かったような気がします。

音って視覚化すると蛇がうねっているような波型のイメージですよね。
それがプログラミング的に理解するとON/OFFってイメージなのかな?と勝手に理解した気になる。

それでは早速ブザーのプログラムソースを見てみましょう。(←あ、なんかかっこいい感じ!)

while(1) //無限ループ
{
BUZZER = 1; //ブザーに1を出力
for(i = 0; i < 0x3000; i++); //時間待ち(空ループ)
BUZZER = 0; //ブザーに0を出力
for(i = 0; i < 0x3000; i++); //時間待ち(空ループ)
}

わ~、分からない!!

とりあえず、私が書かなくても元から入っているサンプルプログラムを
ミニーちゃんにセットしてブザーを鳴らしてみると、無事「ピ――――」と鳴りました。

でもこれだけじゃつまらない。だって何もしていないもん。
プログラムをいじって、LEDの時みたいにちょっと音に変化を付けて見たいところ。

どうやら資料を読んでいくと、ちょこっと数字をいじるとブザー音の高さを変えられるそう。
アオキ師匠が上のプログラムソースを説明してくれているのが頭に入ってきません。

LEDの時は「0=LEDが消灯」「1=点灯」だったので
ブザーも「0=音が鳴らない」「1=音が鳴る」かと思いきや、「そうではない」とのこと。なんと!

えぇっと、0と1を何度も行き来して(つまり波形になって)初めて音が鳴るそうです。
0だけだと音が鳴らない、1だけでも音が鳴らない。
そしてプログラミングソースの上の方に「無限ループ」と書いてあるので、
きっとON/OFFを永遠に繰り返しているから「ピ――――」と連続したブザー音に聞こえるのでしょう。
不思議です。

LEDみたいに目で見て体感出来るならいいですが、
音の波形を体感することは出来ないですからね。音叉では出来ないことはないけど・・(多分)

プログラムソースに戻りますが、どうやら3000と数字がある所を変えると音の高さが変わるらしい。

まず3000から5000に書き換えてミニーちゃんで実際に音を出してみると・・
3000の時よりも低い音がしました!!
そして数字の所を1000に変えてみると、高い音!!面白い!!

ということで、今回はブザー音の変更まで(一応)出来ました。

来週から遂にアオキ師匠は「マイクロマウス休暇」に入ってしまいます。
それなので、次回は今回学んでここに書ききれなかったことなどを頭の整理の為に書こうと思います。

続きを読む ›

Posted in 研修


マイクロマウス研修 プログラミング2

Shibu、ただいま大変興奮しています!!!

人生で初めて2行プログラミングを書いて、その通りにミニーちゃんが光りましたー!!
また動画の代わりに写真をば。
ミニーちゃんの一番前にある4つのLEDが、2つずつ交互に点滅しているのがお分かりでしょうか。
IMG_0153
IMG_0154
写真、見辛い・・・ごめんなさい。

でも、自分が書いた通りに光って嬉しい!!

前回の「Lチカ」は、何もしなくても既に組み込まれているプログラムなので私自身は何もしていません。
4か所のLEDが一斉に点滅を繰り返していました。

それを今回、プログラミングを書き換えてこのように点滅させたいのです。
2016-11-04 (5)
右側のイメージです。2か所ずつ、交互にチカチカと点滅させたい。

この資料では「どう書き換えればいいか考えましょう」と促していますが、
私は速攻で次のページをめくって答えを見ますw
2016-11-04 (8)

赤字の部分を書き直せばOKなのですね。

因みに、この資料はアオキ師匠が作ったもので、
某世界的に超超超有名な企業の社内のエンジニア研修でも使用されているものです。
アールティのマイクロマウス研修が採用されたのですよ~。宣伝宣伝。

それでは戻ってやってみましょう。
2016-11-04 (2)
画像が小さくてごめんなさい・・・プログラムを書き直しました。

こんな感じで数式みたいです。
LED0=LED2=1;
LED1=LED3=0;

このイコールの右側の1がLED点灯、0が消灯という意味です。
というわけで、「LED0とLED2は光ってね」「LED1とLED3は消えてね」ということらしい。ほぅ。

でもプログラミングしただけではダメで、いわゆる実行ボタンみたいなとこを押さないといけないらしい。
そこで、よく分からないけれど「ビルド」ボタンをクリック。

そして書き直したプログラムを我がマイクロマウスのミニーちゃんに転送して・・・
最初に書いたように、結果的に自分が書いたプログラム通りにLEDが2個ずつ光った!!わけです。

でも実はかなり端折っています。現実は全然っスムーズにいっていません。

実行しようとしたら「エラー」
転送しようとしたら「エラー」

中々うまくいかない。なぜ?どこが悪くてエラーなの?

それを原因を探って細かく直していかないといけないのです。
これを「デバック」と言います!!(ドヤァ顔のShibu←読んでる人爆笑ですね?)

どうやらプログラム書き込む所は全角ではなく半角でないといけない、とか
ミニーちゃんが「書き込みモード」じゃなくて「実行モード」だった、とか

細かい!けれど、そこをしっかりしていないと出来ない!ということがよく分かりました。

これって、エンジニアの基本中の基本なんでしょうね~。

実際の業務は世に出ていない製品を試作したりしているわけで、実際に市場に出ても
予期しないトラブルばかり起きて、それを細かく原因を追究して少しずつ改善していくという・・・
エンジニアって探偵さんみたいですね。すごいなぁ。

私、C言語とかプログラミング言語分からずに体当たりでやっております。
効率は悪いですが、「理解してからやろう」ではもっと効率が悪いので
今後も体当たり戦法&都度勉強、で頑張っていきたいと思います!

次回はプログラミングしてブザーを鳴らす・・・予定です!

続きを読む ›

Posted in 研修


マイクロマウス研修 プログラミング1

さて、今月はマイクロマウスの全国大会が行われます。
アールティは大会のスポンサーでもありますが、師匠アオキさんも選手として出場します!
がんばれ~!!

アールティには独自の福利厚生の一環としてマイクロマウス休暇というのがあり、
マイクロマウス大会に出場する為、そちらの調整に専念すべくお休みが頂けます。

そしてアオキ師匠ももうすぐマイクロマウス休暇に入ってしまうのです。
(実際には会社に来て、ご自身のマイクロマウス調整に専念するのですが)
なので、「休暇に入る前に分からないことを聞こう!」とプログラミングを出来る範囲で頑張ります。

マイクロマウスの組み立ては、本当にほぼ説明書だけで自分で組み立てられたのですが
プログラミングの説明書はいきなり難易度が上がります。
それを「ここが分からないよー!」と伝えて説明書の改善に貢献するのが私の役目なのですが
今回は、全てさっぱり分からないという・・(笑)

アオキ師匠が横で付きっきり教えて下さいます。
アールティ子会社社長のカワカミさんまで一緒に教えて下さいます。皆さん優しい!
アールティの求人票にあった「社員に聞きやすい雰囲気」は本当だなぁと実感します。

皆さんがまず始めにやるのは「LEDライトをチカチカと点滅させる」こと。
この通称「Lチカ」に私も挑戦しました!

まず、我がマイクロマウスをパソコンにUSBで接続します。
IMG_0147

前回インストールしたCS+を開いて、何も分からない私が、ひたすらアオキ師匠の指示に従っていくと・・
ハイ!LEDが点滅しましたー!!(って色々端折りすぎだろ)
IMG_0140
IMG_0139
動画でなく、写真で点滅を伝えるという斬新なスタイル。

端折りすぎも何も、私は右も左も分かららないままにやっているのですから、
詳細を書きたくても書けないのです。

文系女性に何人もマイクロマウスを教えてきたアオキ大師匠は言います。
「最初は何だか分からなくても、まずはLEDが点滅する感動を味わってほしい。
そこから面白さに目覚めてどんどんやっていける人もいるから」

最初の分かりづらさ・とっかかりにくさに尻込みをしないでほしい。
分からなくても強引に進めていけば大丈夫、と。

何という力強いメッセージでしょう。勇気づけられます。

頑張って組み立てたマイクロマウスが、頑張ってピコピコ光っているのは何とも可愛らしいです。

そうそう、マイ・マイクロマウスの名前を今、決めました。

ミニーちゃん

あのネズミ―ランドの王様の彼女ですね。
最近息子がご飯を食べながらミニーちゃんの声色で「おいしいワ♡」と言うのがツボです。
赤いし、マウスだし、もうミニーちゃんしか考えられなくなりました。

という訳で、「Lチカ」にようやくたどり着きました。まだまだ道は(果てしなく)続きます。
次回は初めて自分でプログラミングして、「LEDをバラバラに点滅させる」に挑戦します!

続きを読む ›

Posted in 研修


マイクロマウス 遂にプログラミング開始!?

驚くほど月日が経つのは早いものです。
マイクロマウス組み立てから1か月、ご無沙汰しておりました。

決して!プログラミングを諦めた訳ではありませんよ!そう思われても仕方ありませんが・・

さて、重い腰を上げて遂にプログラミングの世界に足を入れましょうか。

実はまだこの前買ったプログラミングの本も読み終わっていません。
薄くてすぐ読めるのですが、興味のある分野の本から読んでしまう人間の弱さよ。

因みに、今私が興味があるのは「生物の進化」です。
息子の恐竜熱が私にも伝染して、NHK番組とか見ていると本当に面白いんです。
3000万年(3000年ではなく!)かけてティラノサウルスの体が急速に大きくなった訳などを知る内に
「どうやって進化するんだろう?」と気になりまして。
ダーウィンの進化論を少しだけかじって、大変面白かったです。

同じ位の熱量でプログラミングもやりたい!!
が、如何せん今までの人生で関わったことがない未知の領域すぎて尻込みしています。

私のマイクロマウスを走らせる為のプログラミングをしよう!
と思ってもすぐにプログラミングを開始出来るのではありません。

まずは「環境構築」が必要なんだそうです。ほぉ~カンキョウコウチク!

まずはプログラミングできるような環境をPCで作るということですね。
何やらプログラムをインストールしなければならない模様。

ルネサスエレクトロニクスのプログラムをインストールしたものの、さっぱり。
2016-10-07
こちら「さっぱり」な画面。意味を持って眺める日はいつ来るのか。

プログラムを開くと、説明書があって「読むのをお勧めします」って言うから読んでみました。

「プログラムの作成からデバックまでを本チュートリアルの手順通りに操作して頂くことにより、
誰でも気軽にCS+を体験して頂くことが可能です」

あぁ、まず私には「デバック」の意味が分からない・・・何だろう、この感じ。

そうだ、中一で習い始めた英語ってこんな感じだった気がします。
一行読むのに分からない単語に沢山ぶつかり何度も辞書を引いて・・・。
そう、この世界の説明書って私にとっては他言語レベル。

ニヤニヤしているアオキ師匠を横目にグーグル検索をする私。
CS+とは、「端子配置表からコード生成,コーディング,ビルド,デバッグまでのマイコン開発環境を
一つのツールで実現した統合開発環境」らしいです。

分かったような分からないような。ということは分かっていません。

こういう感じで続くので遅々として進みません。

技術開発部長ノリさんが「インストールとダウンロードの差って分かる?」とニヤニヤして質問。
私「ハッ!分からない・・・・」

もうノリさんもアオキ師匠も大爆笑です。
もはや私は「素人は何が分からないかが面白い位に判明するモルモット」だそうです。あはは←

因みにインストールは
ダウンロードは「ネットワーク上のファイルを落とす」。うん、これは分かる。
インストールは「パソコンでソフトを使える状態にすること」。ははぁ。
だからアプリなどをパソコンから消すことを「アンインストール」というのですね。使えない状態にする、と。

こんな状態でこれからどうやってブログを書き続けていこう、と若干頭を痛めているShibuでした。
事実上、この記事の中で具体的に何も進んでいない・・・。

つづく

続きを読む ›

Posted in 研修