imaha.txt

某理系大学の学生であるいまはが技術的に成長していくかもしれないブログ 。詳しくはご挨拶を読んでください。

n番煎じのぐだぐだSTM32でHAL_DelayをつかったLチカ[自分用メモ]

どうもimahaです。

せっかく書く気が起きたのでとりあえず自分が何をしてきたのかを残す意味を込めて更新していきたいと思います。

コンスタントにこういった更新とか進捗を出し続ける人たちすごいと思う。

今回の記事も新情報みたいなものは全くないです(そもそもそんなことできない)。 間違ってたり古かったりしたら教えて頂けるとありがたいです。 よろしくお願いします。

1.この記事の意図

とりあえず自分が一回目の布教で行っているHAL_Delayを用いたLチカを題材に

cubeMXを用いたピン設定

プログラムの書き加え

書き込み

という最低限の一連の流れを把握する。

2.道具

今回用いるツールの説明

 2.1.ソフトウェア

・Atollic TrueSTUDIO8.1.0

・STM32cubeMX

 2.2.マイコンボード

・STM32nucleo32F303k8

 2.3.関数

・HAL_Delay(__IO uint32_t Delay) HALにおけるDelay関数。単位はms。

・HAL_GPIO_TogglePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) GPIOピンの出力を反転する(LEDにつながってた場合、LEDがそこまでついていたら消え、消えていたら点灯する)

3.方法

というわけで具体的な方法です。

コード生成、プログラム編集、書き込みで章立てを行いながら書いていこうと思います。

 3.1.コード生成

  3.1.1マイコン選択

まずマイコン選択です。cubeMXを開くと以下のようながめんになるので青矢印で示されたnew projectをクリックします。 f:id:imaha1213:20180102205728j:plain

すると以下の写真のような画面になります。 この画面は評価ボードではなくマイコンチップ単体として選ぶ用の画面です。 今回は評価ボードに乗っかったマイコンを用いるので青矢印で示されたあたりにあるboard selectorをクリックします。 f:id:imaha1213:20180102205957j:plain

そうするとボード選択画面に移動します。

今回用いるのはnucleo32F303k8なので、青矢印で示された箇所をnucleo32、オレンジ矢印で示された箇所をF3にします。

これにより赤い四角で囲まれた範囲に表示されていたマイコンボードの一覧が条件に従って絞られるので、今自分が用いようとしているマイコンボードであるか確認しつつ、マイコンの名前をダブルクリックしましょう。

f:id:imaha1213:20180102210517j:plain

これにてマイコンの選択は完了です。

  3.1.2ピン設定

今回用いるマイコンボードではユーザーLEDはPB3に接続されているのでPB3をGPIO Outputに設定したい。

ここまでの操作で以下のような画面になっていると思います。 ここで、まず青矢印で示されたPB3のピンをクリックします。 f:id:imaha1213:20180102211215j:plain

すると以下のような選択画面が出てくるので、最初に言った通り目標とするGPIO Outputをクリック。

f:id:imaha1213:20180102211402j:plain

すると以下のようにPB3のピンが緑色になります(緑色のピンは設定済みという意味)。

f:id:imaha1213:20180102211702j:plain

これにてピン設定は完了。

  3.1.3.ジェネレート

最後に画面左上のギアみたいなマークをクリックします。

f:id:imaha1213:20180102212036j:plain

すると、以下のウィンドウにが表示されるので、青矢印の箇所にproject nameを入力、まだプロジェクトの保存先を設定していない場合保存先を作りオレンジの矢印でしめした箇所で保存先のフォルダーを設定、最後に赤の矢印で示した箇所を自分が用いるIDE(今回はTrueSTUDIO)にしてOKをクリックする。

f:id:imaha1213:20180102220429j:plain

最後にしたのウィンドウが出るのでopen projectをクリックするとIDEが起動します。

 3.2.プログラムの編集

  3.2.1.プログラムの書き加え

もしここまでの作業で起動したIDEがプロジェクトを表示していなかった場合、下の画像にのオレンジ矢印が示した復元アイコンをクリックしてください。

f:id:imaha1213:20180102213709j:plain

これでだめだったらファイルからopen project from fileシステムから開いてください(ちょっと疲れたので今回は割愛)

さて、これにて以下のような画面になったと思うのでまずproject名をクリックし、出てきたツリーの中のsrcをクリック。

f:id:imaha1213:20180102214054j:plain

ここでmain.cをクリックすると下のようにmain.cが開かれると思います。 f:id:imaha1213:20180102214247j:plain

そして表示されたmain.cをスクロールしていくとメイン関数があり、メイン関数の中の無限ループにたどり着くと思います。

そうすると無限ループのあたりに

/ USER CODE BEGIN WHILE /

/ USER CODE END WHILE /

というコメントアウトがあります。

実はcubeMXのピン設定は.iocという拡張子のファイルに保存されており、.iocファイルを開くとcubeMXが起動されてピン設定やペリフェラル設定を再設定することができます。

その際にこのUSER CODE BEGINほにゃららとUSER CODE ENDほにゃららというコメントアウトの外にコードを書き加えると消えます。 なので、コードはこういったコメントアウトの間に書くようにしましょう。

f:id:imaha1213:20180102214456j:plain

最後に

/ USER CODE BEGIN WHILE /

/ USER CODE END WHILE /

の間に以下の文を挿入する

f:id:imaha1213:20180102215154j:plain

これにてコーディングは終了。

 3.3.書き込み

まずビルドが通るか確認しましょう。

下の画面のトンカチマークをクリックするとビルドされます

f:id:imaha1213:20180102215339j:plain

f:id:imaha1213:20180102215349j:plain

ビルドが通ったらカナブンみたいなアイコンをクリックしましょう。

そうするとデバッガが起動します。

f:id:imaha1213:20180102215614j:plain

デバッガが起動できると下のようなアイコンが表示されるようになるので、この中の再生マークを押すとプログラムが再生されます。

ボードを抜くときは赤い四角のマークを押してください。

f:id:imaha1213:20180102215843j:plain

4.まとめ

というわけで無限ループとHAL_Delayを用いたLチカを題材に、cubeMXのコード生成、プログラムの編集、書き込みの一連の流れをさらった。

おわり。

CubeMXにHALdriverを入れる方法[自分用メモ]

あけましておめでとうございます。

imahaです。

お正月を無駄にしそうな機運が高まってきたので書く気が起きたタイミングで書くべきと思った記事をしたためております

まとめておかないとしばらくして忘れる

毎度ですがまちがってたり情報古かったりする可能性ありますが自分用メモなのでゆるちて……。あと教えてもらえるとありがたいです。よろしくお願いします。

1.この記事の意図

今回の記事はこの前STMを布教した際に前回の記事だと不備があったことに気づき、書かなければならなかったことに気が付いた。

その書くことを忘れていた不備というのはタイトルまんまなのですがHALdriverの入れ方です。

cubeMXはインストール段階では関数が定義されたライブラリー(HALdriver)が入っていないためピン設定をされたソースコードを含むプロジェクトの生成をすることしかできず、ライブラリーが生成されたプロジェクト入らない。

今回はそのドライバーの入れ方をまとめておく。

2.ツール

・cubeMX

・STM32nucleo32F303k8

(二つ目はドライバーはSTMのマイコンシリーズごとに用意されており、入れ方自体は特に変わらないが、ネットにおいてよく使われているところを見るnucleo32F303k8を想定しておくという意味で)

3.作業

ここから先は具体的な作業を示す。

3.0.プロキシ

もしも学内から行う場合は必要な時もあるので一応書きますが、家からすべての作業を行うならいらない(だから0にした)。

3.0.1.updater settings を開く

要するにライブラリー他をアップデートするときにどういう風にネットに接続するかの設定画面。

まずcubeMXを開きした画像で青矢印で示された箇所をクリック f:id:imaha1213:20180102011010j:plain

すると次のような小窓が開くので下画像の青矢印の箇所をクリック f:id:imaha1213:20180102011104j:plain

3.0.2.proxy設定

次に具体的なproxyの設定を行う

まずここまでの作業で新しいwindowが開いていると思うので、そのウィンドウの中のconection paramatersというボタンをクリックする。そうするとしたのような画面になる。

f:id:imaha1213:20180102011703j:plain (上画像の青矢印で示したあたりのconection parameters)

ここでproxyを使わない場合はnoproxyにチェックをして終了。

proxyを使った通信(学内からの通信)でドライバーやアップデートをインストールする場合、オレンジの矢印で示したmanual configration of proxy serverをクリック。

そして使うmanual configuration of proxy server のproxyサーバーのHTTPとportを入力する

電通大の場合

proxy http は proxy.uec.ac.jp

port は 8080

さらに電通大の場合その下のrequire authenticationをクリックし学内アカウントのIDとpassを入力する。

最後にcheck connectionをクリックして緑のチェックマークが出れば成功。

3.1.ライブラリーのダウンロード

ここから先はこの記事の本論であるHALdriverの入れ方を示す

3.1.1.Install New Libraries画面を開く

平たく言うとどのライブラリーを開くか選択する画面を開く

下の画面の青矢印で示されたInstall New Librariesをクリックする

f:id:imaha1213:20180102013241j:plain

3.1.2.ライブラリーをインストールする

次にライブラリーをインストールする(まんま)

ここまでの作業で下画像のような画面になっていると思うので、ウィンドウをスクロールして自分が用いるシリーズのライブラリーを探す。

今回はF303k8を想定しているのでF3のドライバーを探しスクロールする。

すると下のような画面になると思うので、インストールしたいライブラリにチェックマークを付ける。 (ミドリにチェック付けるとこが染まてるのはすでに僕がインストールした後だから。わかりにくくてすません) f:id:imaha1213:20180102014038j:plain

最後にインストールしたいライブラリにすべてチェックを付けられたらオレンジの矢印で示してあるInstall Nowボタンをクリックして完了。

結構容量でかいのでしばらく時間かかります。気長に待ってください。 あとPCの容量がのこり1GB切っててかつかつとかだと途中で止まることあるっぽいのでエラー吐かれたらそことあとproxyとかの通信周り疑ってください。

各シリーズ一番上にあるライブラリーが最新版です。ただたまにバグがあったりするのでそこら辺を調べたり、ネットでほかの人のまねをしてうまくいかないときはバージョンの違いなども疑う対象になるかもしれないです。

4.まとめ

というわけで前回記事で書き忘れていたライブラリの入れ方とプロキシ設定を書きました。 あとこの手のことで書くとしたらcubeMX自体のアップデート方法かなあ。

ぐだぐだn番煎じのSTM32開発環境構築メモ

身内に向けてSTM32を布教する機会が増えてきたのでここにまとめておこうと思います。
※結構ライセンス同意などが出てくる場面があります。自己責任でよろしくお願いいたします。またそもそもの勉強不足のため間違った情報や古い情報がある可能性があります。ご了承ください。

※2018/1/2追記
HALdriverの入れ方完全に忘れてました。下のリンクの記事を読み終えたら読んでもらえると幸いです。

CubeMXにHALdriverを入れる方法[自分用メモ] - imaha.txt


1. 自分のSTM32の開発環境構成(いわゆるこれさえあればのサバイバルナイフ)

 ここで紹介するSTM32開発環境は

IDE

②ピンコンフィギュレータ

③STlink

の3つで構成されています

 IDEは知っての通りの統合開発環境です。STM32の場合system workbench for STM32(SW4STM32)やAtolicTrueStudioが主流に思えるので今回はこの二つを紹介しようと思います。

 次にピンコンフィギュレータ。これはあんま聞きなじみない人がいるかもしれない。このソフトはマイコンピン設定をグラフィカルに行うことを可能にするソフトです。STM32の場合はSTM32CubeMXというソフトを用います。

 やろうと思えばピンコンフィギュレータはなしでも開発はできるのですが、僕はこれに完全に依存してるしこれなしだと僕は正直何もできないので。

 最後にSTlinkですが、いわゆるデバッガです。これがあると書き込みやデバッグが非常に楽になります。

 とりあえず以上がSTM32を使う上でのサバイバルナイフかなあと思います。

2.Javaのインストール

 STM32の環境に使われるソフトは基本的にJavaを用いているので、Javaをインストールする必要があります。

https://www.java.com/ja/

 このサイトに行ってガイドに従ってインストールしてください。雑ですまん。

3.IDEのインストール

 というわけでJavaが動くようになったのでその次に優先度の高いIDEのインストール方法です。
 最初に説明したとおりここではSW4STM32とTrueStudioという二種のIDEのインストール方法を説明していくのですが、その前にそれぞれのIDEの長所と短所を説明しておきます。

※この長所と短所はあくまでもSTM32を本当に軽く使ったことしかない私の感覚なのであくまでも参考にする程度でお願いします

SW4STM32
・長所
完全フリー
制限が基本的にない
macでも使える

・短所
バグが多い
住所などを登録させられるが、暗号化されず平文で送られているらしい(話に聞いた程度で未確認)

TrueStudio
・長所
登録などの手続きがSW4STM32に比べ楽
バグが少ない(感覚)

・短所
本来は有料のソフトの無料版なので制限が多い
macで使えない


 個人的にはTrueStudioを推します。挙動安定しているし。

 というわけでインストール方法です

3.1. SW4STM32のインストール

 全く同じ内容の記事がすでに偉大な先人により存在するので軽く。
 ①まず以下のページにアクセス
www.openstm32.org

 ②下の画像のスクリーンショットのオレンジの矢印で示されたsystem workbench for STM32をクリック

f:id:imaha1213:20171217163317j:plain
SW4STM32

 ③下のスクリーンショットのオレンジの矢印で示されたリンクをクリックして会員登録。住所とか登録させられて怖いし、短所のとこにも書いた案件があるのでやめるならここ。

f:id:imaha1213:20171217164532j:plain
SW4STM32-3
 ④下のスクリーンショットのオレンジの矢印で示されたdownloading the~をクリック
f:id:imaha1213:20171217164144j:plain
SW4STM32-2
 ⑤そうするとあとはwindows,linux,macそれぞれに対応したダウンロード方法が出てくるのであとはお好きに

3.2. TrueStudioのインストール

 というわけで次にTrueStudioです
 ①このページにアクセスする
atollic.com

 ②そしてページ中ほどのオレンジの矢印のところをクリック。
  ここで気を付けなければならないのはProではなくLiteを選択するということ。

f:id:imaha1213:20171217181025j:plain
TrueStudio1
 ③そして自分の環境にあったものを選択。僕の場合windowsですね。
f:id:imaha1213:20171217181240j:plain
TrueStudio2

 ④最後に登録を行います。名前とか書かされるけどSW4よりはまだまし。
f:id:imaha1213:20171217181721j:plain

 
 ⑤あとはさっきと同様に画面に従えばOKのはず(記憶がいかんせん古い)

4. STM32CubeMXのインストール

 そして最後にCubeMXです。ここで紹介するのはwindowsのばあいなのでmacの方は別で調べてください。
 ①いつも通りにダウンロードページに行きます。
www.st.com

 ②一番下のほうのこのボタンをクリック
f:id:imaha1213:20171217183200j:plain

 ③するとこんな画面が出てくるので、読んだうえで許諾できるならacceptを押しましょう(一切の責任は負いかねます)
f:id:imaha1213:20171217183649j:plain

 ④そして以下の画面が出てくるので、会員登録を行う場合上のlogin/registorボタン、会員登録を行わない場合はボタン下のフォームに名前とメールアドレスを入力してその下のボタンで送信をします。

(ここから先は登録しなかった場合を想定しています)

 ⑤先ほど入力したメールアドレスにSTMからメールが届くので、そのメールのリンクをクリックします。するとソフトのZipのダウンロードが始まります。

 ⑥最後にzipを解凍し、exeファイルを起動します。

5. STlinkのインストール

 ごめんさい完全に忘れていましたSTlinkにはドライバーがありそれをインストールする必要があります。

 ぶっちゃけ書くの疲れたしCubeMXとインストール方法同じなのでここからインストールお願いします。

www.st.com

6. おまけ

 以上でサバイバルナイフ的な要素は終わりなのですが、これに加えてあると便利かもなソフトを紹介します。

6.1.STMstudio

 Windows専用ソフトです。
 このソフトはグローバル変数の値をリアルタイムでグラフ化してくれます。
 マウスとかで便利そう。
www.st.com

まあほかは随時更新。

7. おわりに

 ここまでつたない文章にお付き合いいただきありがとうございました。
 ここのところは勉強不足に輪をかけており情報が古い場合や間違ったことを書いている可能性が否めません。
 身内向けではありますが、そういった場合は教えていただけると幸いです。

UECに入ってよかったこと

この記事はUEC Advent Calendar 2017の12日目の記事です。

前日はponkikkidayoさんの自己紹介的な何かでした。

西の電通大さんはロボットの大会でお見かけすることがしばしば

つよくてすごい(小並感)

エディタはメモ帳派です

 

こんにちはimaha_freezeです

sleepは死にました

 

今回のAdventCalendarでは何を書くか迷っていたのですが、あと3ヶ月ほどで研究室に配属されるというある意味一区切りつく時期なので、ここまでの学生生活をまとめる意味もありUECに入ってよかったことをテーマにカレンダーを書いていこうと思います

オタクが多い

ここには賛否両論ありそうですが、知っての通り電通大はオタクが多いです。 良くも悪くも、という話になりますが同好の士が多く過ごしやすい環境だったというのがまずあったかなぁと。

あとまあ僕のような根暗キモ=ヲタキはリア充の放つ特殊な電磁波を一定量浴びると灰になってしまうので。

オタクが多い

同じ項目並んでんぞという方がいるかもしれませんが、一つ前の項目とはオタクの意味が少し違います。いわゆる特定分野に強い人という意味でのオタクです。

プログラミングとかがやはり主流ですが、そのほかにも電子工作や機械、電車、自動車など多岐に渡る分野のオタクがいます。

そうした中にいると何かと刺激が多く、偏ってはいますがいろんなことを知る機会が与えられたのは非常にいい経験だったように思います。

優秀な研究者がいる

この大学には多くの優秀な研究者がいて、努力次第でそうした人々のもとで研究をすることが可能となります。

もちろん必ずしもそうした環境で研究できるとは限りませんが、そうした環境にいられるということ、研究室に入れなくても授業を受けられる環境にあるということは非常に恵まれているのではないかなあと感じました。

特にここ最近の研究室配属がらみで先生たちのことを調べると驚くというか恐れるというかもうほんと。

ロボメカ工房がある

これは僕にとって一番大きいこの大学に入ってよかったことだったように思います。

もちろんきついこととかむかつくこととかだるいこととかいろいろあった場所でもあります。

けれども、この場所があったから知り合えた人がたくさんいて、この場所があったから得られた知識がたくさんあり、少なくとも大学以降の自分を形成する上で最も重要な要素を担った場所であることは間違いなく、ここにいる自分に至るのに必要だったと考えるとやはりUECに入ってよかった理由には挙げざるを得ない場所だなあと。

研究室選びもロボメカでの活動やその過程で知ったことやらがかなり影響しているしね。

まとめ

このあたりが自分がUECにきてよかったと思うことを大きくまとめた結果となりそうです。

当たり前の話ですが、ここに書いてないまとめ切れないこともたくさんあります。友人がたくさんできたこととかいろいろ。

逆にまあ、マジでくそみたいな電通大こなきゃよかったと思うようなこととかもしばしばあるといえばある。まあそういうことは書いたところで意味ないのでまとめませんが。

もちろんここまで書いたことが人間万事塞翁が馬的にいつか裏目に出るときがくるのかもしれないし、くそみたいだと思ったことが経験してよかったと思える日が来るのかもしれない。院に受かればあと3年電通大にいて、しかもその先も人生は続くわけですから当然なのですが。

だからまあ現時点のまとめというか、そういう感じの記事となります。

とりあえずここから先の三年間、電通大に着てよかったと思えるように過ごしていきたい次第です。

すごく厳しそうですが。

取り留めなくなりましたがここで

 

おわりだよ~

 

明日はponkikkidayoさんのUEC ACに参加するためだけに5年ぶりにWPを構築した話です

 

囲まれた・・・

 

 

 

STM32cubeMX+HALによるマイコン開発を始めた

 タイトル通りでございます。

 ロボグラが終わってひまやなあ思ってた時にそろそろmbedやarduino以外でもマイコン動かしたいなあ思ってSTM32をいじり始めたのが事の発端。

 いろいろ少しずつ動かしました。

 わからないことだらけですがメモがてらそのうちやったことまとめるかもしれないです。

 

追記:

 環境はSTM32cubeMX+SW4STM32+STlinkUtilityです。

ロボワン神戸

2月25,26日に行われたロボワンに行ってきました。


神戸まで行って棄権してきました。
クソ。

それはさておき、今回の目玉は初の開催となったRobo-One Autoだったと思います。
どの機体も想像以上にまともに動いていてすごくびっくりしました。
中でもすごいと思ったのは、自動化してなおかつ強い機体というのが大会上位入賞者に多いという点でした。
特にシンプルファイターはすごかったですね……。暴走して棄権となってしまったものの、あの動きはすごかったです……。2日目の控え室でどうやってたのか聞けばよかったと後悔。

今後どうやっていくかというと、とりあえず僕の今回出せなかった機体Primaryを完成させることが最初かなぁと。
あと軸数多すぎるので平行リンクにして減らします。
そして先輩たちの作った基板のコピーを作って19軸機体にする予定です。

1番難航しそうなのは基板のコピーですかね。脱力すること考えるとPCA9685をサーボドライバーじゃなくて表面実装にしてFETつけて電源のスイッチングで脱力させる必要がありそうなので。
となるとPCBCADで基板から設計する必要がありそうなので、完全な完成は7月あたりになる悪寒。

脱力のためのFETの必要なければもっと早く終わりますが。

そんな感じで進めることを目標にしたいと思います。それではー。‪

UEC AdventCalendar 13日目

今回はソシャゲの課金について書きます。

ロボについて書くと言ったなあれは嘘だ。

僕のツイッターをみてる方はご存知かもしれませんが最近僕はアイドルマスターシンデレラガールズスターライトステージに課金して爆死しました。
具体的な額は避けますが、おそらく寿司は軽く食べれる額だったでしょう。

それはさておき、これまでは課金というものが理解はできるがなぜそこまでの額を毎月課金する人がいるのかは理解できないという立場だったのですが、今回の課金でなんとなく毎月重課金を行う人の心理がわかりました。

もしかしたらもう少し回せば出るかもしれない、出る"""かもしれない"""という希望にすがり回し続けてしまうのでしょう。そう考えると今まではssr提供率などが表示されるようになってましになったのかななんて思ってましたが、○○回回せばそろそろ出るなんていう思いに駆られて課金する燃料にしかならないのではという疑念が生じてきました。

初の課金は完全な爆死という苦い結果に終わりましたが、これを経て僕は1つの教訓を得ることができました。

課金はしてはいけない。

課金を行うと上に書いた現象が心理的に生じ止まらなくなります。まるで乾いた喉が水を求めるかのように課金を求めるのです。
さすがにもう大分課金欲はなくなりましたが。

まあそんな話でした。





最後に




フレデリカ欲しかった


おわりだよー(●・▽・●)