2024年7月26日金曜日
マイクロマウスTips4 STLINK-V3 MINIE
はじめに
STLINKを使う話を何気なく投稿したところ、使い方がよくわからない・教えてほしいという声を複数耳にしたので、メモしておきます。何気なく使っていましたが、整理してみるとそこそこわかりにくい点もあったので、そのあたりわかるようにまとめていきます。
使おうと思ったきっかけ
いくつかありますので、箇条書きで書いていきます。
・秋月で売っている
digikey, mouserを使わないといけない部品に比べて心理的ハードルが小さい。いざというときに安心。大体こういった部品は壊れてほしくないときに限って壊れたりするので、入手性は馬鹿になりません。
・小型
ごっつい感じのケースとか無いのがいいですね。
・USBコネクタがタイプC
Nucleoパキッをやりたくない主要因がコネクタがminiBであることだったりするので、これは嬉しい。
Nucleoパキッをやりたくない主要因がコネクタがminiBであることだったりするので、これは嬉しい。
・Virtual COM
SWD以外にUARTも使える。いろいろ嬉しい。
・SWD書き込みが使える
これは頭痛が痛いとかと言っていること同じ。
使用例
まず使っているものの画像を以下に示します。
続けてマニュアルの一部を示します。
STLinkからはこのうち3, 4, 6, 7, 8, 10番の6ピンを出してあります。この中から必要なものを対象の回路に合わせて使うという感じです。
今回はこの6ピンに加えて変換ケーブルでSTM側のBootピンを10番かHi-Zかにできるようにスイッチをかまして7ピンをマウス側につないであります。マウス側ではBootピンはGNDにプルダウンされてるので、こうすることでブートモードを書き込みコネクタとつないだときのみ外部のスイッチで切り替えられるようになります。
7ピンのコネクタはハーフピッチピンソケット。EntranceもLightningもこれを使っています。サイズ感と断線の少なさ的にそこそこいいかなと思っています…が接触不良になることもなくはないです。やっぱり小さいコネクタはだめだわ
初見でわかりづらそうなところ
多分以下2つが分かりづらい気がします。
① T_VCCはターゲットとなるマイコンのVCC電圧を検出するためのピンであって、ここから電源は出ていない&ここをつないでいないと正しく動作しない
② T_VCP_RX, T_VCP_TX は「ターゲットの」RXDとTXDにつなげという意味なので、TXDとTXD、RXDとRXDをつなぐのが正しい
右のInput、Outputを見ればまあそうなんだろうなーと勘付きますが、読解というか空気を読む必要が若干あって紛らわしいですね。
あとNRSTはSoftware Resetで使う分には出さなくてOKです。これはほかのSTLinkもそうだった気がします(うろ覚え)。
少しハマったところ
windowsのCubeProgでは特に何もせずに動きましたが、手元のubuntu22.04では、はじめSTLinkが使えず、少しハマってしまいました。
エラーメッセージは下記。
libusb: error [get_usbfs_fd] libusb couldn't open USB device /dev/bus/usb/003/007, errno=13
libusb: error [get_usbfs_fd] libusb requires write access to USB device nodes
見たところSTLinkの認識自体はされていたので、ハードウェア的な問題ではないだろうと当たりをつけつつ、さらに見ていったところ手元のNucleo(STLink-V2)は問題なく認識されたので、ソフトがファームウェアに対応していないのだろうと推測。
ここからソフトを落としてきて
sudo dpkg -i <location>/stsw-link007/AllPlatforms/StlinkRulesFilesForLinux/st-stlink-udev-rules-<version>-linux-all.deb
で、無事使えるようになりました。ヨカッタ。
あと、STLinkの話というと少し違いますが、最近今更になってCubeProgのCUIがあることに気づきました…。なんで今までGUI使ってたんだ…。
終わりに
あんまり言われるまで気にしていませんでしたが、言われてみると書けるネタは結構ありましたね。
使い方にクセのあるものをあまり気にせずに使えるのは悪いことではない気がしますが、不便さに気づかないのはそれも考えようかなと思ったりする、今日この頃です。
2024年7月15日月曜日
第1回デンソーカップ
すでに1週間ほど経過している気がしますが、デンソーカップに参加してきました。
WMMCとMice勢は金曜日の夜10時に集合して車2台で刈谷に参戦(運転してくれた皆さんありがとうございます)。学生感が強くてなかなか楽しかったですが、体力的ダメージはなかなかなので次は新幹線にしようかな。
さて、今回は公式戦ではないので、ゴール座標を書き換えておけばまあええかという意識の低い状態で試走会へ。
そうしたら、色々と事件発生。
まず、迷路に走らせてみると、明らかに色々とおかしい。タイヤ径と壁判定の閾値があっていない気がする。フレッシュマンかよとツッコミを入れつつ、調整を試みると、車中泊の疲れからか書き込み中にコネクタをうっかり抜いてしまう。いや、こういうことはたまにあるし書き込み直せばよいのです。
と・こ・ろ・が、ここで何故かシリアル変換器が故障しました(ちなみにこの原因、いまだによくわかっていないのでどうしたものか…。なんかCubeProgのバグを踏んだみたいだったけど、一瞬煙が見えたんよな…)。
さて、マウス起動しなくなりました。書き込みもできません。そして今回は意識が低く荷物を少なくしていたため、工具も替えの部品も持ってきてないという…。助けてーと言いながらぱわぷろ先輩にシリアル変換器を貸してもらい、Nくんに工具一式を借りてはんだ付けスペースで書き込み基板を修理。恐る恐るパソコンにつなぎ、書き込み。無事復活。ここまで1時間くらいでしたが体感1ヶ月位寿命が縮みました。そしてすぐに助けてくれたお二人本当にありがとうございました。協力がなかったら棄権になるところでした。
復活したので、再び調整再開。とりあえず単純に合わせ込めてなさそうなところは合わせこむも、探索中に32区画ストレートで半区画くらいずれる不思議な現象に遭遇。
修理によって集中力の回路が開いたおかげか、怪しい箇所を発見し、修正。そうしたところきれいにこの不具合は潰れ、ついでに探索の安定性が見るからに上がりました。全日本で動きがおかしかったのもおそらくこれが主要因だったみたいで、やっと原因の箇所を特定することができました。
そんな感じで、結局お昼ご飯を食べる余裕もなく試走会を過ごしました。行く前は「サステナハニーマルシェで美味しいご飯を食べれればOK」とか言っていましたが、単なるフラグだったみたいです。調整だけでなく、多くの人と交流する時間もとれたので良かったとは思います。懇親会、二次会を経てこの日は終了。
そして次の日。デンソーカップ当日。迷路はこちら。
経路長が極端に長いといったわかりやすい難所があるというわけではないですが、隙間が多くそこそこやりづらいポイントが多いといった感じでしょうか。全体の走行を見たあとの感想としては、最後の方のバテてくる頃に登場する櫛や、前半後半でタイムとして近い経路が複数存在するといったところが考えどころのように思います。
さて、私の走行ですが前日の調整のかいあって探索→オートスタートの一連の流れは危なげなく成功。したものの、本命の吸引走行ははじめの長いストレートを攻略できず、走らせることができませんでした。基本的なところで躓いてしまい悔しいところですが、言われてみると想定が甘いところはあるので、盲点だったようにも思います。
また、探索走行も姿勢を整える動作が多く発動し逐一止まるので時間がかかっており、今回は一応耐えていそうですが全面を見きれていないように見えます。このあたりにも課題があるように思います。
いずれにせよ、調整から本走行まで32×32の大きな迷路だからこそ気づく点が多く、課題を多くもらうことができたように思います。Lightningはハードウェア的に文句がまあまああるのでもう出番はないかと思っていましたが、今回の大会でソフトウェアの部分で確認できそうなところはありそうなので、検証するべきところはしたほうが良いようにも感じました。
一応、今回は周りの皆さんも振るわなかったこともあって、手応えは悪かったですがDENSO賞をいただきました。前日に調整が頑張ったのが効いたというのはありますが、やはりタイムで勝負したいわけで、当然ですがこの結果には満足していません。
デンまる、かわいいね〜
新作は間に合っておらず合わせ込みもしていない状態でしたが、マウスに対する自分のスイッチを入れ、課題を多くもらえたという意味で非常に良い刺激を受けることができたので、参加してよかったと思います。運営してくださったDENSOの皆さんありがとうございました。