2015 年 07 ⽉ 11 ⽇ (⼟) @軽⼦坂 はじめての GR-TSUBAME ルネサスエレクトロニクス・インキュベーションセンター ⻫藤博⽂ [email protected] 6.1.1 Web コンパイラの起動 1 GR-TSUBAME とは 6.1.2 テンプレートの選択 2 GR-TSUBAME の特徴 6.1.3 プログラミング 3 提供するモーターのスペック 6.1.3.1 速度制御のサンプルプログラム 4 本説明で使う物 6.1.3.2 角度制御のサンプルプログラム 5 GR-TSUBAME の接続 6.1.3.3 組み合わせのサンプルプログラム 5.1 GR-KURUMI の接続 6.1.3.4 Sketch で準備してあるサンプルプ ログラム 5.2 モーターの接続 5.3 スイッチの確認 6.1.4 ビルド 5.3.1 GR-TSUBAME のモーターコントローラー への給電 5.3.2 GR-KURUMI への給電 5.3.3 スイッチの切り替えのまとめ 6 GR-TSUBAME のプログラミング 6.1 Web コンパイラの利⽤ 6.1.5 転送 7 実際に動かしてみよう 7.1 シリアルコンソールの起動 7.2 単体での起動 8 さいごに 9 お問い合わせ GR-TSUBAME は Arduino や GR-KURUMI や GR-SAKURA のような Ardui no 互換機に繋がるモーターコントローラーです。 ⼀般にモーターを制御するには様々な知識が必要ですが、GR-TSUBAME を使 うことで簡単にモーターを制御することができます。 GR-TSUBAME には以下のような特徴があります。 速度制御ができます。 角度制御ができます。 トルク (電流) 制御ができます。 これらを組み合わせて複雑なプログラムを作ることみ可能です。 今回提供するモーターは以下のようなスペックです。 最⼤回転数: 約 7,200 [rpm] @ 12 [V] 最⼩回転数: 約 200 [rpm] 最⼤効率: 約 10 [W] (負荷トルク 25 [mN・m]、回転数 4,000 [rpm]、電流 2 [A]) ⼊⼒電圧: 5 〜 12 [V] (設計 7.2 [V]) 角度制御分解能: 約 ±5 [deg] NOTE: モーターのエンコーダー部 (目盛のついた円盤) は壊れやすいので取り扱いに注意してください。 ここでは GR-TSUBAME の上に GR-KURUMI を乗せて使う⽅法を紹介します。 Figure 4-1: GR-KURUMI on GR-TSUBAME Figure 4-1 のようにGR-TSUBAME の上に GR-KURUMI を乗せて使うことで、コンパクトにモーターコントロー ラーを作ることができます。 必要な物は以下のとおりです。 GR-TSUBAME GR-KURUMI GR-TSUBAME に接続できるように端⼦にピンを半⽥付けしておいてください。 エンコーダー付きモーター 今回⽀給するモーターをご利⽤ください。 接続ケーブル コネクタハウジング: JST PHR-6 端⼦: JST SPH-002T-P0.5S FTDI ボード DEV-09873 (Spark Fun) または SSCI-010320 (SWITCH SCIENCE) 外部電源 (5V 〜 12V) 準備ができたら、次のステップに進みましょう。 Figure 5-2: GR-TSUBAME の接続 既にコネクタを半⽥付けしてある GR-KURUMI を乗せるのは簡単です。 Figure 5-2 の向きに合わせて GR-KURUMI を接続します。 GR-TSUBAME とモーターを接続するには付属のケーブルを使います。 Figure 5.2-3: GR-TSUBAME とモーターの接続 NOTE: GR-TSUBAME とモーターの接続はしっかりコネクターを差し込んでください。 また、コネクターを取 り外す際には破損させないように気を付けましょう。 Figure 5-2 に⽰してあるように、GR-TSUBAME と GR-KURUMI にそれぞれスイッチがありますので、以下のよ うに設定してください。 GR-TSUBAME のモーターコントローラーへの給電に関しては以下のとおりです。 USB からの給電 左側に設定 GR-TSUBAME の右上の外部電源からの給電 右側に設定 GR-KURUMI への給電に関しては以下のとおりです。 USB からの給電 OFF (下側) に設定 GR-TSUBAME からの給電 ON (上) に設定 この場合には Section 5.3.1 にある「GR-TSUBAME の右上の外部電源からの給電」を選択する 必要があります。 つまり、⽤途によって以下に分けられます。 Table 5.3.3-1: ⽤途別のスイッチの切り替え ⽤途 Switch 1 (GR-KURUMI) Switch 2 (GR-TSUBAME) プログラム書き込み時 OFF (下側) 左側 シリアル接続で確認しながらの実⾏ OFF (下側) 右側 PC から切り離して実⾏ ON (上側) 右側 GR-TSUBAME にはモーターを制御するのに必要な API が準備されています。 ここに書かれている以外の情報や API 仕様書等は後⽇ Renesas Rulz - Japan1 にて公開していきますので、ご確認ください。 ここでは Web コンパイラを⽤いたプログラミングの説明をします。 以下の URL から Web コンパイラを起動します。 がじぇっとるねさす | ルネサス エレクトロニクス2 Figure 6.1.1-4: がじぇっとるねさすの Web ページ 1. 右上の を押します。 2. 「ご注意」に同意の上で を押します。 3. ご登録のメールアドレスとパスワードを⼊⼒し を押します。 Figure 6.1.1-5: Web コンパイラの画⾯ テンプレートの選択では以下のものを選択してください。 Figure 6.1.2-6: テンプレートの選択 (GR-KURUMI + GR-TSUBAME) GR-KURUMI̲TSUBAME̲E0.10zip GR-TSUBAME を GR-TSUBAME から制御する場合に選択します。 GR-SAKURA̲TSUBAME̲E0.10zip GR-SAKURA を GR-TSUBAME から制御する場合に選択します。 今回は前者の GR-KURUMI_TSUBAME_E0.10zip を選択したものとして解説を⾏います。 NOTE: 新しくテンプレートを選択するには Web コンパイラ画⾯の左下の「プロジェクト」の + をクリックす ると選択できます。 次に具体的な GR-TSUBAME を⽤いたプログラミングについて簡単にご説明 します。 Figure 5.2-3 に⽰してあるように、GR-TSUBAME のバス番号は 0 で、左 側の I2C アドレスが 32 で、右側のアドレスが 40 に設定されています。 以下は、左側の I2C アドレスが 32 の⽅を⽤いた場合のプログラム例です。 まず、速度制御の例を⽰します。 Code 6.1.3.1-1 は回転速度 600 [rpm] での回転を指⽰し、エンコーダーから読み取った回転数をシリアルコン ソールに表⽰するものです。 Code 6.1.3.1-1: Sample̲1.ino #include #include #include #include <Arduino.h> <Control.h> <Wire.h> <SPI.h> //Includes Control.h ControlRoot root; ControlMotor motor; //Declares root class //Declares motor class void setup() { Serial.begin(9600); root.controlInit(); motor.attach(0, 32); //Initializes Control API //Assigns a motor module motor.setTargetSpeed(600.0); //Sets target rotational speed to 60rpm } void loop() { float speed = motor.getPresentSpeed(); Serial.println(speed); } //Obtains present rotational speed [rmp] 次に、角度制御の例を⽰します。 Code 6.1.3.2-2 は回転角を 3600 度になるように指⽰ (すなわち 10 回転) し、エンコーダーから読み取った回転 角をシリアルコンソールに表⽰するものです。 Code 6.1.3.2-2: Sample̲2.ino #include #include #include #include <Arduino.h> <Control.h> <Wire.h> <SPI.h> //Includes Control.h ControlRoot root; ControlMotor motor; //Declares root class //Declares motor class void setup() { Serial.begin(9600); root.controlInit(); motor.attach(0, 32); //Initializes Control API //Assigns a motor module motor.setTargetAngle(3600.0); //Sets target angle to 3600 degree } void loop() { float angle = motor.getPresentAngle(); Serial.println(angle); } //Obtains present angle [degree] 次に、速度制限を付けた角度制御の例を⽰します。 Code 6.1.3.3-3 は Code 6.1.3.2-2 と同様に回転角を 3600 度になるように指⽰ (すなわち 10 回転) しますが 、その際に回転速度を 60 [rpm] に制限します。 また、エンコーダーから読み取った回転速度と回転角をシリアル コンソールに表⽰するものです。 Code 6.1.3.3-3: Sample̲3.ino #include #include #include #include <Arduino.h> <Control.h> <Wire.h> <SPI.h> //Includes Control.h ControlRoot root; ControlMotor motor; //Declares root class //Declares motor class void setup() { Serial.begin(9600); root.controlInit(); motor.attach(0 ,32); //Initializes Control API //Assigns a motor module motor.setMaxSpeed(60.0); motor.setTargetAngle(3600.0); //Sets maximum speed to 60 rpm //Sets target angle to 3600 degree } void loop() { float speed = motor.getPresentSpeed(); //Obtains present speed[rpm] float angle = motor.getPresentAngle(); //Obtains present angle[degree] Serial.println(speed); Serial.println(angle); } Sketch で準備させていただいたものは 1 秒毎に回転数を 125, 500, 1000 [rpm] と変更していくものです。 ま た、その回転数が 250 [rpm] 未満なら GR-KURUMI の LED を⾚に、500 [rpm] 未満なら緑に、1250 [rpm] 未満 なら⻘に回転数をモニターして点灯させるものです。 Code 6.1.3.4-4: Sample̲4.ino #include #include #include #include <Arduino.h> <Control.h> <Wire.h> <SPI.h> //Includes Control.h // Pin 22,23,24 are assigned to RGB LEDs. int led_red = 22; // LOW active int led_green = 23; // LOW active int led_blue = 24; // LOW active float low_speed = 250.0; float middle_speed = 750.0; float high_speed = 1250.0; // Low Speed: < 250 [rpm] // Middle Speed: < 750 [rpm] // High Speed: < 1250 [rpm] ControlRoot root; ControlMotor motor; //Declares root class //Declares motor class void setup() { pinMode(led_red, OUTPUT); pinMode(led_green, OUTPUT); pinMode(led_blue, OUTPUT); // turn the LEDs on, glow white. digitalWrite(led_red, LOW); digitalWrite(led_green, LOW); digitalWrite(led_blue, LOW); Serial.begin(9600); root.controlInit(); motor.attach(0, 32); //Initializes Control API //Assigns a motor module motor.setMaxSpeed(2000.0); // for Safety } void loop() { long elapsed_time = millis(); // Elapsed Time int time = int(elapsed_time / 1000) % 3; switch (time) { case 0: motor.setTargetSpeed((0 + low_speed) / 2); break; case 1: motor.setTargetSpeed((low_speed + middle_speed) / 2); break; case 2: motor.setTargetSpeed((middle_speed + high_speed) / 2); break; } delay(200); float speed = motor.getPresentSpeed(); // Obtains present speed [rpm] if (speed < low_speed) { // Set LED Color to Red digitalWrite(led_red, LOW); digitalWrite(led_green, HIGH); digitalWrite(led_blue, HIGH); } else if (speed < middle_speed) { // Set LED Color to Green digitalWrite(led_red, HIGH); digitalWrite(led_green, LOW); digitalWrite(led_blue, HIGH); } else if (speed < high_speed) { // Set LED Color to Blue digitalWrite(led_red, HIGH); digitalWrite(led_green, HIGH); digitalWrite(led_blue, LOW); } else if (speed >= high_speed) { // Set LED Color to White digitalWrite(led_red, LOW); digitalWrite(led_green, LOW); digitalWrite(led_blue, LOW); } Serial.println(speed); delay(200); } Web コンパイラでのビルドは右側のペインの を押すことでビルドすることができます。 実⾏時のメッセージの最後に Make process completed と表⽰されていることと kurumi_sketch.bin が⽣成され ていることを確認してください。 Section 6.1.4 で説明をした kurumi_sketch.bin を右クリックして ます。 を選択し、ダウンロードし この kurumi_sketch.bin を Kurumi Writer にて書き込みますが、いきなりモーターが⾼速回転してしまうと危険 ですので、動作確認ができていない場合には Kurumi Writer の Run after COM open(FTDI setting) にチェックを ⼊れて書き込んでください。 これらの説明の詳細は はじめてのKURUMI - 作り⽅使い⽅資料 - がじぇっとるねさすコミュニティ - Renesas Ru lz - Japan3 に記載されていますので参照してください。 必ず接続を確認してからモーターの電源を接続してください。 また、GR-KURUMI と GR-TSUBAME のスイッチ 組み合わせは Table 5.3.3-1 を参照してください。 最後に動作しているかどうかを確認するためにシリアルコンソールを⽴ち上げてください。 ここでは Tera Term4 を⽤いています。 Tera Term を起動し、 と書かれているポートを選択 → → → Serial にチェックを⼊れる → USB Serial Port と進めることでシリアルコンソールを⾒られます。 Table 5.3.3-1 の「PC から切り離して実⾏」に合わせてスイッチを切り替えてください。 切り替えた後に電源を 供給することで、PC から切り離して単体で実⾏することができます。 モーターを正確に制御するためには、電気、物理などの知識が 必要になるため、Makers の⼈たちがロボットなどの複雑な動作 を⾏うためには複雑なプログラミング技術が必要でした。 そこで、我々ルネサスはモーターを制御したい⼈たちに向け、 ルネサスの「動くものプロジェクト」の中で作り上げたモーター モジュールと API を活⽤し、さらに使いやすくしたものが GR-T SUBAME です。 それでは GR-TSUBAME を使った作品の開発をお願いします。 また、開発時に気になった点や改善点を連絡してください。 みん なで⼀緒に良いものを作り上げていきましょう! GR-TSUBAME に関するお問い合わせは以下の URL からお願いします。 Renesas Rulz - Japan1 1. http://japan.renesasrulz.com/ 2. http://gadget.renesas.com/ja/index.html 3. http://japan.renesasrulz.com/gr̲user̲forum̲japanese/b/weblog2/archive/2015/06/10/kurumi.aspx 4. http://ttssh2.osdn.jp/
© Copyright 2025 ExpyDoc