Intel EdisonのMCU SDKの日本語意訳(5/9):MCUを使用してLEDを点滅させる

はじめに

このメモはIntel Edison Compute Module用のMCU SDKの公式ページ群を“さかきけい”が読んで解釈した内容を元に日本語で書き起こしたものです。このメモで雰囲気を感じ取ったうえで原文をご参照いただければと思います。なお、リンク先がないものやリンク先が英語表記になっているものは現状ではまだメモを作成していないものです。

お願い

もしもIntelの関係者で、私がこの日本語ドキュメントを公開することが何らかのライセンスや法的問題があるとお考えであるならば、メールにてご連絡をいただければと思います。その際は、私がメールの送付主がIntel関係者であることを認識できるようにIntel社内からメールを送信し、所属・肩書き等を添えてください。

著作権等

英語版の資料をベースにしているこの日本語ドキュメントはIntelの著作権が及ぶ範囲内にあります。その上で、この日本語ドキュメントには“さかきけい”の著作権が発生しています。“さかきけい”はすべての著作権法上の権利を留保します(詳しくは「ご利用上の注意とお願い」を参照ください)。

免責の表明

この日本語ドキュメントはIntel Corporationが公開しているIntel Edison Compute Module用のMCU SDKの公式ページ群の情報を元に、“さかきけい”の理解で作成したものです。このためIntel Corporationには何らこの日本語ドキュメントに対する責任はありませんので、この日本語ドキュメントに関連する問い合わせをIntelに対して行うことを禁止します。

また、この日本語ドキュメントを作成した“さかきけい”も何ら責任を負いません。この日本語ドキュメントの内容は、利用者自身の責任においてのみ使用することができます。

使用上の注意

  • 複数の英単語によって構成される語は、単語間に「・」を入れて表現しています。例:ルート・ファイル・システム※1
  • 原則として単語末の長音記号「ー」は省略しない方針で編集しています。例:プロセッサー※2
  • 気づいたTypoや編集ミスなどは明確であると考えられる場合に若干修正しています。
  • 日本語での記述におかしいと思われる個所がある場合には原書をあたってください。
  • 技術的などの理由で記載内容にわからない事項がある場合には別途調べてください(“さかきけい”に質問のメールを送るのはご遠慮ください※3)。
  • 明らかな誤訳がある場合には具体的なご指摘をメールでお知らせいただけると助かります。
  • 記述内容に誤りがある場合にもお知らせいただけると嬉しく思います。ただし、原書も間違っている場合には特に日本語ドキュメントを修正することはせずに、訳注を追加するだけとするかもしれません。
  • 前述の内容と被りますが、“さかきけい”は何ら責任や義務を負うものではありません。

文書についてのご指摘をいただける方へのお願い

  • なるべく平坦でかつ理解しやすい程度に周辺情報を含む、日本語でのご指摘をお願いします。特に今回は“さかきけい”の理解の範疇を超えたハードウェアに関する部分のため、従来より多くの問題が存在し、それを理解するための周辺情報も多く必要であることが見込まれます。
  • “さかきけい”の主観において、いただいた情報の適用を行わないことがあることをあらかじめご理解ください。
  • ご連絡をいただける際には、以下の優先度でお願いします:
    1. “さかきけい”へのメール
    2. Facebook経由でのコンタクト
    3. このメモへのコメント

    ただし、このメモへのコメントの場合、大量のスパム・コメントに埋もれて反応が遅くなったり気づかない可能性があります。できる限りメールかFacebookでお願いします。


MCUを使用してLEDを点滅させる(MCUを使用したLチカ)

このセクションではIntel® EdisonボードのMCUを使用してLEDを点滅させる手順を説明します。

前提

Materials for blinking an LED

以下に示すダイアグラムのように、ブレッドボード、ジャンパー・ワイヤー、5mm発光ダイオードを使用してLED回路を作成することができます:

Diagram of a circuit with an LED

ボードと発光ダイオードの組み立て

  1. 以下の図で示しているように、ベース・シールドの裏面のピンを(Arduino拡張)ボードに合わせます。位置が合わさったら、それがしっかりとはまるまで、そっとボードに向かってベース・シールドを押し下げます。

    Attach the base shield to your board

  2. ケーブルがしっかりと場所にはまったと感じるまで、ケーブルの片側の端をLEDソケット・キットの上のソケットにコネクターを差し込みます。

    Attach the cable to the LED socket kit

  3. ケーブルがしっかりと場所にはまったと感じるまで、ケーブルのもう片側を端をD7ソケットに差し込みます。

    Attach the cable to the base shield

  4. DC電源を使用する(Arduino拡張)ボードに接続します。

    Plug in your board using the DC power supply

  5. 以下に示すように、ボード中央にもっと近いポート(A3)にmicro USBケーブルを挿しこみます。システムにもう一方の端を挿しこみます。

    Plug the micro USB cable into your board

プロジェクトの作成

  • Eclipseに入り、「MCU > New MCU Project」と選択します。
  • 「Project name」フィールドに入り、プロジェクトの名前を入力します。

    Select a name and project type for your MCU project

  • 「Project type」リストに入り、「Template Project」を選択します。
  • 「Finish」をクリックしてプロジェクトを作成します。デフォルトのメイン・ファイルとヘッダー・ファイルが作成されます。
  • メイン・ファイルに入り、以下のコードを貼り付けます:※5
    #include "mcu_api.h"
    #include "mcu_errno.h"
    /*
     * このプログラムはGPIO 48をブリンクします。これはEdison Arduinoボードのデジタル7に接続されています。
     */
    void mcu_main()
    {
        /* your configuration code starts here */
        gpio_setup(48, 1);  /* GPIO 48を出力に設定します。 */
        while (1)
        {
            gpio_write(48, 1);
            mcu_sleep(100);         /* 1秒スリープします。 */
            gpio_write(48, 0);
            mcu_sleep(100);
        }
    }

    Example of the LED blink code

  • プロジェクトをビルドするため、「MCU > Build Project」と選択します。「Console」タブにビルド・プロセスのログが表示されます。プロジェクトのビルドが成功し、「Build Finished」メッセージが表示されることを確認します。
  • 「MCU > Download」と選択します。デバイスへプログラムがダウンロードされます。
  • 「OK」をクリックしてデバイスの更新とリブートをします。ボードがリスタートするまで2分程度の時間が必要です。
  • ボードとシリアル通信セッションでログインします。Arduino拡張ボード用にGPIOを構成するために以下のコマンドを入力します:
    sh init_DIG.sh -o 7 -d output

    Setting up the GPIO configuration for the Arduino breakout board

    毎秒ごとに発光ダイオードがオンとオフの明滅をします。

    Example of a blinking LED

以下に示すように、CPU/MCUのためのGPIOのナンバリングとArduinoデジタル・ポートのナンバリングが異なる点に注意が必要です:

Arduinoデジタル・ポート MCU GPIOポート
0 130
1 131
2 128
3 12
4 129
5 13
6 182
7 48
8 49
9 183
10 41
11 43
12 42
13 40

まとめ

新しいマイコン・ボードを手に入れたら動作確認の意味を込めて最初に実行することが多い、いわゆる「Lチカ」をMCUで行う方法について説明するページを日本語化してみました。このプログラムが意味するところを正確に理解するためには以下のページを併せて参考にしていただければと思います:

これら2つのドキュメントによって、Arduino拡張ボードのそれぞれのポートがIntel Edison Compute Moduleから見てどのポートに接続されているのかということが理解できます。特に前者のドキュメントはArduino拡張ボードを使用しない場合でも一度読むことを推奨します。

※Intel Corporationあるいは関連会社より削除の要請があった場合には予告なく削除しますので、あらかじめご了承ください。


  • インテル株式会社による表現がそうなっているので、それに合わせています。
  • インテル株式会社による表現がそうなっているので、それに合わせています。
  • 質問者の技術レベルに応じて必要な回答を用意するのは、非常に高いスキルと多くの時間を必要とするものです。私はこれらのサービスが可能な状態にはありません。
  • 訳注: 原文のリンク先はNot Foundであったため、「おそらくこのページにリンクをしたかったのだろう」と思われるリンク先に変更しています。
  • 訳注: サンプル・コードのコメントはテンプレートから展開されてそのままとなる部分があるため、訳しすぎないようにしています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です