プログラミング教室「プロラボ唐津」では、ロボットを使ったプログラミング教育を行っています。
使用しているプログラミングロボットは、「クムクム」です。
今回は、こちらのロボットを使ったプログラミングの例を紹介します。
なんじゃこりゃ!って感じですよねw
鬼滅の刃でおなじみの「紅蓮華」と、DeepPurpleの代表作「Smke on the water」のリズムに合わせてクムクムロボットが踊るプログラムです。
プログラムの中身を考える前に、小道具に力がかなり入っているのが分かります。
「Smke on the water」は、何気にたばこの煙で演出しているの分かりますか?
こういうのが大好きな社長さんですw
さて、今回のプログラムですが、ArduinoIDEを使って、C言語でプログラミングされています。
クムクムロボットは、子供でも簡単にプログラミングできるScratchでも動きますが、こんなに早く動くことはできません。
Scratchでのプログラミングで、動作が遅い理由は、主に子供たちがケガをしないように安全のためですが、Scratch以外のプログラミング言語を学ぶと、このようにスピードを変えて、操作することができます。
ただ、あんな動きプログラミングするの大変だなぁと思った人も多いのではないでしょうか?
私がこの動画を見たとき、直感で感じたのは、リズムに合わせてランダムでプログラミングしてるのではないかということです。
プログラミングはそもそも、楽をするために利用するものですから、リズムに合わせて一つ一つ動作を作っていては、単に一つ一つ小さなプログラムを並べているだけ。
主観ですが、プログラマーは、めんどくさがりで楽することばかり考えています。
楽するためなら苦労もいとわないぐらい、めんどくさいことをやりたがりません。
そして、そのめんどくさいことを何とか自動化して楽できないか考えています。
主観といいつつも、うなづいているプログラマーの方も多いのではないでしょうか。
この楽することを考える行動は、常に頭の中で論理的にその方法を模索しています。
それを実現させるためには苦労もいとわず、そういう人は必ず具現化させます。
これが、論理的思考であり、問題解決力です。
では、どのように楽をして、このプログラムを考えたのか答えを見ていきましょう。
エクセルで16分刻みで各パーツのうごきを作り、パターンデータに落として、これを繋げて曲にする。昔のシーケンサー、クオンタイズ16ってのを作ってみた。ハマるなあ。
明日は鬼滅でもやってみるか#シーケンサー #クオンタイズ #プログラマ #エンジニアと繋がりたい #鬼滅 pic.twitter.com/ddbQNIjBfY— 電子工作とものづくりとプログラミングが大好きdr.yossy (@yossynaotan) January 13, 2021
正解は、ExcelのVBAでリズム構造体配列に出力させてから、その配列をArduinoのIDEに書き込み、C言語で制御していたでした!
なんのこっちゃだと思いますが、エクセルの表にクムクムロボットのそれぞれの動作を入力して、それを構造体配列というパターンデータに変換します。
動画のエクセルをアップしている部分をよく見ると、縦が各パーツで、横が16列あるのが分かります。
「16分刻みで各パーツのうごきを作る」というのは、いわゆるこの表を作るということです。
その表を構造体配列のデータとして、C言語で処理していたというわけです。
ここでなにが言いたいかというと、構造体配列があれば、どんな動きも簡単に作れるということです。
1つ1つ動作をプログラミングする必要がないので、とても簡単ですよね。
このように、具現化できれるのであれば、どのプログラミング言語を使ってもいいのです。
どれか一つをマスターする必要もなく、必要な部分だけプログラミングできれば、すべて覚える必要もありません。
「体系的なプログラミング教育は行っていない」でも説明していますが、プログラミングはあくまで手段。
プログラミング教室「プロラボ唐津」では、学習中のプログラミング言語で、やりたいことが実現できなければ、実現できるプログラム言語で具現化させます。