こちらの記事について、内容・翻訳・視点・長さなど、皆様のご意見をお送りください。今後の記事製作の参考にしたいと思います。
Thank you! Your feedback has been received.
There was a problem submitting your feedback, please try again later.
こちらの記事の感想をお聞かせください。
ArduinoIDEで開発できる産業用ゲートウェイ「IOT2020」のリリースから数週間が経ち、私はIOT2020関連の記事をいくつかアップしてきた。セットアップ方法、Linuxで使用する方法、Node-RedやMQTTの使い方など。
このような活動の中で、多くの方から尋ねられたこと、「実際にArduinoのプログラムをどうやって書くのか」を今回実際に紹介してみよう。
以下、まず周辺部品の設定から見てみよう。
まずシンプルな白色LED。これは単純に9ピンと14ピン(GND)に接続するだけ。PWM LED互換のドライバがボードに搭載されているので、抵抗も電源も不要だ。
SPIで接続された8桁7セグLEDはMAX7219でドライブされている。Slave Select(SS)に10ピン、Data(MOSI)に11ピン、クロック(SCK)に13ピンを割り当てた。外部の5V USBアダプタから電源を取っている。
4行20文字のキャラクタLCD(2004として知られる)。ドライバとしてPCA8574Aが搭載されているので、I2Cで通信可能。デバイスはアドレス0x20が与えられている。外部USBアダプタより給電。
最後にSparkfunの128x64解像度のOLEDディスプレイも試した。これもI2Cで制御できる。これはUSBアダプタによる電源供給だ。
以下に示すのはArduino R3のピン配置だ。これは、IOT2020 Arduinoヘッダのピン配置とほぼ同様なので、接続の参考にできる。
VINはIOT2020の電源と同じ電位ですので、24Vを超えている可能性がありますのでご注意ください。
全てを接続し終わったら、このような形になった。ディスプレイを取り付ける場所が必要だったので、私のミニオンの1体に手伝ってもらった。
ビデオ(英語)ではすべての詳細について解説しています。
ご覧のとおり、起動と同時にGPIO、SPI、PWMが正常に動いていることを確認できた。さてI2Cはどうだろう。
本記事作成時の最新Verの2.1では、I2Cが有効化されていなかったので、下記のLinuxコマンドで有効化した。(リブートすると戻ってしまうが・・・)。
% modprobe i2c-dev
これでI2Cが動作するようになる。これをブートしても消えないよう、次のファイルに" - i2c-dev" を追加する。
フォルダ: /etc/modules-load.d/
ファイル名: galileo-i2c0-i2cdev.conf
で、このファイルを保存すれば完了。これでリブート後もI2Cが動作するようになる。
続いてArduino IDEによるスケッチだ。まず最新のArduino IDE をダウンロード、インストールする。
IOT2020がPCに接続された状態で初めてIDEを起動すると、IOT2020が自動的に認識される("Intel Galileo"と認識さるかもしれないが、それで正常だ)。この時、"ハードウェアライブラリをインストールするか" と尋ねられるはずだ。認識されない場合、"Board manager"で"i586"と入力、その後出てきた"Intel 586 Boards″をインストールすればよい。
これでスケッチを試す環境が整った。ハードウェアには″Intel Galileo 2″が選択され、適切なCOMポートがIntel Galileoと認識され選択されているはずだ。
LED点滅のスケッチを開き、コンパイル、アップロードしてみよう。ユーザLEDが点滅するはずだ。
もし、これらのハードウェアをお持ちで、もっと高度なことをしてみたい方がいれば、この投稿に添付した私のスケッチを試してほしい。いくつかのハードウェアがない場合は、その部分をコメントアウトして利用することもできる。
以上のように、IOT2020をArduinoスケッチで動作させるのは非常に簡単だ。特に、リブート後にも設定を維持できる方法は重宝するだろう。
注意点 いくらかのスケッチは、例えばNeoPixels用にATMEGA328のポートのスピードを上げるために、直接IOを操作している。これらのスケッチは、当然、簡単には動かない。ただ、Linuxが動作するIOT2020はエッジデバイスやタイミングが非常に重要なアプリケーションに向かない。将来のビデオではどのようにエッジデバイスも活用するか、解説して行きたいと思う。
以上で紹介した機能は、IOT2020にドライバを追加したりネットに繋いだりする必要もない。SDカードのイメージ上で設定するのみだ。ただし、ホスト側のPCのArduino IDEは最新のものが必要だ。私は、Windows 10 64bitでしか動作を確認していないがMacやLinuxでも動作すると思う。ポート番号などは、お使いの環境によって異なるので、その点はご注意頂きたい。