組み込みエンジニアになるために必要な資質および技能

組み込み技術に興味はあるけど、どこから手をつければよいかわからない...

めかのとろ

といったひとに組み込み技術を習得するうえでのカリキュラムにて準備するべきものを解説します。各個人によって、何から手をつければよいかは異なります。

そのまえに、知っておいて欲しい組み込み世界の奥深さ...

めかのとろ

組み込み技術を身につけるには幅広い知識・経験を必要とします。その中でも特に初心者・未経験者にはとりわけコア部分であるマイコンの学習を始める前に電気・電子回路の知識・経験およびC言語によるプログラミングスキルが必要です。これから組み込み技術に挑戦するひとにとってはどこから手をつければよいかわからないかもしれませんので、学習のカリキュラムについて解説します。

組み込み技術を扱うエンジニアに必要な資質および技能を図示したものです。初心者・未経験者のひとは参考までに頭のすみに留めておいてください。

これは筆者の経験においてプロとしての組み込みエンジニアが持つべき資質および技能の理想的なバランスを示したものです。

めかのとろ

実務のおいては最重要な資質は「設計力・技術センス」なのですが、これは学んで身につくものではなく、実際の経験を通して、知恵を駆使しながら身につけていくものです。組み込み技術を志すひとには常に「設計力・技術センス」を磨くことを意識してください。フリーランス等独立して仕事をこなす場合には最も重要な資質ではないでしょうか。

その他技術的知識・経験」につきましては、実務において、電気・電子的なアプリケーションのみならず、ロボットなど機械・制御等に仕事分野の幅を広げるために必要なものです。例えば、メカトロニクスと呼ばれる分野のアプリケーションを作成するためには、機械工学の力学的要素に加え、制御工学を本質的に理解していて初めて設計ができます。マイコン操作には長けているが機械的な部分は専門外だからだと他に任せているようでは優れたものはできませんし、組み込みエンジニアとしても中途半端です。「その他技術的知識・経験」は組み込み初心者には必須ではありませんが、仕事の内容によってはとても重要な資質です。

プログラミング(C言語)」に関してはこの技能がなければ組み込み技術を身につけることはできない必須な要素ですが、実務での組み込みの技術においてはほんの一部分のツールにすぎません。「プログラミング」=「組み込みシステム」のようなイメージが先行しているようにも思えますが、プログラミングスキルがあるだけではなにもできないのは機械設計分野においてCADの操作ができるだけではなにもできないように、創造する技術的なスキル・センスが必要なことは同じです。

めかのとろ

組み込み技術を志すのであればバランスのとれた知識・経験をどんどん広げていってください。そのためにはまず、なんでもどん欲に興味を持って、なにか疑問をもったらどんどん掘り下げて調べて理解して自分の知識・経験の糧にしてください。

組み込み技術に必要な資質

教材ボードをつかった組み込み学習

めかのとろ

組み込み技術に必要な資質についてはこれまで述べたとおりですが、これから組み込み技術を志す初心者は学習をすすめるにあたって抽象的な技術的な概念より具体的なマイコンを操作することから始めることがよいでしょう。

めかのとろ

組み込み技術は実際にモノを扱うものなので電気・電子回路で構成する周辺回路をはじめとする工学的な基礎知識・経験が必要不可欠です。学習するにあたっては机上の理論だけでなく、抵抗・コンデンサ・ダイオードおよびトランジスタなどの部品に触れてちょっとした回路を構成したりして実際に体感しながら、スキルを身につけるのが早道です。回路動作を確認するうえで、電圧をチェックしたり、回路のON/OFFつまり、導通か非導通かをチェックしたりするためのテスターを呼ばれる計測器は使えるようになってください。

では、具体的なマイコン操作ってどうやって?

めかのとろ

当サイトの組み込み入門では学習の教材に指定のARMマイコン専用教材ボードを使用しています。このボードでは、サイト内容のマイコン開発環境がそのまま使用でき動作確認ができますので最短期間で学習が開始できます。

他の市販のマイコンボードは使える?

めかのとろ

とにかく手っ取り早くプログラミングやマイコン操作を始めたい場合は他の市販マイコン評価ボードで学習ですすめる方法もあります。当サイトでも数種類のボード(ARMコアのSTM32F1xxシリーズ搭載のもの)を紹介しますが、デバッガを内蔵しているボード、例えば、STM32VLDISCOVERY等であれば気軽にマイコン学習を始められます。

めかのとろ

ただし、ボードによっては搭載している水晶振動子の周波数が異なっていたり、マイコンの種類によってはピン仕様等が異なっていたりするのでそのままでは当サイトのプログラムが使用できずカスタマイズ(移植)する必要がありますので慣れないうちは指定の教材ボードを使用することをおすすめします。

当サイトで紹介する専用教材ボードではデバッガが内蔵されているのでUSBケーブルがあればすぐにカリキュラムにしたがって学習をすすめていくことができます。他に、ブレッドボードや入出力インターフェースに使用する抵抗器類を必要最低限準備しておけば、当サイトで紹介しているいろいろなアプリを試すことができます。

めかのとろ

また、C言語のプログラミン学習に関してもC言語の概要がある程度わかった段階で教材ボードを実際に使用してプログラミングも同時に学習していくのが効率よいと思います。

めかのとろ

具体的な方法として、技術的な内容詳細を理解するのは後回しにして、とりあえずPCとマイコンをシリアル通信できる総合開発環境(STM32CubeIDE)および操作環境(ターミナルソフトtera term等)を構成してしまうと、演算結果等がPCモニターで確認できるようになるので実践的なマイコン上で機能するプログラミングの学習ができるのです。クロス環境と呼ばれる開発環境で実用的なC言語が学習できます。

C言語とマイコンを同じ環境・ツールで学習するのは実践的で意欲も持続しやすい!

マイコン上で機能するプログラムの作成
めかのとろ

組み込み技術の最終的な性能はソフトウェアの出来栄えにより左右される重要な要素ですのでプログラミングのスキルアップは重要です。組み込み技術で実際にソフトウェアを作成できるようになるとプログラミングのスキルは上がっていくものです。

めかのとろ

マイコンの操作にある程度慣れてくるとエンジニアとして実務にも必要な資質も身につけていく必要があります。本サイトではマイコンの操作以外に組み込み開発設計のイロハをARM(STM32)の基礎と開発入門の「組み込み設計開発」で解説していますので参考にして、技能を身につけて下さい。 

学習カリキュラムの流れ

めかのとろ

話を学習カリキュラムに戻します。学習順序のガイドラインを示しますので自分の現状にあわせて学習をはじめてください。第一前提として興味と熱意がある人が対象です。

グループ選定図

グループA
技術的な知識・経験およびプログラミング(C言語)に精通している

グループB
技術的な知識・経験およびプログラミングに精通しているが、C言語の経験はない

グループC
技術的な知識・経験はあるが、プログラミングの経験はない

グループD
プログラムでもC言語は使い慣れているが、電気・電子的な知識・経験はない

グループE
プログラミングは多少経験があるが、電気・電子的な知識・経験はない

グループF
技術知識のない初心者

グループA-C: 技術的な知識・経験あり

めかのとろ

グループAに属する人はすぐにでも組み込み技術の学習を開始でき、手順にしたがってゆけば最短期間でスキルを見つけることができるでしょう。
マイコンの学習を中心に自分のペースでどんどんすすめていってください。

めかのとろ

グループBグループCに属する人は当サイトの組み込み技術の学習を始めると同時にプログラミングの学習も開始してください。
当サイトではC言語の解説は行っていませんが自分にあった書籍などで学習してください。抽象的なプログラム学習でなく、具体的に組み込み学習をすすめながら行うと理解も早いとおもいます。

めかのとろ

特にグループCに属する人でプログラミングの完全な初心者にはいきなりC言語からはじめるのはきついかもしれませんが、他のプログラミング言語も参考にしたり、初心者向けのC言語書籍などを探し当てたりして学習をすすめてください。自分にあった書籍、教材資料等を探し当てるのも一つのスキルです。何事にも共通していえることですが、はじめのきっかけをつかんでしまうと後は芋づる式でスキルが身につくものです。

めかのとろ

メモリ操作などで使用するポインタ等つまずきやすいところは後回しにして、C言語の基本構成から基礎中の基礎の部分だけでもしっかり理解してください
学習の効率をあげるにはC言語の概要がある程度わかった段階で専用教材を実際に使用してプログラミングも同時に学習していくのもよいと思います。

グループD-E: プログラミング経験あり

めかのとろ

グループDに属する人が組み込み技術を始めるにあたってはプログラミングのみのソフトウェアだけでなく実際のハードウェアを扱うことを意識して学習をはじめなければいけません。まずは、ハードウェアを知ることですが、工学的な基礎知識をしっかり理解することがとても重要です。特に、マイコン周辺の回路を扱うには電気・電子の知識、経験が必要になってきます。

めかのとろ

当サイトの ARM(STM32)の基礎と開発入門の「組み込み技術の基本」で基礎的な部分を噛み砕いて解説していますので理解できるとは思いますが、必要に応じて自身で知識を広め、実際に回路に触れて電気・電子回路に慣れてください

めかのとろ

グループEに属する人はグループDに属する人と同様にまず工学的な基礎知識をしっかり理解することからはじめ、同時にC言語にもなれていってください。組み込みの核心部分であるマイコンの学習はある程度、技術的なものに慣れてから行うようにするのが近道です。

グループF: 技術的な知識のない初心者

めかのとろ

グループFに属する人がいきなり組み込み技術でとりわけマイコンを理解することは困難です。何事にも基礎的な知識経験が必要ですので、まず電気・電子の学習から始めてください。組み込みで使われる電気・電子回路は中学校で学んだ電気回路がわかれば理解できるようなレベルです。

めかのとろ

当サイトの ARM(STM32)の基礎と開発入門の「組み込み技術の基本」 では基礎的なことを組み合わせて実際の回路の動作を解説していますので、順にたどっていけば理解できると思います。同時にプログラミングも始めればよいと思いますが、いきなりC言語をはじめるには敷居が高いかもしれません。
どの言語にせよ、ある程度プログラミングとはどのようなものかがわかった段階でC言語を始めるのもいいかもしれません。

めかのとろ

組み込み技術の習得のためというはっきりした目標があるので抽象的な学習でなく具体的に学習を進められると思います。アプリケーションとして豊富なプログラム例がありますので参考にしてください。プログラムとしては単純なものですので一度慣れてしまえば、どんどん進められると思います。

めかのとろ

組み込み技術は工学的な電気・電子の知識・経験とプログラミングの両方必要なのですが、モノであるハードウェアを扱う技術ですのでとりわけ電気・電子回路の技術的な知識・経験を重点的に身につけてください
プログラミングはそれらの技術に付随するものであり主体ではないことを念頭に学習を進めてください。

カリキュラムのガイダンスまとめ

組み込み技能を身につけるまでの過程
めかのとろ

組み込み技術を生かして実際の仕事に活かすためのアプリケーションを作成できるようになるためには技術のコア部分であるマイコンを操作するだけでは不十分です。大切なことは、与えられたアプリケーションの課題を実現するための設計開発技能を身につけることです。

めかのとろ

設計開発技能関しましては ARM(STM32)の基礎と開発入門の「組み込み設計開発」で詳細を解説していますが、課題のアプリケーションを実現するためのマイコン選定、機能の整理などのシステム設計、システムを構成する周辺ハードウェア設計、そしてプログラミングによるソフトウェア設計です。マイコン単体を使いこなせるようになった後はこれらをバランスよく自在にこなせる技能を身につけてください。これらはマイコンの種別とは関係のない本質的なスキルとなる重要な要素です。

めかのとろ

アプリケーションの課題を実現するにあたり、最終的に性能を左右するのはソフトウェアの出来栄えです。優れた設計ありきの話ですがこれを活かすためにはマイコンの性能をフルに活用したプログラミングスキルが試されるところです。場数を踏み経験を積んでスキルアップしていってください。

めかのとろ

この段階までくると、自分の身につけたスキルによりある程度幅ひろい分野でアプリケーションが作成できる自信がついたのを実感できるのではないでしょうか。さらに技能のみならずセンスも磨いてどんどん活躍の場を広げていってください。