マイコンの基礎知識
マイコンとは?
マイコンとは、マイクロコントローラの略称で、コンピュータの機能を持つ小型の集積回路です。センサ(入力)やアクチュエータ(出力)を制御するために使用されます。教科書とか、検索して一番上に出てくる情報だと、産業用機器への組み込みなど、大規模な用途がよく取り上げられますが、学生である私たちは、もっと身近な場面で利用することが多いです。たとえば:
- ロボット
- ドローン
- IoTデバイス
- ゲームのコントローラ
- 舞台照明や機器の制御
基本的にはコンピュータなので、プログラムを書いて動かします。ただし、パソコンほどの性能やユーザーインターフェイスは考慮されておらず、画面もありません。そのため、パソコンからUSBなどで接続し、プログラムを書き込む形で使用します。ここが初心者が不安になるポイントかなと思います。
どんな種類があるの?
マイコンは製造企業ごとに仕様や機能が異なります。また、マイコンではハードウェアとソフトウェアの結びつきが強いため、それぞれのマイコンに特化した開発環境やプログラミング言語が用意されていることが多いです。同じ言語を使っていても、実装やライブラリが異なるため、パソコンのように「どれを買っても同じように使える」というわけにはいきません。
近年では、個人や小規模なチームでもプロトタイピングが容易に行えるマイコンが増えてきました。これらのマイコンは、固有の言語の上に抽象化レイヤーを設けることで、開発環境やプログラミング言語を統一しているものが多くなっています。特に有名な例として、ArduinoやMBEDなどが挙げられます。
代表的なマイコン
- Arduino
- Raspberry Pi Pico
- ESP32
- STM32
- PICマイコン
言語・開発環境
- C/C++
- Arduino IDE
- MBED
- STM32CubeIDE
- PICkit
- MicroPython
今回使うRaspberry Pi PicoとPlatformIO
今回は、Raspberry Pi Picoというマイコンを使用します。Raspberry Pi Picoは、Raspberry Pi財団が開発した小型のマイコンボードで、RP2040という独自のマイクロコントローラを搭載しています。これにより、低価格ながら高性能な処理能力を持っています。なお、Raspberry Pi Picoは、Raspberry Pi 4や5のようなLinux(OS)と画面出力が可能なシングルボードコンピュータとは異なり、あくまでマイコンです。
一方で、Raspberry Pi 4や5のようなRaspberry Piシリーズは、マイコンではなく、Linuxが動作するシングルボードコンピュータです。
Raspberry Pi Picoを選んだ理由は、Arduino言語が使えることと、開発環境が整っていることです。中身はARMという命令セットを使用しており、Arduino(AVR)とは全く異なりますが、Arduino言語に翻訳してくれる環境が用意されているため、既存のArduinoライブラリやコードを流用しやすいというメリットがあります。
PlatformIOは、多くのマイコンボードに対応した統合開発環境で、Arduino言語、C/C++、MicroPythonなど、さまざまな言語での開発をサポートしています。Arduino言語には公式のArduino IDEという有名な開発環境がありますが、IDE側でライブラリのバージョンが統一されてしまうなど、チームでのプロジェクト開発において柔軟性が欠ける場合があります。PlatformIOを使用することで、再現性のある開発環境を構築しやすくなります。