忍者ブログ

[PR]

2017年03月28日
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

全日本大会で探索ができなかった話

2016年11月22日

こんにちは
久しぶりの更新になります。

全日本マイクロマウス大会の感想でも書きます。

まずは、選手の皆さま、並びに運営を担当したスタッフの皆さまお疲れさまでした。
おかげさまで、とても楽しい大会でした。

マウスパーティや技術交流会では、去年一昨年以上にいろいろな人とおしゃべりでき、(Twitter)上での知り合いもたくさん増えました。
この調子でもっと友達を増やしていきたい。

Miceとしては後輩も同期も先輩も受賞し、益々勢いを増している感じでしたね。
Miceの一員として鼻が高いです。





で、僕はというとハーフエキスパートに出場しました。



鯉住です。




肝心の結果ですが、

第1走 R
第2走 R
第3走 R
第4走 R
第5走 R

はい、死亡です。
探索すらできませんでした。
Miceの一員として肩身が狭いです。。。

一応、備忘録代わりに、もうちょっと詳しく残しておきます。
どうやらセンサ値がよろしくなかったらしく、安定するための前壁制御で発信するという体たらく。
一応小細工として、その場でLEDとセンサの向きをずらしてみましたが、やはりダメ。
壁キレを読み間違えて(6,7)をゴールと認識して帰ってきてしまいました。

完全な調整不足ですね。

とはいえ、去年よりは探索できてるので、来年こそは最短できると信じて頑張りたいです。
まずは電通大のプチ大会で鯉住をびゅんびゅんさせてあげたいところです。

皆さん1年間お疲れさまでした。
また来年お会いしましょう。

PR

情弱でもSTM32が使いたい! その2

2016年08月13日



こんにちは。
書こう書こうと思っているうちに気づけばこんなに時間が経ってしまいました。

というわけで第2回書き込み編です。
第1回開発環境編はこちら


System Workbench for STM32の設定について


では書き込みへ、と行く前に少しSystem Workbench for STM32の設定をいじっておきましょう。
System Workbench for STM32はデフォルトの設定ではビルドした後に .binファイルが生成されます。
しかし、これから導入する書き込み方法では .motファイルしか書き込めないので設定を変更する必要があるのです。

System Workbench for STM32を起動すると画面右側にProject Explorer があり、そこに自分が作ったプロジェクトが表示されていることかと思います。
そのプロジェクトを選択した状態で右クリックを押して、そこからPropertiesを開いてください(画像参照)。



一番下のやつですね。
次に開いたPropertiesの中にある C/C++ Build > Setting を開いてください。
下の画像みたいになってればOKです。




この中段にある Post-build steps の中の Command をいじります。
現在は

arm-none-eabi-objcopy -O binary "${BuildArtifactFileBaseName}.elf" "${BuildArtifactFileBaseName}.bin"; arm-none-eabi-size "${BuildArtifactFileName}

となっているはずなので

arm-none-eabi-objcopy -O srec "${BuildArtifactFileBaseName}.elf" "${BuildArtifactFileBaseName}.mot"; arm-none-eabi-size "${BuildArtifactFileName}"

としてください。
赤字になっている部分が変更点です。
これで右下のOKから設定を保存すれば.motファイルが生成されるようになったはずです!
ビルドしてご確認ください。


いざ書き込みへ


書き込むためには書き込みソフトが必要です。というわけで、こちら
はい、皆様ご存知マウス界の宇宙人ことこじまさんのプログラムです。
せっかくですので偉大なる先人の功績をありがたく使わせていただきましょう。

導入方法や使い方はリンク先のページに書いてあります。
何はともあれ最初は使用環境を構築しましょう。
リンク先の説明に従って python と pyserial をインストールしてください。

これで使う準備は整いました!
後は説明を読んでパパッと書き込んじゃいましょう!!


…といってできるなら情弱と言われていないわけですね、はい。

リンク先の説明を読んでもよくわからないし、ピンとこないですよね?

よくわからないですよね…?



えっ、もしかして僕だけ?


wirte_main.pyの使い方


皆さんはともかく僕はわからなかったので、軽く使い方を説明しておきます。
大丈夫そうな方は読み飛ばしちゃってください。

まずは、"write_main.py"と"write_static.py"をワークスペースのプロジェクトフォルダの直下にコピーしてください。Debugやsrcフォルダ同じ階層に来てればOKです。

write_main.pyの設定

次に設定を整えましょう。プロジェクトにコピーした”write_main.py"をメモ帳等のテキストエディタで開いてください。


ポーレート
ポーレート設定をしましょう。9行目あたりの baudrate = "xxx" のxxx部分をお望みのポーレートに設定してください。
例:baudrate = "230400"


書き込みポート
次は書き込みポートです。13行目あたりの port = "xxx" のxxx部分を適したポートにしましょう。
Linuxや他のOSを使用している方は15行目、17行目の分岐先の部分を書き換えましょう。
例:port = "com3"
ちなみにWindows場合、ポート番号は コントロールパネル>ハードウェアとサウンド>デバイスマネージャー から調べることができます。


motファイルの指定
続いて書き込むmotファイルを指定してあげましょう。
20行目あたりにあるmot_files = os.path.join("xxx", "yyy", "zzz.mot") のxxxとyyyとzzzを指定してあげます。
これらは"write_main.py"からの相対pathを表しています。これだったら、xxxフォルダの中のyyyフォルダの中にあるzzz.motファイルを書き込むということですね。
今、"write_main.py"はワークスペースのプロジェクトの直下にあるはずなので、以下のようにすれば大丈夫なはずです。
mot_files = os.path.join("Debug", "ProjectName.mot")

※ProjectNameは皆さんが決めたプロジェクトの名前という意味です。僕の場合はプロジェクト名をhalf_mouseにしたので"half_mouse.mot"になります。


ターミナルソフトの起動
このプログラムは書き込み後自動でターミナルソフトが起動するようになっているので、最後にその設定を行います。
27行28行目あたりの termsoft = "xxx.exe" のxxx部分を起動したいターミナルソフトのPathに書き換えましょう。64bitの方は27行目をコメントアウトして28行目のコメントアウトを外しましょう。コメントアウトは#です。
例:termsoft = "C:/PROGRA~2/Renesas/teraterm/ttermpro.exe"

めんどくさかったら56~62行目をコメントアウトしてください。ターミナルソフトの起動自体がなくなるはずです。

write_main.pyの実行

では、設定も終わったことですし、いよいよ書き込んでみましょう!

コマンドプロンプトから"write_main.py"を実行すれば良いそうです。

Linuxを使ってる方はともかく、Windowsだけしか使わない方はコマンドプロンプトにあまりなじみがないのではないでしょうか?
本題からそれてしまうので、コマンドプロンプトやそのコマンドについて説明することはやめておきます。そもそも僕もよく知りません。

ともかく、このプログラムを使うだけなら簡単です。まず、"write_main.py"があるフォルダを開いてください。何も選択していない状態で「Shift+右クリック」です。すると、「コマンドウィンドウをここで開く」が出てくると思います。



これを選択してください。黒い画面が出てきましたね? そこで"write_main.py"と打ち込んでEnterで実行(書き込み)です!



無事書き込めた方はおめでとうございます。
残念ながらうまくいかなかった方は「Ctrl+C」で中断して、何が間違っているのか探す旅を始めましょう。頑張ってください。


おわりに

これで皆さん書き込めるようになったはずです。…はずですよね?
わからないことや間違っていること等あれば、コメントからお願いします。

次回はいよいよプログラム。IOでも叩けたらいいですね。
それでは、ほどほどに期待してお待ちください。

情弱でもSTM32が使いたい! その1

2016年07月12日

こんにちは
なんだか最近ブログを書くのが流行っているようですね。

乗るしかない、このビッグウェーブに! ということで僕もブログを書くことにします。




さて、今回はSTM32の開発環境についてです。

なんやかんやあってSTM32を使うこととなった僕ですが、肝心の開発環境がちんぷんかんぷんです。
そこで、いつものように部長に泣きついて教えてもらったことを残しておきます。

なぜかSTM32を使ってる人はWindows から離れてバリバリやってる方が多い気がします。
ネットで調べても強い人向けの記事が多い気がします。
情弱にはつらい世の中です…。
これを機に僕のようなWindows から離れられない情報弱者でもSTM32を使うようになったらいいなあ…。




どの開発環境を選ぶか?

開発環境と一口に言っても、選択肢はさまざまです。
Miceの人ならわかると思いますが、ルネサスマイコンでも e2studio と CS+ がありましたね。
とりあえず選択肢として挙げられそうなものは、有償無償含めココにまとまっているようです。
http://qiita.com/Ted-HM/items/9f1cca2590ada522c021

とはいえ、
リンク先を見て
「ほうほう…。じゃあ、これが良さそうだな」
とか言える人(選べる人)は情弱ではありません。

情弱は自分で調べられないから弱者なのです。

じゃあ、どれを選ぶのかって話なんですけど
http://yuqlid.hatenablog.com/entry/2016/06/13/004001
これを参考にしました。


Sytem Workbench for STM32というEclipseをベースとしたマルチプラットフォームの開発環境だそうです。
いかにも良さそうじゃないですか? 比較的簡単にとか書いてありますし。
あと部長におすすめされましたし。

なんとありがたいことに、丁寧に記事を書かれています。マジ助かります。
基本的にリンク先を見ていただければ大丈夫なはず。


ただし、注意するべきことが1つあります。
実行していざビルドだ、といくとエラーが出る人がいるんじゃないでしょうか?
僕は出ました。

"arm-none-eabi-gcc" not found in PATH

↑こんなのです。
これは「arm none eabi」が入ってないためにおこる問題だそうです。そんなん知らねぇよ。



というわけで、インストールしなければなりません。
検索するとダウンロードページへたどり着くと思います、ココとか。
このサイトの更新日の新しい(上のほうにある)「gcc-arm-none-eabi-5_4-2016q2-20160622-win32.exe (md5)」を選べばよいと思います。



しかし、インストールしたからといってそれで終わりではありません。
「not found in PATH」です。
そう、環境変数であるPATHを追加しなくてはなりません。(PATHって何って方はこのへん参照)
PATHに先ほどインストールした中のbinフォルダのディレクトリを追加してください。



これで晴れてビルドエラーはなくなったはずです!

ようやく開発を始めるスタートラインに立つことができました。

次回「書き込み編」こうご期待!

→書き込み編

ようやく新作発注しました

2016年06月02日
研究やら何やらに追われている間に気が付けば前の更新から半年が経過しておりました。
いい加減、部長に怒られるので更新します。目指せ月2回更新!

ようやく新作発注しました

新作発注しました。周りの人に比べてだいぶ遅れていて焦りが募っております。
以下、回路およびアートワークです




今回のマウスは部長さんの強い勧めにより、Miceで流行りのルネサスマイコンではなくSTM32F405RGを載せております。ちゃんと使えるかドキドキですね。

また、前回のマウスはハーフサイズ基準では大き目&角ばった外形だったので、今回は丸みを重視した通常ハーフマウスサイズ(39mm × 58.1mm)にしてみました。

26日のプチ大会に間に合わせるのは厳しそうな状況ですが、今年は機体ぐらい置きたいものです。


―――隣のひふみんの進捗に焦る11時間際の部室より


スラロームができない……

2015年11月11日

最近悩んでることの1つにスラロームの角度がおかしいというものがあります。

角度がおかしいと言っても90°が91°になるとかいう可愛いものではなく90°が130°くらいになったりします。しかも、再現性がありません。

何度か試したようやくとれたログがこちらです。




赤が理想の角速度[rad/s]
青がジャイロから取った現在角速度[rad/s]
緑は角度[° ]
で2回連続でスラロームをさせてみました。

これを明らかに2回目のスラロームで制御が発散しております。
この原因がわからない……

せめて発散が起きる条件とかがわかればなぁ

誰か心当たりあったら教えてください

 | HOME | 次のページ »