tattaka/ぐだぐだcoder

アクアリウムとかマイクロマウスとかアリュージョニストとかそのへん

STM32CubeMXのMakefile出力機能でSTM32お手軽開発環境構築

最近というほど最近ではないのですが,STM32の初期化コード自動生成ツールであるCubeMXにMakefileを出力する機能が追加され,ソフト文鎮EclipseなどのIDEを使わないで開発することが容易になりました.自分のための備忘録も兼ねて開発環境のセットアップから書き込みまでの手順をまとめておこうと思います.

 開発環境のインストール

必要なソフトウェアは以下の通り

  • gcc-arm-none-eabi

インストールに関しては以下のページの通り

Linuxに関してもMacと同様にインストールできる

qiita.com

  • STM32CubeMX

本来ならここからインストールできるはず(10/11日現在リンクが消えてるので復活するまで待ちましょう......)※追記(11/11) インストールできるようになってました

www.st.com

  • stm32flashやstlinkなどの書き込みツール

stm32flashは以下のリンクから自分のOSに応じてダウンロードしインストールする

sourceforge.net

stlinkは以下のページを参考にOSに応じてインストール

github.com

  • 好きなエディタ

自分はAtomで開発してます.

プロジェクト作成

STM32CubeMXを起動しNew Projectを選択

f:id:tattaka5X:20171011124721p:plain

以下の画面になったら使用したいボード・CPUを選ぶ

f:id:tattaka5X:20171011124735p:plain

今回はNucleoF446ボードを例にやっていきます.

f:id:tattaka5X:20171011125850p:plain

ProjectタブのSettingsを開いて

f:id:tattaka5X:20171011125957p:plain

以下のようにします(プロジェクトの場所は任意で)

f:id:tattaka5X:20171011130151p:plain

f:id:tattaka5X:20171011130324p:plain

設定が終わったらOKを押し,Generateボタン(歯車っぽいボタン)を押してコードを生成します.

先に設定した場所を見るとプロジェクトが生成されていることがわかります.

f:id:tattaka5X:20171011130850p:plain

コンパイル

このままだとコンパイルが通らないので生成されたMakefileの中のBINPATHにgcc-arm-none-eabiのPATHを入力します.

#######################################
# binaries
#######################################
BINPATH = /PATH/gcc-arm-none-eabi/bin/
#gcc-arm-none-eabiのバージョンや場所は各々の環境に応じて変更する

また,自分で新しく.cファイルを作った場合は

######################################
# source
######################################

以下に作った.cファイルを追記しなければいけません.

 

修正が終わったら

make all

してコンパイルができるはずです.

書き込み

コンパイル後のバイナリファイルは新しく作られたbuildディレクトリの中に生成されます.

たくさんファイルが出来ていますがデフォルトだとプロジェクト名と同じ名前のファイル(.bin,.elf,.hex,.map)があると思います.

生成されたバイナリファイルを書き込みツールを用いてマイコンに書き込めれば成功です!

まとめ

これで一通りSTM32の開発環境が整ったと思います. 

自分の使いやすいエディタで良きSTM32ライフを!

 

今年度機体バグ備忘録(順次追加予定)

  • モータ・モータドライバ発熱

いらないクソデカコンデンサを撤去して解決

  • 右側エンコーダが読めない

未解決

手で回すと正しい値が取れるが直進方向に制御をかけると読み取れなくなりおおよそ値が1/4.5くらいになる

全然わからん

  • stm32に書き込めない

参照:OpenSTM32 Community Site | Connect to custom board STM32L053 - STLINK-V2 - SWD

/open-ocd/0.9.0/share/openocd/scripts/board/st_nucleo_f4.cfgの最終行の

reset_config srst_only srst_nogate   を reset_config srst_nogate   に書き換えたら書き込めるようになった

再出現は警戒

  • if文の挙動がおかしい

 

正しく動くなら半周回転して止まるはず

これをループで回してるけど1回目の処理で角度(ジャイロで積分されている値)にM_PI(任意の数字)が代入されてるっぽい

機体をマイナス方向に回すと初期位置に戻る力が加わる

わけわかんね

この機体の中では180°(3.14[rad])が360という数値に近いらしい

ifの条件文を(角度<360)にすると意図通りの挙動をする

おそらくターン速が決まらなかったのもこれが原因

ただしモータに制御をかけず半周機体を回すと180°は3.14[rad]という正しい値を出力する

わけわかんね

  • 減速が明らかにおかしい

減速が明らかに強い

距離を読み違えている?

加速は(おそらく)問題なし

 

総括

 

2017予定とか雑感とか

新年明けましておめでとうございます

今年は研究室配属などもあり単位も危ういしそろそろ正課に本気出さないとなーと思ったりしてます.(テスト前・レポート締め切り直前にブログ書いてる時点で......)

今年の予定としてはまともに走るクラシックサイズマウスを作る(フレッシュマンなりエキスパートなりまともな公式記録を残す)というのをひとまずの目標としたいと思います.

進捗は回路はほぼ完成といったところ,試験が終われば部品集めと去年のソフトウェアの改修をする予定です.7月の関西大会に間に合えばいいなあ......

後余裕があったらハーフやりたい,まともに動作させるのは来年だろうけど(CADは一日でできた).とりあえず今年はクラシックに注力する感じでやりたいですね.

f:id:tattaka5X:20170115234212p:plain

f:id:tattaka5X:20170115234221p:plain

アリュージョニストとの馴れ初めとか思い出とか自分的イメージソングとか

これはゆらぎの神話・アリュージョニスト・アリスピ Advent Calendar 2016 - Adventarの参加記事です.

幻想再帰のアリュージョニストに出会って2年半,色々なものが変わったり変わらなかったりしましたが思い出とかイメソンとか書いていこうと思います.

はじめに〜アリュ界隈以外の方へ:幻想再帰のアリュージョニストってなんぞ?〜

ncode.syosetu.com

↑これ

人殺しが異世界に行ったり師弟な百合が出てきたりみんなでカラテやったりする話です.

広い性癖をカバーしてるので読んで

あ、一応R15なので15歳未満は読んではだめらしいです.

 私とアリュージョニストの出会い

おおよそ2年半前の2014年4月末ごろ,私はいつものように朝から小説を読もう!のページを開いてスコップ作業*1に勤しんでいました.当時はすることが熱帯魚を見ることと本を読むことくらいしかなかったのです.*2その日もいつもと同じように小説を読もう! || 小説検索を開き,選定作業をしていました.*3

そんな時1話あたり3万文字越え*4,連載開始してから1ヶ月足らずで50万字を超えているという小説を見つけてしまったのです.

それから1週間,その小説を読むこと以外のことが碌に手をつけられなくなりました.食事が終われば読みふけり,水槽の水換えの間の水を貯めている時でさえiPod touchを手放すことができませんでした.

そして選定をした当時最新話だった話に辿りついた私は恐ろしいことに気がつきました.

あれ、20万文字増えてね?

これがアリュージョニスト七不思議の1つ,「最新話に辿りつけない」です,はい.当時は前述の1話3万文字越え,ほぼ毎日更新のため,いくら読んでも読み終わらない><という状況でした.結局読み終わったのが5月の半ば,レビューをまとめて某オープンな掲示板に投稿したのが6月の初めになります.探したら簡単に見つかると思うのですがこっ恥ずかしいので興味のある方は探してみてはいかがでしょう.

影響力のあるまとめサイトにも転載され,面白いと言ってくれる人もいて(自分が書いたわけでもないのに)ニヤニヤしながらエゴサ(誤用)したりしながら日々を過ごしていました.

アリュージョニストの思い出

2015年3月にTwitterのアカウントを作ってはじめてのツイートはこれですね、今となっては懐かしい.

サイバーカラテ道場botとかWikiが出てきたのもこの時期*5,というかそれを見てTwitterを始めたと言っても過言ではない.もともとtattaka (@tattaka_sun) | Twitterはアリュージョニスト用のアカウントであって,何か間違って情報系の学部に進んだりサークルでロボットを始めたりしてしまってカオスになってますが本来はアリュージョニストな人たちを観察するために生まれたアカウントでした.

気づいたら多くの知り合いができ,オフ会などやったりして色んな人のアリュージョニスト観に触れることができる快適なインターネットを構築することができました.

 

 章ごとのイメソン

自分は物語にハマると自分的世界観と照らし合わせてテーマソング的なのを作ってしまう人間なのですが例に漏れずアリュージョニストにもそういう曲があるので紹介.

2章~3章


[Official Video] ZAQ - Alteration -

イメージとしてはアニメのオープニングみたいな感じで脳内再生してる.

ついでにこの記事書いてる時に上のアレンジを見つけてしまってこれも良い.

 上がOPとするならばこっちはED

どちらも2章の魔女姉妹の自分のイメージにぴったりくる.

この曲のせい(?)でハルの歌声がこれになってしまった.

4章前半(死人の森の女王編)

死人の森の断章の暗い雰囲気によく合う.

loop, shareという曲名がもうこの編の主題とマッチしすぎてる.

歌詞も偶然とは思えないほどマッチしていて

大きな時間まで そっと 飲み込まれてしまうような カード合わせの渦に 負けてしまう

予感は記憶から染み出すように襲う

のあたりとか,

今 見ているものも 自分一人だけのものではなくて 誰かの持ちものや 心を 貰っただけだとしたら ひどくやるせない

これとかはコルセスカやトリシューラの相互参照性を想起させるし,

息を吐き出そうとして引っかかっていたのは 言葉ではなかった 体の半分は 言い訳や 偽善や そんなので出来ていると思う

くだらない強調も 理由も 確証も 過去も必要ないのに

ただ 素直に心は流れていかない 選んでいけない

この辺はアキラくんだし

灰色の夜と融け合う 冷たさに混じり合うために 柔らかくなっていく 細い糸で世界まで吊り上げようとしている 夢に似ている 虚ろに見るような 青 

終盤のこれとかは完全にラクルラールだしでやばい,4章読んでるなら聞いて

4章中盤(樵さんのとこあたり)

カザキリ/やなぎなぎ


OP - NORN9

これは自分でもよく分からない,雰囲気的には合ってるとは思うけど......

 

終わりに

Twitterとかでアリュージョニストを読んでる人と交流するとやっぱり一人で読んでた時と世界観の広がりというか,尊いってだけの感想でも言い合うのが大事なんだなあってのを感じることができた1年でした.来年もよろしく,アリュージョニスト.

 

明日は宗谷織衛さんです.

*1:主にポイント数が少ない小説の中から面白い小説を発掘すること

*2:正確にはしなければいけないことがなかったわけではなく現実から目をそらしていただけである

*3:片っ端から読んでいくのではなく,タイトル・あらすじ・文字数あたりで期待できそうなのを5作品くらいストックしてからまとめて読むというやり方を取っていた

*4:現在は修正により少し文量が減っている

*5:記憶が確かではないけど

マイクロマウス全日本大会に参加してきた

マイクロマウス全日本大会に参加してきました.

結果

マイクロマウスクラシックサイズ フレッシュマン予選

第1走   R

第2走   R

第3走   R

見てのとおり、記念受験的な感じになりました.

探索用のプログラムもできてなかったので当然ですが......

来年はちゃんと走ろうと思いました.

その他

Twitterでしか見たことない人が現実で動いてる......すごい......!

・AUTODESKの人からTシャツをもらった

・MiceフレッシュマンはやっぱりMiceだった

追記

・某 FNDさんに顔覚えられてた(一方特定してると思ってたのに......)

・あとMiceのFF外の人にもtattakaって名乗ったらああ......って顔された

 

マウスパーティでは酔った勢いでいろんな人に絡みに行ってしまったけど色々と話聞けたし結果オーライかな(迷惑かけた方々すみませんでした......)

通常時より積極性が5割り増しくらいになってたはずです

 

 

マイクロマウス全日本大会直前

進捗

前回記事から現在までの進捗です.

お気づきだろうか......前日まで競技成績に関わることを全くしていないことに......

ちなみに最後2つの進捗は2単位を犠牲にして産みました.

これからは金曜1限に無理して出席しなくても良くなったよ!やったね!

 

こんな感じなのでおそらく来年もフレッシュマンクラスにお邪魔することになると思います.来年はちゃんと走行できるようになりたいですね.まだモータの制御とかわかってないですけど.

 

P.S. マウスを始めて人間不信になってしまったのでTwitterのTL上の「探索走行できない><」って言葉を信じられなくなりました.訴えてやる.

 

自作フットプリントで3ヶ月無駄にした話

経緯

  • 7月初め、初めての基板が届き電源を入れたところマイコンとモータドライバが発熱
  • 電源つけた直後は書き込みができるが長時間電源をつけていると発熱・発火
  • 考えられる回路ミスを全て潰し、合計6回発注し直す
  • 6回目(10月初め)の発注にてマイコン周りのコンデンサを大幅に増やすことによって安定して書き込みが成功するように
  • しかしマイコンがほんのり温かい (だいたい40~50℃くらい)

原因

 

 まあこういうことです(モータドライバの上側ピン一列の番号が逆順になってた)

I/Oポートにバッテリから電流を直接流し込んだらそりゃ燃えるわ

防止策

  • データシートを読み込む

もう少ししっかり読み込んでいれば防げたはず

  • 自作フットプリントをできるだけ使わない

根本的な解決策

Kicadのライブラリはかなり充実していて、大概のメジャーなパッケージは探したら見つかる

またはメジャーなパッケージを使う設計をする(マイナーで怪しい部品は使わない)

 

まとめ

  • 自作フットプリントを使うときはピン番号がちゃんとあってるか確かめよう
  • モータに電気流す前で本当に良かった
  • 来年からはマウス頑張る
  • 今年はスタート区画からの脱出を目指す

 

おまけ

 このLED、マイコンにつないでないんだぜ......