ゲーマーの技術メモ

システムとしてゲームを見る

VisualStudioCode(VScode)を使ったmbed-os5の開発

どんな内容?

platformIOというVisualStudioCode(vscode)用の拡張機能を用いて、mbed-os5の開発環境を作成します。

マイコン開発をvscodeを使って開発したい人には参考になると思います。

前提

自分が使っているマイコンはLPC1768搭載のものです
条件を同じにすると、チップの差による不具合は起きにくくなると思うので、よければ試してみてほしいです

NXP MBED NXP LPC1768搭載マイコンモジュール 【OM11043-598】

NXP MBED NXP LPC1768搭載マイコンモジュール 1個 OM11043-598

手順

1. git導入

github:gitを使うためのサービスを提供してくれているサイト。運営はマイクロソフト

操作

git本体の導入は後日別記事を投稿いたしますので、そちらを参考にしてください

すでに自分のPCに導入されているかどうかは以下の手順で確認することができます

スタート+Rキーで「ファイル名を指定して実行」を開きそこに
cmd
と入力してコマンドプロンプトを起動。そこで
git
と入力してエラーが出なければ導入に成功しています。

コマンドプロンプトでのgitコマンド実行画面
うまく行けばこんな感じ

2. VScodeでの操作

概要

vscodeにplatformIO IDEというvscodeマイコン用プログラミングを行うための拡張機能を入れ、その拡張機能に対応したビルド環境を構築していきます。
ファイルの整理、加工はすでに私が行ったものを配布しているので、そちらをコピーしてもらう形になります。

操作

  1. pythonが必要になるのでインストールしておく
    先程と同様にスタート+Rキーで「ファイル名を指定して実行」を開き、そこに
    cmd
    と入力してコマンドプロンプトを起動。そこで
    python
    と入力してエラーが出なければ導入に成功しています。

    コマンドプロンプトでのpythonコマンド実行画面
    うまく行けばこんな感じ
    これを行った場合、ターミナルがpythonコマンドを実行するようになってしまうので、
    exit()
    と入力して終了させる必要があります。
    または、ターミナルを一度閉じてもう一度開いてもオッケーです。

  2. フォークの実行
    以下のリンクからフォークを実行する

    githubの画面説明
    右上にあるForkボタン
    リポジトリURL (starしてくれると嬉しいです)
    github.com
    フォークとは、他人のリポジトリをもとに自分のリポジトリを作成することです。

  3. フォークしたリポジトリのクローン
    スタート+Rを押し、cmd コマンドでコマンドプロンプトを開く
    cd C:\
    コマンドプロンプトの作業ディレクトリをCドライブ直下に移動
    以下のコマンドを入力し、フォークしたリポジトリをCドライブ直下にクローンする
    git clone フォークしてできたリポジトリのURL
    これは必ずCドライブ直下にしてください。platform.iniという設定ファイル内でmbed-osパッケージの読み込み先がそこに指定されています
    以降では作成したリポジトリの名前がmbed-osであると仮定して話を進めていきます

  4. クローンしたディレクトリにコマンドプロンプトを移動
    cd mbed-os
    を入力

  5. pythonモジュールの導入
    requirements.txtの内部に必要なPythonモジュールの一覧が記述されているので、
    pip install -r requirements.txt
    を実行してモジュールをインストールする
    これは通常のモジュールの保存場所にインストールすればOKです

  6. gitのローカルリポジトリを保存するフォルダの作成
    基本的には、ローカルリポジトリのコピー先は1つにまとめておくと良いです
    このフォルダもできればCドライブ直下に作成することが望ましいです
    日本語がフォルダパスに含まれると、一部ツールが機能しない可能性があります

  7. テンプレートリポジトリをフォークする
    以下のリンクからリポジトリをフォークしてください
    github.com

  8. フォークしたリポジトリをクローンする
    git clone フォークしてできたリポジトリのURL
    を実行してリポジトリをクローンしてください

  9. クローンしたフォルダをvscodeで開く
    クローンしてできたフォルダで右クリックをして、「Codeで開く」を押せば開くことができます
    vscodeの画面の左上の ファイル→フォルダを開く からでも開くことができます

  10. 拡張機能タブから必要な拡張機能をインストールする
    左側の四角が4つ並んだようなデザインが拡張機能タブです
    フィルタ(ろうとのマーク)から、"推奨"を選ぶと、.vscode/extentions.jsonに書かれている拡張機能をフィルタすることができます
    そこに必要だと思われる拡張機能の設定しているのでインストールしてください

    vscodeの拡張機能画面
    拡張機能画面

  11. platformIOの設定を確認
    左のリストからアリの顔のようなマークをクリックして拡張機能:platformIOIDEを起動します
    少し待つと起動が終わるので、今開いているフォルダーがプロジェクトとして認識されているかを確認しましょう
    されていない場合は、「pick a folder」をクリックして現在開いているフォルダーを選択し、vscodeを再起動すれば認識されるはずです

  12. platformIOでの処理 platformIOを起動したあと、必要なファイルがコピーされるのを待ちます
    先程クローンしたCドライブ直下のmbed-osを.pipフォルダにコピーしているのですが、ローカル内の処理なのに何故か時間がかかってしまいます
    どうしようもないので待ちましょう

これで利用可能になります。お疲れ様でした
詳細な使い方については後日別記事を掲載したいと思います


追記 2023/06/20

最初にビルドを通す際に、不足しているpythonモジュールを求められます
しかし、そのままpip install コマンドを使用しても同様のエラーが発生してしまいます
これはplatformioが独自のフォルダ内のモジュールを参照しているためです
ちなみにそのフォルダのパスはC:\Users\〇〇\.platformio\penv\Lib\site-packages なので、インストール時に
pip install モジュール名 -t C:\Users\〇〇\.platformio\penv\Lib\site-packages
として直接フォルダにモジュールをインストールするか、
インストールしたモジュールを上記フォルダにコピーする必要があります。
他人のモジュールをコピーしても一応稼働はしたので、一つ一つインストールするのがが手間ならば(pythonのモジュールエラーは1つずつしか表示されない)他人のモジュールをコピーさせてもらっても良いかもしれません。
(どんな問題が起こるかわからないので推奨はしません。よってココではモジュールの配布は行いません。)


まとめ、解説など

この記事を書いたわけ

大抵はマイコンの開発会社がIDE統合開発環境)としてマイコン用のコンパイラを組み込んだものを配布していますが、正直使い勝手はまちまちです。
また、gitを使うのであればVScodeを使ったほうが楽なのは間違いありません(詳細は別記事にて)
現在のplatformIOではなぜかmbed-osはmbed-os6しか対応していません。
しかしmbed-os5とmbed-os6ではクラスや関数の構成が大きく変更されている関係で互換性が薄いです。
私は使用するライブラリの関係上mbed-os5が必要なので、本記事を作成することになりました。
(過去のバージョンのプラットフォームではmbed-os5のものもあったのですが、何故か利用できなくなっています)

解説

platformIO上では1つの作業場所をプロジェクトと呼ぶので、この場所はプロジェクトの保存場所でもあります
githubには過去のmbed-osも残っているので、自前で過去バージョン対応のプラットフォームを準備している
具体的な操作としては、公式が出しているmbed-osのバージョン5.15.9(OS5)に、platformIO用プラットフォームにするためのパッチを当てています

mbed-os github.com

パッチ
github.com

テンプレートリポジトリではplatformIO用に手を加えたものを登録しています

最初に入れたpythonはplatformIOがpythonベースで動いているためインストールしてもらいました

終わりに・改善点

通信量が少なく、かつリモートリポジトリに多くを保存しないような設計を行っいましたが、ローカル内(のはず)のコピーがかなり遅く感じました
githubリポジトリの容量制限は原則存在しないので、リモートリポジトリにもう少しファイルを含めてみてもいいかもしれません

プライバシーポリシー

当ブログにおける個人情報の取扱いについて、以下のとおりにプライバシーポリシーを定めます。

 

運営者情報

 

運営者:KOOMA
ブログURL:https://kooma05.hatenablog.com/
お問い合わせ:https://forms.gle/NoW7mm58ATeJR9zh8
 

個人情報の利用目的

 

当ブログでは、メールでのお問い合わせやコメントの際に、お名前(ハンドルネーム)・メールアドレス等の個人情報をご登録いただく場合があります。

 

これらの個人情報は、質問に対する回答や必要な情報をご連絡するために利用し、それ以外の目的では利用しません。

 

個人情報の第三者への開示

 

個人情報は適切に管理し、以下に該当する場合を除いて第三者に開示することはありません。
・本人のご了解がある場合
・法令等への協力のため、開示が必要となる場合

 

個人情報の開示・訂正・追加・削除・利用停止

 

個人情報の開示・訂正・追加・削除・利用停止をご希望の場合には、ご本人であることを確認したうえで、速やかに対応致します。

 

Cookieについて

 

当ブログでは、一部のコンテンツにおいてCookieを利用しています。
Cookieとは、webコンテンツへのアクセスに関する情報であり、お名前・メールアドレス・住所・電話番号は含まれません。

 

また、お使いのブラウザ設定からCookieを無効にすることが可能です。

 

広告の配信について

 

当サイトは第三者配信の広告サービス(A8.net)を利用しています。

 

広告配信事業者は、過去にアクセスしたサイトの情報に基づきユーザーの興味に応じた広告を表示するためにCookie(クッキー)を使用することがあります。

 

また、第三者がコンテンツおよび宣伝を提供し、訪問者から直接情報を収集し、訪問者のブラウザにCookie(クッキー)を設定したりこれを認識したりする場合があります。

 

なお、Cookie(クッキー)を無効にする設定に関する詳細は

広告 – ポリシーと規約 – Google

にてご確認ください。

 

アクセス解析ツールについて

 

当ブログでは、Google Inc.が提供するアクセス解析ツール「Googleアナリティクス」を利用しています。
Googleアナリティクスは、トラフィックデータの収集のためにCookieを使用しています。このトラフィックデータは匿名で収集されており、個人を特定するものではありません。この機能はCookieを無効にすることで収集を拒否することが出来ます。

 

Googleアナリティクスの詳細は

Terms of Service | Google Analytics – Google

をご覧ください。

 

当ブログへのコメントについて

 

当ブログでは、スパム・荒らしへの対応として、コメントの際に使用されたIPアドレスを記録しています。
これはブログの標準機能としてサポートされている機能で、スパム・荒らしへの対応以外にこのIPアドレスを使用することはありません。

 

また、以下の内容を含むコメントは運営者の裁量によって削除することがあります。
・特定の自然人または法人を誹謗し、中傷するもの
・極度にわいせつな内容を含むもの
・禁制品の取引に関するものや、他者を害する行為の依頼など、法律によって禁止されている物品、行為の依頼や斡旋などに関するもの
・その他、公序良俗に反し、または管理人によって承認すべきでないと認められるもの

 

著作権について

 

当ブログで掲載している画像の著作権・肖像権等は各権利所有者に帰属します。権利を侵害する目的ではありません。

 

記事の内容や掲載画像等に問題がある場合、各権利所有者様本人が直接メールでご連絡下さい。本人確認後、対応致します。

 

また、当ブログのコンテンツ(記事・画像・その他プログラム)について、許可なく転載することを禁じます。引用の際は、当ブログへのリンクを掲載するとともに、転載であることを明記してください。

 

免責事項

 

当ブログからリンクやバナーなどによって他のサイトに移動した場合、移動先サイトで提供される情報、サービス等について一切の責任を負いません。

 

当ブログのコンテンツについて、可能な限り正確な情報を掲載するよう努めていますが、誤情報が入り込んだり、情報が古くなっている場合があります。当ブログに掲載された内容によって生じた損害等の一切の責任を負いかねますのでご了承ください。

 

プライバシーポリシーの変更について

 

当ブログは、個人情報に関して適用される日本の法令を遵守するとともに、本ポリシーの内容を適宜見直しその改善に努めます。

 

修正された最新のプライバシーポリシーは常に本ページにて開示されます。

 

初出掲載:2023年5月24日
最終更新:2023年5月24日