第 1 部 IoT時代はハードが重要! リアルタイム制御コンピュータを作る 第 お手軽 Linux 時代に 高性能とリアルタイムを両立! 1章 ご購入はこちら IoT時代はラズパイにカチャッ! リアルタイム制御コンピュータ初体験 永原 柊 ラズベリー・パイなど,1GHz 動作のプロセッサ を搭載した安価な小型コンピュータが増えていま す.ネットワークに強い Linux OS を搭載し,ネッ トワーク通信機能を備えているタイプも多く,I/O も 行 え る た め, モ ノ の イ ン タ ー ネ ッ ト(IoT; Internet of Things)に事足りる場合もあるかもしれ ません. しかし実際には,Linux コンピュータは,処理効 率は非常に高いのですが,決められた時間以内に「必 ず」処理を済ませることは不得意です.ちょっとし リスト 1 リアルタイム性能をチェックするためのサーボモータ 制御プログラム void setup() { pinMode(13, OUTPUT); } void loop() { while (1) { digitalWrite(13, HIGH); delayMicroseconds(1000); digitalWrite(13, LOW); delay(19); } } 1msのパルスを 出力する た操作・モニタを行うには便利ですが,電子機器の 制御・計測を行うには向きません.マイコンを使っ たハードウェアのリアルタイム制御・計測が,IoT 時代に差をつけるキー・テクノロジとして,ますま す重要です. 本稿では,便利な小型 Linux ボードであるラズベ リ ー・ パ イ に, 制 御 用 マ イ コ ン・ ア ダ プ タ を カ チャッと追加して,リアルタイム・コンピュータを 初体験してみます. (編集部) IoT 時代に知ってないとマズいこと… Linux はハード制御に使えない ● 実験条件 まずは,ラズベリー・パイ 3 は制御でどの程度のリ アルタイム性能を発揮できるのかを簡単に見てみるた めに,サーボモータ(ラジコン・サーボとも呼ぶ)を 動かしてみます. 超お手軽マイコン基板Arduino Unoと比べてみます. ・マイコン基板 Arduino Uno:16MHz 動作の 8 ビッ ト CPU(AVR) ・ Linux コンピュータ ラズベリー・パイ 3:1.2GHz 動作の 4 コア 32 ビット CPU(ARM Cortex-A53 プ ロセッサ) (a)Arduino Uno 用 #include <wiringPi.h> #include <wiringPi.h> #define GPIO18 #define GPIO18 18 main(int argc, char *argv[]) { if (wiringPiSetupGpio() == -1) return 1; pinMode(GPIO18, OUTPUT); main(int argc, char *argv[]) { if (wiringPiSetupGpio() == -1) return 1; pinMode(GPIO18, OUTPUT); for (;;) { // 1 ミリ秒の幅のパルスを出力 digitalWrite(GPIO18, 1); delayMicroseconds(1000); digitalWrite(GPIO18, 0); for (;;) { // 1 ミリ秒の幅のパルスを出力 digitalWrite(GPIO18, 1); delayMicrosecondsHard(1000); digitalWrite(GPIO18, 0); // 残り 19 ミリ秒待つ delayMicroseconds(19000); // 残り 19 ミリ秒待つ delayMicrosecondsHard(19000); } } 28 18 } } (b)ラズベリー・パイ 3 用(wiringPi ライブラリの delayMicroseconds 関数使用) (c)ラズベリー・パイ 3 用その 2(delayMicroseconds Hard 関数使用) 2016 年 12 月号
© Copyright 2024 ExpyDoc