Pi:Co V2 体験記

刮目せよ!新製品Pi:Co V2 その4 押しまくれ!スイッチ!

Pi:Co V2 体験記

いつでもhello world

こんにちは、広報DTP担当のサナエです。
このブログは技術畑ではない広報がアールティの新製品Pi:Co V2と仲良くなり、その魅力をアピールする体験記です。今回も前回のLチカの喜びをかみしめつつ頑張ります。

Pi:Co V2のおさらい

Pi:Co V2(ピーコブイツー)は、アールティの教育や研究開発用小型移動ロボットのプラットフォームであるPi:Co Classic3同様、ソフトウェア開発の基礎を学びたい方に手に取っていただきたいロボットです。Pi:Co Classic3の機能やデザインイメージをそのままに、半分のマイクロマウスサイズになりました。
マイクロマウス競技に準拠しているのでもちろん大会参加もできます。

Pi:Co V2はESP32-S3マイコンを搭載しており、Arduinoで開発できます。
移動型ロボットのビギナーや、研究者、開発者まで幅広い方々にご利用いただけるロボットです。
Arduinoサンプルスケッチと解説書が付属するので、プログラミング初心者にもおすすめです。

スイッチを押したい!

さてさて、今回はstepを一段上がってstep2、スイッチのサンプルスケッチを試してみます。
step2のサンプルスケッチは、Pi:Co V2本体のスイッチを押すとLEDが点灯する、というものです。
右のスイッチを押すと左のLED1の点灯、消灯ができ、左のスイッチを押すと真ん中二つのLED2、3の点灯、消灯ができます。

これから少しずつプログラムについての話が出てくるようなのでドキドキします。

スイッチがあれば押さずにはいられない人たちは多いかと思いますが、押したからには何か反応が欲しいところ。押したらバスでは次の停留所で降りると主張でき、エレベータは目的の階にとまり、必殺技は放たれるのでPi:Co V2でも反応を得るために少しずつでも進めていかねば!

赤い文字の襲来

まずはstep2を普通に書き込んで、どんな動きになるのかチェックしよう…

あれれ書き込めなかった!サンプルスケッチそのままなのに!
今度はケーブルの差し込みが甘かったようです。こんな基本的な失敗はそろそろ終わりにしたい。
それにしても赤い文字はドキッとしますね、黒背景に赤文字で文が表示されると昔々の個人サイトを思い出してドキドキします。

その後は無事に書き込みができてポチポチと押してみました。LEDが光る!消える!嬉しい!

本日の課題!

このブログのためにPi:Co V2製作者からサンプルスケッチのstepごとに課題が出されています。私には何とかクリアする大事な使命があるのです。今回は何だろう?

【製作者からの課題2】右スイッチを押したら4つのLEDを点灯させ、左スイッチを押したら4つのLEDを消灯させてください。

これはスケッチをちょっぴり触らないといけないってことですね?できるかな、頑張ります。

ここか?ここなのか?

通常のサンプルスケッチを試してみてテンションが上がったので今度はお題を考えます。
「プログラムの単語は仕事柄よく見るけど、深くは習ったことなかったなぁ」と意味を調べながら進めます。
むむむ digitalWrite() 完全に理解した。している…はず!
前回のLチカを思い出しつつ、きっとこういう事だろうなとふんわりとした理解度ながら、思い切って書き込んでみます。
複数点灯と消灯させるならこうやって…01と0でオンオフだから…
おお!全部点いたし全部消えたぞ!やったー!

あれれちょっと待って なんで右スイッチでオンオフになってるのヒイイン!先生これじゃだめですか?一応右スイッチで全部点いて、左スイッチで全部消えましたがだめですか?

製作者のコメント
「むむ、課題を訂正します。右スイッチを何度押しても点灯し続けてください。左スイッチを何度押しても消灯し続けてください。」

……だめでした。デスヨネェ!私もそう思います。思ったものと違います。完全ではなかった!
ちなみにその時のスケッチがこちら

修正してやるぅ!

ぐぬぬぬグローバル変数のところが怪しすぎる…ここでオンオフの回数を制御しているなら、回数をかけなければいいんじゃない?と思って&01を+1にしてみました。これでどうかな?ポチ―
おっ!ちゃんと右スイッチで点きっ放しになったぞ!何度押してもずっと点いてる。
左スイッチでちゃんと全部消えたしどうですか先生!

さらに修正してやるぅ!

先生曰はく、結果はあっているけれどもっとシンプルにできるとのこと。
少しヒントをいただいたので勇気を出して再度修正です。
step2は「グローバル変数でオンオフの制御をしていた」というのが大事で、もしこのグローバル変数がなければシンプルに点くだけ、消すだけになるんですね。なのでバッサリとグローバル変数を取り去って、step1でHIGHとLOWを使っていたところに1と0を入れてみると

ちゃんと右スイッチで点灯、左スイッチで消灯ができました! ヒュー―――!!!
シンプルぅー!勢いでLED表記の順番まで揃えちゃったわぁ!嬉しい!!!ドンドンパフパフ!
今回折角グローバル変数があるのだから、これを使って考えるのが目標かと思っていたのですが、グローバル変数がどういった役割をしているかを確認することが大事だったんですね。

製作者のコメント

課題2達成おめでとうございます! 様々な解答が見れてよかったです!

Pi:Co V2にはプログラミング可能なスイッチが2つ搭載されています。
このスイッチもLEDと同じくGPIO(General-purpose input/output) に接続されており、 digitalRead関数でスイッチのON / OFFを読み取れます。

if 文を使って「スイッチが押されたら〇〇する」という条件がしっかり書かれていました。Goodです!

悩む時間とブログの長さは比例する

今回初めてグローバル変数に関して考えてみたので悩む時間がかかって失敗も多く、思ったより長いブログになってしまいました。次のstepではもう少しスマートに…できるように頑張りますのでいましばらくお付き合い願いたいと思います。
今日の成果!

先行予約受付中!

Pi:Co V2は2023年12月14日から2024年4月末日までの間、先行予約を承っております。
先行予約価格は53,900円(税込)、定価は60,000円(税込)となっておりますのでこの機会にぜひご利用ください。
ウェブショップで絶賛受付中です。ご予約お待ちしております!

タイトルとURLをコピーしました