Pi:Co V2 体験記ブログ(移行中)

刮目せよ! 新製品Pi:Co V2 その9 壁からちょうどいい距離で

Pi:Co V2 体験記

師走でバタバタ

こんにちは、広報DTP担当のサナエです。
このブログは技術畑ではない広報がアールティの新製品Pi:Co V2と仲良くなり、その魅力をアピールする体験記です。
前回は自分で180度旋回できるか試してみました。90度を2回 もしくは180度で旋回です。
久しぶりに自力で何とかなったので調子に乗らないよう今回も頑張りたい所存

毎度おなじみの

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

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

センサとモータの合わせ技

今回はstep7、センサで壁との距離を見つつ前進します。
どうかなどうかな?

step7だけでセンサとモータが動くサンプルが入っています。ちょりちょりとタイヤが動くのが大変かわいらしい…
やっぱり小さなボタンを押すのに四苦八苦してますがそれもまたヨシ
短い距離なのでいまいちわかりづらいですが、壁によって行ったあと少しずつ調整して真ん中に戻っています。

今回のお題

さてさて!健気にちょっぴり走ったこの子に今回はどんなお題が… べべン!

【製作者からの課題7】
4区画走行した後180度旋回し、元の位置に戻ってくる

ええとこれは!前回の旋回の情報をゲットすればいけるんじゃないかと思うんだ!
今回のと、前回のスケッチを見比べてそれっぽい場所の違いを見つけるのだ 前回思いっきり見落としてたとこがあったので今度は自分で見つけるのだグフフ

まずはメインの動くとこにrotateを入れよう
4ステップ分進んで止まった後に入れるのだ
180度旋回するからright, 2にして、またそのまままっすぐだから上から持ってきて4ステップ~

それから旋回に必要なTREAD_WIDTHも入れねば!

さらにsetupにg_timerの足りないところも入れてー…

interruptのところはたぶん今回触ることはなさそうな気がする。con_wallってあるから壁との距離を見てるんだろうな。ここは見なかったことにする

runのところはがっつり持ってこないと!
void rotateのあたりを忘れもののないように移動して、これで全部かな?どうかな?
ドキドキしながら検証ポチー!!

グワアアアアア!!!ダメだったーーー!!!

rotateのとこちゃんと定義してないってことでいいのかな?あれ?全部持ってきたと思ったんだけどな…
見返してもよくわからない焦る焦る!!黒地に赤い文字は心に刺さる!
あとスケッチに赤く印付けられると自分が間違っていることがわかりやすすぎて血圧が上がりそう

助けてO君

ええー全部持ってきたよなぁー?移す場所が悪かったかな?といろいろ触ってみたけど何度やっても真っ赤なままで、これはアカンとO君に助けを求めました。判断が早い!
凝り固まった自分の目よりも違う目から見たほうがわかりやすいかと思うんですよ
まずは今回入れたものをコメントアウトして順番に見ていこうということになり、一行ずつ//をちみちみ入れてたら/* */でまとめてコメントアウトできると教えてもらいました。そうだったのか…

順番にやってみてもやはり定義されてないと出るので二人で頭を抱えていたらS君が声をかけてくれました。私はおかしいそんなはずはと思っている頑固おやじ状態なので、冷静にO君が説明をしてくれたところ、typedefのところが丸ごと入っていないと…なんですと?えっそこ必要だったの?

ここはセンサ関係だと思い込んでて今回はいらないよな、って見ないふりしてた…アババババ!
落ち着いてよく見たら、赤く間違いを指摘されてるところでちゃんとご丁寧にt_local_dirって書いてあるし!同じ文字列探せばよかった!今回もうかつ!!!

この私の目をもってしても

typedefの「def」はdefineのことで、型を定義するということなのね。よく見た気がする言葉だけど、そういう意味があったのか…
enumは列挙体の時に使って、front,right,と並べていくと数字が自動的にふられると聞きました。
t_local_dirは旋回方向の指定、自作した列挙体を定義してる…とかむっちゃ大事なものだった!
構造体とか列挙体とかちょっとまだ慣れない言葉だけど、少しずつ慣れていきたいところ。

それにしても今回は自分で二つのスケッチの違いを見つけるのだと思っていたけど全然ダメでした。大きな忘れ物すぎて私の目は節穴どころかもう東大寺の柱の鼻の穴サイズの穴ですよ!絶対通れないけど!

今度こそ何とか

O君と私の二人して一通りS君の話を聞いて、ふわふわした気分で修正して検証してみたら無事に通りました。なんだかドキドキします。ウワアアイ!!!今度こそ!

ちゃんと走ったぁああ!嬉しい!!
最後お尻が引っかかったけど、ちゃんと区画の真ん中を目指して戻れたのでゲインも元気に働いていることがわかってよかったです。

制作者のコメント
180度ターンのところで危なかったですが、課題7なんとかクリアですね。O君もS君も忘れていたようですが、サナエさんだけ気づいていたようです。”con_wallってあるから壁との距離を見てるんだろうな。ここは見なかったことにする”のところで見なかったことにせず、O君とS君に聞けたらパーフェクトに課題をクリアできたことでしょう。
180度ターン中に壁にぶつかってしまった原因を解説します。STEP7は壁との距離を一定にするようにモータの左右の速度を制御しています。この状態で旋回すると壁との距離を一定にするため後ろに下がって壁にぶつかっています。旋回中は壁の制御をOffにする必要があります。
あああ!!言われてみれば、確かに壁を見て距離を測っているのだから旋回のときに距離が変わるとか一瞬壁がなくなる個所もありますよね…!!そりゃあPi:Co V2ちゃんも何とか制御しようと頑張るはずです。
コメントをいただいた後に何度もマニュアルを読み返して、O君たちの手を借りず何とかならないかと外していた壁をちゃんとはめて、多い分のステップ数を減らしたりスケッチに手を入れてみたりしてあがいてみましたが、今の自分には制御を止めることはできませんでした。悔しい~!
次のstep8を見ないでやろうとするのがそもそも無謀だったみたいです。
今回は見なかったことにした場所がことごとく大事なところで大反省!ちゃんと見落とししないように頑張ろう…。
今回もO君とS君にお世話になって、うかつすぎて申し訳ないけれどもホントにありがとうね、またこれからもよろしく!

まだまだヨロシク!

Pi:Co V2は2024年6月25日に販売開始しました。
組込みや自律制御の基本要素を学ぶ方々はぜひ本製品をご利用ください。
Web shopにて、定価60,000円(税込)で絶賛発売中です。ご利用をお待ちしております!

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