TOPPERS 活用アイデア・アプリケーション開発
コンテスト
部門

： がじぇるね IoT 部門

作品のタイトル： 初心者向け、プログラムを同時に動かすとは。

作成者： 森脇 秀樹

共同作業者： 角田 米弘

対象者： GR-ガジェットを使用してプログラムを始めようとする、初心者の方々に TOPPERS(Web コンパイラ)を使用すれば、おまじないのような簡単な記述で、後で知ればよい難解な理論などを必要とせず、思っているように、プログラムできる基本を示す。

使用する開発成果物： がじぇるね GR-PEACH とTOPPERS(Web コンパイラ版)

asp-gr_peach_gcc-mbed

目的・狙い
GR-PEACH で学ぶ IoT アプリ開発スキルアップ講座～リアルタイム OS を使ってみよう～
を受講したが、初心者には、短時間での理論の理解は、難解でした。

そこで初心に戻って、＜リアルタイム OS を使ってみよう＞に注目して短時間で実習を行いプログラムを同時に動かす、記述方法を紹介する。

アイデア/アプリケーションの概要
がじぇるねで、紹介されている LED チカチカをもとに、TOPPERS 環境を使用するまでの操作方法と、その操作の意味を、シナリオを基に、パワーポイントでの資料を作成し、単独実習では、スライドとメモを見ながら、実習ができるようなメモを作成。
説明会で使用するときは、スライドだけで、講師が、メモを補足し説明する。

このような利用方法で初心者にわかりやすく、説明できる。
サンプルプログラム、資料作成を行う。

1

・ 応募作品の説明
GR-PEACH で学ぶ IoT アプリ開発スキルアップ講座～リアルタイム OS を使ってみよう～
を受講したが、初心者には、短時間での理論の理解は、難解でした。そこで初心に戻って、＜リアルタイム OS を使ってみよう＞に注目して短時間で実習が行えるプログラムにて、リアルタイム OS を利用し記述する方法をパワーポイント資料として作成して紹介する。

活用アイデアの特徴やポイントがじぇるねで、紹介されている LED チカチカをもとに、TOPPERS 環境を使用するまでの操作方法と、その操作の意味を、下記のシナリオを基に、パワーポイントでの資料を作成し、〇単独実習では、スライドとメモを見ながら、実習ができるようなメモを作成する。
〇説明会で使用するときは、スライドだけで、講師が、メモを補足し説明する。

このような利用方法で初心者にわかりやすく、説明できる。
資料作成を行う。
図、 写真などを使って分かりやすく説明してください。
ここから、作成するパワーポイントの基になる、シナリオを示します。
リスト、図等は、作品のパワーポイント内に示しています。
★オープニング「同時にプログラムを動かすには」***RTOS というツールを使用しよう***★発表者概要★概要
同時に違う動作のプログラムを動作させるためには、どのように考えればよいのでしょうか？
GadgetRenesas に挙げられている、LED ちかちかを題材にして説明してゆきます。
動作内容①

SW により UserLED を点灯させる。

②

RGBled を赤緑青と順に点灯する。

サンプルを例に挙げ解説して行きます。

2

★使用ボード
Toppers-Contest に参加する条件で頂いたターゲットマイコン GR-PARCH

GR-PARCH いろいろな機能が満載ですが今回は、SW と LED を使用します。
SW と内部のカウンタ（タイマー）で、時間制御を行い各 LED を点滅します。
プログラムの中で使用する名前は自由に付けることができますが、次のように付けてありますので、これに従います。
★接続機能端子UserSW はポート６の 0 に入力として接続されています。押すと’0’が読めます。（普段は’1’です）
User led は ポート６の 12 に出力としてRGB led のそれぞれの色はR（赤）ポート６の 13 の出力としてG（緑）ポート６の 14 の出力としてB（青）ポート６の 15 の出力として接続されています。
’0’で消灯、’1’で点灯します。
プログラムの中では、UserSW
User led

を PIN_SW
を PIN_USER_LED

ResetSW
UserSW
User led
RGB led の赤 を PIN_LED_RED
RGB led の緑 を PIN_LED_GREEN
RGB led の青 を PIN_LED_BLUEと呼んでいます。

3

★サンプルプログラム sp1
がじぇるねページのアイテムの GR-PEACH 下方に用意されている（
http://gadget.renesas.com/ja/product/peach.html）、プログラム作成 特設ページ

Arduino ライクなスケッチ peach_sp1.html のサンプルプログラムの説明
このプログラムは、2 つの処理が、条件により実行されています。
①

UserSW が押されていれば、UserLED を、押されている間、いつまでも点滅します。

②①で押されていないときは、RGBled を順番に 1 度だけ赤、緑、青と順番に点灯を行う。

この繰り返しを行う動作です。
★サンプルプログラム sp1 の問題点
詳しく見てみると、①の条件により（SW が押されていると）②の処理は行われない動きになっています。
この 2 つの処理を、同時に行うようにするためには、①の処理にかかわらず、②の処理も行いたい
わけですから、プログラムの作りを少し変更して、while をif にする①②①②①②・・・と交互に 2 つの処理を行ってくれているように動作します。
これで 2 つの処理が交互に行われるわけですが、②の処理で赤、緑、青と順番に点灯消灯が継続的に行いたいわけですが、①の処理により一瞬止められてしまい、息継ぎ状態となります。
ここでプログラムの作り方として、①を実行しつつ②も実行するにはどのようにしたらよいのかということになります。
これが同時に別々の処理を行いたいという要求になります。

★コーヒーブレイク
コンピュータは、本来プログラムで記述されている命令を順番に、1 つずつ実行する機械です。
順番に実行するのですから、多数の事を同時には行いません。
ただし命令実行速度が、高速な場合、外部から見ていると、同時に多数の処理をこなしているように見えます。
そこで今回の問題を、リアルタイムマルチタスクオペレーティングシステムで動作させることにします。
★作り方
これを、元のリストの①、②のままで使用できる道具があればわかりやすい。
★サンプルプログラム /peach_sp5.html
サンプルで示されるように、それぞれ別々に行いたい処理を、loop でくくった記述にして、Toppers で用意されたツールにてコンパイルをすれば、簡単に、別々の処理をあたかも同時に行っているように、動作してくれます。

4★終わりみなさん、このように簡単な記述で、コンピュータに、同時に処理を行わせることが出来る様になりました。
便利な道具を利用してプログラムを簡単に作りましょう！！！
そして大学レベルの難しい理論を、学びたいと思えてきた人は、どうぞ、TOPPERS(Web コンパイラ版)

asp-gr_peach_gcc-mbed と、その理論に、目を向けてみてください。

TOPPERS のホームページでは、いろいろな説明が、用意されていますので、自分に合った説明を読んでみてください。

5