やってみた

ゼロから入門!マイコン開発!

こんにちは。エンジニアの新谷です。

みなさんは”マイコン開発”を始めてみたいと思ったことはありませんか?
ここ数年でIoTというものがより身近になって来ました。
そんな中で、ハード系の開発は行なったことはないけどちょっとやってみようかな?と興味がある人も少なくないのではと思います。
ただ、”マイコン開発”と聞くとまず思い浮かぶのが”基板”や”回路”といった難しそうな用語。
私は電子工作の経験が全くないので、「まず何から始めればいいんだろうか・・・・」と結局なにもしないままになってしまうことがよくあります。

そんな状況を打破してくれるのが、Arduino(アルドゥイーノ)やRaspberry Pi(ラズベリーパイ)といったプラットフォームです。

これらを活用することで、マイコン開発未経験者でも簡単にマイコン開発を始めることができます。
今回はArduinoを活用して、ゼロから始めるマイコン開発入門を連載形式でお届けしていきます。

Arduino(アルドゥイーノ)って何?


Arduinoとは以下で構成されているオープンソースプラットフォームの名称です。

・Atmel社製AVRマイクロコントローラー
・I/O(入出力)ポートを備えた基板
・C++風のArduino言語とそれの統合開発環境

Arduinoは製品の試作品をより安価に、そしてより簡単に作成することを目的として開発されました。
安く簡単に開発を始められるということで、マイコン開発入門用のキットとしても人気があります。

また、Arduinoはオープンソースのプラットフォームとして開発されており、ハードウェアの設計情報などは無料で公開されています。
そのため、Arduino社以外の企業からより安価な互換ボードも販売されています。
本連載では、Arduino社から販売されているスターターキットをベースに進めていきますので、基板も同梱されている”Arduino UNO R3″を使用します。

※スイッチサイエンス(正規代理店)より販売されている日本語版のスターターキットを使用しています。
https://www.switch-science.com/catalog/2628/

さらに詳しい情報は公式サイトで確認することができます。
https://www.arduino.cc/en/Guide/Introduction

スターターキットの紹介


マイコン開発を行なったことがある場合は、目的によって基板や各センサーなどを自由にそろえて開発できるでしょう。
しかし、初めて開発を行なう場合、各部品(例えばLEDやモーター等)をそろえて学習を進めるのは、なかなかハードルが高いと思います。
そのような初心者の方におすすめなのが「スターターキット」です。

スターターキットには、学習用の書籍とそれに必要な以下のパーツが同梱されています。

キット内容の紹介

・Arduinoプロジェクトブック

・Arduino UNO ボード(Revision3)

・LCDディスプレイ

・DCモーター/サーボモーター

・ブレッドボード/各種ジャンパ

・USBケーブル

・LED/抵抗/各種センサー部品(小物)

同梱されているもの以外にも「土壌温度センサ」「脈波センサ」といったさまざまなセンサが利用可能です。

ハードウェア以外に必要なもの


Arduinoを使用した開発を行なう上でハードウェア以外にも必要なものがあります。
それは、コードを記述したりマイコンにプログラムを書き込むための開発環境です。
ArduinoにはArduino IDEという統合開発環境が準備されており、無料で使用することができます。

まずは、Arduino公式サイトのダウンロードページからインストーラーをダウンロード&インストールしを行いましょう。

インストールが完了したら、Arduino IDEを起動してみます。

・メニュー
・エディタ
・コンソール
で構成されたシンプルなIDEとなっています。

さっそくつなげてみよう!


開発環境の準備が整ったところで、動作確認も兼ねてさっそく動かしてみましょう。

最初にArduino基板とPCを付属のUSBケーブルで接続します。

次に、Arduino IDE上でLED点滅用のプログラムを記述します。
Arduinoではプログラムのことをスケッチというので、覚えておくと良いです。

Arduino IDEにはスケッチサンプルが準備されており、メニューから使用したいスケッチ名を選択することで、エディタ上にコードサンプルが表示されます。
今回は基板上のLEDを1秒ごとにON/OFFするBlinkというサンプルスケッチを使用してみます。
メニュー内のBlinkメニューをクリックします。

エディタ上に以下のスケッチが表示されます。

/*
  Blink

  Turns an LED on for one second, then off for one second, repeatedly.

  Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO
  it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to
  the correct LED pin independent of which board is used.
  If you want to know what pin the on-board LED is connected to on your Arduino
  model, check the Technical Specs of your board at:
  https://www.arduino.cc/en/Main/Products

  modified 8 May 2014
  by Scott Fitzgerald
  modified 2 Sep 2016
  by Arturo Guadalupi
  modified 8 Sep 2016
  by Colby Newman

  This example code is in the public domain.

  http://www.arduino.cc/en/Tutorial/Blink
*/

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
}

今回はスケッチ内容を変更せず、そのままArduinoへの書き込みを行ないます。

書き込みが終わったら作業は完了です。
さっそくArduino基板を確認してみましょう。

基板上の”L”と記載された位置にあるLEDが点滅していることが確認できると思います。
これで動作確認は完了です。

今回はArduinoの紹介と、簡単な動作確認を行ないました。
説明が多くなってしまいましたが、手順としてはUSBでつなげてスケッチを書き込むだけで動作させることができることがわかりました。

次はブレッドボードを使用して簡単な配線を作成して行きましょう。


次回は別のエンジニアが「カタリストシステムエンジニアの開発環境紹介」をご紹介させていただく予定です。乞うご期待ください!

LINEで送る
Pocket

この記事を書いた人・プロフィール
シンタニ
ニックネーム: シンタニ

2016年8月にカタリストシステムに入社。以前は自動車製造関連のツール開発を行っていました。
現在はJavascript、PHP、Mysqlを主に使用。
連休には小旅行で神社巡りとかしてます。

趣味:オンラインゲーム、映画、ドライブ