作品タイトル:GR-KURUMI導入編
表示名:@chobichan
コンセプト・作品説明 |
---|
GR-KURUMIの導入 |
GR-KURUMIを使ってみる
【GR-KURUMIについて】
GR-KURUMIはArduino Pro Mini互換の基板形状、端子配置、ライブラリの互換性を持つ、ルネサスエレクトロニクスが“がじぇるね”と言う企画で発表したちいさなマイコン基板です。基板の中心となるマイコンはルネサスエレクトロニクスのRL78/G13と言う16bitのマイコンが搭載されています。
GR-KURUMIは若松通商から購入する事ができます。
http://www.wakamatsu-net.com/cgibin/biz/pageshousai.cgi?code=38320035&CATE=3832
価格は2200円です。うーん、もっと安いとイイのですけれど。また、取り扱い販売店も拡大して欲しいですね。ですが!
“がじぇるね”は頻繁にセミナーや発表会などのイベントを開催しています。このイベントに参加してGR-KURUMIをGETしてしまいましょう。イベント情報は以下のページをチェック
http://gadget.renesas.com/ja/index.html
GR-KURUMIを含む“がじぇるね”企画の基板の情報は以下の交流サイトで。欲しい情報が集まります。
http://japan.renesasrulz.com/gr_user_forum_japanese/default.aspx
事前準備
GR-KURUMIにプログラムの書き込みを行う為には、写真の様なUSBシリアル変換器を使う必要があります。
http://www.amazon.co.jp/dp/B009AME9R4/
写真の変換器はチップにFTDIのFT232RLを使用していますが、基本的に制御線を持つチップであれば書き込みは可能です。私はSilicon LabsのCP2104で書き込みを行って
います。
FT232RLはまがい物チップが出回っているようで、あまり怪しいものは買わない方が賢明ですね。
http://www.amazon.co.jp/dp/B00KS12RIO/
GR-KURUMIを使って色々動かしてみる為にブレッドボードを使うとは思いますが、長い方の辺のスルーホールを利用してシングルラインのピンヘッダーを半田付けします<。秋月の細ピンヘッダーを使うとブレッドボードの抜き挿しがやり易いですね。
http://akizukidenshi.com/catalog/g/gC-04397/
変換器とGR-KURUMIを接続する為に、 GR-KURUMIの短い方の辺にある6pinのスルーホールを利用してピンヘッダーを半田付けします。
http://akizukidenshi.com/catalog/g/gC-05336/
プログラムの書き込み準備完了
GR-KURUMIの意義
GR-KURUMIはArduino Pro Mini (ほぼ)互換です。しかしArduino Pro Mini(1243円、アマゾン調べ)と変わらないと言うなら、より高価なGR-KURUMIを選ぶ理由は何でしょう?
仕事でRL78/G13を使うので評価用として使ってみたい!と言う方はなにも悩まず購入してしまってください。
R5F100GJAFB 48pin LQFPタイプのRL78/G13の端子のほとんどが基板から引き出せますので、開発の助けになると思います。
しかし個人的に電子工作を行っているユーザーへの訴求は何でしょう?
個人的な感想ですが、今まで使ってきてArduinoに対するGR-KURUMIの利点は、利用できる資源の豊富さにあると思います。
Arduino Pro MiniとGR-KURUMIを簡単に比較してみました。
※昇圧回路が基板上に実装されているので、0.8Vから動かせる
※e2studioはeclipseベースのローカル専用の開発環境、デバッガー(E1)を利用できる
※ IDE for GRはWEBコンパイラの環境をローカルでも利用できるようにしたもの
表の内容はGR-KURUMI、Arduino Pro Mini共に標準のライブラリを使用した時の機能です。
Atmega328P、RL78/G13として見た時はもっと機能が増えます。例えば両方共割り込みとして利用できる端子はもっと多いですし、 Atmega328Pはアナログのコンパレータ、RL78/G13はデジタルのコンパレータが存在します。
また、 RL78/G13はDMACが有りますので、ADC等で取り込んだデータをメモリに転送する時にCPUの介在無しで行う事ができます。
RL78/G13 のADCは複数のアナログ入力をいっぺんに取り込み機能が有ります。
この様にメモリサイズだけを見てもArduino Pro Miniに対する優位性が有る事が判ります。
Flash ROMが256Kbyteも有れば、解像度は低いですが日本語フォントもここに搭載可能です。
SRAMが20Kbyteも有れば、RTOSの実装も問題有りません。
UARTを使ったシリアル通信でも、 Arduino Pro Miniであれば2つ目以上はソフトシリアルを使うことになりますが、GR-KURUMIは最大3チャネルのハードウエアのシリアルを利用できますので、CPUの負担をずいぶん減らす事ができます。
GR-KURUMIの端子とポート番号
図はGR-KURUMIの標準の端子配置です。Arduino Pro Mini同様0~13(デジタル)、A0~A7(アナログ/デジタル)の番号で端子を操作できます。
もちろん番号はArduino Pro Miniに一致させていますので、Arduino Pro Miniで作成したスケッチをGR-KURUMIに移植する事は容易です。波線はライブラリでサポートされているPWM出力で、最大6本PWM出力(analogWrite)できます。Serialと書かれているのはUARTです。矢印が入出力方向を示しています。WireはI2Cの事です。ラーメン丼ぶりの縁の絵柄の様なマークはクロック(SCL)、双方向の矢印はデータ(SDA)です。
SPIも上からラーメン丼ぶりのクロック(SCK)、入力(MISO)、出力(MOSI)、スレーブセレクト(SS)となっています。
スレーブセレクトに関しては別の端子を割り当てる事が可能なので、複数のSPIデバイスを接続できます。ダイオードみたいなマークは外部からのリセット入力です。黒い-マークはGNDの印です+マークが二つ在りますが、オレンジ(RAW)は乾電池等3.3V以下の電源を使用する時にここに接続します。赤(VCC)は外部で生成した3.3Vの電源をここに接続します。または、RAW入力を昇圧して生成した3.3Vを外部に供給できます。上側の端子の並びは、プログラムの書き込みやデバッガーの接続に使用します。
Webコンパイラを使ってみる
GR-KURUMIの開発は、WEBコンパイラ、e2studio、IDE for GRの3つが有りますが、最初なので取っつき易いWEBコンパイラの使用方法を解説します。
WEBコンパイラはクラウド上の開発環境です。特にPCに何かをインストールせず、ブラウザ上で開発が行えます。ただしデバッガーを使ったデバッグは行えません。
デバッガーを使用したい時はe2studioを使用します。“がじぇるね”の情報ページ
http://gadget.renesas.com/ja/index.html
を開くと画面右上にログインのリンクボタンが存在します。「ゲストログイン」で入ってみます。なんか色々注意書きとか意思決定を求められますが、進んで下さい。そうしないと何もできないですから。
WEBコンパイラのページが開くと、まずどの基板?どのプロジェクトタイプ?を選択するダイアログが開きます。今回はGR-KURUMIの標準のプロジェクトのV1.12を選択し、プロジェクト名に適当な名前を付け、最後に「プロジェクト作成」をクリックします。
※ V1.12は開発環境やライブラリの更新時に変更される事が有ります。
WEBコンパイラの画面左上の「gr_schetch.cpp」をダブルクリックすると、中央の編集画面に「gr_schetch.cpp」が展開されます。このソースファイルを編集してプログラムの作成を行って行きます。
通常Arduinoの場合は拡張子はinoですが、“がじぇるね”プロジェクトの場合はC++のソースであるcppとなります。
このプログラムは一番最初にCPUが内蔵している温度センサーの値を取り込んで、シリアルで出力した後、Helloと連続して表示、基板上のRGB LEDを延々とチカチカさせます。
まずは特に編集せずに、WEBコンパイラの画面右側の「ビルド実行」をクリックすると、現状のプログラムのコンパイルがクラウドサーバー側で開始されます。最初のコンパイル時は時間が掛かるので、お茶でも飲みながらお待ち下さい。
画面上にこの様なメッセージが出力され、一番最後の行に「Make process completed」と表示されればプログラムに問題は有りません。もし問題が有るときは、その位置と内容がメッセージに表示されますので、ソースファイルを編集して修正、再度「ビルド実行」を行います。
プログラムの書き込み
WEBコンパイラでコンパイルが成功したら、次は書き込みを行います。
書き込み用のハードウエアの準備は「準備編」で完了していますので、ここでは書き込み用のツールのダウンロードを行います。画面左の「エクスプローラー」の「gr_writer」をダブルクリックするとその内容が展開されます。Windows用、Mac用のそれぞれの書き込みソフトウエアのZIPファイルが有りますので、それぞれ必要なZIPファイルの上にマウスカーソルを移動し、右クリックをすれば、メニューの中に「ダウンロード」が出てきますので、「ダウンロード」をクリックしてファイルをダウンロードして下さい。
適当なフォルダーに解凍します。
USBシリアル変換器に電源切り替えが有れば3.3Vを選択しておきます。
変換器とGR-KURUMIを合体させます。
PCと変換器をUSBケーブルで接続します。もしPCにドライバーが入っていないなら、まずドライバーのインストールを完了させます。
画面左の「エクスプローラー」の「kurumi_shetch.bin」が先ほど作成したプログラムのバイナリーファイルです。
このファイルをやはり右クリックで適当なフォルダーにダウンロードします。このファイルは解凍する必要はありません。
PCがシリアルポートとして認識をしたのなら、先のソフトウエアを起動します。
該当ポートを選択し、ダウンロードした「kurumi_shetch.bin」を選択します。
Run after COM openにチェックを入れておきます。
ここにチェックを入れて置くとターミナルソフト等でCOMポートをOPENするとプラグラムが起動します。
「Write」を押して書き込みを開始します。ここではTera Termを使用しています。
Tera Termを起動してCOMポートをOPENしてみます。
温度が表示され、続いて連続的にHelloの出力、LEDチカチカが始まっていれば大丈夫です。
ユーザー登録してクラウド上に100MBの領域をゲット
先のWEBコンパイラを使ったプログラムの開発では作成したプログラムは保存されません。あくまでもお試しです。ユーザーが作成したプログラムを保存する為にはユーザー登録が必要となります。
「新規登録」のリンクから進んで登録を完了させて下さい。
ユーザー登録が済んだら、「ログイン」をクリックしてWEBコンパイラを開きます。
以降は先ほどのゲストログインと同じになります。開発用にユーザーが利用できるクラウドサーバー上のサイズは100Mbyteらしいです。※昔と変わらなければ。
ただし、中間ファイル等一切合切を含むサイズなので意外と少なく感じます。WEBコンパイラでコンパイルができなくなった時、この100MByte上限に達している可能性が有ります。
その様な時、過去のプロジェクト等は適宜自分のPCにダウンロードしてプロジェクトを削除して領域を空ける必要が有ります。考えてみればビルドメニューにMake cleanがあればずいぶん良くなるのですが。
GR-KURUMI開発お役立ち情報
開発するにあたって必要な情報は何処にあるのでしょう?
まずGR-KURUMIのライブラリ固有の情報は以下のページにあります。
KURUMIスケッチリファレンス
http://tool-cloud2.renesas.com/Renesas/ref_kurumi/gr_reference_j.html
上記リファレンスは言語仕様等は説明されていません。
言語に関するリファレンスはArduino本家を見た方が良いでしょう。
Language Reference
https://www.arduino.cc/en/Reference/HomePage
Ethernet周りのリファレンスは永遠に編集中ですね。ここも本家を見た方が良いでしょう。
Libraries
https://www.arduino.cc/en/Reference/Libraries
ライブラリにない事をやってみたい!
例えばタイマーとDMACを使ってサンプリングを自動化するとかはもうRL78/G13のハードウエアを知らないとできないので、ルネサスエレクトロニクスの各種資料を入手してください。
http://japan.renesas.com/products/mpumcu/rl78/rl78g1x/rl78g13/Documentation.jsp
思い切って人に聞いてしまうのも一つの手です。
ルネサスRulz
http://japan.renesasrulz.com
がじぇるねページ
http://japan.renesasrulz.com/gr_user_forum_japanese/default.aspx
極一般のハードウエアエンジニア。たまに雑誌記事を書いています。
twitterアカウント:
https://twitter.com/chobichan