効率的MCU開発ディスプレイサイズ

MCU開発Eclipse IDE画面の表示情報量は多く、ディスプレイサイズや解像度が小さいと非効率です。効率的MCU開発ディスプレイサイズと解像度を検討し、Windows 11ノートPCに適したディスプレイサイズと要件を考察しました。

Eclipse IDE表示情報

Eclipse IDEとしてNXP社のMCUXpresso IDE 11.6.0を例にします。IoT MCU開発時は、どのViewにも重要な情報が表示されます。

例えば、上から解像度(1920×1080)、(1920×1200)、(2560×1440)、(3840×2160、150%テキスト表示)4つの表示例です。どれも筆者が頻繁に利用するネットカフェの同じ31.5型4Kディスプレイを用いました。

ちなみに、(1920×1080)が弊社所有14型ノートPC、(1920×1200)が24型デスクPCの表示サイズです。

解像度が大きくなると、各Viewへ一度に表示できる情報量が増えることが判ります。

1920x1080_100%のIDE View表示例
1920x1080_100%のIDE View表示例
1920x1200_100%のIDE View表示例
1920x1200_100%のIDE View表示例
2560x1440 100%のIDE View表示例
2560×1440 100%のIDE View表示例
3840x2160_150%のIDE View表示例
3840x2160_150%のIDE View表示例

ディスプレイサイズとテキスト表示サイズ

各Viewのタブをクリックすれば、そのViewだけを表示できます。ソースコード記述時など1点だけに集中する時は、この方法も使います。

しかし、多くの場合、複数Viewを参照しながら作業を行います。大きいディスプレイへ複数Viewを表示しながら作業する方が、効率的に開発が進むのは明らかです。

その結果、弊社は、14型ノートPCは主に確認用、24型デスクPCが開発用となります(ノートPCのマルチディスプレイ利用は次章説明)。

では、ディスプレイサイズが大きければ大きい程効率的かというと、そうでもありません。筆者の場合は、24型~27型位に最適値があります。

ディスプレイと目の距離を40cmとすると、27型よりも大きい31.5型ディスプレイは、圧迫感があるためです。また、テキスト表示サイズも150%へ変更しないと、小さすぎます。

100%テキスト表示で、A4用紙が実物と同じ大きさに表示されるのは、24型です。

つまり、24型~27型で40cm配置に、MCU開発効率が良いディスプレイ選択肢がありそうです。この時は、テキスト表示サイズは、100%でOKです。

ディスプレイと目の距離は、ノートPC、デスクPCどちらも同じ40cm以上(出展:富士通パソコンを使う時の姿勢)
ディスプレイと目の距離は、ノートPC、デスクPCどちらも同じ40cm以上(出展:富士通パソコンを使う時の姿勢)

効率的MCU開発のWindows 11ノートPC要件

ノートPCには、可搬性が求められます。ノートPCディスプレイに、14型や15.6型を用いるのは可搬性実現のためです。

しかし、ディスプレイ外枠を極力少なくし、16型や17型でも従来ノートPCに近い筐体を実現するノートPCも最近発売中です。

また、ノートPCは、マルチディスプレイでの使い方が前提です。Windows 11では、このマルチディスプレイ操作性が改善されました。

外付けマルチディスプレイの左右上下物理配置に応じた本体ディスプレイ1との再配置が可能です。ディスプレイ間のマウス移動時、違和感が旧Windowsに比べ無くなりました。さらに、外付けディスプレイの大きさを自動認識し、大きいディスプレイをメインとするタスクバー配置も行います。

Windows 11は、マルチディスプレイ上下左右配置に応じ再配置可能
Windows 11は、マルチディスプレイ上下左右配置に応じ再配置可能

従って、効率的MCU開発のWindows 11ノートPC要件は、

(1) 可搬性を犠牲にしない範囲で、できるだけ大きい本体ディスプレイ
(2) MCU開発効率の良い100%テキスト表示24型~27型マルチディスプレイ出力インタフェース

これら2つになります。

また、ノートPC本体ディスプレイと、外付けマルチディスプレイとの目の距離は同じ方が良いはずです。もし、外付けディスプレイとの距離が40cmよりも遠い場合には、27型よりも大型のディスプレイと100%よりも大きなテキスト表示が必要になります。

つまり、4K大型高解像度ディスプレイは、この外付けディスプレイの配置が、40cm以上遠くに設置した時の対応策が予め機能として備わっていると考えられます。

まとめ

効率的なMCU開発に適したWindows 11ノートPCディスプレイサイズを検討し、16型ディスプレイ、マルチディスプレイ出力インタフェース1本、の必須要件を示しました。

具体的な製品例を示すと、DELL)Inspiron 16 Intel(1920×1200、Core i7-1255U)、余裕があれば高性能CPU搭載のDELL)Inspiron 16 Plus プラチナ(3072×1920、Core i7-12700H)などです。

DELL)Inspiron 16 Plus プラチナ(3072x1920、Core i7-12700H)
DELL)Inspiron 16 Plus プラチナ(3072×1920、Core i7-12700H)

あとがき

本稿は、MCU開発ノートPCに焦点を絞っています。また、マルチディスプレイと言っても、外付けは1台だけです。このサイズが大きい外付けがメインディスプレイで、ノートPC本体は、補佐的な表示になります。やはり、大きなディスプレイは、開発効率化に直結します。

その結果、外付けディスプレイ2を、目から40cm距離の最適正面へ配置、ノートPC本体ディスプレイ1は、ディスプレイ2の左右、つまり脇役配置になります。

最近、低価格化が進む4K大型ディスプレイやノートPC(円安で価格上昇中)に、どの程度コストをかけるべきか、これは筆者個人の問題です。その問題解決・整理のために、本稿を作成しました。

もちろん、解像度が上がれば表示文字も綺麗に見易くなります。しかし、ネットカフェで31.5型3840×2160 150%テキスト表示ディスプレイを40cm位置で利用しMCU開発を何回か行った結果、4K大型ディスプレイ追加コストに見合うMCU開発効率化は得にくいと現状は思いました。

メタバース空間でWordやExcelが使え、MCU開発業務もVR空間でできることも、そう先の未来ではないかもしれません。それでも、ここ数年は、本稿結果が活きるはずです。

好奇心とMCU開発

好奇心とMCU開発
好奇心とMCU開発

何を楽しい、面白いと感じるかは、人それぞれです。しかしながらMCU開発者の方々は、ソフトウェアやハードウエアを、自分で研究開発することに面白さや好奇心を持つ点は共通だと思います。

MCU開発は、地味です。普通の人からは、動作して当然と見られがち、しかし、その開発には努力や苦労も必要です。MCU開発者は、それら努力を他者へ説明はしません。
専門家へのキャリアアップには、避けては通れないからです。

特に日本のMCU開発者は、他者がどのように自分を見るかを気にし、しかも、同調意識も強いので、面白さを感じる感性を忘れ、自信喪失などに陥るかもしれません。

そんな時は、スマホを生んだSteve Jobs氏の、“Stay hungry, stay foolish” を思い出してください。

“Stay hungry, stay foolish”

様々な日本語訳、その意味解説があります。筆者は、Jobsは、他者の視線や動向より自分の好奇心を忘れるな、と言っているように思います。

2007年発表スマートフォン:iPhoneは、“Stay hungry, stay foolish”のJobsだから生み出せた製品です。

COVID-19、ウクライナ危機

終息が見えないCOVID-19やウクライナ危機による新しい世界秩序は、半導体製造/流通、MCU/PCセキュリティなどMCU開発者が関係する事柄にも多大な影響を与えそうです。今後数年間は、環境激変の予感がします。

既成概念やトレンド、これまでの市場予測なども大きく変わる可能性もあります。アンテナ感度を、個人レベルでも上げて対処しましょう。

MCU開発は楽しい?

行動の源は好奇心です。“Stay hungry, stay foolish”、 自分の好奇心は自ら満たし、MCU開発を楽しみましょう。

本稿の目的は、新年度:4月からMCU開発を新に始める方々へのアドバイスと、好奇心に逆らえず、Windows 11要件を満たさないPCをアップグレードした顛末を次週投稿予定という、前振りです😅。

Blogテーマ変更とMCU開発顧客満足

本Blogテーマを、今週~来週にかけて変更中です。期間中は、画面表示が乱れる可能性もありますがご容赦ください😌。Blogツール:WordPressにご興味が無い方は、最後の章:MCU開発顧客満足をお楽しみください。

オープンソースCMSのWordPressによるBlog投稿

Blogテーマ変更理由

本Blogは、WordPressというオープンソースCMS(Contents Management System)を使って投稿しています。テーマとは、Blog表示の見た目を変える、着せ替え洋服のようなものです。テーマ変更理由は、2つです。

  1. 約2年前に導入されたWordPressの新しいGutenbergエディタ対策
  2. 昨年後期から続くサイトマップトラブル対策

Gutenbergエディタ

従来のWordPress標準エディタは、Classicエディタと呼ばれ、Web版無償Microsoft Wordのようなものです。基本的な文章エディタ機能を提供し、使い方も簡単でした。これに対し、新しく標準となったGutenbergエディタは、ブロック単位の編集・加工を行うなど操作性や使い方が大きく変わりました。

※Gutenbergエディタは、15世紀に活版印刷技術を発明したヨハネス・グーテンベルクにちなんで命名されました。WordPressの記事投稿に際し、活版印刷登場ほどインパクトがあると言うことです。

旧Classicエディタを使い続けたい多くのブロガーのために、標準Gutenbergエディタを無効化し、Classicエディタを復活するプラグインが提供され、筆者もこれを使い続けてきました。

但し、Gutenbergエディタは、毎年改良され機能や使い方も進化、この進化系Gutenbergエディタ対応の新しいテーマも増えてきました。

xmlサイトマップ

xmlサイトマップは、GoogleやYahoo、Bingなどの検索エンジンへ、弊社Blogの投稿内容等を知らせる手段です。

原因不明ですが、昨年後半から投稿数は週一で増やしているにも係わらず、サイトマップの有効ページ数が減り続けています。検索エンジンにマップされなければ、投稿しても読者に発見されず苦労が報われません。

ネット情報によると、プラグイン間の相性など様々な原因がありえますが、解決しません。いわゆるPCとアプリケーションとの相性問題と同じようです。

そこで、1のGutenbergエディタ対策時に、新テーマ導入と同時にプラグインを変える/減らすなどして対処しようと考えました。

Blogテーマ変更結果

今回のBlogテーマ変更の結果、WordPressの新Gutenbergエディタは習得しました。

しかし残念ながら、サイトマップトラブルは、更に悪化しました。プラグイン相性だけでなく、新導入テーマにも関係している可能性もありますが、依然として原因不明です。

算定措置として、Gutenbergエディタと新テーマ利用へ変更し、追加プラグインは最小にします。サイトマップトラブルは、継続検討とします。

MCU開発顧客満足

MCU開発でも課題に対し期待する成果が得られない等は、筆者には日常茶飯事です。費やした時間やコストは、戻ってきませんが、実際にやってみなければ本当は判らない事だらけなのがMCU開発業務です。

MCU開発業務は、以下2点の配慮が必要です。

  1. スケジュール立案時は、マージンを織り込む
  2. 成果に直結しない結果でも、今後に活かす

※織り込んだマージンを使わず成果が出た時は、未消化マージンをリフレッシュ休暇に替えます😁。

今回の対策も、年末年始の予定でした。しかし、新テーマの多さやその理解に時間がかかり、結局マージンを使い果たし1月末実施、そして少ない成果となりました。顧客は、自分自身ですが顧客満足は低いです。

しかし、成果に直結しなくても得た(貴重な!?)結果もある訳です。これを今後に活かす事が、費やした時間やコストを無駄にしない唯一の策で、しかも長い目で見れば、顧客満足にも繋がると信じます😤。

MCU開発は、日々の努力が、即成果に結びつかなくても、将来必ず顧客を満足させる結果・スキルになると自分を信じて続ける心構えが重要です(日本では、周囲になかなか理解してもらえないと思いますが😭、欧米開発者は、これがあたりまえの文化でした)。

MCU開発者の将来像

現状のMCU開発経験が、将来どのように活かされるかの参考になる記事が、日経XTECH:「技術的負債」の処方箋に記載されました。記事を筆者なりに解釈したのが、下記です。

  • 現状:MCU開発者は、C/C++言語でMCUを動かす
  • 将来:MCU開発者はCTOとなり、日本語/英語で人/組織を動かす
  • MCUソフトウェア開発スキルは、経営、組織マネジメントへ活かせる

CTO:Chief Technical/Technology Officer

CTOとは、ビジネス幹部のポジションで、会社における技術的な役割に焦点をあてたもの。研究開発ディレクターの立場を拡張したものとして、アメリカでは1980年代に登場(Wikipediaより)。日本ではまだ馴染みが少なく、また記事にもあるようにソフトウェア開発経験を持つCTOも少ないです。

日本企業のCTOには、ソフトウェア開発経験が必須で、今後その比重は増すと思います。

Technical/Technologyに対する相対地位の日米の差は、依然かなりあります。例えば、日本企業のAI危機感が足りない?という記事にも表れています。80年代から言われたことですが、現在でもこの日米差は、あまり変わっておらず、依然として日本ではTechnical/Technology軽視傾向があります。

自動運転レベル3

その日本でもTechnical/Technologyの相対的重要さに気が付く環境がスグそこに来ました。自動運転レベル3搭載車発売です。

下記ラベルを貼った自動運行対応車を多く目にし、同じラベルでも搭載Technical/Technologyによる車の違いが目に見えるようになれば、誰でもTechnical/Technologyの重要さを認識すると思います。また、ソフトウェアアップデートやセキュリティ対策により、製品ソフトウェアの更新も重要と認識されるでしょう。

自動運転を示すラベルと搭載装置(出展:レベル3搭載車発売記事)
自動運転を示すラベルと搭載装置(出展:レベル3搭載車発売記事)

※自動車ソフトウェアのOTAアップデートは、関連投稿:5G、Wi-Fi6、NXP、STMの2章などを参照してください。

日本車と言っても、自動車はグローバル市場へ向けた製品です。Technical/Technologyの相対地位が高いグローバルな基準で製品化された結果が、その実力差やシェアとなって現れます。

この日本車に対し、殆どの日本製品のグローバル地位は、低下しつつあります。日本でのTechnical/Technology軽視の証左だと思います。

MCU開発者の将来像

本ブログ読者は、MCUソフトウェア/ハードウェア開発に携わる方が殆どです。ハードウェア担当でも、TP(テストプログラム)を自作するなど、ソフトウェアなしの製品開発は今やあり得ません。この開発作業は、最初の記事にあるように、泥臭く、地道な所作の繰返しです。

しかし、その繰返しで習得するMCUを開発するスキルは、将来必ず経営、組織マネジメントへも活かせます。対象がMCUから人や組織へ、使う言語が、C/C++言語から日本語/英語へ変わるだけです(もちろん、MCUより人の方が複雑怪奇ですが…😅)。

※C++は、C言語をオブジェクト指向プログラミングへ拡張した新言語。Cに比べ、MCU間移植性や拡張性に富む。C/C++ともに英語ベースのため、欧米人の意志伝達/思考との親和性は高い。

※英語キーワード理解があいまいだと、Technical/Technologyの基礎習得にぐらつきが生じる(関連投稿:MCUセキュリティ話題の5章)。英語リーディング能力もMCU開発者に必須。英語が読めると、ソフトウェア開発スキルや思考方法もグローバル開発者レベルに近づく。

現状日本のTechnical/Technology軽視環境は、IoT普及や自動運行対応車が増えるにつれて、いずれグローバルレベルへ変わります。その時は、CTOまたはその補佐役には、ソフトウェア開発経験は必須です。

MCU開発者の皆さんは、将来CTOを目指し開発製品の市場獲得ができるよう、今のソフトウェア開発スキルを磨いてください。

WindowsとLinux Mintの大型更新比較

春と秋の年2回大型更新するWindows 10のリリース開始からサポート終了までのライフサイクルは、1.5年です。Windows 10最新バージョン2004へ更新済みの場合、2021年12月14日までは、2回目/3回目の大型更新を延期でき、この間の大型更新トラブルも回避できる可能性があります(COVID-19の影響は除いています)。

一方、Linux Mint 20の大型更新は春の年1回、ライフサイクルは5年です。

本稿は、このPC OSの大型更新を比較し、MCU開発用OSの安定性という観点から、Linux Mintが優位であることを示します(関連投稿:Linux Mintお勧め理由の続編という位置づけです)。

WindowsとLinux Mintの大型更新比較結果

Windows 10(Version 2004) Linux Mint 20(Ubuntu 20.04 LTS)
大型更新回数 年2回 年1回
ライフサイクル 1.5年(2021/12/14まで)

※この間2回の大型更新予定

5年(2025年春まで)

※この間4回の大型更新予定

大型更新方法 Windows Update(手動延期可能) ユーザによるクリーンインストール
大型更新間隔 0.5年 1年
通常更新方法 Windows Update アップデートマネジャー(5章参照)

Windows 大型更新(Windows 10)

2020年2回目の大型更新、Windows 10バージョン20H2の内容が判りました。バージョン20H2も、様々な機能追加・更新の発表があり、大型更新トラブルが少ないことを願っています。一方で、コチラの記事によると、現行バージョン2004では旧バージョンから消えた重要機能も少なくないようです。

※Windowsの機能追加・削除によるMCU開発弊害の例が、関連投稿:FRDM評価ボードOpenSDA接続問題の3章にあります。

Windows 10運用に安定性を求める場合は、1.5年のライフサイクル期間中、大型更新を「手動延期」する方法があります。但し、大型更新毎に変わるメニューやタスクバーなどのPC基本操作が、最新版で無くてもかまわない場合です。職場利用のPCなどは、この運用方法でも良いかもしれません。

個人利用のPCは、大型更新が基本です。Windows Updateは「最新版へ更新」するのがデフォルト設定ですし、巷に溢れるWindows 10情報は、どれも最新版の話題で、ユーザに大型更新バイアスをかけ続けるからです。

但し、プリンタや接続機器も多種多様な個人利用PCの場合、大型更新トラブルの発生確率は、職場利用のPCよりも高くなる傾向があります。

この大型更新トラブル確率が増すにも関らず、デフォルトでは最新版へ更新することが、Windows 10の矛盾点だと思います。

Windows Updateは、OS自身の大型更新と、通常のセキュリティ更新の2機能が混在しています。これは、Windows 10が商用であるがゆえに、より早い競合製品(Apple macOSやLinux)差別化もビジネス的には必要なためか(?)と筆者はあきらめています。

Windows Updateで無理やり大型更新も行うのではなく、ユーザ主体で大型更新が開始できる別ボタン、例えばInstall New Windowsを設ければ、少なくとも大型更新起因のトラブルは回避できると思うのですが…。

Linux Mint大型更新(Linux Mint 20)

Windows と最も異なるのは、Windows Updateに相当するLinux Mintアップデートマネジャーに、OS大型更新機能が無い点です。

Linux Mintのアップデートマネジャーは、稼働中OSの主にセキュリティ関連更新を行います(標準搭載のFirefoxブラウザなどは、このアップデートマネジャーで最新版へ更新されます)。つまり、ユーザが主体的に操作しない限りOS大型更新はできない仕様です。

旧版Mint 19からMint20への更新は、基本的にはOSクリーンインストールで行います。旧Mint 19利用中のユーザ追加アプリケーションやユーザフォルダなどを、新Mint 20へ引き継ぐバップアップツールが標準で用意されています。

また、現行Mint 20と旧Mint 19のOS自体を比較しても、差はデスクトップの色や壁紙程度で、本来のOS部分は、(詳細に見れば別ですが)大差は見当たりません。

Linux Mint 20のリリースノートを読み、大型更新の必要性をユーザが感じなければ、そのままLinux Mint 19を使い続けても最長5年間はセキュリティ更新が受けられます。

MCU開発用PC OS安定性評価

MCU開発用のPC OS として、以下の2点からLinux Mintが優れると評価します。

  • Linux Mint大型更新間隔は、Windows 10の0.5年に比べ1年と長い
  • Linux Mint大型更新は、ユーザが主体的に開始する

MCU開発速度が上がり、MCUソフトウェア/ハードウェア生産性が向上しても、プロジェクト開始から終了まで数か月~1年は要するでしょう。EclipseベースIDEなどのMCU開発ツールも、この間に1回程度は更新がありえます。

これらMCU開発ツールの動作土台となるPCのOSは、少なくてもプロジェクト実行中の1年程度は安定的に、かつ大型更新する場合でもユーザ主体で開始してほしいと願う開発者は、筆者だけではないと思います。

アップデートマネジャーの使い方(Linux Mint 20)

Linux Mintアップデートマネジャーの使い方
Linux Mintアップデートマネジャーの使い方

Linux Mint 20起動時、①アップデートマネジャーを起動しても、「このシステムは最新の状態です」と表示されることがあります。この時は、念のため、②再読込をクリックします。

すると、更新情報を再チェックし、何らかの更新がある場合には、リスト表示されますので、③アップデートインストールをクリックします。

インストール中に「以下のパッケージがインストールされます」と表示される場合は、デフォルトのまま④OKをクリックします。

①~④によりLinux Mint 20へ最新アップデートが適用されます。

※これらの操作はWindows Update「更新プログラムのチェックボタン」を、ユーザ自身で押すことに相当します。

また、ファイアウォールのデフォルトは無効です。「起動する」をクリックし、自宅/会社/パブリック選択後、Statusを変更、有効に変更することをお勧めします。